diff --git a/src/mqtt/new_mqtt.c b/src/mqtt/new_mqtt.c index 92162d3d3..d1a77d21c 100644 --- a/src/mqtt/new_mqtt.c +++ b/src/mqtt/new_mqtt.c @@ -1629,6 +1629,21 @@ commandResult_t MQTT_PublishCommandFloat(const void* context, const char* cmd, c return CMD_RES_OK; } +commandResult_t MQTT_PublishCommandDriver(const void* context, const char* cmd, const char* args, int cmdFlags) { + const char* driver; + OBK_Publish_Result ret; + + Tokenizer_TokenizeString(args, 0); + + driver = Tokenizer_GetArg(0); + bool bOn = DRV_IsRunning(driver); + + char full[32]; + sprintf(full,"driver/%s", driver); + ret = MQTT_PublishMain_StringInt(full, bOn, OBK_PUBLISH_FLAG_FORCE_REMOVE_GET); + + return CMD_RES_OK; +} /**************************************************************************************************** * ****************************************************************************************************/ @@ -1976,6 +1991,9 @@ void MQTT_init() //cmddetail:"examples":""} CMD_RegisterCommand("publishFile", MQTT_PublishFile, NULL); #endif + + + CMD_RegisterCommand("publishDriver", MQTT_PublishCommandDriver, NULL); } static float getInternalTemperature() { return g_wifi_temperature; diff --git a/src/selftest/selftest_mqtt.c b/src/selftest/selftest_mqtt.c index 4a7f8e777..f7b7b8dd6 100644 --- a/src/selftest/selftest_mqtt.c +++ b/src/selftest/selftest_mqtt.c @@ -527,6 +527,20 @@ void Test_MQTT_Misc() { SELFTEST_ASSERT_HAD_MQTT_PUBLISH_FLOAT("miscDevice/mySecond/get", 12.3f, false); SIM_ClearMQTTHistory(); + CMD_ExecuteCommand("publishDriver DDP", 0); + SELFTEST_ASSERT_HAD_MQTT_PUBLISH_FLOAT("miscDevice/driver/DDP", 0, false); + SIM_ClearMQTTHistory(); + + CMD_ExecuteCommand("startDriver DDP", 0); + CMD_ExecuteCommand("publishDriver DDP", 0); + SELFTEST_ASSERT_HAD_MQTT_PUBLISH_FLOAT("miscDevice/driver/DDP", 1, false); + SIM_ClearMQTTHistory(); + + CMD_ExecuteCommand("stopDriver DDP", 0); + CMD_ExecuteCommand("publishDriver DDP", 0); + SELFTEST_ASSERT_HAD_MQTT_PUBLISH_FLOAT("miscDevice/driver/DDP", 0, false); + SIM_ClearMQTTHistory(); + //SIM_SendFakeMQTTAndRunSimFrame_CMND("setChannel", "3 100"); //CMD_ExecuteCommand("addEventHandler OnChannelChange 7 publishFloat thirdTest $CH7*0.01+$CH3", 0); //// set channel 7 to 31.4 and see what we get diff --git a/src/win_main.c b/src/win_main.c index 6619c2e0d..234c48a4a 100644 --- a/src/win_main.c +++ b/src/win_main.c @@ -166,6 +166,9 @@ void SIM_ClearOBK(const char *flashPath) { Main_Init(); } void Win_DoUnitTests() { + //SELFTEST_ASSERT_EXPRESSION("sqrt(4)", 2) + + Test_Driver_TCL_AC(); Test_PIR();