http_server.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. #ifndef HTTP_SERVER_H
  2. #define HTTP_SERVER_H
  3. #include "common_config.h"
  4. #include "lwip/api.h"
  5. #include "mbedtls/ssl.h"
  6. #ifdef HTTP_SERVER_ENABLE
  7. #define HTTP_AUTH_ENABLE
  8. #define SSL_TASK_PRIO ( configMAX_PRIORITIES - 3 )
  9. #define FRAME_SIZE (1000)
  10. #define SEND_BUF_MAX_LEN 4000
  11. #define RECIVE_BUF_MAX_LEN 1500
  12. typedef enum
  13. {
  14. ALL_ACCESS = 0,
  15. TIME_ACCESS
  16. } ACCESS_TYPE_t;
  17. typedef enum
  18. {
  19. COMMON_ANSWER = 0,
  20. PARAMETER_ANSWER,
  21. HISTORY_ANSWER,
  22. UPS_HISTORY_ANSWER
  23. } REQ_TYPE_SEND_t;
  24. typedef enum
  25. {
  26. SEND_REQUIRED_YES = 0,
  27. SEND_REQUIRED_NO,
  28. SEND_REQUIRED_FILE
  29. } REQ_TYPE_t;
  30. struct http_state
  31. {
  32. char *file;
  33. u32_t left;
  34. u32_t reqnum;
  35. void *locked;
  36. };
  37. struct fs_file {
  38. char *data;
  39. int len;
  40. };
  41. void HTTP_Init();
  42. /**
  43. * @brief Выводим запросы в консоль
  44. */
  45. void vTaskPrintHttp(void *pvParameters);
  46. /**
  47. * @brief Установка даты производства
  48. */
  49. void HTTP_Prodate(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  50. /**
  51. * @brief Парсинг строки настроек
  52. */
  53. void HTTP_SetSettings(char *buf, uint16_t lenBuf);
  54. /**
  55. * @brief
  56. */
  57. void HTTP_SetInfo(char *buf, uint16_t lenBuf);
  58. /**
  59. * @brief
  60. */
  61. char* HTTP_SetSettingsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  62. #ifdef NOTIFICATION_CONTROL_ENABLE
  63. /**
  64. * @brief
  65. * @retval None
  66. */
  67. char *HTTP_SnmpParam(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  68. /**
  69. * @brief
  70. * @retval None
  71. */
  72. void HTTP_SetNotification(char *buf, uint16_t lenBuf);
  73. #endif
  74. /**
  75. * @brief
  76. */
  77. char* HTTP_SetInfoPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  78. #ifdef HTTP_AUTH_ENABLE
  79. /**
  80. * @brief
  81. */
  82. char* HTTP_LoginPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  83. /**
  84. * @brief
  85. */
  86. char* HTTP_LogoutPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  87. /**
  88. * @brief Смена пароля пользователя
  89. * @retval None
  90. */
  91. char *HTTP_ChangeUserPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  92. #endif
  93. /**
  94. * @brief
  95. */
  96. char* HTTP_UpsHistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  97. /**
  98. * @brief
  99. */
  100. char* HTTP_HistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  101. /**
  102. * @brief
  103. */
  104. char* HTTP_Reset(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  105. /**
  106. * @brief
  107. */
  108. char* HTTP_Reboot(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  109. /**
  110. * @brief
  111. */
  112. char* HTTP_Confirm(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  113. /**
  114. * @brief Запуск/останов теста UPS
  115. */
  116. char* HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  117. /**
  118. * @brief Выклюение UPS
  119. */
  120. char* HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  121. /**
  122. * @brief Проверка пароля для перехода в режим bootloader
  123. */
  124. char* HTTP_ConfirmBootPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  125. /**
  126. * @brief Проверка пароля для входа в Web
  127. */
  128. int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  129. /**
  130. * @brief
  131. */
  132. char* HTTP_GetRequest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  133. /**
  134. * @brief
  135. */
  136. char* HTTP_NoFound(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  137. /**
  138. * @brief
  139. */
  140. uint8_t GetParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);
  141. uint8_t GetParamValue0(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);
  142. uint8_t GetCookieValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);
  143. /**
  144. * @brief
  145. * @retval None
  146. */
  147. uint8_t GetParamValueInEnd(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);
  148. void ClearParamString(char *inBuf);
  149. #endif
  150. #endif /* HTTP_SERVER_H */