Core fields:
net_idnode_idmaster_keyrolesecuritychanneltx_power
Auto-mesh fields:
scan_ms(default 2000)election_ms(default 1000)on_role_elected(umesh_role_t role)
Gradient routing fields:
routing(UMESH_ROUTING_DISTANCE_VECTORorUMESH_ROUTING_GRADIENT)gradient_beacon_ms(default 30000)gradient_jitter_max_ms(default 200)on_gradient_ready(uint8_t distance)
Power management fields:
power_mode(UMESH_POWER_ACTIVE,UMESH_POWER_LIGHT,UMESH_POWER_DEEP)light_sleep_interval_ms(default 1000)light_listen_window_ms(default 100)deep_sleep_tx_interval_ms(default 30000)on_sleep(void)on_wake(void)
umesh_get_role(void)umesh_is_coordinator(void)umesh_trigger_election(void)
-
uint8_t umesh_gradient_distance(void)- returns hop distance to coordinator
UINT8_MAXmeans not established yet
-
umesh_routing_mode_t umesh_get_routing_mode(void) -
umesh_result_t umesh_gradient_refresh(void)- coordinator-only
- forces immediate gradient beacon
-
uint8_t umesh_get_neighbor_count(void) -
umesh_neighbor_t umesh_get_neighbor(uint8_t index)- returns neighbor diagnostics (
node_id,distance,rssi,last_seen_ms)
- returns neighbor diagnostics (
umesh_result_t umesh_set_power_mode(umesh_power_mode_t mode)umesh_power_mode_t umesh_get_power_mode(void)umesh_result_t umesh_deep_sleep_cycle(void)- returns
UMESH_ERR_NOT_ROUTABLEwhen routing is not gradient - returns
UMESH_ERR_INVALID_DSTwhen role is coordinator/router
- returns
float umesh_estimate_current_ma(void)umesh_power_stats_t umesh_get_power_stats(void)
umesh_cfg_t cfg = {
.net_id = 0x01,
.node_id = UMESH_ADDR_UNASSIGNED,
.master_key = KEY,
.role = UMESH_ROLE_AUTO,
.security = UMESH_SEC_FULL,
.channel = 6,
.routing = UMESH_ROUTING_GRADIENT,
.on_gradient_ready = on_ready,
};