");
+
+ c = "";
+ if (!bt->color[0]) {
+ c = "bgrn";
+ }
+
+ poststr(request, " | ", bt->label);
+ poststr(request, "
");
+
+
+ }
+}
+
+commandResult_t CMD_setButtonColor(const void *context, const char *cmd, const char *args, int cmdFlags) {
+ int buttonIndex;
+ const char *cStr;
+
+ Tokenizer_TokenizeString(args, TOKENIZER_ALLOW_QUOTES);
+
+ if (Tokenizer_GetArgsCount() < 2) {
+ addLogAdv(LOG_INFO, LOG_FEATURE_CMD, "This command needs 2 arguments");
+ return CMD_RES_NOT_ENOUGH_ARGUMENTS;
+ }
+ buttonIndex = Tokenizer_GetArgInteger(0);
+ cStr = Tokenizer_GetArg(1);
+
+ setColor(buttonIndex, cStr);
+
+
+ return CMD_RES_OK;
+}
+
+commandResult_t CMD_setButtonCommand(const void *context, const char *cmd, const char *args, int cmdFlags) {
+ int buttonIndex;
+ const char *cmdToSet;
+
+ Tokenizer_TokenizeString(args, TOKENIZER_ALLOW_QUOTES);
+
+ if (Tokenizer_GetArgsCount() < 2) {
+ addLogAdv(LOG_INFO, LOG_FEATURE_CMD, "This command needs 2 arguments");
+ return CMD_RES_NOT_ENOUGH_ARGUMENTS;
+ }
+ buttonIndex = Tokenizer_GetArgInteger(0);
+ cmdToSet = Tokenizer_GetArg(1);
+
+ setCommand(buttonIndex, cmdToSet);
+
+ return CMD_RES_OK;
+}
+commandResult_t CMD_setButtonLabel(const void *context, const char *cmd, const char *args, int cmdFlags) {
+ int buttonIndex;
+ const char *lab;
+
+ Tokenizer_TokenizeString(args, TOKENIZER_ALLOW_QUOTES);
+
+ if (Tokenizer_GetArgsCount() < 2) {
+ addLogAdv(LOG_INFO, LOG_FEATURE_CMD, "This command needs 2 arguments");
+ return CMD_RES_NOT_ENOUGH_ARGUMENTS;
+ }
+ buttonIndex = Tokenizer_GetArgInteger(0);
+ lab = Tokenizer_GetArg(1);
+
+ setLabel(buttonIndex, lab);
+
+ return CMD_RES_OK;
+}
+commandResult_t CMD_setButtonEnabled(const void *context, const char *cmd, const char *args, int cmdFlags) {
+ int buttonIndex;
+ int bOn;
+
+ Tokenizer_TokenizeString(args,0);
+
+ if (Tokenizer_GetArgsCount() < 2) {
+ addLogAdv(LOG_INFO, LOG_FEATURE_CMD, "This command needs 2 arguments");
+ return CMD_RES_NOT_ENOUGH_ARGUMENTS;
+ }
+ buttonIndex = Tokenizer_GetArgInteger(0);
+ bOn = Tokenizer_GetArgInteger(1);
+
+ setEnabled(buttonIndex, bOn);
+ return CMD_RES_OK;
+}
+void DRV_InitHTTPButtons() {
+ CMD_RegisterCommand("setButtonColor", "", CMD_setButtonColor, NULL, NULL);
+ CMD_RegisterCommand("setButtonCommand", "", CMD_setButtonCommand, NULL, NULL);
+ CMD_RegisterCommand("setButtonLabel", "", CMD_setButtonLabel, NULL, NULL);
+ CMD_RegisterCommand("setButtonEnabled", "", CMD_setButtonEnabled, NULL, NULL);
+}
+
+
+
+
+
+
+
+
diff --git a/src/driver/drv_local.h b/src/driver/drv_local.h
index 8198564d3..7a7c71e05 100644
--- a/src/driver/drv_local.h
+++ b/src/driver/drv_local.h
@@ -59,3 +59,8 @@ void DRV_Toggler_AddToHtmlPage(http_request_t *request);
void DRV_Toggler_AppendInformationToHTTPIndexPage(http_request_t* request);
void DRV_InitPWMToggler();
+
+void DRV_HTTPButtons_ProcessChanges(http_request_t *request);
+void DRV_HTTPButtons_AddToHtmlPage(http_request_t *request);
+void DRV_InitHTTPButtons();
+
diff --git a/src/driver/drv_main.c b/src/driver/drv_main.c
index 99286e51a..2ccaa68b6 100644
--- a/src/driver/drv_main.c
+++ b/src/driver/drv_main.c
@@ -77,7 +77,8 @@ static driver_t g_drivers[] = {
//Test drivers
{ "TESTPOWER", Test_Power_Init, Test_Power_RunFrame, BL09XX_AppendInformationToHTTPIndexPage, NULL, NULL, NULL, false },
{ "TESTLED", Test_LED_Driver_Init, Test_LED_Driver_RunFrame, NULL, NULL, NULL, Test_LED_Driver_OnChannelChanged, false },
-
+ { "HTTPButtons", DRV_InitHTTPButtons, NULL, NULL, NULL, NULL, NULL, false },
+
#if PLATFORM_BEKEN
{ "SM16703P", SM16703P_Init, NULL, NULL, NULL, NULL, NULL, false },
diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c
index cb2b4ed4a..b13c27639 100644
--- a/src/httpserver/http_fns.c
+++ b/src/httpserver/http_fns.c
@@ -229,6 +229,11 @@ int http_fn_index(http_request_t* request) {
if (DRV_IsRunning("PWMToggler")) {
DRV_Toggler_ProcessChanges(request);
}
+#endif
+#if defined(PLATFORM_BEKEN) || defined(WINDOWS)
+ if (DRV_IsRunning("httpButtons")) {
+ DRV_HTTPButtons_ProcessChanges(request);
+ }
#endif
if (http_getArg(request->url, "tgl", tmpA, sizeof(tmpA))) {
j = atoi(tmpA);
@@ -717,6 +722,11 @@ int http_fn_index(http_request_t* request) {
DRV_Toggler_AddToHtmlPage(request);
}
#endif
+#if defined(PLATFORM_BEKEN) || defined(WINDOWS)
+ if (DRV_IsRunning("httpButtons")) {
+ DRV_HTTPButtons_AddToHtmlPage(request);
+ }
+#endif
poststr(request, "");
#ifndef OBK_DISABLE_ALL_DRIVERS