diff --git a/src/cmnds/cmd_channels.c b/src/cmnds/cmd_channels.c index 94b90fe36..b0a11b0c1 100644 --- a/src/cmnds/cmd_channels.c +++ b/src/cmnds/cmd_channels.c @@ -5,7 +5,7 @@ #include #include "cmd_local.h" -static int CMD_SetChannel(const void *context, const char *cmd, const char *args){ +static int CMD_SetChannel(const void *context, const char *cmd, const char *args, int cmdFlags){ int ch, val; if(args==0||*args==0) { @@ -25,7 +25,7 @@ static int CMD_SetChannel(const void *context, const char *cmd, const char *args return 1; } -static int CMD_AddChannel(const void *context, const char *cmd, const char *args){ +static int CMD_AddChannel(const void *context, const char *cmd, const char *args, int cmdFlags){ int ch, val; if(args==0||*args==0) { @@ -54,7 +54,7 @@ static int CMD_AddChannel(const void *context, const char *cmd, const char *args return 1; } -static int CMD_ClampChannel(const void *context, const char *cmd, const char *args){ +static int CMD_ClampChannel(const void *context, const char *cmd, const char *args, int cmdFlags){ int ch, max, min; if(args==0||*args==0) { @@ -76,7 +76,7 @@ static int CMD_ClampChannel(const void *context, const char *cmd, const char *ar return 1; } -static int CMD_SetPinRole(const void *context, const char *cmd, const char *args){ +static int CMD_SetPinRole(const void *context, const char *cmd, const char *args, int cmdFlags){ int pin, roleIndex; const char *role; @@ -102,7 +102,7 @@ static int CMD_SetPinRole(const void *context, const char *cmd, const char *args return 1; } -static int CMD_SetPinChannel(const void *context, const char *cmd, const char *args){ +static int CMD_SetPinChannel(const void *context, const char *cmd, const char *args, int cmdFlags){ int pin, ch; if(args==0||*args==0) { diff --git a/src/cmnds/cmd_eventHandlers.c b/src/cmnds/cmd_eventHandlers.c index 3669db83e..5524a28e7 100644 --- a/src/cmnds/cmd_eventHandlers.c +++ b/src/cmnds/cmd_eventHandlers.c @@ -183,7 +183,7 @@ void EventHandlers_ProcessVariableChange_Integer(byte eventCode, int oldValue, i if(eventCode==ev->eventCode) { if(EVENT_EvaluateChangeCondition(ev->eventType, ev->requiredArgument, oldValue, newValue)) { ADDLOG_INFO(LOG_FEATURE_EVENT, "EventHandlers_ProcessVariableChange_Integer: executing command %s",ev->command); - CMD_ExecuteCommand(ev->command); + CMD_ExecuteCommand(ev->command, COMMAND_FLAG_SOURCE_SCRIPT); } } ev = ev->next; @@ -210,7 +210,7 @@ void EventHandlers_FireEvent(byte eventCode, int argument) { if(eventCode==ev->eventCode) { if(argument == ev->requiredArgument) { ADDLOG_INFO(LOG_FEATURE_EVENT, "EventHandlers_ProcessVariableChange_Integer: executing command %s",ev->command); - CMD_ExecuteCommand(ev->command); + CMD_ExecuteCommand(ev->command, COMMAND_FLAG_SOURCE_SCRIPT); } } ev = ev->next; @@ -218,7 +218,7 @@ void EventHandlers_FireEvent(byte eventCode, int argument) { } -static int CMD_AddEventHandler(const void *context, const char *cmd, const char *args){ +static int CMD_AddEventHandler(const void *context, const char *cmd, const char *args, int cmdFlags){ const char *eventName; int reqArg; const char *cmdToCall; @@ -250,7 +250,7 @@ static int CMD_AddEventHandler(const void *context, const char *cmd, const char return 1; } -static int CMD_AddChangeHandler(const void *context, const char *cmd, const char *args){ +static int CMD_AddChangeHandler(const void *context, const char *cmd, const char *args, int cmdFlags){ const char *eventName; const char *relation; int reqArg; @@ -292,7 +292,7 @@ static int CMD_AddChangeHandler(const void *context, const char *cmd, const char return 1; } -static int CMD_ListEvents(const void *context, const char *cmd, const char *args){ +static int CMD_ListEvents(const void *context, const char *cmd, const char *args, int cmdFlags){ struct eventHandler_s *ev; int c; diff --git a/src/cmnds/cmd_main.c b/src/cmnds/cmd_main.c index 39618da9a..32c05b365 100644 --- a/src/cmnds/cmd_main.c +++ b/src/cmnds/cmd_main.c @@ -30,7 +30,7 @@ static int generateHashValue(const char *fname) { command_t *g_commands[HASH_SIZE] = { NULL }; -static int CMD_Restart(const void *context, const char *cmd, const char *args){ +static int CMD_Restart(const void *context, const char *cmd, const char *args, int cmdFlags){ int delaySeconds; if(args==0||*args==0) { @@ -124,7 +124,7 @@ int get_cmd(const char *s, char *dest, int maxlen, int stripnum){ // execute a command from cmd and args - used below and in MQTT -int CMD_ExecuteCommandArgs(const char *cmd, const char *args) { +int CMD_ExecuteCommandArgs(const char *cmd, const char *args, int cmdFlags) { command_t *newCmd; //int len; @@ -147,7 +147,7 @@ int CMD_ExecuteCommandArgs(const char *cmd, const char *args) { if (newCmd->handler){ int res; - res = newCmd->handler(newCmd->context, cmd, args); + res = newCmd->handler(newCmd->context, cmd, args, cmdFlags); return res; } return 0; @@ -155,7 +155,7 @@ int CMD_ExecuteCommandArgs(const char *cmd, const char *args) { // execute a raw command - single string -int CMD_ExecuteCommand(const char *s) { +int CMD_ExecuteCommand(const char *s, int cmdFlags) { const char *p; const char *args; @@ -187,7 +187,7 @@ int CMD_ExecuteCommand(const char *s) { } args = p; - return CMD_ExecuteCommandArgs(copy, args); + return CMD_ExecuteCommandArgs(copy, args,cmdFlags); } diff --git a/src/cmnds/cmd_newLEDDriver.c b/src/cmnds/cmd_newLEDDriver.c index 2f38c929c..f8b65fc6a 100644 --- a/src/cmnds/cmd_newLEDDriver.c +++ b/src/cmnds/cmd_newLEDDriver.c @@ -115,7 +115,7 @@ void apply_smart_light() { CHANNEL_Set(channelToUse, final * g_cfg_colorScaleToChannel, false); } } -static int temperature(const void *context, const char *cmd, const char *args){ +static int temperature(const void *context, const char *cmd, const char *args, int cmdFlags){ int tmp; float f; //if (!wal_strnicmp(cmd, "POWERALL", 8)){ @@ -147,7 +147,7 @@ static int temperature(const void *context, const char *cmd, const char *args){ //} //return 0; } -static int enableAll(const void *context, const char *cmd, const char *args){ +static int enableAll(const void *context, const char *cmd, const char *args, int cmdFlags){ //if (!wal_strnicmp(cmd, "POWERALL", 8)){ ADDLOG_INFO(LOG_FEATURE_CMD, " enableAll (%s) received with args %s",cmd,args); @@ -161,7 +161,7 @@ static int enableAll(const void *context, const char *cmd, const char *args){ //return 0; } -static int dimmer(const void *context, const char *cmd, const char *args){ +static int dimmer(const void *context, const char *cmd, const char *args, int cmdFlags){ //if (!wal_strnicmp(cmd, "POWERALL", 8)){ int iVal = 0; @@ -237,15 +237,15 @@ static int basecolor(const void *context, const char *cmd, const char *args, int // return 0; } -static int basecolor_rgb(const void *context, const char *cmd, const char *args){ +static int basecolor_rgb(const void *context, const char *cmd, const char *args, int cmdFlags){ return basecolor(context,cmd,args,0); } -static int basecolor_rgbcw(const void *context, const char *cmd, const char *args){ +static int basecolor_rgbcw(const void *context, const char *cmd, const char *args, int cmdFlags){ return basecolor(context,cmd,args,1); } // CONFIG-ONLY command! -static int colorMult(const void *context, const char *cmd, const char *args){ +static int colorMult(const void *context, const char *cmd, const char *args, int cmdFlags){ ADDLOG_INFO(LOG_FEATURE_CMD, " g_cfg_colorScaleToChannel (%s) received with args %s",cmd,args); g_cfg_colorScaleToChannel = atof(args); @@ -255,7 +255,7 @@ static int colorMult(const void *context, const char *cmd, const char *args){ //return 0; } // CONFIG-ONLY command! -static int brightnessMult(const void *context, const char *cmd, const char *args){ +static int brightnessMult(const void *context, const char *cmd, const char *args, int cmdFlags){ ADDLOG_INFO(LOG_FEATURE_CMD, " brightnessMult (%s) received with args %s",cmd,args); g_cfg_brightnessMult = atof(args); diff --git a/src/cmnds/cmd_public.h b/src/cmnds/cmd_public.h index ba2ccb4bd..65d91bd9e 100644 --- a/src/cmnds/cmd_public.h +++ b/src/cmnds/cmd_public.h @@ -1,15 +1,24 @@ #ifndef __CMD_PUBLIC_H__ #define __CMD_PUBLIC_H__ -typedef int (*commandHandler_t)(const void *context, const char *cmd, const char *args); +typedef int (*commandHandler_t)(const void *context, const char *cmd, const char *args, int flags); + +// command was entered in console (web app etc) +#define COMMAND_FLAG_SOURCE_CONSOLE 1 +// command was entered by script +#define COMMAND_FLAG_SOURCE_SCRIPT 2 +// command was sent by MQTT +#define COMMAND_FLAG_SOURCE_MQTT 4 +// command was sent by HTTP cmnd GET +#define COMMAND_FLAG_SOURCE_HTTP 8 // void CMD_Init(); void CMD_RegisterCommand(const char *name, const char *args, commandHandler_t handler, const char *userDesc, void *context); -int CMD_ExecuteCommand(const char *s); -int CMD_ExecuteCommandArgs(const char *cmd, const char *args); +int CMD_ExecuteCommand(const char *s, int cmdFlags); +int CMD_ExecuteCommandArgs(const char *cmd, const char *args, int cmdFlags); enum EventCode { CMD_EVENT_NONE, diff --git a/src/cmnds/cmd_repeatingEvents.c b/src/cmnds/cmd_repeatingEvents.c index fce63a6e6..3a4db40b0 100644 --- a/src/cmnds/cmd_repeatingEvents.c +++ b/src/cmnds/cmd_repeatingEvents.c @@ -45,14 +45,14 @@ void RepeatingEvents_OnEverySecond() { if(cur->currentInterval<=0){ c_ran++; cur->currentInterval = cur->intervalSeconds; - CMD_ExecuteCommand(cur->command); + CMD_ExecuteCommand(cur->command, COMMAND_FLAG_SOURCE_SCRIPT); } cur = cur->next; } //addLogAdv(LOG_INFO, LOG_FEATURE_CMD,"RepeatingEvents_OnEverySecond checked %i events, ran %i\n",c_checked,c_ran); } -int RepeatingEvents_Cmd_AddRepeatingEvent(const void *context, const char *cmd, const char *args) { +int RepeatingEvents_Cmd_AddRepeatingEvent(const void *context, const char *cmd, const char *args, int cmdFlags) { int interval; const char *cmdToRepeat; // linkTuyaMCUOutputToChannel dpID channelID [varType] diff --git a/src/cmnds/cmd_send.c b/src/cmnds/cmd_send.c index 40f0a7008..d3a7d40bb 100644 --- a/src/cmnds/cmd_send.c +++ b/src/cmnds/cmd_send.c @@ -6,7 +6,7 @@ // SendGet http://192.168.0.112/cm?cmnd=Power0%20Toggle // addRepeatingEvent 5 SendGet http://192.168.0.112/cm?cmnd=Power0%20Toggle -static int CMD_SendGET(const void *context, const char *cmd, const char *args){ +static int CMD_SendGET(const void *context, const char *cmd, const char *args, int cmdFlags){ ADDLOG_INFO(LOG_FEATURE_CMD, " CMD_SendGET received with args %s",args); #if PLATFORM_BEKEN diff --git a/src/cmnds/cmd_tasmota.c b/src/cmnds/cmd_tasmota.c index 1f8bff74b..15b9e954b 100644 --- a/src/cmnds/cmd_tasmota.c +++ b/src/cmnds/cmd_tasmota.c @@ -19,7 +19,7 @@ int parsePowerArgument(const char *s) { return atoi(s); } -static int power(const void *context, const char *cmd, const char *args){ +static int power(const void *context, const char *cmd, const char *args, int cmdFlags){ //if (!wal_strnicmp(cmd, "POWER", 5)){ int channel = 0; int iVal = 0; @@ -49,7 +49,7 @@ static int power(const void *context, const char *cmd, const char *args){ //return 0; } -static int powerAll(const void *context, const char *cmd, const char *args){ +static int powerAll(const void *context, const char *cmd, const char *args, int cmdFlags){ //if (!wal_strnicmp(cmd, "POWERALL", 8)){ int iVal = 0; @@ -64,7 +64,7 @@ static int powerAll(const void *context, const char *cmd, const char *args){ } -static int powerStateOnly(const void *context, const char *cmd, const char *args){ +static int powerStateOnly(const void *context, const char *cmd, const char *args, int cmdFlags){ //if (!wal_strnicmp(cmd, "POWERALL", 8)){ int iVal = 0; @@ -78,7 +78,7 @@ static int powerStateOnly(const void *context, const char *cmd, const char *args //return 0; } -static int color(const void *context, const char *cmd, const char *args){ +static int color(const void *context, const char *cmd, const char *args, int cmdFlags){ // if (!wal_strnicmp(cmd, "COLOR", 5)){ if (args[0] != '#'){ ADDLOG_ERROR(LOG_FEATURE_CMD, "tasCmnd COLOR expected a # prefixed color, you sent %s",args); @@ -128,7 +128,7 @@ static int color(const void *context, const char *cmd, const char *args){ } -static int cmnd_backlog(const void * context, const char *cmd, const char *args){ +static int cmnd_backlog(const void * context, const char *cmd, const char *args, int cmdFlags){ const char *subcmd; const char *p; int count = 0; @@ -155,7 +155,7 @@ static int cmnd_backlog(const void * context, const char *cmd, const char *args) } *c = 0; count++; - CMD_ExecuteCommand(copy); + CMD_ExecuteCommand(copy, cmdFlags); subcmd = p; } ADDLOG_DEBUG(LOG_FEATURE_CMD, "backlog executed %d", count); @@ -164,7 +164,7 @@ static int cmnd_backlog(const void * context, const char *cmd, const char *args) } -static int cmnd_lfsexec(const void * context, const char *cmd, const char *args){ +static int cmnd_lfsexec(const void * context, const char *cmd, const char *args, int cmdFlags){ #ifdef BK_LITTLEFS ADDLOG_DEBUG(LOG_FEATURE_CMD, "exec %s", args); if (lfs_present()){ @@ -194,7 +194,7 @@ static int cmnd_lfsexec(const void * context, const char *cmd, const char *args) if (lfsres >= 0){ if (*line && (*line != '#')){ - CMD_ExecuteCommand(line); + CMD_ExecuteCommand(line, cmdFlags); } } } while (lfsres > 0); diff --git a/src/cmnds/cmd_test.c b/src/cmnds/cmd_test.c index 25e96cb11..340e1d719 100644 --- a/src/cmnds/cmd_test.c +++ b/src/cmnds/cmd_test.c @@ -17,7 +17,7 @@ char *names[16] = { NULL }; // run an aliased command -static int runcmd(const void * context, const char *cmd, const char *args){ +static int runcmd(const void * context, const char *cmd, const char *args, int cmdFlags){ char *c = (char *)context; char *p = c; @@ -25,11 +25,11 @@ static int runcmd(const void * context, const char *cmd, const char *args){ p++; } if (*p) p++; - return CMD_ExecuteCommand(p); + return CMD_ExecuteCommand(p,cmdFlags); } // run an aliased command -static int addcmd(const void * context, const char *cmd, const char *args){ +static int addcmd(const void * context, const char *cmd, const char *args, int cmdFlags){ if (!wal_strnicmp(cmd, "addcmd", 6)){ int index = 0; char cmd[32]; diff --git a/src/driver/drv_bl0942.c b/src/driver/drv_bl0942.c index dd24f04e2..7bf72cee8 100644 --- a/src/driver/drv_bl0942.c +++ b/src/driver/drv_bl0942.c @@ -183,7 +183,7 @@ void BL0942_SendRequest() { UART_SendByte(BL0942_READ_COMMAND); UART_SendByte(0xAA); } -int BL0942_PowerSet(const void *context, const char *cmd, const char *args) { +int BL0942_PowerSet(const void *context, const char *cmd, const char *args, int cmdFlags) { float realPower; if(args==0||*args==0) { @@ -199,7 +199,7 @@ int BL0942_PowerSet(const void *context, const char *cmd, const char *args) { } return 0; } -int BL0942_PowerRef(const void *context, const char *cmd, const char *args) { +int BL0942_PowerRef(const void *context, const char *cmd, const char *args, int cmdFlags) { if(args==0||*args==0) { addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); @@ -208,7 +208,7 @@ int BL0942_PowerRef(const void *context, const char *cmd, const char *args) { BL0942_PREF = atof(args); return 0; } -int BL0942_CurrentRef(const void *context, const char *cmd, const char *args) { +int BL0942_CurrentRef(const void *context, const char *cmd, const char *args, int cmdFlags) { if(args==0||*args==0) { addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); @@ -217,7 +217,7 @@ int BL0942_CurrentRef(const void *context, const char *cmd, const char *args) { BL0942_IREF = atof(args); return 0; } -int BL0942_VoltageRef(const void *context, const char *cmd, const char *args) { +int BL0942_VoltageRef(const void *context, const char *cmd, const char *args, int cmdFlags) { if(args==0||*args==0) { addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); @@ -226,7 +226,7 @@ int BL0942_VoltageRef(const void *context, const char *cmd, const char *args) { BL0942_UREF = atof(args); return 0; } -int BL0942_VoltageSet(const void *context, const char *cmd, const char *args) { +int BL0942_VoltageSet(const void *context, const char *cmd, const char *args, int cmdFlags) { float realV; if(args==0||*args==0) { @@ -243,7 +243,7 @@ int BL0942_VoltageSet(const void *context, const char *cmd, const char *args) { return 0; } -int BL0942_CurrentSet(const void *context, const char *cmd, const char *args) { +int BL0942_CurrentSet(const void *context, const char *cmd, const char *args, int cmdFlags) { float realI; if(args==0||*args==0) { diff --git a/src/driver/drv_main.c b/src/driver/drv_main.c index 1d0702635..2ebe29e71 100644 --- a/src/driver/drv_main.c +++ b/src/driver/drv_main.c @@ -40,7 +40,7 @@ void DRV_OnEverySecond() { } } // startDriver BL0942 -int DRV_Start(const void *context, const char *cmd, const char *args) { +int DRV_Start(const void *context, const char *cmd, const char *args, int cmdFlags) { int i; const char *name; diff --git a/src/driver/drv_ntp.c b/src/driver/drv_ntp.c index 618a73d59..3c1fe0e98 100644 --- a/src/driver/drv_ntp.c +++ b/src/driver/drv_ntp.c @@ -57,7 +57,7 @@ static unsigned int g_time; // time offset (time zone?) static int g_timeOffsetHours; -int NTP_SetTimeZoneOfs(const void *context, const char *cmd, const char *args) { +int NTP_SetTimeZoneOfs(const void *context, const char *cmd, const char *args, int cmdFlags) { Tokenizer_TokenizeString(args); if(Tokenizer_GetArgsCount() < 1) { addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"Command requires one argument\n"); diff --git a/src/driver/drv_tuyaMCU.c b/src/driver/drv_tuyaMCU.c index 1298b53af..053684c56 100644 --- a/src/driver/drv_tuyaMCU.c +++ b/src/driver/drv_tuyaMCU.c @@ -204,7 +204,7 @@ int UART_TryToGetNextTuyaPacket(byte *out, int maxSize) { b = UART_GetNextByte(1); if(a != 0x55 || b != 0xAA) { UART_ConsumeBytes(1); - if(c_garbage_consumed + 1 < printfSkipDebug) { + if(c_garbage_consumed + 2 < sizeof(printfSkipDebug)) { sprintf(buffer2,"%02X ",a); strcat_safe(printfSkipDebug,buffer2,sizeof(printfSkipDebug)); } @@ -426,7 +426,7 @@ struct tm * TuyaMCU_Get_NTP_Time() { return ptm; } -int TuyaMCU_Send_Hex(const void *context, const char *cmd, const char *args) { +int TuyaMCU_Send_Hex(const void *context, const char *cmd, const char *args, int cmdFlags) { //const char *args = CMD_GetArg(1); if(!(*args)) { addLogAdv(LOG_INFO, LOG_FEATURE_TUYAMCU,"TuyaMCU_Send_Hex: requires 1 argument (hex string, like FFAABB00CCDD\n"); @@ -443,7 +443,7 @@ int TuyaMCU_Send_Hex(const void *context, const char *cmd, const char *args) { return 1; } -int TuyaMCU_LinkTuyaMCUOutputToChannel(const void *context, const char *cmd, const char *args) { +int TuyaMCU_LinkTuyaMCUOutputToChannel(const void *context, const char *cmd, const char *args, int cmdFlags) { int dpId; int dpType; int channelID; @@ -464,13 +464,13 @@ int TuyaMCU_LinkTuyaMCUOutputToChannel(const void *context, const char *cmd, con return 1; } -int TuyaMCU_Send_SetTime_Current(const void *context, const char *cmd, const char *args) { +int TuyaMCU_Send_SetTime_Current(const void *context, const char *cmd, const char *args, int cmdFlags) { TuyaMCU_Send_SetTime(TuyaMCU_Get_NTP_Time()); return 1; } -int TuyaMCU_Send_SetTime_Example(const void *context, const char *cmd, const char *args) { +int TuyaMCU_Send_SetTime_Example(const void *context, const char *cmd, const char *args, int cmdFlags) { struct tm testTime; testTime.tm_year = 2012; @@ -500,7 +500,7 @@ void TuyaMCU_Send(byte *data, int size) { addLogAdv(LOG_INFO, LOG_FEATURE_TUYAMCU,"\nWe sent %i bytes to Tuya MCU\n",size+1); } -int TuyaMCU_SetDimmerRange(const void *context, const char *cmd, const char *args) { +int TuyaMCU_SetDimmerRange(const void *context, const char *cmd, const char *args, int cmdFlags) { Tokenizer_TokenizeString(args); if(Tokenizer_GetArgsCount() < 2) { @@ -514,24 +514,24 @@ int TuyaMCU_SetDimmerRange(const void *context, const char *cmd, const char *arg return 1; } -int TuyaMCU_SendHeartbeat(const void *context, const char *cmd, const char *args) { +int TuyaMCU_SendHeartbeat(const void *context, const char *cmd, const char *args, int cmdFlags) { TuyaMCU_SendCommandWithData(TUYA_CMD_HEARTBEAT, NULL, 0); return 1; } -int TuyaMCU_SendQueryProductInformation(const void *context, const char *cmd, const char *args) { +int TuyaMCU_SendQueryProductInformation(const void *context, const char *cmd, const char *args, int cmdFlags) { TuyaMCU_SendCommandWithData(TUYA_CMD_QUERY_PRODUCT, NULL, 0); return 1; } -int TuyaMCU_SendQueryState(const void *context, const char *cmd, const char *args) { +int TuyaMCU_SendQueryState(const void *context, const char *cmd, const char *args, int cmdFlags) { TuyaMCU_SendCommandWithData(TUYA_CMD_QUERY_STATE, NULL, 0); return 1; } -int TuyaMCU_SendStateCmd(const void *context, const char *cmd, const char *args) { +int TuyaMCU_SendStateCmd(const void *context, const char *cmd, const char *args, int cmdFlags) { int dpId; int dpType; int value; @@ -552,7 +552,7 @@ int TuyaMCU_SendStateCmd(const void *context, const char *cmd, const char *args) return 1; } -int TuyaMCU_SendMCUConf(const void *context, const char *cmd, const char *args) { +int TuyaMCU_SendMCUConf(const void *context, const char *cmd, const char *args, int cmdFlags) { TuyaMCU_SendCommandWithData(TUYA_CMD_MCU_CONF, NULL, 0); return 1; @@ -761,7 +761,7 @@ void TuyaMCU_ProcessIncoming(const byte *data, int len) { break; } } -int TuyaMCU_FakePacket(const void *context, const char *cmd, const char *args) { +int TuyaMCU_FakePacket(const void *context, const char *cmd, const char *args, int cmdFlags) { byte packet[256]; int c = 0; if(!(*args)) { diff --git a/src/httpclient/http_client.c b/src/httpclient/http_client.c index af977dfca..a8416147f 100644 --- a/src/httpclient/http_client.c +++ b/src/httpclient/http_client.c @@ -1169,7 +1169,7 @@ int HTTPClient_Async_SendGet(const char *url_in){ #endif if(url==0) { ADDLOG_ERROR(LOG_FEATURE_HTTP_CLIENT, "HTTPClient_Async_SendGet for %s, failed to alloc URL memory\r\n"); - return; + return 1; } #if DBG_HTTPCLIENT_MEMLEAK @@ -1179,7 +1179,7 @@ int HTTPClient_Async_SendGet(const char *url_in){ #endif if(url==0) { ADDLOG_ERROR(LOG_FEATURE_HTTP_CLIENT, "HTTPClient_Async_SendGet for %s, failed to alloc request memory\r\n"); - return; + return 1; } ADDLOG_INFO(LOG_FEATURE_HTTP_CLIENT, "HTTPClient_Async_SendGet for %s, sizeof(httprequest_t) == %i!\r\n", diff --git a/src/httpclient/utils_net.c b/src/httpclient/utils_net.c index f44a43dca..3944e4010 100644 --- a/src/httpclient/utils_net.c +++ b/src/httpclient/utils_net.c @@ -69,7 +69,7 @@ uintptr_t HAL_TCP_Establish(const char *host, uint16_t port) int32_t HAL_TCP_Destroy(uintptr_t fd) { int rc; - int att; + ///int att; //Shutdown both send and receive operations. rc = shutdown((int) fd, 2); diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c index e5121645c..f7b9ee160 100644 --- a/src/httpserver/http_fns.c +++ b/src/httpserver/http_fns.c @@ -830,7 +830,7 @@ int http_fn_cmd_tool(http_request_t *request) { poststr(request,"

Command Tool

"); if( http_getArg(request->url,"cmd",tmpA,sizeof(tmpA))) { - i = CMD_ExecuteCommand(tmpA); + i = CMD_ExecuteCommand(tmpA, COMMAND_FLAG_SOURCE_CONSOLE); if(i == 0) { poststr(request,"Command not found"); } else { @@ -1083,7 +1083,7 @@ int http_fn_cm(http_request_t *request) { http_setup(request, httpMimeTypeJson); if( http_getArg(request->url,"cmnd",tmpA,sizeof(tmpA))) { - CMD_ExecuteCommand(tmpA); + CMD_ExecuteCommand(tmpA,COMMAND_FLAG_SOURCE_HTTP); diff --git a/src/httpserver/rest_interface.c b/src/httpserver/rest_interface.c index 0105b4ca4..d91b24f5d 100644 --- a/src/httpserver/rest_interface.c +++ b/src/httpserver/rest_interface.c @@ -1063,7 +1063,7 @@ static int http_rest_post_channels(http_request_t *request){ static int http_rest_post_cmd(http_request_t *request){ char *cmd = request->bodystart; - CMD_ExecuteCommand(cmd); + CMD_ExecuteCommand(cmd, COMMAND_FLAG_SOURCE_CONSOLE); return http_rest_error(request, 200, "OK"); } diff --git a/src/i2c/drv_i2c_lcd_pcf8574t.c b/src/i2c/drv_i2c_lcd_pcf8574t.c index 62a0df04e..73ffac0f4 100644 --- a/src/i2c/drv_i2c_lcd_pcf8574t.c +++ b/src/i2c/drv_i2c_lcd_pcf8574t.c @@ -220,7 +220,7 @@ static void PCF8574_LCD_Write_String(i2cDevice_PCF8574_t *lcd, const char *str) } } -int DRV_I2C_LCD_PCF8574_GoTo_Internal(int bClear, const void *context, const char *cmd, const char *args) { +int DRV_I2C_LCD_PCF8574_GoTo_Internal(int bClear, const void *context, const char *cmd, const char *args, int cmdFlags) { const char *i2cModuleStr; int address; i2cBusType_t busType; @@ -255,15 +255,15 @@ int DRV_I2C_LCD_PCF8574_GoTo_Internal(int bClear, const void *context, const cha PCF8574_LCD_Close(lcd); return 1; } -int DRV_I2C_LCD_PCF8574_GoTo(const void *context, const char *cmd, const char *args) { - return DRV_I2C_LCD_PCF8574_GoTo_Internal(0,context,cmd,args); +int DRV_I2C_LCD_PCF8574_GoTo(const void *context, const char *cmd, const char *args, int cmdFlags) { + return DRV_I2C_LCD_PCF8574_GoTo_Internal(0,context,cmd,args,cmdFlags); } -int DRV_I2C_LCD_PCF8574_ClearAndGoTo(const void *context, const char *cmd, const char *args) { - return DRV_I2C_LCD_PCF8574_GoTo_Internal(1,context,cmd,args); +int DRV_I2C_LCD_PCF8574_ClearAndGoTo(const void *context, const char *cmd, const char *args, int cmdFlags) { + return DRV_I2C_LCD_PCF8574_GoTo_Internal(1,context,cmd,args,cmdFlags); } -int DRV_I2C_LCD_PCF8574_Print(const void *context, const char *cmd, const char *args) { +int DRV_I2C_LCD_PCF8574_Print(const void *context, const char *cmd, const char *args, int cmdFlags) { const char *i2cModuleStr; int address; i2cBusType_t busType; @@ -294,7 +294,7 @@ int DRV_I2C_LCD_PCF8574_Print(const void *context, const char *cmd, const char * return 1; } -int DRV_I2C_LCD_PCF8574_Clear(const void *context, const char *cmd, const char *args) { +int DRV_I2C_LCD_PCF8574_Clear(const void *context, const char *cmd, const char *args, int cmdFlags) { const char *i2cModuleStr; int address; i2cBusType_t busType; diff --git a/src/i2c/drv_i2c_local.h b/src/i2c/drv_i2c_local.h index 6d51b686d..934806b8d 100644 --- a/src/i2c/drv_i2c_local.h +++ b/src/i2c/drv_i2c_local.h @@ -81,7 +81,7 @@ i2cDevice_t *DRV_I2C_FindDeviceExt(int busType,int address, int devType); // drv_i2c_mcp23017.c void DRV_I2C_MCP23017_RunDevice(i2cDevice_t *dev); -int DRV_I2C_MCP23017_MapPinToChannel(const void *context, const char *cmd, const char *args); +int DRV_I2C_MCP23017_MapPinToChannel(const void *context, const char *cmd, const char *args, int cmdFlags); void DRV_I2C_MCP23017_OnChannelChanged(i2cDevice_t *dev, int channel, int iVal); // drv_i2c_tc74.c diff --git a/src/i2c/drv_i2c_main.c b/src/i2c/drv_i2c_main.c index 80034b7e2..1fc352cab 100644 --- a/src/i2c/drv_i2c_main.c +++ b/src/i2c/drv_i2c_main.c @@ -169,7 +169,7 @@ void DRV_I2C_AddDevice_TC74_Internal(int busType,int address, int targetChannel) DRV_I2C_AddNextDevice((i2cDevice_t*)dev); } -int DRV_I2C_AddDevice_TC74(const void *context, const char *cmd, const char *args) { +int DRV_I2C_AddDevice_TC74(const void *context, const char *cmd, const char *args, int cmdFlags) { const char *i2cModuleStr; int address; int targetChannel; @@ -193,7 +193,7 @@ int DRV_I2C_AddDevice_TC74(const void *context, const char *cmd, const char *arg return 1; } -int DRV_I2C_AddDevice_MCP23017(const void *context, const char *cmd, const char *args) { +int DRV_I2C_AddDevice_MCP23017(const void *context, const char *cmd, const char *args, int cmdFlags) { const char *i2cModuleStr; int address; i2cBusType_t busType; @@ -217,7 +217,7 @@ int DRV_I2C_AddDevice_MCP23017(const void *context, const char *cmd, const char } // -int DRV_I2C_AddDevice_PCF8574(const void *context, const char *cmd, const char *args) { +int DRV_I2C_AddDevice_PCF8574(const void *context, const char *cmd, const char *args, int cmdFlags) { const char *i2cModuleStr; int address; i2cBusType_t busType; @@ -245,7 +245,7 @@ int DRV_I2C_AddDevice_PCF8574(const void *context, const char *cmd, const char * return 1; } -int DRV_I2C_AddDevice_LCM1602(const void *context, const char *cmd, const char *args) { +int DRV_I2C_AddDevice_LCM1602(const void *context, const char *cmd, const char *args, int cmdFlags) { const char *i2cModuleStr; int address; i2cBusType_t busType; diff --git a/src/i2c/drv_i2c_mcp23017.c b/src/i2c/drv_i2c_mcp23017.c index b192d8bb1..84eebd2c8 100644 --- a/src/i2c/drv_i2c_mcp23017.c +++ b/src/i2c/drv_i2c_mcp23017.c @@ -112,7 +112,7 @@ void DRV_I2C_MCP23017_OnChannelChanged(i2cDevice_t *dev, int channel, int iVal) } } } -int DRV_I2C_MCP23017_MapPinToChannel(const void *context, const char *cmd, const char *args) { +int DRV_I2C_MCP23017_MapPinToChannel(const void *context, const char *cmd, const char *args, int cmdFlags) { const char *i2cModuleStr; int address; int targetPin; diff --git a/src/logging/logging.c b/src/logging/logging.c index 38a5ef0cf..fdf51835b 100644 --- a/src/logging/logging.c +++ b/src/logging/logging.c @@ -468,7 +468,7 @@ static int http_getlog(http_request_t *request){ } -int log_command(const void *context, const char *cmd, const char *args){ +int log_command(const void *context, const char *cmd, const char *args, int cmdFlags){ int result = 0; if (!cmd) return -1; if (!args) return -1; diff --git a/src/logging/logging.h b/src/logging/logging.h index f0aa66429..ce8e588e4 100644 --- a/src/logging/logging.h +++ b/src/logging/logging.h @@ -16,7 +16,7 @@ void addLogAdv(int level, int feature, char *fmt, ...); -int log_command(const void *context, const char *cmd, const char *args); +int log_command(const void *context, const char *cmd, const char *args, int cmdFlags); #define ADDLOG_ERROR(x, fmt, ...) addLogAdv(LOG_ERROR, x, fmt, ##__VA_ARGS__) #define ADDLOG_WARN(x, fmt, ...) addLogAdv(LOG_WARN, x, fmt, ##__VA_ARGS__) diff --git a/src/mqtt/new_mqtt.c b/src/mqtt/new_mqtt.c index 095fd2595..0f285e60d 100644 --- a/src/mqtt/new_mqtt.c +++ b/src/mqtt/new_mqtt.c @@ -293,7 +293,7 @@ int tasCmnd(mqtt_request_t* request){ p++; // use command executor.... - CMD_ExecuteCommandArgs(p, copy); + CMD_ExecuteCommandArgs(p, copy, COMMAND_FLAG_SOURCE_MQTT); // return 1 to stop processing callbacks here. // return 0 to allow later callbacks to process this topic. diff --git a/src/new_cfg.c b/src/new_cfg.c index ede9eeebb..42e639452 100644 --- a/src/new_cfg.c +++ b/src/new_cfg.c @@ -176,7 +176,7 @@ void CFG_SetPingIntervalSeconds(int i) { } void CFG_SetShortStartupCommand_AndExecuteNow(const char *s) { CFG_SetShortStartupCommand(s); - CMD_ExecuteCommand(s); + CMD_ExecuteCommand(s,COMMAND_FLAG_SOURCE_SCRIPT); } void CFG_SetShortStartupCommand(const char *s) { // this will return non-zero if there were any changes diff --git a/src/new_pins.c b/src/new_pins.c index 0fb6d4361..856c725c7 100644 --- a/src/new_pins.c +++ b/src/new_pins.c @@ -819,7 +819,7 @@ int CHANNEL_ParseChannelType(const char *s) { return ChType_Default; return ChType_Error; } -static int CMD_ShowChannelValues(const void *context, const char *cmd, const char *args){ +static int CMD_ShowChannelValues(const void *context, const char *cmd, const char *args, int cmdFlags){ int i; for(i = 0; i < CHANNEL_MAX; i++) { @@ -830,7 +830,7 @@ static int CMD_ShowChannelValues(const void *context, const char *cmd, const cha return 0; } -static int CMD_SetChannelType(const void *context, const char *cmd, const char *args){ +static int CMD_SetChannelType(const void *context, const char *cmd, const char *args, int cmdFlags){ int channel; const char *type; int typeCode; @@ -857,7 +857,7 @@ static int CMD_SetChannelType(const void *context, const char *cmd, const char * return 0; } -static int showgpi(const void *context, const char *cmd, const char *args){ +static int showgpi(const void *context, const char *cmd, const char *args, int cmdFlags){ int i; unsigned int value = 0; diff --git a/src/user_main.c b/src/user_main.c index 3afa20c99..28d41d8a5 100644 --- a/src/user_main.c +++ b/src/user_main.c @@ -396,8 +396,8 @@ void Main_Init() CMD_Init(); if (g_bootFailures < 2){ - CMD_ExecuteCommand(CFG_GetShortStartupCommand()); - CMD_ExecuteCommand("exec autoexec.bat"); + CMD_ExecuteCommand(CFG_GetShortStartupCommand(), COMMAND_FLAG_SOURCE_SCRIPT); + CMD_ExecuteCommand("exec autoexec.bat", COMMAND_FLAG_SOURCE_SCRIPT); } }