From 025aa207c839ff89cc2244e4be02005382f7874e Mon Sep 17 00:00:00 2001 From: openshwprojects Date: Fri, 10 Feb 2023 13:06:54 +0100 Subject: [PATCH] led driver i2c write is now a common function, misc clearup changes, also removed newline chars from function that doesnt need them (they are ignored anyway), p1 --- src/cmnds/cmd_eventHandlers.c | 2 +- src/cmnds/cmd_newLEDDriver.c | 14 ++++----- src/cmnds/cmd_repeatingEvents.c | 14 ++++----- src/devicegroups/deviceGroups_read.c | 22 ++++++------- src/devicegroups/deviceGroups_write.c | 20 +++++++++--- src/driver/drv_bl_shared.c | 12 +++---- src/driver/drv_bp1658cj.c | 45 ++------------------------- src/driver/drv_bp5758d.c | 45 ++------------------------- src/driver/drv_cht8305.c | 4 +-- src/driver/drv_local.h | 4 ++- src/driver/drv_main.c | 4 +-- src/driver/drv_ntp.c | 18 +++++------ src/driver/drv_sht3x.c | 6 ++-- src/driver/drv_sm2135.c | 16 +++++----- src/driver/drv_sm2235.c | 43 ++----------------------- src/i2c/drv_i2c_lcd_pcf8574t.c | 14 ++++----- src/i2c/drv_i2c_tc74.c | 4 +-- 17 files changed, 90 insertions(+), 197 deletions(-) diff --git a/src/cmnds/cmd_eventHandlers.c b/src/cmnds/cmd_eventHandlers.c index 5b3a4c857..747615dfe 100644 --- a/src/cmnds/cmd_eventHandlers.c +++ b/src/cmnds/cmd_eventHandlers.c @@ -456,7 +456,7 @@ commandResult_t CMD_ClearAllHandlers(const void *context, const char *cmd, const c++; } - addLogAdv(LOG_INFO, LOG_FEATURE_CMD, "Fried %i handlers\n", c); + addLogAdv(LOG_INFO, LOG_FEATURE_CMD, "Fried %i handlers", c); g_eventHandlers = 0; return CMD_RES_OK; diff --git a/src/cmnds/cmd_newLEDDriver.c b/src/cmnds/cmd_newLEDDriver.c index 93be8edb7..6751459da 100644 --- a/src/cmnds/cmd_newLEDDriver.c +++ b/src/cmnds/cmd_newLEDDriver.c @@ -187,7 +187,7 @@ float led_lerpSpeedUnitsPerSecond = 200.f; float led_current_value_brightness = 0; float led_current_value_cold_or_warm = 0; -void led_Save_finalRGBCW(float* finalRGBCW) { +void LED_I2CDriver_WriteRGBCW(float* finalRGBCW) { #ifdef ENABLE_DRIVER_LED if (DRV_IsRunning("SM2135")) { SM2135_Write(finalRGBCW); @@ -294,7 +294,7 @@ void LED_RunQuickColorLerp(int deltaMS) { } } - led_Save_finalRGBCW(led_rawLerpCurrent); + LED_I2CDriver_WriteRGBCW(led_rawLerpCurrent); } @@ -329,7 +329,7 @@ float led_gamma_correction (int color, float iVal) { // apply LED gamma and RGB if (led_gamma_enable_channel_messages && (((g_lightMode == Light_RGB) && (color < 3)) || ((g_lightMode != Light_RGB) && (color >= 3)))) { - addLogAdv (LOG_INFO, LOG_FEATURE_CMD, "channel %i set to %.2f%%\r\n", color, oVal / 2.55); + addLogAdv (LOG_INFO, LOG_FEATURE_CMD, "channel %i set to %.2f%%", color, oVal / 2.55); } if (oVal > 255.0f) { oVal = 255.0f; @@ -470,7 +470,7 @@ void apply_smart_light() { } } if(CFG_HasFlag(OBK_FLAG_LED_SMOOTH_TRANSITIONS) == false) { - led_Save_finalRGBCW(finalColors); + LED_I2CDriver_WriteRGBCW(finalColors); } if(CFG_HasFlag(OBK_FLAG_LED_REMEMBERLASTSTATE)) { @@ -487,9 +487,9 @@ void apply_smart_light() { void led_gamma_list (void) { // list RGB gamma settings led_gamma_enable_channel_messages = 1; - addLogAdv (LOG_INFO, LOG_FEATURE_CFG, "RGB cal %f %f %f\r\n", + addLogAdv (LOG_INFO, LOG_FEATURE_CFG, "RGB cal %f %f %f", g_cfg.led_corr.rgb_cal[0], g_cfg.led_corr.rgb_cal[1], g_cfg.led_corr.rgb_cal[2]); - addLogAdv (LOG_INFO, LOG_FEATURE_CFG, "LED gamma %.2f brtMinRGB %.2f%% brtMinCW %.2f%%\r\n", + addLogAdv (LOG_INFO, LOG_FEATURE_CFG, "LED gamma %.2f brtMinRGB %.2f%% brtMinCW %.2f%%", g_cfg.led_corr.led_gamma, g_cfg.led_corr.rgb_bright_min, g_cfg.led_corr.cw_bright_min); } @@ -568,7 +568,7 @@ commandResult_t led_gamma_control (const void *context, const char *cmd, const c } else { addLogAdv (LOG_INFO, LOG_FEATURE_CFG, - "%s sub-command NOT recognized - Use: cal [f f f], gamma , brtMinRGB , brtMinCW , list\r\n", cmd); + "%s sub-command NOT recognized - Use: cal [f f f], gamma , brtMinRGB , brtMinCW , list", cmd); } return CMD_RES_OK; diff --git a/src/cmnds/cmd_repeatingEvents.c b/src/cmnds/cmd_repeatingEvents.c index d9a768d5f..34f06d54a 100644 --- a/src/cmnds/cmd_repeatingEvents.c +++ b/src/cmnds/cmd_repeatingEvents.c @@ -41,7 +41,7 @@ void RepeatingEvents_CancelRepeatingEvents(int userID) if(ev->userID == userID) { // mark as finished ev->times = EVENT_CANCELED_TIMES; - addLogAdv(LOG_INFO, LOG_FEATURE_CMD,"Event with id %i and cmd %s has been canceled\n",ev->userID,ev->command); + addLogAdv(LOG_INFO, LOG_FEATURE_CMD,"Event with id %i and cmd %s has been canceled",ev->userID,ev->command); } } @@ -67,12 +67,12 @@ void RepeatingEvents_AddRepeatingEvent(const char *command, int secondsInterval, // create new ev = malloc(sizeof(repeatingEvent_t)); if(ev == 0) { - addLogAdv(LOG_ERROR, LOG_FEATURE_CMD,"RepeatingEvents_OnEverySecond: failed to malloc new event\n"); + addLogAdv(LOG_ERROR, LOG_FEATURE_CMD,"RepeatingEvents_OnEverySecond: failed to malloc new event"); return; } cmd_copy = strdup(command); if(cmd_copy == 0) { - addLogAdv(LOG_ERROR, LOG_FEATURE_CMD,"RepeatingEvents_OnEverySecond: failed to malloc command text copy\n"); + addLogAdv(LOG_ERROR, LOG_FEATURE_CMD,"RepeatingEvents_OnEverySecond: failed to malloc command text copy"); free(ev); return; } @@ -133,7 +133,7 @@ void RepeatingEvents_OnEverySecond() { c_checked++; // debug only check if(cur == cur->next) { - addLogAdv(LOG_ERROR, LOG_FEATURE_CMD,"RepeatingEvents_OnEverySecond: single linked list was broken?\n"); + addLogAdv(LOG_ERROR, LOG_FEATURE_CMD,"RepeatingEvents_OnEverySecond: single linked list was broken?"); cur->next = 0; return; } @@ -186,7 +186,7 @@ commandResult_t RepeatingEvents_Cmd_AddRepeatingEvent(const void *context, const cmdToRepeat = Tokenizer_GetArgFrom(2); } - addLogAdv(LOG_INFO, LOG_FEATURE_CMD,"addRepeatingEvent: interval %i, repeats %i, command [%s]\n",interval,times,cmdToRepeat); + addLogAdv(LOG_INFO, LOG_FEATURE_CMD,"addRepeatingEvent: interval %i, repeats %i, command [%s]",interval,times,cmdToRepeat); RepeatingEvents_AddRepeatingEvent(cmdToRepeat,interval, times, userID); @@ -205,7 +205,7 @@ commandResult_t RepeatingEvents_Cmd_ClearRepeatingEvents(const void *context, co free(rem); c++; } - addLogAdv(LOG_INFO, LOG_FEATURE_CMD, "Fried %i rep. events\n", c); + addLogAdv(LOG_INFO, LOG_FEATURE_CMD, "Fried %i rep. events", c); g_repeatingEvents = 0; return CMD_RES_OK; } @@ -223,7 +223,7 @@ commandResult_t RepeatingEvents_Cmd_CancelRepeatingEvent(const void *context, co } userID = Tokenizer_GetArgInteger(0); - addLogAdv(LOG_INFO, LOG_FEATURE_CMD,"cancelRepeatingEvent: will cancel events with id %i\n",userID); + addLogAdv(LOG_INFO, LOG_FEATURE_CMD,"cancelRepeatingEvent: will cancel events with id %i",userID); RepeatingEvents_CancelRepeatingEvents(userID); diff --git a/src/devicegroups/deviceGroups_read.c b/src/devicegroups/deviceGroups_read.c index 617bb2080..127172298 100644 --- a/src/devicegroups/deviceGroups_read.c +++ b/src/devicegroups/deviceGroups_read.c @@ -19,20 +19,20 @@ int DGR_Parse(const byte *data, int len, dgrDevice_t *dev, struct sockaddr *addr MSG_BeginReading(&msg,data,len); if(MSG_CheckAndSkip(&msg,TASMOTA_DEVICEGROUPS_HEADER,strlen(TASMOTA_DEVICEGROUPS_HEADER))==0) { - addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: data chunk with len %i had bad header\n",len); + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: data chunk with len %i had bad header",len); return 1; } if(MSG_ReadString(&msg,groupName,sizeof(groupName)) <= 0) { - addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: data chunk with len %i failed to read group name\n",len); + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: data chunk with len %i failed to read group name",len); return 1; } - addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: grp name %s len %d\n", groupName, strlen(groupName)); + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: grp name %s len %d", groupName, strlen(groupName)); if(dev != 0) { // right now, only single group support if(strcmp(dev->gr.groupName,groupName)) { - addLogAdv(LOG_EXTRADEBUG, LOG_FEATURE_DGR,"DGR ignoring message from group %s - device is in %s\n",groupName,dev->gr.groupName); + addLogAdv(LOG_EXTRADEBUG, LOG_FEATURE_DGR,"DGR ignoring message from group %s - device is in %s",groupName,dev->gr.groupName); return -1; } } @@ -45,22 +45,22 @@ int DGR_Parse(const byte *data, int len, dgrDevice_t *dev, struct sockaddr *addr } if(dev->cbs.checkSequence(sequence)) { - addLogAdv(LOG_EXTRADEBUG, LOG_FEATURE_DGR,"DGR ignoring message from duplicate or older sequence %i\n",sequence); + addLogAdv(LOG_EXTRADEBUG, LOG_FEATURE_DGR,"DGR ignoring message from duplicate or older sequence %i",sequence); return 1; } - addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: [%s] seq 0x%04X, flags 0x%02X\n",inet_ntoa(((struct sockaddr_in *)addr)->sin_addr),sequence, flags); + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: [%s] seq 0x%04X, flags 0x%02X",inet_ntoa(((struct sockaddr_in *)addr)->sin_addr),sequence, flags); while(MSG_EOF(&msg)==0) { type = MSG_ReadByte(&msg); - addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR,"Next section - %i\n",type); + addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR,"Next section - %i",type); if(type == DGR_ITEM_EOL) { bGotEOL = 1; } else if(type < DGR_ITEM_MAX_8BIT) { vals = MSG_ReadByte(&msg); if(type == DGR_ITEM_BRI_POWER_ON) { - addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR,"DGR_ITEM_BRI_POWER_ON: %i\n",vals); + addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR,"DGR_ITEM_BRI_POWER_ON: %i",vals); // FORWARD TO PROCESSING BY API if(dev) { if(DGR_IsItemInMask(type, dev->gr.devGroupShare_In)) { @@ -68,7 +68,7 @@ int DGR_Parse(const byte *data, int len, dgrDevice_t *dev, struct sockaddr *addr } } } else if(type == DGR_ITEM_LIGHT_BRI) { - addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR,"DGR_ITEM_LIGHT_BRI: %i\n",vals); + addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR,"DGR_ITEM_LIGHT_BRI: %i",vals); // FORWARD TO PROCESSING BY API if(dev) { if(DGR_IsItemInMask(type, dev->gr.devGroupShare_In)) { @@ -77,7 +77,7 @@ int DGR_Parse(const byte *data, int len, dgrDevice_t *dev, struct sockaddr *addr } } else if (type == DGR_ITEM_LIGHT_FIXED_COLOR) { - addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR, "DGR_ITEM_LIGHT_FIXED_COLOR: %i\n", vals); + addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR, "DGR_ITEM_LIGHT_FIXED_COLOR: %i", vals); // FORWARD TO PROCESSING BY API if (dev) { if (DGR_IsItemInMask(type, dev->gr.devGroupShare_In)) { @@ -120,7 +120,7 @@ int DGR_Parse(const byte *data, int len, dgrDevice_t *dev, struct sockaddr *addr // Gives sLen 4 if(type == DGR_ITEM_COMMAND) { const char *cmd = MSG_GetStringPointerAtCurrentPosition(&msg); - addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR,"DGR_ITEM_COMMAND: %s\n",cmd); + addLogAdv(LOG_DEBUG, LOG_FEATURE_DGR,"DGR_ITEM_COMMAND: %s",cmd); } MSG_SkipBytes(&msg,sLen); } else if(type == DGR_ITEM_LIGHT_CHANNELS) { diff --git a/src/devicegroups/deviceGroups_write.c b/src/devicegroups/deviceGroups_write.c index 6fb460598..366f838ea 100644 --- a/src/devicegroups/deviceGroups_write.c +++ b/src/devicegroups/deviceGroups_write.c @@ -6,22 +6,34 @@ void DRV_DGR_Dump(byte *message, int len); int DGR_BeginWriting(bitMessage_t *msg, const char *groupName, unsigned short sequence, unsigned short flags) { if(MSG_WriteBytes(msg,TASMOTA_DEVICEGROUPS_HEADER,strlen(TASMOTA_DEVICEGROUPS_HEADER))==0) { - addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for header\n"); + // + // It should not happen, do not waste flash space for warning text... + // + //addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for header\n"); return 1; } if(MSG_WriteString(msg,groupName) <= 0) { - addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for group name\n"); + // + // It should not happen, do not waste flash space for warning text... + // + //addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for group name\n"); return 1; } if(MSG_WriteU16(msg,sequence) <= 0) { - addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for sequence\n"); + // + // It should not happen, do not waste flash space for warning text... + // + //addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for sequence\n"); return 1; } if(MSG_WriteU16(msg,flags) <= 0) { - addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for flags\n"); + // + // It should not happen, do not waste flash space for warning text... + // + //addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for flags\n"); return 1; } return 0; diff --git a/src/driver/drv_bl_shared.c b/src/driver/drv_bl_shared.c index 0f81c7837..a2de70dd1 100644 --- a/src/driver/drv_bl_shared.c +++ b/src/driver/drv_bl_shared.c @@ -248,7 +248,7 @@ commandResult_t BL09XX_SetupEnergyStatistic(const void *context, const char *cmd /* process changes */ if (enable != 0) { - addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "Consumption History enabled\n"); + addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "Consumption History enabled"); /* Enable function */ energyCounterStatsEnable = true; if (energyCounterSampleCount != sample_count) @@ -259,7 +259,7 @@ commandResult_t BL09XX_SetupEnergyStatistic(const void *context, const char *cmd energyCounterMinutes = NULL; energyCounterSampleCount = sample_count; } - addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "Sample Count: %d\n", energyCounterSampleCount); + addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "Sample Count: %d", energyCounterSampleCount); if (energyCounterSampleInterval != sample_time) { /* change sample time */ @@ -277,13 +277,13 @@ commandResult_t BL09XX_SetupEnergyStatistic(const void *context, const char *cmd memset(energyCounterMinutes, 0, energyCounterSampleCount*sizeof(float)); } } - addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "Sample Interval: %d\n", energyCounterSampleInterval); + addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "Sample Interval: %d", energyCounterSampleInterval); energyCounterMinutesStamp = xTaskGetTickCount(); energyCounterMinutesIndex = 0; } else { /* Disable Consimption Nistory */ - addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "Consumption History disabled\n"); + addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "Consumption History disabled"); energyCounterStatsEnable = false; if (energyCounterMinutes != NULL) { @@ -317,7 +317,7 @@ commandResult_t BL09XX_SetupConsumptionThreshold(const void *context, const char if (threshold>200.0f) threshold = 200.0f; changeSavedThresholdEnergy = threshold; - addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "ConsumptionThreshold: %1.1f\n", changeSavedThresholdEnergy); + addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "ConsumptionThreshold: %1.1f", changeSavedThresholdEnergy); return CMD_RES_OK; } @@ -475,7 +475,7 @@ void BL_ProcessUpdate(float voltage, float current, float power) msg = cJSON_PrintUnformatted(root); cJSON_Delete(root); - addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "JSON Printed: %d bytes\n", strlen(msg)); + // addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER, "JSON Printed: %d bytes", strlen(msg)); MQTT_PublishMain_StringString(counter_mqttNames[2], msg, 0); stat_updatesSent++; diff --git a/src/driver/drv_bp1658cj.c b/src/driver/drv_bp1658cj.c index 2088b4628..c0f8b6596 100644 --- a/src/driver/drv_bp1658cj.c +++ b/src/driver/drv_bp1658cj.c @@ -58,47 +58,6 @@ void BP1658CJ_Write(float *rgbcw) { Soft_I2C_Stop(); } - -static commandResult_t BP1658CJ_RGBCW(const void *context, const char *cmd, const char *args, int flags){ - const char *c = args; - float col[5] = { 0, 0, 0, 0, 0 }; - int ci; - int val; - - ci = 0; - - // some people prefix colors with # - if(c[0] == '#') - c++; - while (*c){ - char tmp[3]; - int r; - tmp[0] = *(c++); - if (!*c) - break; - tmp[1] = *(c++); - tmp[2] = '\0'; - r = sscanf(tmp, "%x", &val); - if (!r) { - ADDLOG_ERROR(LOG_FEATURE_CMD, "BP1658CJ_RGBCW no sscanf hex result from %s", tmp); - break; - } - - ADDLOG_DEBUG(LOG_FEATURE_CMD, "BP1658CJ_RGBCW found chan %d -> val255 %d (from %s)", ci, val, tmp); - - col[ci] = val; - - // move to next channel. - ci ++; - if(ci>=5) - break; - } - - BP1658CJ_Write(col); - - return CMD_RES_OK; -} - // startDriver BP1658CJ // BP1658CJ_RGBCW FF00000000 void BP1658CJ_Init() { @@ -118,10 +77,10 @@ void BP1658CJ_Init() { //cmddetail:"descr":"Don't use it. It's for direct access of BP1658CJ driver. You don't need it because LED driver automatically calls it, so just use led_basecolor_rgb", //cmddetail:"fn":"BP1658CJ_RGBCW","file":"driver/drv_bp1658cj.c","requires":"", //cmddetail:"examples":""} - CMD_RegisterCommand("BP1658CJ_RGBCW", "", BP1658CJ_RGBCW, NULL, NULL); + CMD_RegisterCommand("BP1658CJ_RGBCW", "", CMD_LEDDriver_WriteRGBCW, NULL, NULL); //cmddetail:{"name":"BP1658CJ_Map","args":"[Ch0][Ch1][Ch2][Ch3][Ch4]", //cmddetail:"descr":"Maps the RGBCW values to given indices of BP1658CJ channels. This is because BP5758D channels order is not the same for some devices. Some devices are using RGBCW order and some are using GBRCW, etc, etc. Example usage: BP1658CJ_Map 0 1 2 3 4", //cmddetail:"fn":"BP1658CJ_Map","file":"driver/drv_bp1658cj.c","requires":"", //cmddetail:"examples":""} - CMD_RegisterCommand("BP1658CJ_Map", "", CMD_LEDDriverMap, NULL, NULL); + CMD_RegisterCommand("BP1658CJ_Map", "", CMD_LEDDriver_Map, NULL, NULL); } diff --git a/src/driver/drv_bp5758d.c b/src/driver/drv_bp5758d.c index 3e3d8e2c7..c322f5e83 100644 --- a/src/driver/drv_bp5758d.c +++ b/src/driver/drv_bp5758d.c @@ -142,47 +142,6 @@ static commandResult_t BP5758D_Current(const void *context, const char *cmd, con return CMD_RES_OK; } -static commandResult_t BP5758D_RGBCW(const void *context, const char *cmd, const char *args, int flags){ - const char *c = args; - float col[5] = { 0, 0, 0, 0, 0 }; - int ci; - int val; - - ci = 0; - - // some people prefix colors with # - if(c[0] == '#') - c++; - while (*c){ - char tmp[3]; - int r; - tmp[0] = *(c++); - if (!*c) - break; - tmp[1] = *(c++); - tmp[2] = '\0'; - r = sscanf(tmp, "%x", &val); - if (!r) { - ADDLOG_ERROR(LOG_FEATURE_CMD, "BP5758D_RGBCW no sscanf hex result from %s", tmp); - break; - } - - ADDLOG_DEBUG(LOG_FEATURE_CMD, "BP5758D_RGBCW found chan %d -> val255 %d (from %s)", ci, val, tmp); - - col[ci] = val; - - // move to next channel. - ci ++; - if(ci>=5) - break; - } - - BP5758D_Write(col); - - return CMD_RES_OK; -} - - // startDriver BP5758D // BP5758D_RGBCW FF00000000 // @@ -204,12 +163,12 @@ void BP5758D_Init() { //cmddetail:"descr":"Don't use it. It's for direct access of BP5758D driver. You don't need it because LED driver automatically calls it, so just use led_basecolor_rgb", //cmddetail:"fn":"BP5758D_RGBCW","file":"driver/drv_bp5758d.c","requires":"", //cmddetail:"examples":""} - CMD_RegisterCommand("BP5758D_RGBCW", "", BP5758D_RGBCW, NULL, NULL); + CMD_RegisterCommand("BP5758D_RGBCW", "", CMD_LEDDriver_WriteRGBCW, NULL, NULL); //cmddetail:{"name":"BP5758D_Map","args":"[Ch0][Ch1][Ch2][Ch3][Ch4]", //cmddetail:"descr":"Maps the RGBCW values to given indices of BP5758D channels. This is because BP5758D channels order is not the same for some devices. Some devices are using RGBCW order and some are using GBRCW, etc, etc. Example usage: BP5758D_Map 0 1 2 3 4", //cmddetail:"fn":"BP5758D_Map","file":"driver/drv_bp5758d.c","requires":"", //cmddetail:"examples":""} - CMD_RegisterCommand("BP5758D_Map", "", CMD_LEDDriverMap, NULL, NULL); + CMD_RegisterCommand("BP5758D_Map", "", CMD_LEDDriver_Map, NULL, NULL); //cmddetail:{"name":"BP5758D_Current","args":"[MaxCurrent]", //cmddetail:"descr":"Sets the maximum current limit for BP5758D driver", //cmddetail:"fn":"BP5758D_Current","file":"driver/drv_bp5758d.c","requires":"", diff --git a/src/driver/drv_cht8305.c b/src/driver/drv_cht8305.c index 8db16c192..a549b1992 100644 --- a/src/driver/drv_cht8305.c +++ b/src/driver/drv_cht8305.c @@ -74,7 +74,7 @@ void CHT8305_Init() { Soft_I2C_ReadBytes(buff, 2); Soft_I2C_Stop(); - addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "DRV_CHT8304_init: ID: %02X %02X\n", buff[0], buff[1]); + addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "DRV_CHT8304_init: ID: %02X %02X", buff[0], buff[1]); @@ -92,7 +92,7 @@ void CHT8305_OnEverySecond() { CHANNEL_Set(channel_temp, (int)(g_temp * 10), 0); CHANNEL_Set(channel_humid, (int)(g_humid), 0); - addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "DRV_CHT8304_readEnv: Temperature:%fC Humidity:%f%%\n", g_temp, g_humid); + addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "DRV_CHT8304_readEnv: Temperature:%fC Humidity:%f%%", g_temp, g_humid); } void CHT8305_AppendInformationToHTTPIndexPage(http_request_t* request) diff --git a/src/driver/drv_local.h b/src/driver/drv_local.h index 52fb8f7d8..d16dcf8a7 100644 --- a/src/driver/drv_local.h +++ b/src/driver/drv_local.h @@ -87,7 +87,9 @@ bool Soft_I2C_Start(uint8_t addr); void Soft_I2C_Stop(void); uint8_t Soft_I2C_ReadByte(bool nack); void Soft_I2C_ReadBytes(uint8_t* buf, int numOfBytes); -commandResult_t CMD_LEDDriverMap(const void *context, const char *cmd, const char *args, int flags); +commandResult_t CMD_LEDDriver_Map(const void *context, const char *cmd, const char *args, int flags); +commandResult_t CMD_LEDDriver_WriteRGBCW(const void *context, const char *cmd, const char *args, int flags); +void LED_I2CDriver_WriteRGBCW(float* finalRGBCW); diff --git a/src/driver/drv_main.c b/src/driver/drv_main.c index b42ccc6e7..398f2e3fd 100644 --- a/src/driver/drv_main.c +++ b/src/driver/drv_main.c @@ -219,11 +219,11 @@ void DRV_StopDriver(const char* name) { g_drivers[i].stopFunc(); } g_drivers[i].bLoaded = false; - addLogAdv(LOG_INFO, LOG_FEATURE_MAIN, "Drv %s has been stopped.\n", name); + addLogAdv(LOG_INFO, LOG_FEATURE_MAIN, "Drv %s stopped.", name); break; } else { - addLogAdv(LOG_INFO, LOG_FEATURE_MAIN, "Drv %s is not running.\n", name); + addLogAdv(LOG_INFO, LOG_FEATURE_MAIN, "Drv %s not running.", name); break; } } diff --git a/src/driver/drv_ntp.c b/src/driver/drv_ntp.c index 12c4ebe79..fd3c88897 100644 --- a/src/driver/drv_ntp.c +++ b/src/driver/drv_ntp.c @@ -91,7 +91,7 @@ commandResult_t NTP_SetTimeZoneOfs(const void *context, const char *cmd, const c else { g_timeOffsetSeconds = Tokenizer_GetArgInteger(0) * 60 * 60; } - addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"NTP offset set, wait for next ntp packet to apply changes\n"); + addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"NTP offset set, wait for next ntp packet to apply changes"); return CMD_RES_OK; } @@ -108,13 +108,13 @@ commandResult_t NTP_SetServer(const void *context, const char *cmd, const char * } newValue = Tokenizer_GetArg(0); CFG_SetNTPServer(newValue); - addLogAdv(LOG_INFO, LOG_FEATURE_NTP, "NTP server set to %s\n", newValue); + addLogAdv(LOG_INFO, LOG_FEATURE_NTP, "NTP server set to %s", newValue); return CMD_RES_OK; } //Display settings used by the NTP driver commandResult_t NTP_Info(const void *context, const char *cmd, const char *args, int cmdFlags) { - addLogAdv(LOG_INFO, LOG_FEATURE_NTP, "Server=%s, Time offset=%d\n", CFG_GetNTPServer(), g_timeOffsetSeconds); + addLogAdv(LOG_INFO, LOG_FEATURE_NTP, "Server=%s, Time offset=%d", CFG_GetNTPServer(), g_timeOffsetSeconds); return CMD_RES_OK; } @@ -136,7 +136,7 @@ void NTP_Init() { //cmddetail:"examples":""} CMD_RegisterCommand("ntp_info", "", NTP_Info, NULL, NULL); - addLogAdv(LOG_INFO, LOG_FEATURE_NTP, "NTP driver initialized with server=%s, offset=%d\n", CFG_GetNTPServer(), g_timeOffsetSeconds); + addLogAdv(LOG_INFO, LOG_FEATURE_NTP, "NTP driver initialized with server=%s, offset=%d", CFG_GetNTPServer(), g_timeOffsetSeconds); g_synced = false; } @@ -220,7 +220,7 @@ void NTP_SendRequest(bool bBlocking) { #if WINDOWS #else if(fcntl(g_ntp_socket, F_SETFL, O_NONBLOCK)) { - addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"NTP_SendRequest: failed to make socket non-blocking!\n"); + addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"NTP_SendRequest: failed to make socket non-blocking!"); } #endif } @@ -249,7 +249,7 @@ void NTP_CheckForReceive() { #endif if(recv_len < 0){ - addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"NTP_CheckForReceive: Error while receiving server's msg\n"); + addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"NTP_CheckForReceive: Error while receiving server's msg"); return; } highWord = MAKE_WORD(ptr[40], ptr[41]); @@ -257,13 +257,13 @@ void NTP_CheckForReceive() { // combine the four bytes (two words) into a long integer // this is NTP time (seconds since Jan 1 1900): secsSince1900 = highWord << 16 | lowWord; - addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"Seconds since Jan 1 1900 = %u\n",secsSince1900); + addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"Seconds since Jan 1 1900 = %u",secsSince1900); g_time = secsSince1900 - NTP_OFFSET; g_time += g_timeOffsetSeconds; - addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"Unix time : %u\n",g_time); + addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"Unix time : %u",g_time); ltm = localtime((time_t*)&g_time); - addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"Local Time : %04d/%02d/%02d %02d:%02d:%02d\n", + addLogAdv(LOG_INFO, LOG_FEATURE_NTP,"Local Time : %04d/%02d/%02d %02d:%02d:%02d", ltm->tm_year+1900, ltm->tm_mon+1, ltm->tm_mday, ltm->tm_hour, ltm->tm_min, ltm->tm_sec); g_synced = true; #if 0 diff --git a/src/driver/drv_sht3x.c b/src/driver/drv_sht3x.c index c2ec3a348..b6a3bf32a 100644 --- a/src/driver/drv_sht3x.c +++ b/src/driver/drv_sht3x.c @@ -136,7 +136,7 @@ commandResult_t SHT3X_MeasurePer(const void* context, const char* cmd, const cha CHANNEL_Set(channel_temp, (int)(g_temp * 10), 0); CHANNEL_Set(channel_humid, (int)(g_humid), 0); - addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "SHT3X_Measure: Period Temperature:%fC Humidity:%f%%\n", g_temp, g_humid); + addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "SHT3X_Measure: Period Temperature:%fC Humidity:%f%%", g_temp, g_humid); return CMD_RES_OK; } @@ -175,7 +175,7 @@ commandResult_t SHT3X_Measure(const void* context, const char* cmd, const char* CHANNEL_Set(channel_temp, (int)(g_temp * 10), 0); CHANNEL_Set(channel_humid, (int)(g_humid), 0); - addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "SHT3X_Measure: Temperature:%fC Humidity:%f%%\n", g_temp, g_humid); + addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "SHT3X_Measure: Temperature:%fC Humidity:%f%%", g_temp, g_humid); return CMD_RES_OK; } // StopDriver SHT3X @@ -205,7 +205,7 @@ void SHT3X_GetStatus() Soft_I2C_Start(SHT3X_I2C_ADDR | 1); Soft_I2C_ReadBytes(status, 2); Soft_I2C_Stop(); - addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "SHT : Status : %02X %02X\n", status[0], status[1]); + addLogAdv(LOG_INFO, LOG_FEATURE_SENSOR, "SHT : Status : %02X %02X", status[0], status[1]); } commandResult_t SHT3X_GetStatusCmd(const void* context, const char* cmd, const char* args, int cmdFlags) { diff --git a/src/driver/drv_sm2135.c b/src/driver/drv_sm2135.c index 3feb6338a..8bace48bd 100644 --- a/src/driver/drv_sm2135.c +++ b/src/driver/drv_sm2135.c @@ -188,7 +188,7 @@ void SM2135_Write(float *rgbcw) { } } -static commandResult_t SM2135_RGBCW(const void *context, const char *cmd, const char *args, int flags){ +commandResult_t CMD_LEDDriver_WriteRGBCW(const void *context, const char *cmd, const char *args, int flags){ const char *c = args; float col[5] = { 0, 0, 0, 0, 0 }; int ci; @@ -209,11 +209,11 @@ static commandResult_t SM2135_RGBCW(const void *context, const char *cmd, const tmp[2] = '\0'; r = sscanf(tmp, "%x", &val); if (!r) { - ADDLOG_ERROR(LOG_FEATURE_CMD, "SM2135_RGBCW no sscanf hex result from %s", tmp); + ADDLOG_ERROR(LOG_FEATURE_CMD, "No sscanf hex result from %s", tmp); break; } - ADDLOG_DEBUG(LOG_FEATURE_CMD, "SM2135_RGBCW found chan %d -> val255 %d (from %s)", ci, val, tmp); + ADDLOG_DEBUG(LOG_FEATURE_CMD, "Found chan %d -> val255 %d (from %s)", ci, val, tmp); col[ci] = val; @@ -223,7 +223,7 @@ static commandResult_t SM2135_RGBCW(const void *context, const char *cmd, const break; } - SM2135_Write(col); + LED_I2CDriver_WriteRGBCW(col); return CMD_RES_OK; } @@ -233,7 +233,7 @@ static commandResult_t SM2135_RGBCW(const void *context, const char *cmd, const // This is the order used on my polish Spectrum WOJ14415 bulb: // SM2135_Map 2 1 0 4 3 -commandResult_t CMD_LEDDriverMap(const void *context, const char *cmd, const char *args, int flags){ +commandResult_t CMD_LEDDriver_Map(const void *context, const char *cmd, const char *args, int flags){ Tokenizer_TokenizeString(args,0); @@ -278,7 +278,7 @@ static commandResult_t SM2135_Current(const void *context, const char *cmd, cons } // startDriver SM2135 -// SM2135_RGBCW FF00000000 +// CMD_LEDDriver_WriteRGBCW FF00000000 void SM2135_Init() { g_i2c_pin_clk = PIN_FindPinIndexForRole(IOR_SM2135_CLK,g_i2c_pin_clk); @@ -291,12 +291,12 @@ void SM2135_Init() { //cmddetail:"descr":"Don't use it. It's for direct access of SM2135 driver. You don't need it because LED driver automatically calls it, so just use led_basecolor_rgb", //cmddetail:"fn":"SM2135_RGBCW","file":"driver/drv_sm2135.c","requires":"", //cmddetail:"examples":""} - CMD_RegisterCommand("SM2135_RGBCW", "", SM2135_RGBCW, NULL, NULL); + CMD_RegisterCommand("SM2135_RGBCW", "", CMD_LEDDriver_WriteRGBCW, NULL, NULL); //cmddetail:{"name":"SM2135_Map","args":"[Ch0][Ch1][Ch2][Ch3][Ch4]", //cmddetail:"descr":"Maps the RGBCW values to given indices of SM2135 channels. This is because SM2135 channels order is not the same for some devices. Some devices are using RGBCW order and some are using GBRCW, etc, etc. Example usage: SM2135_Map 0 1 2 3 4", //cmddetail:"fn":"SM2135_Map","file":"driver/drv_sm2135.c","requires":"", //cmddetail:"examples":""} - CMD_RegisterCommand("SM2135_Map", "", CMD_LEDDriverMap, NULL, NULL); + CMD_RegisterCommand("SM2135_Map", "", CMD_LEDDriver_Map, NULL, NULL); //cmddetail:{"name":"SM2135_Current","args":"[Value]", //cmddetail:"descr":"Sets the maximum current for LED driver.", //cmddetail:"fn":"SM2135_Current","file":"driver/drv_sm2135.c","requires":"", diff --git a/src/driver/drv_sm2235.c b/src/driver/drv_sm2235.c index 6a335634e..7b9991a9c 100644 --- a/src/driver/drv_sm2235.c +++ b/src/driver/drv_sm2235.c @@ -55,45 +55,6 @@ void SM2235_Write(float *rgbcw) { } -static commandResult_t SM2235_RGBCW(const void *context, const char *cmd, const char *args, int flags){ - const char *c = args; - float col[5] = { 0, 0, 0, 0, 0 }; - int ci; - int val; - - ci = 0; - - // some people prefix colors with # - if(c[0] == '#') - c++; - while (*c){ - char tmp[3]; - int r; - tmp[0] = *(c++); - if (!*c) - break; - tmp[1] = *(c++); - tmp[2] = '\0'; - r = sscanf(tmp, "%x", &val); - if (!r) { - ADDLOG_ERROR(LOG_FEATURE_CMD, "SM2235_RGBCW no sscanf hex result from %s", tmp); - break; - } - - ADDLOG_DEBUG(LOG_FEATURE_CMD, "SM2235_RGBCW found chan %d -> val255 %d (from %s)", ci, val, tmp); - - col[ci] = val; - - // move to next channel. - ci ++; - if(ci>=5) - break; - } - - SM2235_Write(col); - - return CMD_RES_OK; -} static void SM2235_SetCurrent(int curValRGB, int curValCW) { //g_current_setting_rgb = curValRGB; //g_current_setting_cw = curValCW; @@ -129,12 +90,12 @@ void SM2235_Init() { //cmddetail:"descr":"Don't use it. It's for direct access of SM2235 driver. You don't need it because LED driver automatically calls it, so just use led_basecolor_rgb", //cmddetail:"fn":"SM2235_RGBCW","file":"driver/drv_sm2235.c","requires":"", //cmddetail:"examples":""} - CMD_RegisterCommand("SM2235_RGBCW", "", SM2235_RGBCW, NULL, NULL); + CMD_RegisterCommand("SM2235_RGBCW", "", CMD_LEDDriver_WriteRGBCW, NULL, NULL); //cmddetail:{"name":"SM2235_Map","args":"[Ch0][Ch1][Ch2][Ch3][Ch4]", //cmddetail:"descr":"Maps the RGBCW values to given indices of SM2235 channels. This is because SM2235 channels order is not the same for some devices. Some devices are using RGBCW order and some are using GBRCW, etc, etc. Example usage: SM2235_Map 0 1 2 3 4", //cmddetail:"fn":"SM2235_Map","file":"driver/drv_sm2235.c","requires":"", //cmddetail:"examples":""} - CMD_RegisterCommand("SM2235_Map", "", CMD_LEDDriverMap, NULL, NULL); + CMD_RegisterCommand("SM2235_Map", "", CMD_LEDDriver_Map, NULL, NULL); //cmddetail:{"name":"SM2235_Current","args":"[Value]", //cmddetail:"descr":"Sets the maximum current for LED driver.", //cmddetail:"fn":"SM2235_Current","file":"driver/drv_sm2235.c","requires":"", diff --git a/src/i2c/drv_i2c_lcd_pcf8574t.c b/src/i2c/drv_i2c_lcd_pcf8574t.c index 0ad0f0a3f..be8d3a41e 100644 --- a/src/i2c/drv_i2c_lcd_pcf8574t.c +++ b/src/i2c/drv_i2c_lcd_pcf8574t.c @@ -236,10 +236,10 @@ commandResult_t DRV_I2C_LCD_PCF8574_GoTo_Internal(int bClear, const void *contex dev = DRV_I2C_FindDeviceExt(busType,address,I2CDEV_LCD_PCF8574); if(dev == 0) { - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_GoTo: there is no device on this bus with such addr\n"); + addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_GoTo: there is no device on this bus with such addr"); return CMD_RES_BAD_ARGUMENT; } - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_GoTo: module %s, address %i\n", i2cModuleStr, address); + addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_GoTo: module %s, address %i", i2cModuleStr, address); lcd = (i2cDevice_PCF8574_t *)dev; @@ -282,12 +282,12 @@ commandResult_t DRV_I2C_LCD_PCF8574_Print_Internal(lcdPrintType_t type,const voi dev = DRV_I2C_FindDeviceExt(busType,address,I2CDEV_LCD_PCF8574); if(dev == 0) { - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_Print: there is no device on this bus with such addr\n"); + addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_Print: there is no device on this bus with such addr"); return CMD_RES_BAD_ARGUMENT; } lcd = (i2cDevice_PCF8574_t *)dev; - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_Print: module %s, address %i\n", i2cModuleStr, address); + addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_Print: module %s, address %i", i2cModuleStr, address); if (type == LCD_PRINT_DEFAULT) { msg = Tokenizer_GetArgFrom(2); } @@ -351,12 +351,12 @@ commandResult_t DRV_I2C_LCD_PCF8574_Clear(const void *context, const char *cmd, dev = DRV_I2C_FindDeviceExt(busType,address,I2CDEV_LCD_PCF8574); if(dev == 0) { - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_Clear: there is no device on this bus with such addr\n"); + addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_Clear: there is no device on this bus with such addr"); return CMD_RES_BAD_ARGUMENT; } lcd = (i2cDevice_PCF8574_t *)dev; - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_Clear: module %s, address %i\n", i2cModuleStr, address); + addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_LCD_PCF8574_Clear: module %s, address %i", i2cModuleStr, address); PCF8574_LCD_Open(lcd); PCF8574_LCD_Clear(lcd); @@ -429,7 +429,7 @@ void DRV_I2C_LCD_PCF8574_RunDevice(i2cDevice_t *dev) delay_ms(115); PCF8574_LCD_Clear(lcd); delay_ms(115); - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"Testing lcd\n" ); + //addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"Testing lcd" ); PCF8574_LCD_Write_String(lcd,"OpenBeken BK7231T LCD"); delay_ms(115); diff --git a/src/i2c/drv_i2c_tc74.c b/src/i2c/drv_i2c_tc74.c index d4c90675e..7c7cafe01 100644 --- a/src/i2c/drv_i2c_tc74.c +++ b/src/i2c/drv_i2c_tc74.c @@ -10,14 +10,14 @@ int DRV_I2C_TC74_readTemperature(int dev_adr, int busID) { byte temp; - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_TC74_readTemperature: called for addr %i\n", dev_adr); + //addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_TC74_readTemperature: called for addr %i\n", dev_adr); DRV_I2C_Begin(dev_adr,busID); DRV_I2C_Write(0,0x00); DRV_I2C_Read(0x00,&temp); DRV_I2C_Close(); - addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"DRV_I2C_TC74_readTemperature: result is %i\n", temp); + addLogAdv(LOG_INFO, LOG_FEATURE_I2C,"TC74 reads %i", temp); return temp;