Преглед на файлове

[ssl_server]add cgi for set ups serial

balbekova преди 4 години
родител
ревизия
d41f5ad3f7
променени са 2 файла, в които са добавени 31 реда и са изтрити 0 реда
  1. 29 0
      modules/HTTP_Server/my_ssl_server.c
  2. 2 0
      modules/HTTP_Server/my_ssl_server.h

+ 29 - 0
modules/HTTP_Server/my_ssl_server.c

@@ -176,6 +176,7 @@ web_func_handler_t process_web_funcs[] = {
     { "GET /reboot.cgi",            15,   COMMON_ANSWER,        TIME_ACCESS,  HTTP_Reboot },
     { "GET /confirm.cgi",           16,   COMMON_ANSWER,        TIME_ACCESS,  HTTP_Confirm },
     { "GET /fw_update.cgi",         18,   COMMON_ANSWER,        TIME_ACCESS,  HTTP_ConfirmBootPwd },
+    { "GET /ups_serial.cgi",        19,   COMMON_ANSWER,        TIME_ACCESS,  HTTP_UPS_Serial },
     { "GET",                        3,    COMMON_ANSWER,        ALL_ACCESS,   HTTP_GetRequest },
     { "",                           0,    COMMON_ANSWER,        ALL_ACCESS,   HTTP_NoFound },
     { "", 0, 0, 0, NULL }
@@ -1482,6 +1483,34 @@ char *HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
     return bufOut;
 }
 
+char *HTTP_UPS_Serial(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
+{
+    uint8_t valueLen = 0;
+    char tempValue[50];
+
+    (void)lenBufIn;
+    (void)reqNum;
+
+    memset(tempValue, 0, 50);
+
+    strcpy(bufOut, HTTP_200_OK);
+
+    GetParamValue(bufIn, "cmd_us", tempValue, &valueLen);
+    if (valueLen <= 8) {
+        SetUPSSerialStr(tempValue);
+        SETTINGS_Save();
+        strcat(bufOut,
+        "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><meta http-equiv=\"refresh\" content=\"3; url=/info.html\" /></head><center><h2>Серийный номер ИБП установлен</h2></center></html>");
+    } else {
+        strcat(bufOut,
+        "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><meta http-equiv=\"refresh\" content=\"3; url=/info.html\" /></head><center><h2>Ошибка установки серийного номера ИБП</h2></center></html>");
+    }
+    
+    *lenBufOut = strlen(bufOut);
+
+    return bufOut;
+}
+
 char *HTTP_Reset(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 {
     (void)bufIn;

+ 2 - 0
modules/HTTP_Server/my_ssl_server.h

@@ -171,6 +171,8 @@ char* HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
   */
 char* HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
 
+char *HTTP_UPS_Serial(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
+
 /**
   * @brief  Проверка пароля для перехода в режим bootloader
   */