http_server.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #ifdef HARDWARE_BT6706
  2. #include "lwip/opt.h"
  3. #include "lwip/arch.h"
  4. #include "lwip/api.h"
  5. #include "mbedtls/ssl.h"
  6. #define SSL_TASK_PRIO ( configMAX_PRIORITIES - 3 )
  7. #define FRAME_SIZE (1000)
  8. typedef enum
  9. {
  10. COMMON_ANSWER = 0,
  11. HISTORY_ANSWER,
  12. UPS_HISTORY_ANSWER
  13. } REQ_TYPE_SEND_t;
  14. typedef enum
  15. {
  16. SEND_REQUIRED_YES = 0,
  17. SEND_REQUIRED_NO,
  18. SEND_REQUIRED_FILE
  19. } REQ_TYPE_t;
  20. struct http_state
  21. {
  22. char *file;
  23. u32_t left;
  24. };
  25. struct fs_file {
  26. char *data;
  27. int len;
  28. };
  29. void HTTP_Init();
  30. static err_t http_accept(void *arg, struct tcp_pcb *pcb, err_t err);
  31. static err_t http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err);
  32. /**
  33. * @brief Выводим запросы в консоль
  34. */
  35. void vTaskPrintHttp(void *pvParameters);
  36. /**
  37. * @brief Установка даты производства
  38. */
  39. void HTTP_Prodate(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  40. /**
  41. * @brief Парсинг строки настроек
  42. */
  43. void HTTP_SetSettings(char *buf, uint16_t lenBuf);
  44. /**
  45. * @brief
  46. */
  47. void HTTP_SetInfo(char *buf, uint16_t lenBuf);
  48. /**
  49. * @brief
  50. */
  51. int HTTP_SettingsPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  52. /**
  53. * @brief
  54. */
  55. int HTTP_InfoPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  56. int HTTP_UpsHistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  57. int HTTP_HistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  58. /**
  59. * @brief Запуск/останов теста UPS
  60. */
  61. void HTTP_UPSTest(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  62. /**
  63. * @brief Выклюение UPS
  64. */
  65. void HTTP_UPSshutdown(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  66. /**
  67. * @brief Проверка пароля для перехода в режим bootloader
  68. */
  69. void HTTP_ConfirmBootPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  70. /**
  71. * @brief Проверка пароля для входа в Web
  72. */
  73. int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);
  74. void HTTP_LOGIN(char *bufOut, uint16_t *lenBufOut);
  75. /**
  76. * @brief
  77. */
  78. uint8_t GetParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);
  79. uint8_t GetCookieValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);
  80. /**
  81. * @brief
  82. * @retval None
  83. */
  84. uint8_t GetParamValueInEnd(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);
  85. void ClearParamString(char *inBuf);
  86. /**
  87. * @brief Замена символа в строке
  88. * @param *str - входная строка
  89. * @param sim1 - символ который надо заменить
  90. * @param sim2 - символ на который надо заменить
  91. */
  92. void HTTP_ReplaceSimbol(char *str, char sim1, char sim2);
  93. #ifdef __cplusplus
  94. extern "C" {
  95. #endif
  96. void Cockie(void);
  97. void getAuthenticatedState(void);
  98. char* HTTP_SendHistory(uint16_t *Len);
  99. char* HTTP_SendLog(uint16_t *Len);
  100. char* AuthenticatedFalseRoutine(uint16_t* sendLen);
  101. char* AuthenticatedTrueRoutine(uint16_t* sendLen);
  102. #ifdef __cplusplus
  103. }
  104. #endif
  105. #endif