|
|
|
|
@ -31,8 +31,9 @@ const char MQTT_TOPIC_ROBO_NAV_STOP[] = "/mobile/cmd/nav/stop/"; |
|
|
|
|
const char MQTT_TOPIC_ROBO_CALIB_CMD[] = "/mobile/cmd/line_sens/calib"; |
|
|
|
|
const char MQTT_TOPIC_ROBO_GET_CALIB[] = "/mobile/cmd/line_sens/get_calib"; |
|
|
|
|
const char MQTT_TOPIC_ROBO_CALIB_STATE[] = "/mobile/state/line_sens/calib_data"; |
|
|
|
|
const char MQTT_TOPIC_ROBO_REQ_BATTERY[] = "/mobile/cmd/battery/get_volt"; |
|
|
|
|
const char MQTT_TOPIC_REQ_BATTERY[] = "/both/cmd/battery/get_volt"; |
|
|
|
|
const char MQTT_TOPIC_ROBO_RESP_BATTERY[] = "/mobile/state/battery/voltage"; |
|
|
|
|
const char MQTT_TOPIC_STAT_RESP_BATTERY[] = "/stationary/state/battery/voltage"; |
|
|
|
|
|
|
|
|
|
void Challenge_Com_ParseMqtt(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data){ |
|
|
|
|
/* INFO
|
|
|
|
|
@ -197,23 +198,14 @@ void Challenge_Com_ParseMqtt(void *handler_args, esp_event_base_t base, int32_t |
|
|
|
|
|
|
|
|
|
MyMqtt_Publish(MQTT_TOPIC_ROBO_CALIB_STATE, (char*)payload); |
|
|
|
|
} |
|
|
|
|
// CMD: ROBO_REQ_BATTERY
|
|
|
|
|
else if(McuUtility_strcmp(topic, MQTT_TOPIC_ROBO_REQ_BATTERY)==0){ |
|
|
|
|
handled = true; |
|
|
|
|
unsigned char voltage[20] = ""; |
|
|
|
|
Robo_Wrapper_GetBatteryVoltage(voltage); |
|
|
|
|
ESP_LOGI(TAG, "Read battery voltage=%s", voltage); |
|
|
|
|
|
|
|
|
|
// build json and respond
|
|
|
|
|
unsigned char payload[100] = "{\"voltage\": \""; |
|
|
|
|
McuUtility_strcat(payload, sizeof(payload), voltage); |
|
|
|
|
McuUtility_strcat(payload, sizeof(payload), (unsigned char*)"\"}"); |
|
|
|
|
|
|
|
|
|
MyMqtt_Publish(MQTT_TOPIC_ROBO_RESP_BATTERY, (char*)payload); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* both robot modes allowed commands */ |
|
|
|
|
// CMD: REQ_BATTERY
|
|
|
|
|
if(McuUtility_strcmp(topic, MQTT_TOPIC_REQ_BATTERY)==0){ |
|
|
|
|
handled = true; |
|
|
|
|
Challenge_Com_PublishBatteryVoltage(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -223,15 +215,40 @@ void Challenge_Com_ParseMqtt(void *handler_args, esp_event_base_t base, int32_t |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Challenge_Com_PublishBatteryVoltage(void){ |
|
|
|
|
unsigned char voltage[20] = ""; |
|
|
|
|
Robo_Wrapper_GetBatteryVoltage(voltage); |
|
|
|
|
ESP_LOGI(TAG, "Read battery voltage=%s", voltage); |
|
|
|
|
|
|
|
|
|
// build json and respond
|
|
|
|
|
unsigned char payload[100] = "{\"voltage\": \""; |
|
|
|
|
McuUtility_strcat(payload, sizeof(payload), voltage); |
|
|
|
|
McuUtility_strcat(payload, sizeof(payload), (unsigned char*)"\"}"); |
|
|
|
|
|
|
|
|
|
if(Challenge_App_GetRobotMode() == true){ |
|
|
|
|
MyMqtt_Publish(MQTT_TOPIC_STAT_RESP_BATTERY, (char*)payload); |
|
|
|
|
} |
|
|
|
|
else{ |
|
|
|
|
MyMqtt_Publish(MQTT_TOPIC_ROBO_RESP_BATTERY, (char*)payload); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Challenge_Com_SubscribeToAllTopics(void){ |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_SF_INITALL); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_SF_DISPLAY); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_SF_CONFIG_SETUP); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_MODE); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_NAV_MOVE); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_NAV_TURN); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_NAV_STOP); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_CALIB_CMD); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_GET_CALIB); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_REQ_BATTERY); |
|
|
|
|
/* subscribe to stationary robot interested topics */ |
|
|
|
|
if(Challenge_App_GetRobotMode() == true){ |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_SF_INITALL); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_SF_DISPLAY); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_SF_CONFIG_SETUP); |
|
|
|
|
} |
|
|
|
|
/* subscribe to mobile robot interested topics */ |
|
|
|
|
else{ |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_MODE); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_NAV_MOVE); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_NAV_TURN); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_NAV_STOP); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_CALIB_CMD); |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_ROBO_GET_CALIB); |
|
|
|
|
} |
|
|
|
|
/* subscribe to topics relevant for both modes */ |
|
|
|
|
MyMqtt_Subscribe(MQTT_TOPIC_REQ_BATTERY); |
|
|
|
|
} |
|
|
|
|
|