Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
openshwprojects committed Mar 8, 2023
2 parents 1c9f644 + 81f981c commit 25548ad
Show file tree
Hide file tree
Showing 6 changed files with 230 additions and 66 deletions.
16 changes: 8 additions & 8 deletions src/cmnds/cmd_public.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ typedef enum commandResult_e {

} commandResult_t;

typedef commandResult_t (*commandHandler_t)(const void* context, const char* cmd, const char* args, int flags);
typedef commandResult_t(*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
Expand All @@ -37,12 +37,12 @@ void CMD_Init_Early();
void CMD_Init_Delayed();
void CMD_FreeAllCommands();
void CMD_RunUartCmndIfRequired();
void CMD_RegisterCommand(const char* name, commandHandler_t handler, void* context);
void CMD_RegisterCommand(const char* name, commandHandler_t handler, void* context);
commandResult_t CMD_ExecuteCommand(const char* s, int cmdFlags);
commandResult_t CMD_ExecuteCommandArgs(const char* cmd, const char* args, int cmdFlags);
// like a strdup, but will expand constants.
// Please remember to free the returned string
char *CMD_ExpandingStrdup(const char *in);
char* CMD_ExpandingStrdup(const char* in);

enum EventCode {
CMD_EVENT_NONE,
Expand Down Expand Up @@ -147,7 +147,7 @@ enum LightMode {

// cmd_tokenizer.c
int Tokenizer_GetArgsCount();
bool Tokenizer_CheckArgsCountAndPrintWarning(const char *cmdStr, int reqCount);
bool Tokenizer_CheckArgsCountAndPrintWarning(const char* cmdStr, int reqCount);
const char* Tokenizer_GetArg(int i);
const char* Tokenizer_GetArgFrom(int i);
int Tokenizer_GetArgInteger(int i);
Expand Down Expand Up @@ -233,15 +233,15 @@ void CMD_StartTCPCommandLine();
// cmd_script.c
int CMD_GetCountActiveScriptThreads();

const char *CMD_GetResultString(commandResult_t r);
const char* CMD_GetResultString(commandResult_t r);

void SVM_RunThreads(int deltaMS);
void CMD_InitScripting();
byte* LFS_ReadFile(const char* fname);

commandResult_t CMD_ClearAllHandlers(const void *context, const char *cmd, const char *args, int cmdFlags);
commandResult_t RepeatingEvents_Cmd_ClearRepeatingEvents(const void *context, const char *cmd, const char *args, int cmdFlags);
commandResult_t CMD_resetSVM(const void *context, const char *cmd, const char *args, int cmdFlags);
commandResult_t CMD_ClearAllHandlers(const void* context, const char* cmd, const char* args, int cmdFlags);
commandResult_t RepeatingEvents_Cmd_ClearRepeatingEvents(const void* context, const char* cmd, const char* args, int cmdFlags);
commandResult_t CMD_resetSVM(const void* context, const char* cmd, const char* args, int cmdFlags);
int RepeatingEvents_GetActiveCount();

#endif // __CMD_PUBLIC_H__
16 changes: 15 additions & 1 deletion src/driver/drv_battery.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
#include "../httpserver/new_http.h"
#include "../hal/hal_pins.h"
#include "../hal/hal_adc.h"

#include "drv_battery.h"

static int g_pin_adc = 0, channel_adc = 0, channel_rel = 0, g_pin_rel = 0, g_battcycle = 1, g_battcycleref = 10;
static float g_battvoltage = 0.0, g_battlevel = 0.0;
static int g_lastbattvoltage = 0, g_lastbattlevel = 0;
static float g_vref = 2400, g_vdivider = 2.29, g_maxbatt = 3000, g_minbatt = 2000, g_adcbits = 4096;

static void Batt_Measure() {
Expand Down Expand Up @@ -56,9 +56,23 @@ static void Batt_Measure() {

MQTT_PublishMain_StringInt("voltage", (int)g_battvoltage);
MQTT_PublishMain_StringInt("battery", (int)g_battlevel);
g_lastbattlevel = (int)g_battlevel;
g_lastbattvoltage = (int)g_battvoltage;
ADDLOG_INFO(LOG_FEATURE_DRV, "DRV_BATTERY : battery voltage : %f and percentage %f%%", g_battvoltage, g_battlevel);
}

int Battery_lastreading(int type)
{
if (type == OBK_BATT_VOLTAGE)
{
return g_lastbattvoltage;
}
else if (type == OBK_BATT_LEVEL)
{
return g_lastbattlevel;
}
return 0;
}
commandResult_t Battery_Setup(const void* context, const char* cmd, const char* args, int cmdFlags) {

Tokenizer_TokenizeString(args, TOKENIZER_ALLOW_QUOTES | TOKENIZER_DONT_EXPAND);
Expand Down
9 changes: 8 additions & 1 deletion src/driver/drv_battery.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@


// battery public void
int Battery_lastreading();

// read last value of battery driver value
enum {
OBK_BATT_VOLTAGE,
OBK_BATT_LEVEL
};



Expand Down
18 changes: 17 additions & 1 deletion src/driver/drv_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,8 @@ static driver_t g_drivers[] = {
//drvdetail:"descr":"Humidity/temperature sensor. See [SHT Sensor tutorial topic here](https://www.elektroda.com/rtvforum/topic3958369.html), also see [this sensor teardown](https://www.elektroda.com/rtvforum/topic3945688.html)",
//drvdetail:"requires":""}
{ "SHT3X", SHT3X_Init, SHT3X_OnEverySecond, SHT3X_AppendInformationToHTTPIndexPage, NULL, SHT3X_StopDriver, NULL, false },
#endif
#if defined(PLATFORM_BEKEN) || defined(WINDOWS)
//drvdetail:{"name":"Battery",
//drvdetail:"title":"TODO",
//drvdetail:"descr":"Custom mechanism to measure battery level with ADC and an optional relay. See [example here](https://www.elektroda.com/rtvforum/topic3959103.html).",
Expand Down Expand Up @@ -460,8 +462,22 @@ void DRV_AppendInformationToHTTPIndexPage(http_request_t* request) {

bool DRV_IsMeasuringPower() {
#ifndef OBK_DISABLE_ALL_DRIVERS
return DRV_IsRunning("BL0937") || DRV_IsRunning("BL0942") || DRV_IsRunning("CSE7766") || DRV_IsRunning("TESTPOWER");
return DRV_IsRunning("BL0937") || DRV_IsRunning("BL0942") || DRV_IsRunning("CSE7766") || DRV_IsRunning("TESTPOWER") || DRV_IsRunning("Battery");
#else
return false;
#endif
}
bool DRV_IsMeasuring() {
#ifndef OBK_DISABLE_ALL_DRIVERS
return DRV_IsRunning("BL0937") || DRV_IsRunning("BL0942") || DRV_IsRunning("CSE7766") || DRV_IsRunning("TESTPOWER") || DRV_IsRunning("Battery");
#else
return false;
#endif
}
bool DRV_IsSensor() {
#ifndef OBK_DISABLE_ALL_DRIVERS
return DRV_IsRunning("SHT3X") || DRV_IsRunning("CHT8305");
#else
return false;
#endif
}
11 changes: 6 additions & 5 deletions src/driver/drv_public.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ enum {
OBK_CONSUMPTION_TOTAL = OBK_NUM_MEASUREMENTS,
OBK_CONSUMPTION_LAST_HOUR,
OBK_CONSUMPTION_STATS,
OBK_CONSUMPTION_YESTERDAY,
OBK_CONSUMPTION_TODAY,
OBK_CONSUMPTION_CLEAR_DATE,
OBK_NUM_EMUNS_MAX
OBK_CONSUMPTION_YESTERDAY,
OBK_CONSUMPTION_TODAY,
OBK_CONSUMPTION_CLEAR_DATE,
OBK_NUM_EMUNS_MAX
};

#define OBK_NUM_COUNTERS (OBK_NUM_EMUNS_MAX-OBK_NUM_MEASUREMENTS)
Expand Down Expand Up @@ -46,14 +46,15 @@ void DRV_OnChannelChanged(int channel, int iVal);
void SM2135_Write(float* rgbcw);
void BP5758D_Write(float* rgbcw);
void BP1658CJ_Write(float* rgbcw);
void SM2235_Write(float *rgbcw);
void SM2235_Write(float* rgbcw);
void DRV_DGR_OnLedDimmerChange(int iVal);
void DRV_DGR_OnLedEnableAllChange(int iVal);
void DRV_DGR_OnLedFinalColorsChange(byte rgbcw[5]);

// OBK_POWER etc
float DRV_GetReading(int type);
bool DRV_IsMeasuringPower();
bool DRV_IsSensor();
void BL09XX_SaveEmeteringStatistics();

#endif /* __DRV_PUBLIC_H__ */
Expand Down

0 comments on commit 25548ad

Please sign in to comment.