stm32_ota/ABM开发板(APP源码)/FreeRTOS版本/APPV3.0/USER/USERAPP/userapp.h

121 lines
8.6 KiB
C
Raw Permalink Normal View History

2024-12-17 20:03:43 +08:00
#ifndef __USERAPPx_H
#define __USERAPPx_H
#include <stdbool.h> //bool<6F><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#include <stdint.h>
#include <stdlib.h>
#include "mac.h"
#include "rs232.h"
#include "rs485.h"
#include "FreeRTOS.h"
#include "event_groups.h"
#include "semphr.h"
#include "osPort.h"
/*********Ӧ<>ò<EFBFBD><C3B2>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>*******************************************************/
//#include "stm32Temp.h"
//#include "gate_timer.h"
/**********************************************************************************/
/**********************************************************************************
**GateApp<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>
*********************************************************************************/
/**********************************************************************************
**<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*********************************************************************************/
typedef struct
{
char macId[MAC_BYTES_LEN+1] ; //<2F><><EFBFBD><EFBFBD> Ӳ<><D3B2>mac<61><63>ַ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char appVers[VERSION_LEN+1] ; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char bootVers[VERSION_LEN+1] ; //<2F><><EFBFBD><EFBFBD> boot<6F><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char rstReason[VERSION_LEN+1] ; //<2F><><EFBFBD><EFBFBD> <20>ϴ<EFBFBD><CFB4><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}Application ; //<2F><><EFBFBD><EFBFBD> Ӧ<>ó<EFBFBD><C3B3><EFBFBD>һд<D2BB><D0B4><EFBFBD><EFBFBD><EFBFBD>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/**********************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*********************************************************************************/
extern Application gateApp ; //gateApp<70><70><EFBFBD><EFBFBD>Ӧ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
#define STATE_OK 1 //<2F><>ʾ<EFBFBD><CABE>־λ<D6BE><CEBB>ӳ<EFBFBD><D3B3>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
#define STATE_ERR 0 //<2F><>ʾ<EFBFBD><CABE>־λ<D6BE><CEBB>ӳ<EFBFBD><D3B3>״̬<D7B4>
/*OS<4F><53><EFBFBD><EFBFBD>״̬<D7B4>¼<EFBFBD><C2BC><EFBFBD>־λ<D6BE><CEBB><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>*/
extern EventGroupHandle_t osSafeEventHandler ; //OS<4F><53><EFBFBD><EFBFBD>״̬<D7B4>¼<EFBFBD><C2BC><EFBFBD>־<EFBFBD><EFBFBD><E9A3A8>־λOSÿ<53><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHECKTASKINTERVAL 180 //180<38><30>(3mins)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NETBIT_0 (EventBits_t)(1 << 0) //<2F><>־λ0<CEBB><30><EFBFBD><EFBFBD>ӳ"<22><><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"״̬
#define LTEBIT_1 (EventBits_t)(1 << 1) //<2F><>־λ1<CEBB><31><EFBFBD><EFBFBD>ӳ"LTE<54><45><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"״̬
#define CAMERABIT_2 (EventBits_t)(1 << 2) //<2F><>־λ2<CEBB><32><EFBFBD><EFBFBD>ӳ"<22><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"״̬
#define TCPUPBIT_3 (EventBits_t)(1 << 3) //<2F><>־λ3<CEBB><33><EFBFBD><EFBFBD>ӳ"TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>"״̬
#define TCPHEARTBIT_4 (EventBits_t)(1 << 4) //<2F><>־λ4<CEBB><34><EFBFBD><EFBFBD>ӳ"TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"״̬
#define UCMDBIT_5 (EventBits_t)(1 << 5) //<2F><>־λ5<CEBB><35><EFBFBD><EFBFBD>ӳ"<22>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"״̬
#define READOSSAFEEVENT xEventGroupGetBits(osSafeEventHandler) //<2F><>ȡ<EFBFBD><C8A1>־<EFBFBD><D6BE>osSafeEventHandler<65><72>ֵ
#define GETTASKOSSAFE (((NETBIT_0|LTEBIT_1|CAMERABIT_2|TCPUPBIT_3|TCPHEARTBIT_4|UCMDBIT_5) & xEventGroupGetBits(osSafeEventHandler))\
== (NETBIT_0|LTEBIT_1|CAMERABIT_2|TCPUPBIT_3|TCPHEARTBIT_4|UCMDBIT_5)) //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־λ0&<26><>־λ1&<26><>־λ2&<26><>־λ3&<26><>־λ4&<26><>־λ5<CEBB><35>״̬<D7B4><CCAC>
#define SETNETTASKOK xEventGroupSetBits(osSafeEventHandler, NETBIT_0) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ0<CEBB><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ״̬STATE_OK"
#define SETLTETASKOK xEventGroupSetBits(osSafeEventHandler, LTEBIT_1) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ1<CEBB><31>LTE<54><45><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ״̬STATE_OK"
#define SETCAMERATASKOK xEventGroupSetBits(osSafeEventHandler, CAMERABIT_2) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ2<CEBB><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ״̬STATE_OK"
#define SETTCPUPTASKOK xEventGroupSetBits(osSafeEventHandler, TCPUPBIT_3) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ3<CEBB><33>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD> ״̬STATE_OK"
#define SETTCPHEARTTASKOK xEventGroupSetBits(osSafeEventHandler, TCPHEARTBIT_4) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ4<CEBB><34>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ״̬STATE_OK"
#define SETUCMDTASKOK xEventGroupSetBits(osSafeEventHandler, UCMDBIT_5) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ5<CEBB><35><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ״̬STATE_OK"
#define RESETOSSAFEEVENT xEventGroupClearBits(osSafeEventHandler, NETBIT_0|LTEBIT_1|CAMERABIT_2|TCPUPBIT_3|TCPHEARTBIT_4|UCMDBIT_5) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>־λ
/*<2A><><EFBFBD><EFBFBD>״̬<D7B4>¼<EFBFBD><C2BC><EFBFBD>־λ<D6BE><CEBB><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>*/
extern EventGroupHandle_t netEventHandler ; //<2F><><EFBFBD><EFBFBD>״̬<D7B4>¼<EFBFBD><C2BC><EFBFBD>־<EFBFBD><EFBFBD><E9A3A8>־λ<D6BE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
#define MODULEBIT_0 (EventBits_t)(1 << 0) //<2F><>־λ0<CEBB><30><EFBFBD><EFBFBD>ӳEC20 moudle<6C><65>ʼ<EFBFBD><CABC>״̬
#define NETREGBIT_1 (EventBits_t)(1 << 1) //<2F><>־λ1<CEBB><31><EFBFBD><EFBFBD>ӳEC20 EC20_Net_Reg<65><67>ʼ<EFBFBD><CABC>״̬
#define TCPBIT_2 (EventBits_t)(1 << 2) //<2F><>־λ2<CEBB><32><EFBFBD><EFBFBD>ӳEC20 TCP״̬
#define HTTPBIT_3 (EventBits_t)(1 << 3) //<2F><>־λ3<CEBB><33><EFBFBD><EFBFBD>ӳEC20 HTTP<54><50><EFBFBD><EFBFBD>״̬
#define GETMODULESTATE ((MODULEBIT_0 & xEventGroupGetBits(netEventHandler)) == MODULEBIT_0) //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־λ0<CEBB><30>EC20 moudle<6C><65>ʼ<EFBFBD><CABC>״̬"
#define GETNETREGSTATE ((NETREGBIT_1 & xEventGroupGetBits(netEventHandler)) == NETREGBIT_1) //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־λ1<CEBB><31>EC20 EC20_Net_Reg<65><67>ʼ<EFBFBD><CABC>״̬<D7B4><CCAC>
#define GETTCPSTATE ((TCPBIT_2 & xEventGroupGetBits(netEventHandler)) == TCPBIT_2) //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־λ2<CEBB><32>EC20 TCP״̬<D7B4><CCAC>
#define GETHTTPSTATE ((HTTPBIT_3 & xEventGroupGetBits(netEventHandler)) == HTTPBIT_3) //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־λ3<CEBB><33>EC20 HTTP<54><50><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
#define GETUSERNETSTATE (((MODULEBIT_0|NETREGBIT_1|TCPBIT_2|HTTPBIT_3) & xEventGroupGetBits(netEventHandler)) == (MODULEBIT_0|NETREGBIT_1|TCPBIT_2|HTTPBIT_3)) //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־λ0&<26><>־λ1&<26><>־λ2&<26><>־λ3<CEBB><33>״̬<D7B4><CCAC>
#define SETMODULEOK xEventGroupSetBits(netEventHandler, MODULEBIT_0) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ0<CEBB><30>EC20 moudle<6C><65>ʼ<EFBFBD><CABC>״̬ STATE_OK"
#define SETNETREGOK xEventGroupSetBits(netEventHandler, NETREGBIT_1) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ1<CEBB><31>EC20 EC20_Net_Reg<65><67>ʼ<EFBFBD><CABC>״̬ STATE_OK<4F><4B>
#define SETTCPOK xEventGroupSetBits(netEventHandler, TCPBIT_2) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ2<CEBB><32>EC20 TCP״̬ STATE_OK<4F><4B><EFBFBD><EFBFBD>
#define SETHTTPOK xEventGroupSetBits(netEventHandler, HTTPBIT_3) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ3<CEBB><33>EC20 HTTP<54><50><EFBFBD><EFBFBD>״̬ STATE_OK<4F><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SETTCPERR xEventGroupClearBits(netEventHandler, TCPBIT_2) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ2<CEBB><32>EC20 TCP״̬ STATE_ERR"
#define SETHTTPERR xEventGroupClearBits(netEventHandler, HTTPBIT_3) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ3<CEBB><33>EC20 HTTP<54><50><EFBFBD><EFBFBD>״̬ STATE_ERR<52><52>
#define SETNETREGERR xEventGroupClearBits(netEventHandler, NETREGBIT_1|TCPBIT_2|HTTPBIT_3) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ1<CEBB><31><EFBFBD><EFBFBD>־λ2<CEBB><32><EFBFBD><EFBFBD>־λ3<CEBB><33>״̬ STATE_ERR<52><52>
#define SETMODULEERR xEventGroupClearBits(netEventHandler, MODULEBIT_0|NETREGBIT_1|TCPBIT_2|HTTPBIT_3) //<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>־λ0<CEBB><30><EFBFBD><EFBFBD>־λ1<CEBB><31><EFBFBD><EFBFBD>־λ2<CEBB><32><EFBFBD><EFBFBD>־λ3<CEBB><33>״̬ STATE_ERR<52><52>
/*EC20<32><30>Դ<EFBFBD><D4B4>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
extern SemaphoreHandle_t ec20MutexSemaphore ; //<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EC20<32><30>Դ<EFBFBD><D4B4>ռ<EFBFBD><D5BC><EFBFBD>ͷţ<CDB7>
extern char lastOccupyEc20[30] ; //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>¼<EFBFBD><C2BC>һ<EFBFBD><D2BB>ռ<EFBFBD><D5BC>EC20<32><30>Դ<EFBFBD><D4B4>__FILE__, __LINE__
extern char lastReleseEc20[30] ; //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>¼<EFBFBD><C2BC>һ<EFBFBD><D2BB><EFBFBD>ͷ<EFBFBD>EC20<32><30>Դ<EFBFBD><D4B4>__FILE__, __LINE__
//#define OCCUPY_EC20(t) xSemaphoreTake(ec20MutexSemaphore, t); memset(lastOccupyEc20, 0, 25);\\
// snprintf( lastOccupyEc20, 25, "\r\n%s %d ռ<><D5BC>EC20<32><30>Դ!", __FILE__, __LINE__) ;
// UARTx_SendData(UART_DEBUG, lastOccupyEc20, strlen(lastOccupyEc20)) portMAX_DELAY //<2F>ȴ<EFBFBD>ռ<EFBFBD><D5BC>EC20<32><30>Դ һֱ<D2BB>ȴ<EFBFBD><C8B4><EFBFBD>t = portMAX_DELAY
#define RELESE_EC20(void) xSemaphoreGive(ec20MutexSemaphore); memset(lastReleseEc20, 0, 25);\
snprintf( lastReleseEc20, 25, "%s %d <20>ͷ<EFBFBD>EC20!", __FILE__, __LINE__) ;\
AppLogPrintf(lastReleseEc20) ;
// UARTx_SendData(UART_DEBUG, lastReleseEc20, strlen(lastReleseEc20)) //<2F>ͷ<EFBFBD>EC20<32><30>Դ
/**********************************************************************************
*<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
***********************************************************************************/
/********************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*********************************************************************************/
extern void OccpyEc20(TickType_t timeout, char* file, int line) ; //<2F><>ȡEC20<32><30>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>timeoutû<74>л<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>д<EFBFBD><D0B4>LOGȻ<47><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ
extern void Board_Init(void) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>ʼ<EFBFBD><CABC>
extern void PrintfDeviceInfo(void) ; //DEBUG<55><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>Ϣ
extern void DeviceRstReason(uint8_t *reason, uint8_t maxLen) ; //<2F><>ȡӲ<C8A1><D3B2><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
extern void TcpUpFlashLog(void) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>FLASH<53><EFBFBD><E6B4A2>LOG
extern void Rtc_Alr_Callback(void) ; //RTC<54><43><EFBFBD><EFBFBD><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD>ڶ<EFBFBD><DAB6>죬ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD>
extern void InitApplictationState(Application *appPointer); //<2F><>ʼ<EFBFBD><CABC>Application<6F><EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern void SetAppVersion(Application *appPointer, char *version) ; //<2F><><EFBFBD><EFBFBD>Application<6F><EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>APP<50><50><EFBFBD><EFBFBD><EFBFBD>
extern void SetBootVersion(Application *appPointer, char *version) ;//<2F><><EFBFBD><EFBFBD>Application<6F><EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>boot<6F><74><EFBFBD><EFBFBD><EFBFBD>
extern void SetMacId(Application *appPointer, char *macId) ; //<2F><><EFBFBD><EFBFBD>Application<6F><EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>macid
extern void RefreshOledTime(void) ; //ˢ<><CBA2><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>3<EFBFBD>С<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>ʾʱ<CABE><CAB1>
#endif