mqtt2LoRaWAN/POHelperClasses.hpp

59 lines
1.0 KiB
C++

#ifndef ProgramOptions_HELPERCLASSES_HPP
#define ProgramOptions_HELPERCLASSES_HPP
#include <string>
#include <cstdint>
#include <boost/program_options.hpp>
typedef union {
uint8_t e8[8]; /* lower 64-bit address */
uint8_t e32[2];
} eui64_t;
typedef uint8_t devkey_t[16];
/* Define a completely non-sensical class. */
class magic_number {
public:
magic_number(int n) : n(n) {}
int n;
};
class appeui {
public:
appeui(std::string appeui_hexstring);
eui64_t application_eui64;
};
class deveui {
public:
deveui(std::string deveui_hexstring);
eui64_t device_eui64;
};
class devkey {
public:
devkey(std::string devkey_hexstring);
devkey_t device_key;
};
void validate(boost::any& v, const std::vector<std::string>& values, magic_number*, int);
void validate(boost::any& v, const std::vector<std::string>& values, appeui*, int);
void validate(boost::any& v, const std::vector<std::string>& values, deveui*, int);
void validate(boost::any& v, const std::vector<std::string>& values, devkey*, int);
#endif