balbekova 5 years ago
parent
commit
d2718e2cb0

+ 2 - 1
config/board_bt6703.h

@@ -98,7 +98,7 @@ XSETTING( char, our_srv_crt[1705], SETTINGS_SetSSLcrtDef, PART_DEFAULT_1 ) \
   XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3,                           SetManagerIp3) \
   XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3,                           SetManagerIp3) \
   XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4,                           SetManagerIp4) \
   XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4,                           SetManagerIp4) \
   XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5,                           SetManagerIp5) \
   XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5,                           SetManagerIp5) \
-  XJSON_SETTINGS_TAG("di1",                GetDIN1TypeActStr,                       SetDIN1TypeActStr) \
+  XJSON_SETTINGS_TAG("di1",                GetDIN0TypeActStr,                       SetDIN0TypeActStr) \
   XJSON_SETTINGS_TAG("ro1",                GetRO0TypeActStr,                        SetRO1TypeActStr) \
   XJSON_SETTINGS_TAG("ro1",                GetRO0TypeActStr,                        SetRO1TypeActStr) \
   XJSON_SETTINGS_TAG("ro2",                GetRO1TypeActStr,                        SetRO2TypeActStr) \
   XJSON_SETTINGS_TAG("ro2",                GetRO1TypeActStr,                        SetRO2TypeActStr) \
   XJSON_SETTINGS_TAG("ipaddr",             GetIpStr,                                SetIPStr) \
   XJSON_SETTINGS_TAG("ipaddr",             GetIpStr,                                SetIPStr) \
@@ -225,6 +225,7 @@ typedef enum {
 #define BAT_CONNECT_MONITOR
 #define BAT_CONNECT_MONITOR
 #define UPS_CONNECT_MONITOR
 #define UPS_CONNECT_MONITOR
 #define DIN_MONITOR
 #define DIN_MONITOR
+#define TYPE_CRITICAL_ALARM_MONITOR
 
 
 #define MONITOR_TABLE \
 #define MONITOR_TABLE \
   XMONITOR(UPS_TestFinishMonitor,                 UPS.Present) \
   XMONITOR(UPS_TestFinishMonitor,                 UPS.Present) \

+ 1 - 1
config/board_bt6707.h

@@ -113,7 +113,7 @@ XSETTING( TELNET_t, sTelnet, SETTINGS_SetTelnetDef, PART_DEFAULT_1 ) \
   XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3,                             SetManagerIp3) \
   XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3,                             SetManagerIp3) \
   XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4,                             SetManagerIp4) \
   XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4,                             SetManagerIp4) \
   XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5,                             SetManagerIp5) \
   XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5,                             SetManagerIp5) \
-  XJSON_SETTINGS_TAG("di1",                GetDIN1TypeActStr,                         SetDIN1TypeActStr) \
+  XJSON_SETTINGS_TAG("di1",                GetDIN0TypeActStr,                         SetDIN0TypeActStr) \
   XJSON_SETTINGS_TAG("ro1",                GetRO0TypeActStr,                          SetRO1TypeActStr) \
   XJSON_SETTINGS_TAG("ro1",                GetRO0TypeActStr,                          SetRO1TypeActStr) \
   XJSON_SETTINGS_TAG("ro2",                GetRO1TypeActStr,                          SetRO2TypeActStr) \
   XJSON_SETTINGS_TAG("ro2",                GetRO1TypeActStr,                          SetRO2TypeActStr) \
   XJSON_SETTINGS_TAG("ro3",                GetRO2TypeActStr,                          SetRO3TypeActStr) \
   XJSON_SETTINGS_TAG("ro3",                GetRO2TypeActStr,                          SetRO3TypeActStr) \

+ 16 - 14
config/board_bt6710.h

@@ -93,6 +93,7 @@ XSETTING( DIN_Settings_t,	sDINs[INPUTS_TOTAL_COUNT], SETTINGS_SetDINSDef, ALL_DE
 XSETTING( UPS_Setting_t, UPS_Setting, SETTINGS_SetUPSSettingsDef, ALL_DEFAULT ) \
 XSETTING( UPS_Setting_t, UPS_Setting, SETTINGS_SetUPSSettingsDef, ALL_DEFAULT ) \
 XSETTING( ALARM_MNGR_t, sAlarmManager, SETTINGS_SetAlarmManagerDef, ALL_DEFAULT ) \
 XSETTING( ALARM_MNGR_t, sAlarmManager, SETTINGS_SetAlarmManagerDef, ALL_DEFAULT ) \
 XSETTING( PORTGW_t, sPortGw, SETTINGS_SetPortGwDef, ALL_DEFAULT ) \
 XSETTING( PORTGW_t, sPortGw, SETTINGS_SetPortGwDef, ALL_DEFAULT ) \
+XSETTING( TEMP_COTROL_t, sTempControl[MAX_T_SENSORS], SETTINGS_SetTempControlDef, ALL_DEFAULT ) \
 
 
 #define SNMP_DEV_ROOT_OID       9
 #define SNMP_DEV_ROOT_OID       9
 
 
@@ -106,12 +107,12 @@ XSETTING( PORTGW_t, sPortGw, SETTINGS_SetPortGwDef, ALL_DEFAULT ) \
   XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3,                             SetManagerIp3) \
   XJSON_SETTINGS_TAG("managerIP3",         GetManagerIp3,                             SetManagerIp3) \
   XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4,                             SetManagerIp4) \
   XJSON_SETTINGS_TAG("managerIP4",         GetManagerIp4,                             SetManagerIp4) \
   XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5,                             SetManagerIp5) \
   XJSON_SETTINGS_TAG("managerIP5",         GetManagerIp5,                             SetManagerIp5) \
-  XJSON_SETTINGS_TAG("di1",                GetDIN1TypeActStr,                          SetDIN1TypeActStr) \
-  XJSON_SETTINGS_TAG("di_name1",           GetDIN1TypeActStr,                           SetDIN1TypeActStr) \
-  XJSON_SETTINGS_TAG("di2",                GetDIN1TypeActStr,                          SetDIN1TypeActStr) \
-  XJSON_SETTINGS_TAG("di_name2",           GetDIN1TypeActStr,                           SetDIN1TypeActStr) \
-  XJSON_SETTINGS_TAG("type_ts1",           GetDIN1TypeActStr,                           SetDIN1TypeActStr) \
-  XJSON_SETTINGS_TAG("type_ts2",           GetDIN1TypeActStr,                           SetDIN1TypeActStr) \
+  XJSON_SETTINGS_TAG("di1",                GetDIN0TypeActStr,                         SetDIN0TypeActStr) \
+  XJSON_SETTINGS_TAG("di_name1",           GetDIN0NameStr,                            SetDIN0NameStr) \
+  XJSON_SETTINGS_TAG("di2",                GetDIN1TypeActStr,                         SetDIN1TypeActStr) \
+  XJSON_SETTINGS_TAG("di_name2",           GetDIN1NameStr,                            SetDIN1NameStr) \
+  XJSON_SETTINGS_TAG("type_ts1",           GetTS1locationStr,                         SetTS1locationStr) \
+  XJSON_SETTINGS_TAG("type_ts2",           GetTS2locationStr,                         SetTS2locationStr) \
   XJSON_SETTINGS_TAG("ipaddr",             GetIpStr,                                  SetIPStr) \
   XJSON_SETTINGS_TAG("ipaddr",             GetIpStr,                                  SetIPStr) \
   XJSON_SETTINGS_TAG("gw",                 GetGatewayStr,                             SetGatewayStr) \
   XJSON_SETTINGS_TAG("gw",                 GetGatewayStr,                             SetGatewayStr) \
   XJSON_SETTINGS_TAG("mask",               GetMaskStr,                                SetMaskStr) \
   XJSON_SETTINGS_TAG("mask",               GetMaskStr,                                SetMaskStr) \
@@ -137,9 +138,9 @@ XSETTING( PORTGW_t, sPortGw, SETTINGS_SetPortGwDef, ALL_DEFAULT ) \
   XJSON_SETTINGS_TAG("temp_high",          GetTemperatureAlarmHighRangeStr,           SetTemperatureAlarmHighRangeStr) \
   XJSON_SETTINGS_TAG("temp_high",          GetTemperatureAlarmHighRangeStr,           SetTemperatureAlarmHighRangeStr) \
   XJSON_SETTINGS_TAG("temp_low",           GetTemperatureAlarmLowRangeStr,            SetTemperatureAlarmLowRangeStr) \
   XJSON_SETTINGS_TAG("temp_low",           GetTemperatureAlarmLowRangeStr,            SetTemperatureAlarmLowRangeStr) \
   XJSON_SETTINGS_TAG("temp_hist",          GetTemperatureAlarmHisteStr,               SetTemperatureAlarmHisteStr) \
   XJSON_SETTINGS_TAG("temp_hist",          GetTemperatureAlarmHisteStr,               SetTemperatureAlarmHisteStr) \
-  XJSON_SETTINGS_TAG("case_temp_high",     GetTemperatureAlarmHighRangeStr,           SetTemperatureAlarmHighRangeStr) \
-  XJSON_SETTINGS_TAG("case_temp_low",      GetTemperatureAlarmLowRangeStr,            SetTemperatureAlarmLowRangeStr) \
-  XJSON_SETTINGS_TAG("case_temp_hist",     GetTemperatureAlarmHisteStr,               SetTemperatureAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("case_temp_high",     GetTemperatureCabinetAlarmHighRangeStr,    SetTemperatureCabinetAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("case_temp_low",      GetTemperatureCabinetAlarmLowRangeStr,     SetTemperatureCabinetAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("case_temp_hist",     GetTemperatureCabinetAlarmHisteStr,        SetTemperatureCabinetAlarmHisteStr) \
   XJSON_SETTINGS_TAG("netsettings_changed",GetWebReinitFlag,                          SetEmptyFuncStr) \
   XJSON_SETTINGS_TAG("netsettings_changed",GetWebReinitFlag,                          SetEmptyFuncStr) \
 
 
 #define WEB_PARAMS_TAGS_TABLE \
 #define WEB_PARAMS_TAGS_TABLE \
@@ -153,9 +154,9 @@ XSETTING( PORTGW_t, sPortGw, SETTINGS_SetPortGwDef, ALL_DEFAULT ) \
   XJSON_PARAMS_TAG("bat_time_left",      GetRuntimeStr) \
   XJSON_PARAMS_TAG("bat_time_left",      GetRuntimeStr) \
   XJSON_PARAMS_TAG("case_temp",          GetInternalTempStr) \
   XJSON_PARAMS_TAG("case_temp",          GetInternalTempStr) \
   XJSON_PARAMS_TAG("di1",                GetDIN0StatusStr) \
   XJSON_PARAMS_TAG("di1",                GetDIN0StatusStr) \
-  XJSON_PARAMS_TAG("di_name1",           GetDIN0StatusStr) \
-  XJSON_PARAMS_TAG("di2",                GetDIN0StatusStr) \
-  XJSON_PARAMS_TAG("di_name2",           GetDIN0StatusStr) \
+  XJSON_PARAMS_TAG("di_name1",           GetDIN0NameStr) \
+  XJSON_PARAMS_TAG("di2",                GetDIN1StatusStr) \
+  XJSON_PARAMS_TAG("di_name2",           GetDIN1NameStr) \
   XJSON_PARAMS_TAG("m_alarm",            GetAlarmMonitorStr) \
   XJSON_PARAMS_TAG("m_alarm",            GetAlarmMonitorStr) \
   XJSON_PARAMS_TAG("u_alarm",            GetAlarmStr) \
   XJSON_PARAMS_TAG("u_alarm",            GetAlarmStr) \
   XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
   XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
@@ -166,8 +167,8 @@ XSETTING( PORTGW_t, sPortGw, SETTINGS_SetPortGwDef, ALL_DEFAULT ) \
   XTRAP(DEVICE_RESTORED,                   1,      true,      GetVersionStr) \
   XTRAP(DEVICE_RESTORED,                   1,      true,      GetVersionStr) \
   XTRAP(DI0_NORM,                          5,      true,      GetDIN0StatusStr) \
   XTRAP(DI0_NORM,                          5,      true,      GetDIN0StatusStr) \
   XTRAP(DI0_ALARM,                         5,      true,      GetDIN0StatusStr) \
   XTRAP(DI0_ALARM,                         5,      true,      GetDIN0StatusStr) \
-  XTRAP(DI1_NORM,                          6,      true,      GetDIN0StatusStr) \
-  XTRAP(DI1_ALARM,                         6,      true,      GetDIN0StatusStr) \
+  XTRAP(DI1_NORM,                          6,      true,      GetDIN1StatusStr) \
+  XTRAP(DI1_ALARM,                         6,      true,      GetDIN1StatusStr) \
   XTRAP(BATTERY_HIGH_TEMPERATURE_NORM,     10,     true,      GetInternalTempStr) \
   XTRAP(BATTERY_HIGH_TEMPERATURE_NORM,     10,     true,      GetInternalTempStr) \
   XTRAP(BATTERY_HIGH_TEMPERATURE_ALARM,    10,     true,      GetInternalTempStr) \
   XTRAP(BATTERY_HIGH_TEMPERATURE_ALARM,    10,     true,      GetInternalTempStr) \
   XTRAP(LINE_ALARM,                        12,     true,      GetInputVoltageStr) \
   XTRAP(LINE_ALARM,                        12,     true,      GetInputVoltageStr) \
@@ -272,4 +273,5 @@ typedef enum
 #define LED_INIT_ERR              LED_INIT_R
 #define LED_INIT_ERR              LED_INIT_R
 #define LED_ALARM                 LED_STAT_R
 #define LED_ALARM                 LED_STAT_R
 
 
+
 #endif /* BOARD_PRS_H */
 #endif /* BOARD_PRS_H */

+ 43 - 22
modules/HTTP_Server/http_server.c

@@ -723,7 +723,7 @@ char *HTTP_HistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
     ClearParamString(bufIn);
     ClearParamString(bufIn);
 
 
     memset(value, 0, 20);
     memset(value, 0, 20);
-    GetParamValue(bufIn, "page=", value, &valueLen);
+    GetParamValue(bufIn, "page", value, &valueLen);
 
 
     if (strcmp(value, "all") == 0) {
     if (strcmp(value, "all") == 0) {
         if (!LOG_IsInit()) {
         if (!LOG_IsInit()) {
@@ -773,7 +773,7 @@ char *HTTP_UpsHistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t l
     ClearParamString(bufIn);
     ClearParamString(bufIn);
 
 
     memset(value, 0, 20);
     memset(value, 0, 20);
-    GetParamValue(bufIn, "page=", value, &valueLen);
+    GetParamValue(bufIn, "page", value, &valueLen);
 
 
     if (strcmp(value, "all") == 0) {
     if (strcmp(value, "all") == 0) {
         if (!LOG_IsInit()) {
         if (!LOG_IsInit()) {
@@ -827,7 +827,7 @@ void HTTP_Prodate(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn,
     ClearParamString(bufIn);
     ClearParamString(bufIn);
 
 
     memset(value, 0, 20);
     memset(value, 0, 20);
-    GetParamValue(bufIn, "prodate=", value, &valueLen);
+    GetParamValue(bufIn, "prodate", value, &valueLen);
     /*
     /*
     printf("Prodate: ");
     printf("Prodate: ");
     printf(value);
     printf(value);
@@ -862,6 +862,7 @@ char *HTTP_SetSettingsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t
     if (DataFlag2 == 0) {
     if (DataFlag2 == 0) {
         TotalReceived = 0;
         TotalReceived = 0;
         memset(bufOut, 0, strlen(bufOut));
         memset(bufOut, 0, strlen(bufOut));
+        bufOut[0] = '0';
         // parse packet for Content-length field
         // parse packet for Content-length field
         size = Parse_Content_Length(bufIn, lenBufIn);
         size = Parse_Content_Length(bufIn, lenBufIn);
         DataOffset = strstr(bufIn, "managerIP");
         DataOffset = strstr(bufIn, "managerIP");
@@ -1029,6 +1030,7 @@ char *HTTP_SetInfoPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
     if (DataFlag == 0) {
     if (DataFlag == 0) {
         TotalReceived = 0;
         TotalReceived = 0;
         memset(bufOut, 0, strlen(bufOut));
         memset(bufOut, 0, strlen(bufOut));
+        bufOut[0] = '0';
         // parse packet for Content-length field
         // parse packet for Content-length field
         size = Parse_Content_Length(bufIn, lenBufIn);
         size = Parse_Content_Length(bufIn, lenBufIn);
         DataOffset = strstr(bufIn, "sysname");
         DataOffset = strstr(bufIn, "sysname");
@@ -1093,25 +1095,25 @@ void HTTP_SetInfo(char *buf, uint16_t lenBuf)
     memset(value, 0, len);
     memset(value, 0, len);
 
 
     /* Название устройства */
     /* Название устройства */
-    GetParamValue(buf, "sysname=", value, &valueLen);
+    GetParamValue(buf, "sysname", value, &valueLen);
     url_decode(str, sizeof(str), value);
     url_decode(str, sizeof(str), value);
     SetNameDeviceStr(str);
     SetNameDeviceStr(str);
     memset(value, 0, len);
     memset(value, 0, len);
 
 
     /* Владелец */
     /* Владелец */
-    GetParamValue(buf, "owner=", value, &valueLen);
+    GetParamValue(buf, "owner", value, &valueLen);
     url_decode(str, sizeof(str), value);
     url_decode(str, sizeof(str), value);
     SetOwner(str);
     SetOwner(str);
     memset(value, 0, len);
     memset(value, 0, len);
 
 
     /* Владелец */
     /* Владелец */
-    GetParamValue(buf, "sysLocation=", value, &valueLen);
+    GetParamValue(buf, "sysLocation", value, &valueLen);
     url_decode(str, sizeof(str), value);
     url_decode(str, sizeof(str), value);
     SetLocation(str);
     SetLocation(str);
     memset(value, 0, len);
     memset(value, 0, len);
 
 
     /* Комментарий */
     /* Комментарий */
-    GetParamValue(buf, "comment=", value, &valueLen);
+    GetParamValue(buf, "comment", value, &valueLen);
     url_decode(str, sizeof(str), value);
     url_decode(str, sizeof(str), value);
     SetComment(str);
     SetComment(str);
     memset(value, 0, len);
     memset(value, 0, len);
@@ -1236,7 +1238,7 @@ char *HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
 
 
     strcpy(bufOut, HTTP_200_OK);
     strcpy(bufOut, HTTP_200_OK);
 
 
-    GetParamValue(bufIn, "func=", tempValue, &valueLen);
+    GetParamValue(bufIn, "func", tempValue, &valueLen);
     if (strcmp(tempValue, "stop") == 0) {
     if (strcmp(tempValue, "stop") == 0) {
         res = ups_metac_service_pdu(ups_cancel_test);
         res = ups_metac_service_pdu(ups_cancel_test);
         if (res == 1 || res == 0) {
         if (res == 1 || res == 0) {
@@ -1258,7 +1260,7 @@ char *HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
             strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
             strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
         }
         }
     } else if (strncmp(tempValue, "time", 6) == 0) {
     } else if (strncmp(tempValue, "time", 6) == 0) {
-        GetParamValue(bufIn, "=", tempValue2, &valueLen);
+        GetParamValue(bufIn, "time", tempValue2, &valueLen);
         TimeParam = atoi(tempValue2);
         TimeParam = atoi(tempValue2);
         res = ups_metac_service_pdu(ups_test_time);
         res = ups_metac_service_pdu(ups_test_time);
         if (res == 1 || res == 0) {
         if (res == 1 || res == 0) {
@@ -1297,7 +1299,7 @@ char *HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
 
 
     strcpy(bufOut, HTTP_200_OK);
     strcpy(bufOut, HTTP_200_OK);
 
 
-    GetParamValue(bufIn, "func=", tempValue, &valueLen);
+    GetParamValue(bufIn, "func", tempValue, &valueLen);
     if (strcmp(tempValue, "reboot") == 0) {
     if (strcmp(tempValue, "reboot") == 0) {
         res = ups_metac_service_pdu(ups_cancel_shut_down);
         res = ups_metac_service_pdu(ups_cancel_shut_down);
         if (res == 1) {
         if (res == 1) {
@@ -1310,7 +1312,7 @@ char *HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
         }
         }
     } else if (strncmp(tempValue, "off", 5) == 0) {
     } else if (strncmp(tempValue, "off", 5) == 0) {
         memset(tempValue2, 0, 50);
         memset(tempValue2, 0, 50);
-        GetParamValue(bufIn, "after=", tempValue2, &valueLen);
+        GetParamValue(bufIn, "after", tempValue2, &valueLen);
         TimeParamFloat = atof(tempValue2);
         TimeParamFloat = atof(tempValue2);
         res = ups_metac_service_pdu(ups_shutdown);
         res = ups_metac_service_pdu(ups_shutdown);
         if (res == 1) {
         if (res == 1) {
@@ -1364,7 +1366,7 @@ void LoginTimerCallback(TimerHandle_t pxTimer)
   */
   */
 int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 {
 {
-    char tempStr[50];
+    char tempStr[52];
     char login[20];
     char login[20];
     char password[20];
     char password[20];
     char tmp_password[33];
     char tmp_password[33];
@@ -1376,17 +1378,18 @@ int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *l
     memset(login, 0, 20);
     memset(login, 0, 20);
     memset(password, 0, 20);
     memset(password, 0, 20);
     memset(tmp_password, 0, 33);
     memset(tmp_password, 0, 33);
-    memset(tempStr, 0, 50);
+    memset(tempStr, 0, 52);
 
 
     memset(name_login, 0, 50);
     memset(name_login, 0, 50);
 
 
+    tempStr[0] = '0';
     /* Get first 50 bytes of string */
     /* Get first 50 bytes of string */
-    strncpy(tempStr, bufIn, 49);
+    strncat(tempStr, bufIn, 49);
 
 
     /* Add " " to the string in order GetParamValue() can be able to parse the param */
     /* Add " " to the string in order GetParamValue() can be able to parse the param */
     strcat(tempStr, " ");
     strcat(tempStr, " ");
-    GetParamValue(tempStr, "login=", login, &valueLen);
-    GetParamValue(tempStr, "password=", tmp_password, &valueLen);
+    GetParamValue(tempStr, "login", login, &valueLen);
+    GetParamValue(tempStr, "password", tmp_password, &valueLen);
     url_decode(password, sizeof(password), tmp_password);
     url_decode(password, sizeof(password), tmp_password);
     valueLen = strlen(password);
     valueLen = strlen(password);
 
 
@@ -1555,8 +1558,8 @@ char *HTTP_ChangeUserPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t le
 
 
     strcpy(bufOut, HTTP_200_OK);
     strcpy(bufOut, HTTP_200_OK);
 
 
-    if (GetParamValue(tempStr, "username=", login, &valueLen) &&
-        GetParamValue(tempStr, "oldpass=", tmp, &valueLen)) {
+    if (GetParamValue(tempStr, "username", login, &valueLen) &&
+        GetParamValue(tempStr, "oldpass", tmp, &valueLen)) {
         url_decode(password, sizeof(password), tmp);
         url_decode(password, sizeof(password), tmp);
         for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
         for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
             memset(value, 0, 20);
             memset(value, 0, 20);
@@ -1568,7 +1571,7 @@ char *HTTP_ChangeUserPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t le
                 (memcmp(password, value, 11) == 0)) {
                 (memcmp(password, value, 11) == 0)) {
                 memset(tmp, 0, sizeof(tmp));
                 memset(tmp, 0, sizeof(tmp));
                 memset(password, 0, 20);
                 memset(password, 0, 20);
-                if (GetParamValue(tempStr, "newpass=", tmp, &valueLen)) {
+                if (GetParamValue(tempStr, "newpass", tmp, &valueLen)) {
                     url_decode(password, sizeof(password), tmp);
                     url_decode(password, sizeof(password), tmp);
                     valueLen = strlen(password);
                     valueLen = strlen(password);
                     memcpy(sSettings.sAuth[user_id].password, password, sizeof(sSettings.sAuth[user_id].password));
                     memcpy(sSettings.sAuth[user_id].password, password, sizeof(sSettings.sAuth[user_id].password));
@@ -1914,12 +1917,30 @@ uint8_t GetParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *p
     char *endValue = 0;
     char *endValue = 0;
     int  len = 0;
     int  len = 0;
     char *strPtr = 0;
     char *strPtr = 0;
-
-    strPtr = strstr(inStr, paramName);
+    char paramName_tmp[50];
+
+    memset(paramName_tmp, 0, sizeof(paramName_tmp));
+    paramName_tmp[0] = '&';
+    strncat(paramName_tmp, paramName, strlen(paramName));
+    strcat(paramName_tmp, "=");
+
+    strPtr = strstr(inStr, paramName_tmp);
+    if (strPtr == 0) {
+        paramName_tmp[0] = '0';
+        strPtr = strstr(inStr, paramName_tmp);
+        if (strPtr == 0) {
+            paramName_tmp[0] = '\n';
+            strPtr = strstr(inStr, paramName_tmp);
+        }
+        if (strPtr == 0) {
+            paramName_tmp[0] = '?';
+            strPtr = strstr(inStr, paramName_tmp);
+        }
+    }
 
 
     if (strPtr != 0) {
     if (strPtr != 0) {
         beginValue = strpbrk(strPtr, "=");
         beginValue = strpbrk(strPtr, "=");
-        endValue = strpbrk(strPtr, "&");
+        endValue = strpbrk(&strPtr[1], "&");
         if (endValue == 0) {
         if (endValue == 0) {
             endValue = strpbrk(strPtr, " ");
             endValue = strpbrk(strPtr, " ");
         }
         }

+ 42 - 22
modules/HTTP_Server/my_ssl_server.c

@@ -545,12 +545,30 @@ uint8_t GetParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *p
     char *endValue = 0;
     char *endValue = 0;
     int  len = 0;
     int  len = 0;
     char *strPtr = 0;
     char *strPtr = 0;
-
-    strPtr = strstr(inStr, paramName);
+    char paramName_tmp[50];
+
+    memset(paramName_tmp, 0, sizeof(paramName_tmp));
+    paramName_tmp[0] = '&';
+    strncat(paramName_tmp, paramName, strlen(paramName));
+    strcat(paramName_tmp, "=");
+
+    strPtr = strstr(inStr, paramName_tmp);
+    if (strPtr == 0) {
+        paramName_tmp[0] = '0';
+        strPtr = strstr(inStr, paramName_tmp);
+        if (strPtr == 0) {
+            paramName_tmp[0] = '\n';
+            strPtr = strstr(inStr, paramName_tmp);
+        }
+        if (strPtr == 0) {
+            paramName_tmp[0] = '?';
+            strPtr = strstr(inStr, paramName_tmp);
+        }
+    }
 
 
     if (strPtr != 0) {
     if (strPtr != 0) {
         beginValue = strpbrk(strPtr, "=");
         beginValue = strpbrk(strPtr, "=");
-        endValue = strpbrk(strPtr, "&");
+        endValue = strpbrk(&strPtr[1], "&");
         if (endValue == 0) {
         if (endValue == 0) {
             endValue = strpbrk(strPtr, " ");
             endValue = strpbrk(strPtr, " ");
         }
         }
@@ -937,7 +955,7 @@ char *HTTP_HistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
     ClearParamString(bufIn);
     ClearParamString(bufIn);
 
 
     memset(value, 0, 20);
     memset(value, 0, 20);
-    GetParamValue(bufIn, "page=", value, &valueLen);
+    GetParamValue(bufIn, "page", value, &valueLen);
 
 
     if (strcmp(value, "all") == 0) {
     if (strcmp(value, "all") == 0) {
         if (!LOG_IsInit()) {
         if (!LOG_IsInit()) {
@@ -992,7 +1010,7 @@ char *HTTP_UpsHistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t l
     ClearParamString(bufIn);
     ClearParamString(bufIn);
 
 
     memset(value, 0, 20);
     memset(value, 0, 20);
-    GetParamValue(bufIn, "page=", value, &valueLen);
+    GetParamValue(bufIn, "page", value, &valueLen);
 
 
     if (strcmp(value, "all") == 0) {
     if (strcmp(value, "all") == 0) {
         if (!LOG_IsInit()) {
         if (!LOG_IsInit()) {
@@ -1050,7 +1068,7 @@ void HTTP_Prodate(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBuf
     ClearParamString(bufIn);
     ClearParamString(bufIn);
 
 
     memset(value, 0, 20);
     memset(value, 0, 20);
-    GetParamValue(bufIn, "prodate=", value, &valueLen);
+    GetParamValue(bufIn, "prodate", value, &valueLen);
     /*
     /*
     printf("Prodate: ");
     printf("Prodate: ");
     printf(value);
     printf(value);
@@ -1085,6 +1103,7 @@ char *HTTP_SetSettingsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t
     TotalReceived = 0;
     TotalReceived = 0;
     TotalData = 0;
     TotalData = 0;
     memset(bufOut, 0, strlen(bufOut));
     memset(bufOut, 0, strlen(bufOut));
+    bufOut[0] = '0';
     // parse packet for Content-length field
     // parse packet for Content-length field
     size = Parse_Content_Length(bufIn, lenBufIn);
     size = Parse_Content_Length(bufIn, lenBufIn);
     DataOffset = strstr(bufIn, "managerIP");
     DataOffset = strstr(bufIn, "managerIP");
@@ -1283,6 +1302,7 @@ char *HTTP_SetInfoPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
     TotalReceived = 0;
     TotalReceived = 0;
     TotalData = 0;
     TotalData = 0;
     memset(bufOut, 0, SEND_BUF_MAX_LEN);
     memset(bufOut, 0, SEND_BUF_MAX_LEN);
+    bufOut[0] = '0';
     // parse packet for Content-length field
     // parse packet for Content-length field
     size = Parse_Content_Length(bufIn, lenBufIn);
     size = Parse_Content_Length(bufIn, lenBufIn);
     DataOffset = strstr(bufIn, "sysname");
     DataOffset = strstr(bufIn, "sysname");
@@ -1330,25 +1350,25 @@ void HTTP_SetInfo(char *buf, uint16_t lenBuf)
     memset(value, 0, len);
     memset(value, 0, len);
 
 
     /* Название устройства */
     /* Название устройства */
-    GetParamValue(buf, "sysname=", value, &valueLen);
+    GetParamValue(buf, "sysname", value, &valueLen);
     url_decode(str, sizeof(str), value);
     url_decode(str, sizeof(str), value);
     SetNameDeviceStr(str);
     SetNameDeviceStr(str);
     memset(value, 0, len);
     memset(value, 0, len);
 
 
     /* Владелец */
     /* Владелец */
-    GetParamValue(buf, "owner=", value, &valueLen);
+    GetParamValue(buf, "owner", value, &valueLen);
     url_decode(str, sizeof(str), value);
     url_decode(str, sizeof(str), value);
     SetOwner(str);
     SetOwner(str);
     memset(value, 0, len);
     memset(value, 0, len);
 
 
     /* Владелец */
     /* Владелец */
-    GetParamValue(buf, "sysLocation=", value, &valueLen);
+    GetParamValue(buf, "sysLocation", value, &valueLen);
     url_decode(str, sizeof(str), value);
     url_decode(str, sizeof(str), value);
     SetLocation(str);
     SetLocation(str);
     memset(value, 0, len);
     memset(value, 0, len);
 
 
     /* Комментарий */
     /* Комментарий */
-    GetParamValue(buf, "comment=", value, &valueLen);
+    GetParamValue(buf, "comment", value, &valueLen);
     url_decode(str, sizeof(str), value);
     url_decode(str, sizeof(str), value);
     SetComment(str);
     SetComment(str);
     memset(value, 0, len);
     memset(value, 0, len);
@@ -1376,7 +1396,7 @@ char *HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
 
 
     strcpy(bufOut, HTTP_200_OK);
     strcpy(bufOut, HTTP_200_OK);
 
 
-    GetParamValue(bufIn, "func=", tempValue, &valueLen);
+    GetParamValue(bufIn, "func", tempValue, &valueLen);
     if (strcmp(tempValue, "stop") == 0) {
     if (strcmp(tempValue, "stop") == 0) {
         res = ups_metac_service_pdu(ups_cancel_test);
         res = ups_metac_service_pdu(ups_cancel_test);
         if (res == 1 || res == 0) {
         if (res == 1 || res == 0) {
@@ -1398,7 +1418,7 @@ char *HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
             strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
             strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
         }
         }
     } else if (strncmp(tempValue, "time", 6) == 0) {
     } else if (strncmp(tempValue, "time", 6) == 0) {
-        GetParamValue(bufIn, "=", tempValue2, &valueLen);
+        GetParamValue(bufIn, "time", tempValue2, &valueLen);
         TimeParam = atoi(tempValue2);
         TimeParam = atoi(tempValue2);
         res = ups_metac_service_pdu(ups_test_time);
         res = ups_metac_service_pdu(ups_test_time);
         if (res == 1 || res == 0) {
         if (res == 1 || res == 0) {
@@ -1433,7 +1453,7 @@ char *HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
 
 
     strcpy(bufOut, HTTP_200_OK);
     strcpy(bufOut, HTTP_200_OK);
 
 
-    GetParamValue(bufIn, "func=", tempValue, &valueLen);
+    GetParamValue(bufIn, "func", tempValue, &valueLen);
     if (strcmp(tempValue, "reboot") == 0) {
     if (strcmp(tempValue, "reboot") == 0) {
         res = ups_metac_service_pdu(ups_cancel_shut_down);
         res = ups_metac_service_pdu(ups_cancel_shut_down);
         if (res == 1) {
         if (res == 1) {
@@ -1446,7 +1466,7 @@ char *HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
         }
         }
     } else if (strncmp(tempValue, "off", 5) == 0) {
     } else if (strncmp(tempValue, "off", 5) == 0) {
         memset(tempValue2, 0, 50);
         memset(tempValue2, 0, 50);
-        GetParamValue(bufIn, "after=", tempValue2, &valueLen);
+        GetParamValue(bufIn, "after", tempValue2, &valueLen);
         TimeParamFloat = atof(tempValue2);
         TimeParamFloat = atof(tempValue2);
         res = ups_metac_service_pdu(ups_shutdown);
         res = ups_metac_service_pdu(ups_shutdown);
         if (res == 1) {
         if (res == 1) {
@@ -1587,7 +1607,7 @@ void LoginTimerCallback(TimerHandle_t pxTimer)
   */
   */
 int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 {
 {
-    char tempStr[50];
+    char tempStr[52];
     char login[20];
     char login[20];
     char password[20];
     char password[20];
     uint8_t valueLen, user_id = 0xff;
     uint8_t valueLen, user_id = 0xff;
@@ -1597,17 +1617,17 @@ int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *l
 
 
     memset(login, 0, 20);
     memset(login, 0, 20);
     memset(password, 0, 20);
     memset(password, 0, 20);
-    memset(tempStr, 0, 50);
+    memset(tempStr, 0, 52);
 
 
     memset(name_login, 0, 50);
     memset(name_login, 0, 50);
-
+    tempStr[0] = '0';
     /* Get first 50 bytes of string */
     /* Get first 50 bytes of string */
     strncpy(tempStr, bufIn, 49);
     strncpy(tempStr, bufIn, 49);
 
 
     /* Add " " to the string in order GetParamValue() can be able to parse the param */
     /* Add " " to the string in order GetParamValue() can be able to parse the param */
     strcat(tempStr, " ");
     strcat(tempStr, " ");
-    GetParamValue(tempStr, "login=", login, &valueLen);
-    GetParamValue(tempStr, "password=", password, &valueLen);
+    GetParamValue(tempStr, "login", login, &valueLen);
+    GetParamValue(tempStr, "password", password, &valueLen);
 
 
     if ((sSettings.sRADIUS.RDSEnable == true) && (fl_raddius_net_err == false)) {
     if ((sSettings.sRADIUS.RDSEnable == true) && (fl_raddius_net_err == false)) {
         switch (RC_Login(login, password)) {
         switch (RC_Login(login, password)) {
@@ -1854,8 +1874,8 @@ char *HTTP_ChangeUserPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t le
 
 
     strcpy(bufOut, HTTP_200_OK);
     strcpy(bufOut, HTTP_200_OK);
 
 
-    if (GetParamValue(tempStr, "username=", login, &valueLen) &&
-        GetParamValue(tempStr, "oldpass=", tmp, &valueLen)) {
+    if (GetParamValue(tempStr, "username", login, &valueLen) &&
+        GetParamValue(tempStr, "oldpass", tmp, &valueLen)) {
         url_decode(password, sizeof(password), tmp);
         url_decode(password, sizeof(password), tmp);
         for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
         for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
             memset(value, 0, 20);
             memset(value, 0, 20);
@@ -1867,7 +1887,7 @@ char *HTTP_ChangeUserPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t le
                 (memcmp(password, value, 11) == 0)) {
                 (memcmp(password, value, 11) == 0)) {
                 memset(tmp, 0, sizeof(tmp));
                 memset(tmp, 0, sizeof(tmp));
                 memset(password, 0, 20);
                 memset(password, 0, 20);
-                if (GetParamValue(tempStr, "newpass=", tmp, &valueLen)) {
+                if (GetParamValue(tempStr, "newpass", tmp, &valueLen)) {
                     url_decode(password, sizeof(password), tmp);
                     url_decode(password, sizeof(password), tmp);
                     valueLen = strlen(password);
                     valueLen = strlen(password);
                     memcpy(sSettings.sAuth[user_id].password, password, sizeof(sSettings.sAuth[user_id].password));
                     memcpy(sSettings.sAuth[user_id].password, password, sizeof(sSettings.sAuth[user_id].password));

+ 7 - 0
modules/HTTP_Server/web_params_api.h

@@ -26,6 +26,12 @@
         || strncmp(tag, "swauth", sizeof(tag)) == 0 \
         || strncmp(tag, "swauth", sizeof(tag)) == 0 \
         || strncmp(tag, "rs_enabled", sizeof(tag)) == 0) { \
         || strncmp(tag, "rs_enabled", sizeof(tag)) == 0) { \
       cJSON_AddNumberToObject(cjson_param, tag, atoi(str)); \
       cJSON_AddNumberToObject(cjson_param, tag, atoi(str)); \
+    } else if (strncmp(tag, "pgw_en", sizeof(tag)) == 0 ) { \
+      if (strncmp(str, "true", 4) == 0 ) { \
+        cJSON_AddBoolToObject(cjson_param, tag, true); \
+      } else { \
+        cJSON_AddBoolToObject(cjson_param, tag, false); \
+      }\
     } else { \
     } else { \
       cJSON_AddStringToObject(cjson_param, tag, str); \
       cJSON_AddStringToObject(cjson_param, tag, str); \
     } \
     } \
@@ -41,6 +47,7 @@
               || strncmp(tag, "ssh_enabled", sizeof(tag)) == 0 \
               || strncmp(tag, "ssh_enabled", sizeof(tag)) == 0 \
               || strncmp(tag, "dhcp", sizeof(tag)) == 0 \
               || strncmp(tag, "dhcp", sizeof(tag)) == 0 \
               || strncmp(tag, "swauth", sizeof(tag)) == 0 \
               || strncmp(tag, "swauth", sizeof(tag)) == 0 \
+              || strncmp(tag, "pgw_en", sizeof(tag)) == 0 \
               || strncmp(tag, "rs_enabled", sizeof(tag)) == 0) { \
               || strncmp(tag, "rs_enabled", sizeof(tag)) == 0) { \
             set_param(value); \
             set_param(value); \
           } \
           } \

+ 272 - 5
modules/parameters.c

@@ -507,15 +507,67 @@ void GetDINTypeActStr(char *str, uint8_t *len, uint8_t num)
     *len = strlen(str);
     *len = strlen(str);
 }
 }
 
 
+/**
+  * @brief  Тип действий при срабатывание сухих контактов
+  */
+void GetDIN0TypeActStr(char *str, uint8_t *len)
+{
+    uint8_t num = 0;
+    if (num < INPUTS_TOTAL_COUNT) {
+      GetDINTypeActStr(str, len, num);
+    } else {
+      *len = 0;
+    }
+}
+
 /**
 /**
   * @brief  Тип действий при срабатывание сухих контактов
   * @brief  Тип действий при срабатывание сухих контактов
   */
   */
 void GetDIN1TypeActStr(char *str, uint8_t *len)
 void GetDIN1TypeActStr(char *str, uint8_t *len)
 {
 {
-    sprintf(str, "%d", sSettings.sDINs[DIN1].din_type_act);
+    uint8_t num = 1;
+    if (num < INPUTS_TOTAL_COUNT) {
+      GetDINTypeActStr(str, len, num);
+    } else {
+      *len = 0;
+    }
+}
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void GetDINNameStr(char *str, uint8_t *len, uint8_t num)
+{
+    strcpy(str, sSettings.sDINs[num].name);
     *len = strlen(str);
     *len = strlen(str);
 }
 }
 
 
+/**
+  * @brief  Имя сухого контакта
+  */
+void GetDIN0NameStr(char *str, uint8_t *len)
+{
+    uint8_t num = 0;
+    if (num < INPUTS_TOTAL_COUNT) {
+      GetDINNameStr(str, len, num);
+    } else {
+      *len = 0;
+    }
+}
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void GetDIN1NameStr(char *str, uint8_t *len)
+{
+    uint8_t num = 1;
+    if (num < INPUTS_TOTAL_COUNT) {
+      GetDINNameStr(str, len, num);
+    } else {
+      *len = 0;
+    }
+}
+
 /**
 /**
   * @brief  Состояние сухого контакта
   * @brief  Состояние сухого контакта
   */
   */
@@ -530,8 +582,25 @@ void GetDINStatusStr(char *str, uint8_t *len, uint8_t num)
   */
   */
 void GetDIN0StatusStr(char *str, uint8_t *len)
 void GetDIN0StatusStr(char *str, uint8_t *len)
 {
 {
-    sprintf(str, "%d", (get_state_din_outs(DIN1) ^ 1));
-    *len = strlen(str);
+    uint8_t num = 0;
+    if (num < INPUTS_TOTAL_COUNT) {
+      GetDINStatusStr(str, len, num);
+    } else {
+      *len = 0;
+    }
+}
+
+/**
+  * @brief  Состояние сухого контакта
+  */
+void GetDIN1StatusStr(char *str, uint8_t *len)
+{
+    uint8_t num = 1;
+    if (num < INPUTS_TOTAL_COUNT) {
+      GetDINStatusStr(str, len, num);
+    } else {
+      *len = 0;
+    }
 }
 }
 
 
 /**
 /**
@@ -988,7 +1057,7 @@ void GetDhcpStateStrRu(char *str, uint8_t *len)
 
 
 #ifdef WHITELIST_ENABLE
 #ifdef WHITELIST_ENABLE
 // ************************************************************************** //
 // ************************************************************************** //
-//                             Параметры довверительных хостов
+//                             Параметры доверительных хостов
 
 
 /**
 /**
   * @brief  диапазон доверительных хостов
   * @brief  диапазон доверительных хостов
@@ -1148,6 +1217,30 @@ void GetPortGwStopbitsStr(char *str, uint8_t *len)
 }
 }
 #endif
 #endif
 
 
+#ifdef DALLAS_SENSOR_ENABLE
+// ************************************************************************** //
+//                             Параметры датчика температуры
+
+/**
+  * @brief  Размещение датчика температуры 1
+  */
+void GetTS1locationStr(char *str, uint8_t *len)
+{
+    sprintf(str, "%d", sSettings.sTempControl[0].type_sensor);
+    *len = strlen(str);
+}
+
+/**
+  * @brief  Размещение датчика температуры 2
+  */
+void GetTS2locationStr(char *str, uint8_t *len)
+{
+    sprintf(str, "%d", sSettings.sTempControl[1].type_sensor);
+    *len = strlen(str);
+}
+
+#endif
+
 // ************************************************************************** //
 // ************************************************************************** //
 //                             Параметры SNMP
 //                             Параметры SNMP
 
 
@@ -1609,6 +1702,64 @@ void GetTemperatureAlarmHisteInt(float *value)
     *value = sSettings.sAlarmManager.Temprature_range.hyst;
     *value = sSettings.sAlarmManager.Temprature_range.hyst;
 }
 }
 
 
+#ifndef HARDWARE_BT6709
+
+/**
+  * @brief Верхняя граница температуры
+  */
+void GetTemperatureCabinetAlarmHighRangeStr(char *str, uint8_t *len)
+{
+    sprintf(str, "%d", (int)sSettings.sAlarmManager.Temprature_cabinet_range.high);
+
+    *len = strlen(str);
+}
+
+/**
+  * @brief Верхняя граница температуры
+  */
+void GetTemperatureCabinetAlarmHighRangeInt(int32_t *value)
+{
+    *value = (int)sSettings.sAlarmManager.Temprature_cabinet_range.high;
+}
+
+/**
+  * @brief Нижняя граница температуры
+  */
+void GetTemperatureCabinetAlarmLowRangeStr(char *str, uint8_t *len)
+{
+    sprintf(str, "%d", (int)sSettings.sAlarmManager.Temprature_cabinet_range.low);
+
+    *len = strlen(str);
+}
+
+/**
+  * @brief Нижняя граница температуры
+  */
+void GetTemperatureCabinetAlarmLowRangeInt(int32_t *value)
+{
+    *value = (int)sSettings.sAlarmManager.Temprature_cabinet_range.low;
+}
+
+/**
+  * @brief Гистерезис (температура)
+  */
+void GetTemperatureCabinetAlarmHisteStr(char *str, uint8_t *len)
+{
+    sprintf(str, "%0.1f", sSettings.sAlarmManager.Temprature_cabinet_range.hyst);
+
+    *len = strlen(str);
+}
+
+/**
+  * @brief Гистерезис (температура)
+  */
+void GetTemperatureCabinetAlarmHisteInt(float *value)
+{
+    *value = sSettings.sAlarmManager.Temprature_cabinet_range.hyst;
+}
+
+#endif
+
 /**
 /**
   * @brief Верхняя граница нагрузки
   * @brief Верхняя граница нагрузки
   */
   */
@@ -1893,6 +2044,28 @@ void SetPortGwStopbitsStr(char *str)
 }
 }
 #endif
 #endif
 
 
+#ifdef DALLAS_SENSOR_ENABLE
+// ************************************************************************** //
+//                             Параметры датчика температуры
+
+/**
+  * @brief  Размещение датчика температуры 1
+  */
+void SetTS1locationStr(char *str)
+{
+    sSettings.sTempControl[0].type_sensor = atoi(str);
+}
+
+/**
+  * @brief  Размещение датчика температуры 2
+  */
+void SetTS2locationStr(char *str)
+{
+    sSettings.sTempControl[1].type_sensor = atoi(str);
+}
+
+#endif
+
 // ************************************************************************** //
 // ************************************************************************** //
 //                             Параметры SNMP
 //                             Параметры SNMP
 
 
@@ -2274,12 +2447,56 @@ void SetDINTypeActStr(char *str, uint8_t num)
     sSettings.sDINs[num].din_type_act = atoi(str);
     sSettings.sDINs[num].din_type_act = atoi(str);
 }
 }
 
 
+/**
+  * @brief  Тип действий при срабатывание сухих контактов
+  */
+void SetDIN0TypeActStr(char *str)
+{
+    uint8_t num = 0;
+    if(num < INPUTS_TOTAL_COUNT) {
+      SetDINTypeActStr(str, num);
+    }
+}
+
 /**
 /**
   * @brief  Тип действий при срабатывание сухих контактов
   * @brief  Тип действий при срабатывание сухих контактов
   */
   */
 void SetDIN1TypeActStr(char *str)
 void SetDIN1TypeActStr(char *str)
 {
 {
-    SetDINTypeActStr(str, 0);
+    uint8_t num = 1;
+    if(num < INPUTS_TOTAL_COUNT) {
+      SetDINTypeActStr(str, num);
+    }
+}
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void SetDINNameStr(char *str, uint8_t num)
+{
+    strcpy(sSettings.sDINs[num].name, str);
+}
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void SetDIN0NameStr(char *str)
+{
+    uint8_t num = 0;
+    if(num < INPUTS_TOTAL_COUNT) {
+      SetDINNameStr(str, num);
+    }
+}
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void SetDIN1NameStr(char *str)
+{
+    uint8_t num = 1;
+    if(num < INPUTS_TOTAL_COUNT) {
+      SetDINNameStr(str, num);
+    }
 }
 }
 #endif
 #endif
 #ifdef DOUTS_ENABLE
 #ifdef DOUTS_ENABLE
@@ -2530,6 +2747,56 @@ void SetTemperatureAlarmHisteInt(float value)
     sSettings.sAlarmManager.Temprature_range.hyst = value;
     sSettings.sAlarmManager.Temprature_range.hyst = value;
 }
 }
 
 
+#ifndef HARDWARE_BT6709
+/**
+  * @brief  Верхняя граница температуры
+  */
+void SetTemperatureCabinetAlarmHighRangeStr(char *str)
+{
+    sSettings.sAlarmManager.Temprature_cabinet_range.high = atof(str);
+}
+
+/**
+  * @brief  Верхняя граница температуры
+  */
+void SetTemperatureCabinetAlarmHighRangeInt(float value)
+{
+    sSettings.sAlarmManager.Temprature_cabinet_range.high = value;
+}
+
+/**
+  * @brief  Нижняя граница температуры
+  */
+void SetTemperatureCabinetAlarmLowRangeStr(char *str)
+{
+    sSettings.sAlarmManager.Temprature_cabinet_range.low = atof(str);
+}
+
+/**
+  * @brief  Нижняя граница температуры
+  */
+void SetTemperatureCabinetAlarmLowRangeInt(float value)
+{
+    sSettings.sAlarmManager.Temprature_cabinet_range.low = value;
+}
+
+/**
+  * @brief  Гистерезис (температура)
+  */
+void SetTemperatureCabinetAlarmHisteStr(char *str)
+{
+    sSettings.sAlarmManager.Temprature_cabinet_range.hyst = atof(str);
+}
+
+/**
+  * @brief  Гистерезис (температура)
+  */
+void SetTemperatureCabinetAlarmHisteInt(float value)
+{
+    sSettings.sAlarmManager.Temprature_cabinet_range.hyst = value;
+}
+#endif
+
 /**
 /**
   * @brief  Верхняя граница нагрузки
   * @brief  Верхняя граница нагрузки
   */
   */

+ 143 - 0
modules/parameters.h

@@ -377,6 +377,22 @@ void GetPortGwDatabitsStr(char *str, uint8_t *len);
 void GetPortGwStopbitsStr(char *str, uint8_t *len);
 void GetPortGwStopbitsStr(char *str, uint8_t *len);
 #endif
 #endif
 
 
+#ifdef DALLAS_SENSOR_ENABLE
+// ************************************************************************** //
+//                             Параметры датчика температуры
+
+/**
+  * @brief  Размещение датчика температуры 1
+  */
+void GetTS1locationStr(char *str, uint8_t *len);
+
+/**
+  * @brief  Размещение датчика температуры 2
+  */
+void GetTS2locationStr(char *str, uint8_t *len);
+
+#endif
+
 // ************************************************************************** //
 // ************************************************************************** //
 //                             Параметры SNMP
 //                             Параметры SNMP
 /**
 /**
@@ -447,11 +463,31 @@ void GetAuthEnableStateStr(char *str, uint8_t *len);
   */
   */
 void GetDINTypeActStr(char *str, uint8_t *len, uint8_t num);
 void GetDINTypeActStr(char *str, uint8_t *len, uint8_t num);
 
 
+/**
+  * @brief  Тип действий при срабатывание сухих контактов
+  */
+void GetDIN0TypeActStr(char *str, uint8_t *len);
+
 /**
 /**
   * @brief  Тип действий при срабатывание сухих контактов
   * @brief  Тип действий при срабатывание сухих контактов
   */
   */
 void GetDIN1TypeActStr(char *str, uint8_t *len);
 void GetDIN1TypeActStr(char *str, uint8_t *len);
 
 
+/**
+  * @brief  Имя сухого контакта
+  */
+void GetDINNameStr(char *str, uint8_t *len, uint8_t num);
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void GetDIN0NameStr(char *str, uint8_t *len);
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void GetDIN1NameStr(char *str, uint8_t *len);
+
 /**
 /**
   * @brief  Состояние сухого контакта
   * @brief  Состояние сухого контакта
   */
   */
@@ -462,6 +498,11 @@ void GetDINStatusStr(char *str, uint8_t *len, uint8_t num);
   */
   */
 void GetDIN0StatusStr(char *str, uint8_t *len);
 void GetDIN0StatusStr(char *str, uint8_t *len);
 
 
+/**
+  * @brief  Состояние сухого контакта
+  */
+void GetDIN1StatusStr(char *str, uint8_t *len);
+
 /**
 /**
   * @brief  Состояние сухого контакта
   * @brief  Состояние сухого контакта
   */
   */
@@ -681,6 +722,40 @@ void GetTemperatureAlarmHisteStr(char *str, uint8_t *len);
   */
   */
 void GetTemperatureAlarmHisteInt(float *value);
 void GetTemperatureAlarmHisteInt(float *value);
 
 
+#ifndef HARDWARE_BT6709
+
+/**
+  * @brief Верхняя граница температуры
+  */
+void GetTemperatureCabinetAlarmHighRangeStr(char *str, uint8_t *len);
+
+/**
+  * @brief Верхняя граница температуры
+  */
+void GetTemperatureCabinetAlarmHighRangeInt(int32_t *value);
+
+/**
+  * @brief Нижняя граница температуры
+  */
+void GetTemperatureCabinetAlarmLowRangeStr(char *str, uint8_t *len);
+
+/**
+  * @brief Нижняя граница температуры
+  */
+void GetTemperatureCabinetAlarmLowRangeInt(int32_t *value);
+
+/**
+  * @brief Гистерезис (температура)
+  */
+void GetTemperatureCabinetAlarmHisteStr(char *str, uint8_t *len);
+
+/**
+  * @brief Гистерезис (температура)
+  */
+void GetTemperatureCabinetAlarmHisteInt(float *value);
+
+#endif
+
 /**
 /**
   * @brief Верхняя граница нагрузки
   * @brief Верхняя граница нагрузки
   */
   */
@@ -830,6 +905,22 @@ void SetPortGwDatabitsStr(char *str);
 void SetPortGwStopbitsStr(char *str);
 void SetPortGwStopbitsStr(char *str);
 #endif
 #endif
 
 
+#ifdef DALLAS_SENSOR_ENABLE
+// ************************************************************************** //
+//                             Параметры датчика температуры
+
+/**
+  * @brief  Размещение датчика температуры 1
+  */
+void SetTS1locationStr(char *str);
+
+/**
+  * @brief  Размещение датчика температуры 2
+  */
+void SetTS2locationStr(char *str);
+
+#endif
+
 // ************************************************************************** //
 // ************************************************************************** //
 //                             Параметры SNMP
 //                             Параметры SNMP
 
 
@@ -985,10 +1076,30 @@ void SetSntpTimeZoneStr(char *str);
   */
   */
 void SetDINTypeActStr(char *str, uint8_t num);
 void SetDINTypeActStr(char *str, uint8_t num);
 
 
+/**
+  * @brief  Тип действий при срабатывание сухих контактов
+  */
+void SetDIN0TypeActStr(char *str);
+
 /**
 /**
   * @brief  Тип действий при срабатывание сухих контактов
   * @brief  Тип действий при срабатывание сухих контактов
   */
   */
 void SetDIN1TypeActStr(char *str);
 void SetDIN1TypeActStr(char *str);
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void SetDINNameStr(char *str, uint8_t num);
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void SetDIN0NameStr(char *str);
+
+/**
+  * @brief  Имя сухого контакта
+  */
+void SetDIN1NameStr(char *str);
 #endif
 #endif
 
 
 #ifdef DOUTS_ENABLE
 #ifdef DOUTS_ENABLE
@@ -1136,6 +1247,38 @@ void SetTemperatureAlarmHisteStr(char *str);
   */
   */
 void SetTemperatureAlarmHisteInt(float value);
 void SetTemperatureAlarmHisteInt(float value);
 
 
+#ifndef HARDWARE_BT6709
+/**
+  * @brief  Верхняя граница температуры
+  */
+void SetTemperatureCabinetAlarmHighRangeStr(char *str);
+
+/**
+  * @brief  Верхняя граница температуры
+  */
+void SetTemperatureCabinetAlarmHighRangeInt(float value);
+
+/**
+  * @brief  Нижняя граница температуры
+  */
+void SetTemperatureCabinetAlarmLowRangeStr(char *str);
+
+/**
+  * @brief  Нижняя граница температуры
+  */
+void SetTemperatureCabinetAlarmLowRangeInt(float value);
+
+/**
+  * @brief  Гистерезис (температура)
+  */
+void SetTemperatureCabinetAlarmHisteStr(char *str);
+
+/**
+  * @brief  Гистерезис (температура)
+  */
+void SetTemperatureCabinetAlarmHisteInt(float value);
+#endif
+
 /**
 /**
   * @brief  Верхняя граница нагрузки
   * @brief  Верхняя граница нагрузки
   */
   */

+ 26 - 0
modules/settings_api.h

@@ -267,6 +267,9 @@ typedef struct
     ALARM_LEVEL_RANGE_t load_range;
     ALARM_LEVEL_RANGE_t load_range;
     ALARM_LEVEL_RANGE_t ac_output_range;
     ALARM_LEVEL_RANGE_t ac_output_range;
     ALARM_LEVEL_RANGE_t Temprature_range;
     ALARM_LEVEL_RANGE_t Temprature_range;
+#ifndef HARDWARE_BT6709
+    ALARM_LEVEL_RANGE_t Temprature_cabinet_range;
+#endif
 } ALARM_MNGR_t;
 } ALARM_MNGR_t;
 
 
 typedef enum{
 typedef enum{
@@ -381,6 +384,24 @@ typedef struct
     uint16_t quota;         /* Максимальное время занятия порта */
     uint16_t quota;         /* Максимальное время занятия порта */
 } PORTGW_t;
 } PORTGW_t;
 
 
+/**
+  * @brief  Место измерения датчика температуры
+  */
+typedef enum
+{
+    TS_NONE = 0,
+    TS_CABINET,
+    TS_AKB
+} ts_location_type_t;
+
+/**
+  * @brief  Параметры контроля температуры
+  */
+typedef struct
+{
+    ts_location_type_t type_sensor; //размещение датчика температуры 
+} TEMP_COTROL_t;
+
 /**
 /**
   * @brief  Общая структура настроек
   * @brief  Общая структура настроек
   */
   */
@@ -497,6 +518,11 @@ void SETTINGS_SetSSHDef(void);
   */
   */
 void SETTINGS_SetWhiteListDef(void);
 void SETTINGS_SetWhiteListDef(void);
 
 
+/**
+  * @brief  Установить параметры датчиков температуры
+  */
+void SETTINGS_SetTempControlDef(void);
+
 /**
 /**
   * @brief  Установить параметры разрешения уведомлений по умолчанию
   * @brief  Установить параметры разрешения уведомлений по умолчанию
   */
   */

+ 15 - 1
modules/settings_api_bt6703.c

@@ -112,6 +112,10 @@ void SETTINGS_SetAlarmManagerDef(void)
 	sSettings.sAlarmManager.Temprature_range.high = 70.0;
 	sSettings.sAlarmManager.Temprature_range.high = 70.0;
 	sSettings.sAlarmManager.Temprature_range.low = -40.0;
 	sSettings.sAlarmManager.Temprature_range.low = -40.0;
 	sSettings.sAlarmManager.Temprature_range.hyst = 1;
 	sSettings.sAlarmManager.Temprature_range.hyst = 1;
+
+  sSettings.sAlarmManager.Temprature_cabinet_range.high = 70.0;
+	sSettings.sAlarmManager.Temprature_cabinet_range.low = -40.0;
+	sSettings.sAlarmManager.Temprature_cabinet_range.hyst = 1;
 }
 }
 
 
 /**
 /**
@@ -168,8 +172,10 @@ void SETTINGS_SetDINSDef(void)
 	for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
 	for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
     sSettings.sDINs[i].din_type_act = DI_CONN;
     sSettings.sDINs[i].din_type_act = DI_CONN;
     memset(sSettings.sDINs[i].name, 0, sizeof(sSettings.sDINs[i].name));
     memset(sSettings.sDINs[i].name, 0, sizeof(sSettings.sDINs[i].name));
-    sprintf( sSettings.sDINs[i].name, "Вход%d", (i + 1));
+    sprintf( sSettings.sDINs[i].name, "Door_%d", (i + 1));
   }
   }
+}
+
 /**
 /**
   * @brief  Установить параметры RADIUS по умолчанию
   * @brief  Установить параметры RADIUS по умолчанию
   */
   */
@@ -232,5 +238,13 @@ void SETTINGS_SetFlagNotificationDef(void)
   
   
 }
 }
 
 
+/**
+  * @brief  Установить параметры датчиков температуры
+  */
+void SETTINGS_SetTempControlDef(void)
+{
+  
+}
+
 #endif
 #endif
 /********************************* (C) ROTEK **********************************/
 /********************************* (C) ROTEK **********************************/

+ 13 - 1
modules/settings_api_bt6707.c

@@ -114,6 +114,10 @@ void SETTINGS_SetAlarmManagerDef(void)
 	sSettings.sAlarmManager.Temprature_range.high = 70.0;
 	sSettings.sAlarmManager.Temprature_range.high = 70.0;
 	sSettings.sAlarmManager.Temprature_range.low = -40.0;
 	sSettings.sAlarmManager.Temprature_range.low = -40.0;
 	sSettings.sAlarmManager.Temprature_range.hyst = 1;
 	sSettings.sAlarmManager.Temprature_range.hyst = 1;
+
+  sSettings.sAlarmManager.Temprature_cabinet_range.high = 70.0;
+	sSettings.sAlarmManager.Temprature_cabinet_range.low = -40.0;
+	sSettings.sAlarmManager.Temprature_cabinet_range.hyst = 1;
 }
 }
 
 
 
 
@@ -172,7 +176,7 @@ void SETTINGS_SetDINSDef(void)
   for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
   for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
     sSettings.sDINs[i].din_type_act = DI_CONN;
     sSettings.sDINs[i].din_type_act = DI_CONN;
     memset(sSettings.sDINs[i].name, 0, sizeof(sSettings.sDINs[i].name));
     memset(sSettings.sDINs[i].name, 0, sizeof(sSettings.sDINs[i].name));
-    sprintf( sSettings.sDINs[i].name, "Вход%d", (i + 1));
+    sprintf( sSettings.sDINs[i].name, "Door_%d", (i + 1));
   }
   }
 }
 }
 
 
@@ -229,5 +233,13 @@ void SETTINGS_SetFlagNotificationDef(void)
 
 
 }
 }
 
 
+/**
+  * @brief  Установить параметры датчиков температуры
+  */
+void SETTINGS_SetTempControlDef(void)
+{
+  
+}
+
 #endif
 #endif
 /********************************* (C) ROTEK **********************************/
 /********************************* (C) ROTEK **********************************/

+ 8 - 0
modules/settings_api_bt6709.c

@@ -231,5 +231,13 @@ void SETTINGS_SetPortGwDef(void)
 
 
 }
 }
 
 
+/**
+  * @brief  Установить параметры датчиков температуры
+  */
+void SETTINGS_SetTempControlDef(void)
+{
+
+}
+
 #endif
 #endif
 /********************************* (C) ROTEK **********************************/
 /********************************* (C) ROTEK **********************************/

+ 14 - 1
modules/settings_api_bt6710.c

@@ -115,6 +115,10 @@ void SETTINGS_SetAlarmManagerDef(void)
     sSettings.sAlarmManager.Temprature_range.high = 70.0;
     sSettings.sAlarmManager.Temprature_range.high = 70.0;
     sSettings.sAlarmManager.Temprature_range.low = -40.0;
     sSettings.sAlarmManager.Temprature_range.low = -40.0;
     sSettings.sAlarmManager.Temprature_range.hyst = 1;
     sSettings.sAlarmManager.Temprature_range.hyst = 1;
+
+    sSettings.sAlarmManager.Temprature_cabinet_range.high = 70.0;
+    sSettings.sAlarmManager.Temprature_cabinet_range.low = -40.0;
+    sSettings.sAlarmManager.Temprature_cabinet_range.hyst = 1;
 }
 }
 
 
 /**
 /**
@@ -162,7 +166,7 @@ void SETTINGS_SetDINSDef(void)
   for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
   for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
     sSettings.sDINs[i].din_type_act = DI_CONN;
     sSettings.sDINs[i].din_type_act = DI_CONN;
     memset(sSettings.sDINs[i].name, 0, sizeof(sSettings.sDINs[i].name));
     memset(sSettings.sDINs[i].name, 0, sizeof(sSettings.sDINs[i].name));
-    sprintf( sSettings.sDINs[i].name, "Вход%d", (i + 1));
+    sprintf( sSettings.sDINs[i].name, "Door_%d", (i + 1));
   }
   }
 }
 }
 
 
@@ -184,6 +188,15 @@ void SETTINGS_SetPortGwDef(void)
     sSettings.sPortGw.quota = 60;
     sSettings.sPortGw.quota = 60;
 }
 }
 
 
+/**
+  * @brief  Установить параметры датчиков температуры
+  */
+void SETTINGS_SetTempControlDef(void)
+{
+  sSettings.sTempControl[0].type_sensor = TS_AKB;
+  sSettings.sTempControl[1].type_sensor = TS_CABINET;
+}
+
 /**
 /**
   * @brief  Установить параметры настроек реле по умолчанию
   * @brief  Установить параметры настроек реле по умолчанию
   */
   */