36 char buf[OT_IP6_ADDRESS_STRING_SIZE];
37 otIp6AddressToString(&*
address, buf,
sizeof(buf));
54 otDeviceRole role = otThreadGetDeviceRole(instance);
70 uint16_t rloc16 = otThreadGetRloc16(instance);
74 snprintf(buf,
sizeof(buf),
"%04x", rloc16);
88 const auto *extaddr = otLinkGetExtendedAddress(instance);
89 if (!std::equal(this->
last_extaddr_.begin(), this->last_extaddr_.end(), extaddr->m8)) {
90 std::copy(extaddr->m8, extaddr->m8 + 8, this->last_extaddr_.begin());
107 otLinkGetFactoryAssignedIeeeEui64(instance, &addr);
109 if (!std::equal(this->
last_eui64_.begin(), this->last_eui64_.end(), addr.m8)) {
110 std::copy(addr.m8, addr.m8 + 8, this->last_eui64_.begin());
126 uint8_t channel = otLinkGetChannel(instance);
130 snprintf(buf,
sizeof(buf),
"%u", channel);
144 otOperationalDataset dataset;
145 if (otDatasetGetActive(instance, &dataset) != OT_ERROR_NONE) {
174 if (!std::equal(this->
last_key_.begin(), this->last_key_.end(), dataset->mNetworkKey.m8)) {
175 std::copy(dataset->mNetworkKey.m8, dataset->mNetworkKey.m8 + 16, this->last_key_.begin());
191 uint16_t panid = dataset->mPanId;
195 snprintf(buf,
sizeof(buf),
"%04x", panid);
209 if (!std::equal(this->
last_extpanid_.begin(), this->last_extpanid_.end(), dataset->mExtendedPanId.m8)) {
210 std::copy(dataset->mExtendedPanId.m8, dataset->mExtendedPanId.m8 + 8, this->last_extpanid_.begin());
This class simplifies creating components that periodically check a state.
static std::optional< InstanceLock > try_acquire(int delay)
std::optional< otIp6Address > get_omr_address()
void update_instance(otInstance *instance) override
float get_setup_priority() const override
void dump_config() override
void update_instance(otInstance *instance) override
virtual void update_dataset(otOperationalDataset *dataset)=0
std::array< uint8_t, 8 > last_eui64_
void dump_config() override
float get_setup_priority() const override
void update_instance(otInstance *instance) override
float get_setup_priority() const override
void update_instance(otInstance *instance) override
std::array< uint8_t, 8 > last_extaddr_
void dump_config() override
void update_dataset(otOperationalDataset *dataset) override
float get_setup_priority() const override
std::array< uint8_t, 8 > last_extpanid_
void dump_config() override
void dump_config() override
float get_setup_priority() const override
std::array< uint8_t, 16 > last_key_
float get_setup_priority() const override
void dump_config() override
void update_dataset(otOperationalDataset *dataset) override
float get_setup_priority() const override
void dump_config() override
void update_dataset(otOperationalDataset *dataset) override
std::string last_network_name_
float get_setup_priority() const override
virtual void update_instance(otInstance *instance)=0
void update_dataset(otOperationalDataset *dataset) override
void dump_config() override
float get_setup_priority() const override
void update_instance(otInstance *instance) override
float get_setup_priority() const override
void dump_config() override
void update_instance(otInstance *instance) override
void dump_config() override
void publish_state(const std::string &state)
OpenThreadComponent * global_openthread_component
const float AFTER_WIFI
For components that should be initialized after WiFi is connected.
constexpr size_t format_hex_size(size_t byte_count)
Calculate buffer size needed for format_hex_to: "XXXXXXXX...\0" = bytes * 2 + 1.
char * format_hex_to(char *buffer, size_t buffer_size, const uint8_t *data, size_t length)
Format byte array as lowercase hex to buffer (base implementation).