Browse Source

add new settings in web

balbekova 6 năm trước cách đây
mục cha
commit
dd167e303e

+ 8 - 0
modules/HTTP_Server/http_server.c

@@ -929,6 +929,14 @@ void HTTP_SetSettings(char *buf, uint16_t lenBuf)
       memset(str, 0, len);
   }
   
+  GetParamValue(buf, "ups_cell_min=", value, &valueLen);
+  SetUPSVoltCellMinStr(value);
+  memset(value, 0, len);
+
+  GetParamValue(buf, "ups_cell_max=", value, &valueLen);
+  SetUPSVoltCellMaxStr(value);
+  memset(value, 0, len);
+
   /* Если параметры WEB изменились выставляем флаг, сохраняем настройки и перезагружаемся */
   if (GetStateWebReinit() == true)
   {	

+ 8 - 0
modules/HTTP_Server/my_ssl_server.c

@@ -842,6 +842,14 @@ void HTTP_SetSettings(char *buf, uint16_t lenBuf)
       memset(str, 0, len);
   }
 
+  GetParamValue(buf, "ups_cell_min=", value, &valueLen);
+  SetUPSVoltCellMinStr(value);
+  memset(value, 0, len);
+
+  GetParamValue(buf, "ups_cell_max=", value, &valueLen);
+  SetUPSVoltCellMaxStr(value);
+  memset(value, 0, len);
+
   /* Если параметры WEB изменились выставляем флаг, сохраняем настройки и перезагружаемся */
   if (GetStateWebReinit() == true)
   {

+ 10 - 2
modules/HTTP_Server/web_params_api.c

@@ -282,12 +282,20 @@ void HTTP_GetSettings(char *buf)
   strncat(buf, str, len);
 
   GetUnixTimeStr(str, &len);
-   strcat(buf, "\",\"utm\":\"");
-   strncat(buf, str, len);
+  strcat(buf, "\",\"utm\":\"");
+  strncat(buf, str, len);
 
   GetSntpLastDataStr(str, &len);
   strcat(buf, "\",\"lastsynctime\":\"");
   strncat(buf, str, len);
+
+  GetUPSVoltCellMinStr(str, &len);
+  strcat(buf, "\",\"ups_cell_min\":\"");
+  strncat(buf, str, len);
+
+  GetUPSVoltCellMaxStr(str, &len);
+  strcat(buf, "\",\"ups_cell_max\":\"");
+  strncat(buf, str, len);
  
   /* Признак изменения сетевых настроек */ 
   GetWebReinitFlag(str, &len);

+ 18 - 0
modules/common/round.c

@@ -0,0 +1,18 @@
+#ifdef PRINTF_STDLIB
+#include <stdio.h>
+#endif
+#ifdef PRINTF_CUSTOM
+#include "tinystdio.h"
+#endif
+
+float roundto(float value, unsigned char digits) {
+    unsigned long int pw = 10;
+    for (unsigned char i = 0; i < digits; i++)
+        pw = pw * 10;
+
+    if (value == 0)
+        return 0;
+
+    value = value >= 0 ? value + (5.0/pw) : value - (5.0/pw);
+    return value;
+}

+ 13 - 0
modules/common/round.h

@@ -0,0 +1,13 @@
+/*
+ * round.h
+ *
+ *  Created on: 02.12.2016
+ *      Author: pavel
+ */
+
+#ifndef ROUND_H_
+#define ROUND_H_
+
+float roundto(float value, uint8_t digits);
+
+#endif /* ROUND_H_ */

+ 40 - 0
modules/parameters.c

@@ -29,6 +29,7 @@
 #include "common_config.h"
 //#include "d_inouts.h"
 #include "gpio.h"
+#include "round.h"
 //#if defined HARDWARE_BT6702
 #ifdef PRINTF_STDLIB
 #include <stdio.h>
@@ -950,6 +951,27 @@ void GetWebReinitFlag(char *str, uint8_t *len)
   
 }
 
+// ************************************************************************** //
+//                             Параметры настройки ИБП
+
+/**
+  * @brief  Минимальное напряжение на ячейках АКБ
+  */
+void GetUPSVoltCellMinStr(char *str, uint8_t *len)
+{
+	sprintf(str, "%0.2f", roundto(sSettings.UPS_Setting.Ucellmin, 2));
+	*len = strlen(str);
+}
+
+/**
+  * @brief  Максимальное напряжение на ячейках АКБ
+  */
+void GetUPSVoltCellMaxStr(char *str, uint8_t *len)
+{
+	sprintf(str, "%0.2f", roundto(sSettings.UPS_Setting.Ucellmax, 2));
+	*len = strlen(str);
+}
+
 // ************************************************************************** //
 //                             Установка параметрв
 // ************************************************************************** //
@@ -1407,5 +1429,23 @@ void SetROInt(uint8_t val, uint8_t num)
 	set_state_douts((DOUT1+num), val);
 }
 
+// ************************************************************************** //
+//                             Параметры настройки ИБП
+
+/**
+  * @brief  Минимальное напряжение на ячейках АКБ
+  */
+void SetUPSVoltCellMinStr(char *str)
+{
+	sSettings.UPS_Setting.Ucellmin = atof(str);
+}
+
+/**
+  * @brief  Максимальное напряжение на ячейках АКБ
+  */
+void SetUPSVoltCellMaxStr(char *str)
+{
+	sSettings.UPS_Setting.Ucellmax = atof(str);
+}
 
 /********************************* (C) РОТЕК **********************************/

+ 25 - 0
modules/parameters.h

@@ -389,6 +389,18 @@ void GetTelnetEnableStateStr(char *str, uint8_t *len);
   */
 void GetWebReinitFlag(char *str, uint8_t *len);
 
+// ************************************************************************** //
+//                             Параметры настройки ИБП
+
+/**
+  * @brief  Минимальное напряжение на ячейках АКБ
+  */
+void GetUPSVoltCellMinStr(char *str, uint8_t *len);
+
+/**
+  * @brief  Максимальное напряжение на ячейках АКБ
+  */
+void GetUPSVoltCellMaxStr(char *str, uint8_t *len);
 
 // ************************************************************************** //
 //                             Установка параметрв
@@ -596,6 +608,19 @@ void SetROStr(char *str, uint8_t num);
   */
 void SetROInt(uint8_t val, uint8_t num);
 
+// ************************************************************************** //
+//                             Параметры настройки ИБП
+
+/**
+  * @brief  Минимальное напряжение на ячейках АКБ
+  */
+void SetUPSVoltCellMinStr(char *str);
+
+/**
+  * @brief  Максимальное напряжение на ячейках АКБ
+  */
+void SetUPSVoltCellMaxStr(char *str);
+
 
 #endif /* #ifndef PARAMETERS_H */