/** ****************************************************************************** * @file main.h * @author * @version V0.0.1 * @date 17-July-2017 * @brief Header for main.c module ****************************************************************************** * * * * * * * * ****************************************************************************** */ #ifndef __MAIN_H_ #define __MAIN_H_ /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal.h" #include "string.h" #include "bsp.h" #include "usart.h" #include "utils.h" #include "flash.h" #if !defined(HAL_I2C_MODULE_EANBLED) #include "I2C.h" #endif #include "wificonfig.h" #include "esp8266at.h" #include "eerom.h" #include "RX8025T.h" #include "tcpserver.h" #include "tcpclient.h" #include "configprotocal.h" #include "setting.h" #include "instance.h" /* Exported macro ------------------------------------------------------------*/ #define WIFITEST 0 #define ETHERNETTEST 0 #define DEBUG_BUF_LEN 1400 #define TEA_LOOP 16 #define TEA_DELTA 0x9e3779b9 #define TEA_DELTA_FIN ((TEA_DELTA * TEA_LOOP) & 0xFFFFFFFF) #define TEA_KEY_LEN 16 /* Exported types ------------------------------------------------------------*/ typedef struct { uint32_t encrypt : 1; // 0:None; 1:TEA key=ScenAuto1234!@#$ uint32_t prfMode : 1; // 0:64M; 1:16M; 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} uint32_t reserved1 : 4; // reserved1 uint32_t channel : 1; // 0:channel2; 1:channel5; uint32_t reserved2 : 3; // reserved1 uint32_t reserved3 : 4; // uint32_t temp : 8; // uint32_t peroid : 8; // }bfSignalConfig; typedef struct { uint16_t panID; // uint16_t address; // bfSignalConfig signal; // uint32_t fixPower; }stStationConfig; typedef enum { LED_OFF = 0, LED_ON, LED_TOGGLE, }eLedPattern; typedef struct _led_status_{ uint8_t ledBatStatus; uint8_t ledBatStatus_old; uint8_t ledBatCount; uint8_t ledBatLimit; uint8_t ledRunStatus; uint8_t ledRunStatus_old; uint8_t ledRunCount; uint8_t ledRunLimit; uint8_t ledComStatus; uint8_t ledComStatus_old; uint8_t ledComCount; uint8_t ledComLimit; uint8_t ledUwbStatus; uint8_t ledUwbStatus_old; uint8_t ledUwbCount; uint8_t ledUwbLimit; }stLedStatus; typedef struct _factory_test_status_ { uint8_t testMode; uint8_t status; uint8_t ledCommand; uint8_t ledMask; uint8_t keyStatus; uint8_t keyStatusOld; uint8_t screenFormat; uint8_t screenLocation; uint8_t screenString[8]; }stFactoryTestStatus; typedef enum _battery_status_{ BAT_NONE = 0, BAT_CHARGING, BAT_FULL, BAT_NODCIN, BAT_UNKNOWN }eBatteryStatus; typedef struct _power_voltage_ { uint16_t batteryVoltage; uint16_t dcInputVoltage; uint8_t status; uint8_t power; uint8_t statusOld; uint8_t dcToggleFlag; }stPowerVoltage; typedef union _anchor_status_{ uint32_t value; struct{ uint32_t run : 1; uint32_t communication : 1; uint32_t range : 1; uint32_t test : 1; uint32_t temp : 4; uint32_t reserved1 : 8; uint32_t reserved2 : 8; uint32_t count:8; }status; }uAnchorStatus; /* Exported constants --------------------------------------------------------*/ extern stStationConfig dwsConfig; extern uint8_t debugBuffer[DEBUG_BUF_LEN]; extern int debugLen; extern stFactoryTestStatus testStatus; extern stPowerVoltage powerVoltage; extern uAnchorStatus anchorStatus ; extern uint8_t TEA_KEY[TEA_KEY_LEN]; /* Exported functions ------------------------------------------------------- */ extern void Debug_Uart_IRQ_Handler(void); extern void RTC_WakeUpEventCallback(void); extern void process_dwRSTn_irq(void); extern void process_deca_irq(void); extern uint32_t inittestapplication(stStationConfig cfg); extern void InformRunLed(int32_t status); void ReportResetSignPeriodically(); void ReportRangePeriodically(uint32_t flag); void ReportRangeImmediately(uint32_t flag); void ReportRangeResult(int rx); int UpdateTagCommand(uint8_t* buf, uint32_t len); void ExcuteTimeSettingCommand(void); void ClearTimeSettingCommand(void); void EncryptTEA(uint8_t* plainText, int startIndex, int bufLen); void DecryptTEA(uint8_t* cipherText, int startIndex, int bufLen); #endif /* __MAIN_H */ /******************************** END OF FILE *********************************/