diff --git a/src/bitmessage/bitmessage_public.h b/src/bitmessage/bitmessage_public.h new file mode 100644 index 000000000..79117bb99 --- /dev/null +++ b/src/bitmessage/bitmessage_public.h @@ -0,0 +1,27 @@ +#include "../new_common.h" + +typedef struct bitMessage_s { + byte *data; + int position; + int totalSize; +} bitMessage_t; + +// bitmessage_read.c +void MSG_BeginReading(bitMessage_t *msg, byte *data, int dataSize); +int MSG_ReadString(bitMessage_t *msg, char *out, int outBufferSize); +int MSG_SkipBytes(bitMessage_t *msg, int c); +int MSG_CheckAndSkip(bitMessage_t *msg, const char *s, int len); +unsigned short MSG_ReadU16(bitMessage_t *msg); +byte MSG_ReadByte(bitMessage_t *msg); +int MSG_Read3Bytes(bitMessage_t *msg); +int MSG_EOF(bitMessage_t *msg); +const char *MSG_GetStringPointerAtCurrentPosition(bitMessage_t *msg); + +// bitmessage_write.c +void MSG_BeginWriting(bitMessage_t *msg, byte *data, int dataSize); +int MSG_WriteBytes(bitMessage_t *msg, void *p, int numBytes); +int MSG_WriteString(bitMessage_t *msg, const char *s); +int MSG_WriteU16(bitMessage_t *msg, unsigned short s); +int MSG_WriteByte(bitMessage_t *msg, byte s); +int MSG_Write3Bytes(bitMessage_t *msg, int s); + diff --git a/src/bitmessage/bitmessage_read.c b/src/bitmessage/bitmessage_read.c new file mode 100644 index 000000000..bb6b1faec --- /dev/null +++ b/src/bitmessage/bitmessage_read.c @@ -0,0 +1,92 @@ +#include "bitmessage_public.h" + + + +void MSG_BeginReading(bitMessage_t *msg, byte *data, int dataSize) { + msg->position = 0; + msg->totalSize = dataSize; + msg->data = data; +} +const char *MSG_GetStringPointerAtCurrentPosition(bitMessage_t *msg) { + const char *r = (const char*)(msg->data+msg->position); + return r; +} +int MSG_SkipBytes(bitMessage_t *msg, int c) { + if(msg->position + c > msg->totalSize) + return 0; + msg->position += c; + return c; +} +int MSG_ReadString(bitMessage_t *msg, char *out, int outBufferSize) { + const char *start; + + start = (const char*)(msg->data + msg->position); + while(1) { + if(msg->position >= msg->totalSize) { + return -1; + } + if(msg->data[msg->position] == 0) { + msg->position++; + break; + } + msg->position++; + } + + strcpy_safe(out, start,outBufferSize); + return strlen(out); +} +unsigned short MSG_ReadU16(bitMessage_t *msg) { + unsigned short ret; + + if(msg->position + sizeof(unsigned short) > msg->totalSize) + return 0; + + ret = *(unsigned short*)(msg->data + msg->position); + + msg->position += sizeof(unsigned short); + + return ret; +} +int MSG_Read3Bytes(bitMessage_t *msg) { + int ret = 0; + + if(msg->position + 3 > msg->totalSize) + return 0; + + memcpy(&ret,msg->data + msg->position, 3); + + msg->position += 3; + + return ret; + +} +byte MSG_ReadByte(bitMessage_t *msg) { + byte ret; + + if(msg->position + sizeof(byte) > msg->totalSize) + return 0; + + ret = *(byte*)(msg->data + msg->position); + + msg->position += sizeof(byte); + + return ret; +} +int MSG_CheckAndSkip(bitMessage_t *msg, const char *s, int len) { + int i; + if(msg->position + len > msg->totalSize) + return 0; + for(i = 0; i < len; i++) { + if(msg->data[msg->position+i] != s[i]) + return 0; + } + msg->position += len; + return len; +} +int MSG_EOF(bitMessage_t *msg) { + if(msg->position >= msg->totalSize) + return 1; + return 0; +} + + diff --git a/src/bitmessage/bitmessage_write.c b/src/bitmessage/bitmessage_write.c new file mode 100644 index 000000000..35483206d --- /dev/null +++ b/src/bitmessage/bitmessage_write.c @@ -0,0 +1,28 @@ +#include "bitmessage_public.h" + +void MSG_BeginWriting(bitMessage_t *msg, byte *data, int dataSize) { + msg->position = 0; + msg->totalSize = dataSize; + msg->data = data; +} + +int MSG_WriteBytes(bitMessage_t *msg, void *p, int numBytes) { + if(msg->position + numBytes >= msg->totalSize) + return 0; + memcpy(msg->data + msg->position,p,numBytes); + msg->position += numBytes; + return numBytes; +} +int MSG_WriteString(bitMessage_t *msg, const char *s) { + return MSG_WriteBytes(msg,s,strlen(s)+1); +} +int MSG_WriteU16(bitMessage_t *msg, unsigned short s) { + return MSG_WriteBytes(msg,&s, sizeof(s)); +} +int MSG_WriteByte(bitMessage_t *msg, byte s) { + return MSG_WriteBytes(msg,&s, sizeof(s)); +} + +int MSG_Write3Bytes(bitMessage_t *msg, int s) { + return MSG_WriteBytes(msg,&s, 3); +} diff --git a/src/cmnds/cmd_newLEDDriver.c b/src/cmnds/cmd_newLEDDriver.c index 1f6511b29..8bbd3b1a6 100644 --- a/src/cmnds/cmd_newLEDDriver.c +++ b/src/cmnds/cmd_newLEDDriver.c @@ -192,16 +192,22 @@ static int temperature(const void *context, const char *cmd, const char *args, i //} //return 0; } +void LED_SetEnableAll(int bEnable) { + g_lightEnableAll = bEnable; + + apply_smart_light(); + + MQTT_PublishMain_StringInt("led_enableAll",g_lightEnableAll); +} static int enableAll(const void *context, const char *cmd, const char *args, int cmdFlags){ //if (!wal_strnicmp(cmd, "POWERALL", 8)){ - + int bEnable; ADDLOG_INFO(LOG_FEATURE_CMD, " enableAll (%s) received with args %s",cmd,args); - g_lightEnableAll = parsePowerArgument(args); + bEnable = parsePowerArgument(args); - apply_smart_light(); + LED_SetEnableAll(bEnable); - MQTT_PublishMain_StringInt("led_enableAll",g_lightEnableAll); // sendColorChange(); // sendDimmerChange(); @@ -212,6 +218,14 @@ static int enableAll(const void *context, const char *cmd, const char *args, int //return 0; } +void LED_SetDimmer(int iVal) { + + g_brightness = iVal * g_cfg_brightnessMult; + + apply_smart_light(); + sendDimmerChange(); + +} static int dimmer(const void *context, const char *cmd, const char *args, int cmdFlags){ //if (!wal_strnicmp(cmd, "POWERALL", 8)){ int iVal = 0; @@ -220,10 +234,7 @@ static int dimmer(const void *context, const char *cmd, const char *args, int cm iVal = parsePowerArgument(args); - g_brightness = iVal * g_cfg_brightnessMult; - - apply_smart_light(); - sendDimmerChange(); + LED_SetDimmer(iVal); return 1; //} diff --git a/src/devicegroups/deviceGroups_local.h b/src/devicegroups/deviceGroups_local.h new file mode 100644 index 000000000..ea529bedf --- /dev/null +++ b/src/devicegroups/deviceGroups_local.h @@ -0,0 +1,74 @@ + +#include "../new_common.h" +#include "deviceGroups_public.h" + +#define TASMOTA_DEVICEGROUPS_HEADER "TASMOTA_DGR" + +#define DGR_ITEM_EOL 0 +#define DGR_ITEM_STATUS 1 +#define DGR_ITEM_FLAGS 2 +#define DGR_ITEM_LIGHT_FADE 3 +#define DGR_ITEM_LIGHT_SPEED 4 +#define DGR_ITEM_LIGHT_BRI 5 +#define DGR_ITEM_LIGHT_SCHEME 6 +#define DGR_ITEM_LIGHT_FIXED_COLOR 7 +#define DGR_ITEM_BRI_PRESET_LOW 8 +#define DGR_ITEM_BRI_PRESET_HIGH 9 +#define DGR_ITEM_BRI_POWER_ON 10 +#define DGR_ITEM_LAST_8BIT 11 +#define DGR_ITEM_MAX_8BIT 63 + +#define DGR_ITEM_LAST_16BIT 64 +#define DGR_ITEM_MAX_16BIT 127 + +#define DGR_ITEM_POWER 128 +#define DGR_ITEM_NO_STATUS_SHARE 129 +#define DGR_ITEM_LAST_32BIT 130 +#define DGR_ITEM_MAX_32BIT 191 + +#define DGR_ITEM_EVENT 192 +#define DGR_ITEM_COMMAND 193 +#define DGR_ITEM_LAST_STRING 194 +#define DGR_ITEM_MAX_STRING 223 + +#define DGR_ITEM_LIGHT_CHANNELS 224 +#define DGR_ITEM_LAST_ARRAY 225 +#define DGR_ITEM_MAX_ARRAY 255 + + + +#define DGR_RELAY_NONE 0 +#define DGR_RELAY_1 1 +#define DGR_RELAY_2 2 +#define DGR_RELAY_3 4 +#define DGR_RELAY_4 8 +#define DGR_RELAY_5 16 +#define DGR_RELAY_6 32 +#define DGR_RELAY_7 64 +#define DGR_RELAY_8 128 +#define DGR_RELAY_9 256 +#define DGR_RELAY_10 512 +#define DGR_RELAY_11 1024 +#define DGR_RELAY_12 2048 +#define DGR_RELAY_13 4096 +#define DGR_RELAY_14 8192 +#define DGR_RELAY_15 16384 +#define DGR_RELAY_16 32768 +#define DGR_RELAY_17 65536 +#define DGR_RELAY_18 131072 +#define DGR_RELAY_19 262144 +#define DGR_RELAY_20 524288 +#define DGR_RELAY_21 1048576 +#define DGR_RELAY_22 2097152 +#define DGR_RELAY_23 4194304 +#define DGR_RELAY_24 8388608 + + + + + +u32 DGR_GetMaskForItem(byte item); +int DGR_IsItemInMask(byte item, u32 mask); + + + diff --git a/src/devicegroups/deviceGroups_public.h b/src/devicegroups/deviceGroups_public.h new file mode 100644 index 000000000..0b573516a --- /dev/null +++ b/src/devicegroups/deviceGroups_public.h @@ -0,0 +1,40 @@ +#ifndef __DGR_PUBLIC_H__ +#define __DGR_PUBLIC_H__ + +#include "../new_common.h" + +#define DGR_SHARE_POWER 1 +#define DGR_SHARE_LIGHT_BRI 2 +#define DGR_SHARE_LIGHT_FADE 4 +#define DGR_SHARE_LIGHT_SCHEME 8 +#define DGR_SHARE_LIGHT_COLOR 16 +#define DGR_SHARE_DIMMER_SETTINGS 32 +#define DGR_SHARE_EVENT 64 + +typedef struct dgrCallbacks_s { + void (*processPower)(int relayStates, byte relaysCount); + // they are both sent together by Tasmota devices + void (*processBrightnessPowerOn)(byte brightness); + void (*processLightBrightness)(byte brightness); + +} dgrCallbacks_t; + +typedef struct dgrGroupDef_s { + char groupName[32]; + u32 devGroupShare_In; + u32 devGroupShare_Out; +} dgrGroupDef_t; + +typedef struct dgrDevice_s { + dgrGroupDef_t gr; + dgrCallbacks_t cbs; +} dgrDevice_t; + +int DGR_Parse(const byte *data, int len, dgrDevice_t *dev); + +int DGR_Quick_FormatPowerState(byte *buffer, int maxSize, const char *groupName, int sequence, int flags, int channels, int numChannels); +int DGR_Quick_FormatBrightness(byte *buffer, int maxSize, const char *groupName, int sequence, int flags, byte brightness); + + + +#endif diff --git a/src/devicegroups/deviceGroups_read.c b/src/devicegroups/deviceGroups_read.c new file mode 100644 index 000000000..8b5e51c92 --- /dev/null +++ b/src/devicegroups/deviceGroups_read.c @@ -0,0 +1,124 @@ +#include "deviceGroups_public.h" +#include "deviceGroups_local.h" +#include "../bitmessage/bitmessage_public.h" +#include "../logging/logging.h" + + + +int DGR_Parse(const byte *data, int len, dgrDevice_t *dev) { + bitMessage_t msg; + char groupName[32]; + int sequence, flags, type; + int bGotEOL = 0; + int relayFlags,i; + byte vals; + byte relaysCnt; + + 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); + 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); + return 1; + } + if(dev != 0) { + // right now, only single group support + if(strcmp(dev->gr.groupName,groupName)) { + return -1; + } + } + sequence = MSG_ReadU16(&msg); + flags = MSG_ReadU16(&msg); + + + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_Parse: seq %i, flags %i\n",sequence, flags); + while(MSG_EOF(&msg)==0) { + type = MSG_ReadByte(&msg); + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"Next section - %i\n",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_INFO, LOG_FEATURE_DGR,"DGR_ITEM_BRI_POWER_ON: %i\n",vals); + // FORWARD TO PROCESSING BY API + if(dev) { + if(DGR_IsItemInMask(type, dev->gr.devGroupShare_In)) { + dev->cbs.processBrightnessPowerOn(vals); + } + } + } else if(type == DGR_ITEM_LIGHT_BRI) { + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_ITEM_LIGHT_BRI: %i\n",vals); + // FORWARD TO PROCESSING BY API + if(dev) { + if(DGR_IsItemInMask(type, dev->gr.devGroupShare_In)) { + dev->cbs.processLightBrightness(vals); + } + } + } else { + + } + } else if(type < DGR_ITEM_MAX_16BIT) { + MSG_SkipBytes(&msg,2); + } else if(type < DGR_ITEM_MAX_32BIT) { + if(type == DGR_ITEM_POWER) { + int total = 0; + + relayFlags = MSG_Read3Bytes(&msg); + relaysCnt = MSG_ReadByte(&msg); + + // FORWARD TO PROCESSING BY API + if(dev) { + if(DGR_IsItemInMask(type, dev->gr.devGroupShare_In)) { + dev->cbs.processPower(relayFlags,relaysCnt); + } + } + + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"Power event - values %i, numChannels %i, chans=",relayFlags,relaysCnt); + for(i = 0; i < relaysCnt; i++) { + if(BIT_CHECK(relayFlags,i)) { + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"[ON]"); + } else { + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"[OFF]"); + } + } + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"\n"); + } else { + MSG_SkipBytes(&msg,4); + } + } else if(type < DGR_ITEM_MAX_STRING) { + byte sLen = MSG_ReadByte(&msg); + // DevGroupSend 193=Tst + // Gives sLen 4 + if(type == DGR_ITEM_COMMAND) { + const char *cmd = MSG_GetStringPointerAtCurrentPosition(&msg); + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_ITEM_COMMAND: %s\n",cmd); + } + MSG_SkipBytes(&msg,sLen); + } else if(type == DGR_ITEM_LIGHT_CHANNELS) { + byte sLen = MSG_ReadByte(&msg); + if(sLen == 5) { + byte r, g, b, c, w; + r = MSG_ReadByte(&msg); + g = MSG_ReadByte(&msg); + b = MSG_ReadByte(&msg); + c = MSG_ReadByte(&msg); + w = MSG_ReadByte(&msg); + } else { + MSG_SkipBytes(&msg,sLen); + } + } else { + byte sLen = MSG_ReadByte(&msg); + MSG_SkipBytes(&msg,sLen); + } + if(bGotEOL) { + break; + } + } + + + return 0; +} \ No newline at end of file diff --git a/src/devicegroups/deviceGroups_util.c b/src/devicegroups/deviceGroups_util.c new file mode 100644 index 000000000..141dea2e8 --- /dev/null +++ b/src/devicegroups/deviceGroups_util.c @@ -0,0 +1,32 @@ +#include "deviceGroups_local.h" + +u32 DGR_GetMaskForItem(byte item) +{ + u32 mask = 0; + if (item == DGR_ITEM_LIGHT_BRI || item == DGR_ITEM_BRI_POWER_ON) + mask = DGR_SHARE_LIGHT_BRI; + else if (item == DGR_ITEM_POWER) + mask = DGR_SHARE_POWER; + else if (item == DGR_ITEM_LIGHT_SCHEME) + mask = DGR_SHARE_LIGHT_SCHEME; + else if (item == DGR_ITEM_LIGHT_FIXED_COLOR || item == DGR_ITEM_LIGHT_CHANNELS) + mask = DGR_SHARE_LIGHT_COLOR; + else if (item == DGR_ITEM_LIGHT_FADE || item == DGR_ITEM_LIGHT_SPEED) + mask = DGR_SHARE_LIGHT_FADE; + else if (item == DGR_ITEM_BRI_PRESET_LOW || item == DGR_ITEM_BRI_PRESET_HIGH) + mask = DGR_SHARE_DIMMER_SETTINGS; + else if (item == DGR_ITEM_EVENT) + mask = DGR_SHARE_EVENT; + return mask; +} +int DGR_IsItemInMask(byte item, u32 mask) { + u32 itemMask; + + itemMask = DGR_GetMaskForItem(item); + + if(mask & itemMask) + return 1; + return 0; +} + + diff --git a/src/devicegroups/deviceGroups_write.c b/src/devicegroups/deviceGroups_write.c new file mode 100644 index 000000000..4180785a1 --- /dev/null +++ b/src/devicegroups/deviceGroups_write.c @@ -0,0 +1,67 @@ +#include "deviceGroups_local.h" +#include "../bitmessage/bitmessage_public.h" +#include "../logging/logging.h" + +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"); + return 1; + } + if(MSG_WriteString(msg,groupName) <= 0) { + 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"); + return 1; + } + if(MSG_WriteU16(msg,flags) <= 0) { + addLogAdv(LOG_INFO, LOG_FEATURE_DGR,"DGR_BeginWriting: no space for flags\n"); + return 1; + } + return 0; +} +void DGR_AppendPowerState(bitMessage_t *msg, int numChannels, int channelBits) { + MSG_WriteByte(msg,DGR_ITEM_POWER); + MSG_Write3Bytes(msg,channelBits); + MSG_WriteByte(msg,numChannels); +} +void DGR_AppendColorRGBCW(bitMessage_t *msg, byte r, byte g, byte b, byte c, byte w) { + MSG_WriteByte(msg,DGR_ITEM_LIGHT_CHANNELS); + MSG_WriteByte(msg,5); + MSG_WriteByte(msg,r); + MSG_WriteByte(msg,g); + MSG_WriteByte(msg,b); + MSG_WriteByte(msg,c); + MSG_WriteByte(msg,w); +} +void DGR_AppendDimmer(bitMessage_t *msg, byte dimmValue) { + MSG_WriteByte(msg,DGR_ITEM_LIGHT_BRI); + MSG_WriteByte(msg,dimmValue); +} +void DGR_Finish(bitMessage_t *msg) { + MSG_WriteByte(msg,DGR_ITEM_EOL); + +} + + +int DGR_Quick_FormatPowerState(byte *buffer, int maxSize, const char *groupName, int sequence, int flags, int channels, int numChannels) { + bitMessage_t msg; + MSG_BeginWriting(&msg,buffer,maxSize); + DGR_BeginWriting(&msg,groupName, sequence,flags); + DGR_AppendPowerState(&msg,numChannels,channels); + DGR_Finish(&msg); + return msg.position; +} + +int DGR_Quick_FormatBrightness(byte *buffer, int maxSize, const char *groupName, int sequence,int flags, byte brightness) { + bitMessage_t msg; + MSG_BeginWriting(&msg,buffer,maxSize); + DGR_BeginWriting(&msg,groupName, sequence,flags); + DGR_AppendDimmer(&msg,brightness); + DGR_Finish(&msg); + return msg.position; +} + + + diff --git a/src/driver/drv_bl0937.c b/src/driver/drv_bl0937.c index 983d119b4..243df318f 100644 --- a/src/driver/drv_bl0937.c +++ b/src/driver/drv_bl0937.c @@ -48,7 +48,7 @@ int BL0937_PowerSet(const void *context, const char *cmd, const char *args, int float realPower; if(args==0||*args==0) { - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } realPower = atof(args); @@ -56,14 +56,14 @@ int BL0937_PowerSet(const void *context, const char *cmd, const char *args, int { char dbg[128]; sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realPower, calib_p); - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,dbg); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,dbg); } return 0; } int BL0937_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"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } calib_p = atof(args); @@ -72,7 +72,7 @@ int BL0937_PowerRef(const void *context, const char *cmd, const char *args, int int BL0937_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"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } calib_c = atof(args); @@ -81,7 +81,7 @@ int BL0937_CurrentRef(const void *context, const char *cmd, const char *args, in int BL0937_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"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } calib_v = atof(args); @@ -91,7 +91,7 @@ int BL0937_VoltageSet(const void *context, const char *cmd, const char *args, in float realV; if(args==0||*args==0) { - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } realV = atof(args); @@ -99,7 +99,7 @@ int BL0937_VoltageSet(const void *context, const char *cmd, const char *args, in { char dbg[128]; sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realV, calib_v); - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,dbg); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,dbg); } return 0; @@ -108,7 +108,7 @@ int BL0937_CurrentSet(const void *context, const char *cmd, const char *args, in float realI; if(args==0||*args==0) { - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } realI = atof(args); @@ -116,7 +116,7 @@ int BL0937_CurrentSet(const void *context, const char *cmd, const char *args, in { char dbg[128]; sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realI, calib_c); - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,dbg); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,dbg); } return 0; } @@ -164,7 +164,7 @@ void BL0937_RunFrame() { res_p = g_p_pulses; g_p_pulses = 0; - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"Voltage pulses %i, current %i, power %i\n", res_v, res_c, res_p); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"Voltage pulses %i, current %i, power %i\n", res_v, res_c, res_p); final_v = res_v * calib_v; final_c = res_c * calib_c; @@ -172,7 +172,7 @@ void BL0937_RunFrame() { { char dbg[128]; sprintf(dbg,"Voltage %f, current %f, power %f\n", final_v, final_c, final_p); - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,dbg); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,dbg); } BL_ProcessUpdate(final_v,final_c,final_p); diff --git a/src/driver/drv_bl0942.c b/src/driver/drv_bl0942.c index d25f4ff58..edf7ea818 100644 --- a/src/driver/drv_bl0942.c +++ b/src/driver/drv_bl0942.c @@ -51,7 +51,7 @@ int BL0942_TryToGetNextBL0942Packet() { } } if(c_garbage_consumed > 0){ - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"Consumed %i unwanted non-header byte in BL0942 buffer\n", c_garbage_consumed); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"Consumed %i unwanted non-header byte in BL0942 buffer\n", c_garbage_consumed); } if(cs < BL0942_PACKET_LEN) { return 0; @@ -76,11 +76,11 @@ int BL0942_TryToGetNextBL0942Packet() { sprintf(buffer2,"%02X ",UART_GetNextByte(i)); strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log)); } - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"BL0942 received: %s\n", buffer_for_log); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"BL0942 received: %s\n", buffer_for_log); } #endif if(checksum != UART_GetNextByte(BL0942_PACKET_LEN-1)) { - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"Skipping packet with bad checksum %02X wanted %02X\n",checksum,UART_GetNextByte(BL0942_PACKET_LEN-1)); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"Skipping packet with bad checksum %02X wanted %02X\n",checksum,UART_GetNextByte(BL0942_PACKET_LEN-1)); UART_ConsumeBytes(BL0942_PACKET_LEN); return 1; } @@ -93,7 +93,7 @@ int BL0942_TryToGetNextBL0942Packet() { raw_unscaled_freq = (UART_GetNextByte(17) << 8) | UART_GetNextByte(16); // those are not values like 230V, but unscaled - //addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"Unscaled current %d, voltage %d, power %d, freq %d\n", raw_unscaled_current, raw_unscaled_voltage,raw_unscaled_power,raw_unscaled_freq); + //addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"Unscaled current %d, voltage %d, power %d, freq %d\n", raw_unscaled_current, raw_unscaled_voltage,raw_unscaled_power,raw_unscaled_freq); // those are final values, like 230V { @@ -111,7 +111,7 @@ int BL0942_TryToGetNextBL0942Packet() { char res[128]; // V=245.107925,I=109.921143,P=0.035618 sprintf(res,"V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]); - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,res ); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,res ); } #endif @@ -129,7 +129,7 @@ int BL0942_PowerSet(const void *context, const char *cmd, const char *args, int float realPower; if(args==0||*args==0) { - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } realPower = atof(args); @@ -137,14 +137,14 @@ int BL0942_PowerSet(const void *context, const char *cmd, const char *args, int { char dbg[128]; sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realPower, BL0942_PREF); - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,dbg); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,dbg); } return 0; } 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"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } BL0942_PREF = atof(args); @@ -153,7 +153,7 @@ int BL0942_PowerRef(const void *context, const char *cmd, const char *args, int 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"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } BL0942_IREF = atof(args); @@ -162,7 +162,7 @@ int BL0942_CurrentRef(const void *context, const char *cmd, const char *args, in 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"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } BL0942_UREF = atof(args); @@ -172,7 +172,7 @@ int BL0942_VoltageSet(const void *context, const char *cmd, const char *args, in float realV; if(args==0||*args==0) { - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } realV = atof(args); @@ -180,7 +180,7 @@ int BL0942_VoltageSet(const void *context, const char *cmd, const char *args, in { char dbg[128]; sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realV, BL0942_UREF); - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,dbg); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,dbg); } return 0; @@ -189,7 +189,7 @@ int BL0942_CurrentSet(const void *context, const char *cmd, const char *args, in float realI; if(args==0||*args==0) { - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"This command needs one argument"); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"This command needs one argument"); return 1; } realI = atof(args); @@ -197,7 +197,7 @@ int BL0942_CurrentSet(const void *context, const char *cmd, const char *args, in { char dbg[128]; sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realI, BL0942_IREF); - addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,dbg); + addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,dbg); } return 0; } @@ -215,7 +215,7 @@ void BL0942_Init() { void BL0942_RunFrame() { int len; - //addLogAdv(LOG_INFO, LOG_FEATURE_BL0942,"UART buffer size %i\n", UART_GetDataSize()); + //addLogAdv(LOG_INFO, LOG_FEATURE_BL09XX,"UART buffer size %i\n", UART_GetDataSize()); len = BL0942_TryToGetNextBL0942Packet(); if(len > 0) { diff --git a/src/driver/drv_bl_shared.c b/src/driver/drv_bl_shared.c index bbc40c216..452cf03d2 100644 --- a/src/driver/drv_bl_shared.c +++ b/src/driver/drv_bl_shared.c @@ -52,8 +52,17 @@ int changeSendAlwaysFrames = 60; void BL09XX_AppendInformationToHTTPIndexPage(http_request_t *request) { char tmp[128]; - sprintf(tmp, "