main.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. /**
  2. ******************************************************************************
  3. * @file main.h
  4. * @author
  5. * @version V0.0.1
  6. * @date 17-July-2017
  7. * @brief Header for main.c module
  8. ******************************************************************************
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *
  15. *
  16. *
  17. ******************************************************************************
  18. */
  19. #ifndef __MAIN_H_
  20. #define __MAIN_H_
  21. /* Includes ------------------------------------------------------------------*/
  22. #include "stm32f4xx_hal.h"
  23. #include "string.h"
  24. #include "bsp.h"
  25. #include "usart.h"
  26. #include "utils.h"
  27. #include "flash.h"
  28. #if !defined(HAL_I2C_MODULE_EANBLED)
  29. #include "I2C.h"
  30. #endif
  31. #include "wificonfig.h"
  32. #include "esp8266at.h"
  33. #include "eerom.h"
  34. #include "RX8025T.h"
  35. #include "tcpserver.h"
  36. #include "tcpclient.h"
  37. #include "configprotocal.h"
  38. #include "setting.h"
  39. #include "instance.h"
  40. /* Exported macro ------------------------------------------------------------*/
  41. #define WIFITEST 0
  42. #define ETHERNETTEST 0
  43. #define DEBUG_BUF_LEN 1400
  44. #define TEA_LOOP 16
  45. #define TEA_DELTA 0x9e3779b9
  46. #define TEA_DELTA_FIN ((TEA_DELTA * TEA_LOOP) & 0xFFFFFFFF)
  47. #define TEA_KEY_LEN 16
  48. /* Exported types ------------------------------------------------------------*/
  49. typedef struct
  50. {
  51. uint32_t encrypt : 1; // 0:None; 1:TEA key=ScenAuto1234!@#$
  52. uint32_t prfMode : 1; // 0:64M; 1:16M;
  53. uint32_t pCode : 2; // Preamble Code, ON PRF=64M: {0:9,1:10,2:11,3:12}, ON PRF=16M: {0:3,1:4,2:3,3:4}
  54. uint32_t reserved1 : 4; // reserved1
  55. uint32_t channel : 1; // 0:channel2; 1:channel5;
  56. uint32_t reserved2 : 3; // reserved1
  57. uint32_t reserved3 : 4; //
  58. uint32_t temp : 8; //
  59. uint32_t peroid : 8; //
  60. }bfSignalConfig;
  61. typedef struct {
  62. uint16_t panID; //
  63. uint16_t address; //
  64. bfSignalConfig signal; //
  65. uint32_t fixPower;
  66. }stStationConfig;
  67. typedef enum {
  68. LED_OFF = 0,
  69. LED_ON,
  70. LED_TOGGLE,
  71. }eLedPattern;
  72. typedef struct _led_status_{
  73. uint8_t ledBatStatus;
  74. uint8_t ledBatStatus_old;
  75. uint8_t ledBatCount;
  76. uint8_t ledBatLimit;
  77. uint8_t ledRunStatus;
  78. uint8_t ledRunStatus_old;
  79. uint8_t ledRunCount;
  80. uint8_t ledRunLimit;
  81. uint8_t ledComStatus;
  82. uint8_t ledComStatus_old;
  83. uint8_t ledComCount;
  84. uint8_t ledComLimit;
  85. uint8_t ledUwbStatus;
  86. uint8_t ledUwbStatus_old;
  87. uint8_t ledUwbCount;
  88. uint8_t ledUwbLimit;
  89. }stLedStatus;
  90. typedef struct _factory_test_status_
  91. {
  92. uint8_t testMode;
  93. uint8_t status;
  94. uint8_t ledCommand;
  95. uint8_t ledMask;
  96. uint8_t keyStatus;
  97. uint8_t keyStatusOld;
  98. uint8_t screenFormat;
  99. uint8_t screenLocation;
  100. uint8_t screenString[8];
  101. }stFactoryTestStatus;
  102. typedef enum _battery_status_{
  103. BAT_NONE = 0,
  104. BAT_CHARGING,
  105. BAT_FULL,
  106. BAT_NODCIN,
  107. BAT_UNKNOWN
  108. }eBatteryStatus;
  109. typedef struct _power_voltage_
  110. {
  111. uint16_t batteryVoltage;
  112. uint16_t dcInputVoltage;
  113. uint8_t status;
  114. uint8_t power;
  115. uint8_t statusOld;
  116. uint8_t dcToggleFlag;
  117. }stPowerVoltage;
  118. typedef union _anchor_status_{
  119. uint32_t value;
  120. struct{
  121. uint32_t run : 1;
  122. uint32_t communication : 1;
  123. uint32_t range : 1;
  124. uint32_t test : 1;
  125. uint32_t temp : 4;
  126. uint32_t reserved1 : 8;
  127. uint32_t reserved2 : 8;
  128. uint32_t count:8;
  129. }status;
  130. }uAnchorStatus;
  131. /* Exported constants --------------------------------------------------------*/
  132. extern stStationConfig dwsConfig;
  133. extern uint8_t debugBuffer[DEBUG_BUF_LEN];
  134. extern int debugLen;
  135. extern stFactoryTestStatus testStatus;
  136. extern stPowerVoltage powerVoltage;
  137. extern uAnchorStatus anchorStatus ;
  138. extern uint8_t TEA_KEY[TEA_KEY_LEN];
  139. /* Exported functions ------------------------------------------------------- */
  140. extern void Debug_Uart_IRQ_Handler(void);
  141. extern void RTC_WakeUpEventCallback(void);
  142. extern void process_dwRSTn_irq(void);
  143. extern void process_deca_irq(void);
  144. extern uint32_t inittestapplication(stStationConfig cfg);
  145. extern void InformRunLed(int32_t status);
  146. void ReportResetSignPeriodically();
  147. void ReportRangePeriodically(uint32_t flag);
  148. void ReportRangeImmediately(uint32_t flag);
  149. void ReportRangeResult(int rx);
  150. int UpdateTagCommand(uint8_t* buf, uint32_t len);
  151. void ExcuteTimeSettingCommand(void);
  152. void ClearTimeSettingCommand(void);
  153. void EncryptTEA(uint8_t* plainText, int startIndex, int bufLen);
  154. void DecryptTEA(uint8_t* cipherText, int startIndex, int bufLen);
  155. #endif /* __MAIN_H */
  156. /******************************** END OF FILE *********************************/