stm32_ota/USER/USERAPP/userapp.h

93 lines
5.2 KiB
C
Raw Permalink Normal View History

2023-12-15 06:28:06 +00: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 "timer.h"
#include "rs232.h"
#include "rs485.h"
#include "osPort.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>
typedef struct
{
bool moduleStatus : 1 ; //<2F><>־EC20_Module_Init()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
bool netRegStatus : 1 ; //<2F><>־EC20_Net_Reg()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
bool tcpStatus : 1 ; //<2F><>־AppTcpInit()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
bool httpStatus : 1 ; //<2F><>־Http_Init()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
bool ftpStatus : 1 ; //<2F><>־AppFtpInit()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
}NETSTATUS_s ; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>״̬
typedef enum
{
SelfApp , //Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>APP<50>ļ<EFBFBD>,<2C>̼<EFBFBD>ʹ<EFBFBD><CAB9>MACID.bin<69><6E><EFBFBD>ֻ<EEA3AC><D6BB>Ҫmacidһ<64>µ<EFBFBD><C2B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
CommonApp //ͨ<>õ<EFBFBD>APP<50>ļ<EFBFBD><C4BC><EFBFBD> <20>̼<EFBFBD>ʹ<EFBFBD><CAB9>CommonApp.bin<69><6E><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù̼<C3B9>
}APPTYPE_e ; //<2F>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>
typedef struct
{
uint32_t appFlashAddr ; //<2F><EFBFBD><E6B4A2>ǰ<EFBFBD><C7B0><EFBFBD>صĹ̼<C4B9><CCBC><EFBFBD>APP2<50><32>APP3<50><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>Ӧд<D3A6><D0B4>FLASH<53>еĿ<D0B5>ʼ<EFBFBD><CABC>ַ
uint8_t fileName[MAC_BYTES_LEN+4+1] ; //24λӲ<CEBB><D3B2><EFBFBD><EFBFBD>ַ+4λ<34>ļ<EFBFBD><C4BC><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>.bin<69><6E>+1λ<31>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
APPTYPE_e eAppType ; //<2F>¹̼<C2B9><CCBC><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>Ψһ<CEA8>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>ù̼<C3B9>
uint32_t fileSize ; //<2F>¹̼<C2B9><CCBC>Ĵ<EFBFBD>С<EFBFBD><D0A1>byte<74><65>
uint8_t subPackSum ; //<2F>¹̼<C2B9><CCBC>ֶ<EFBFBD><D6B6>ٸ<EFBFBD><D9B8>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t subPackNum ; //<2F>Ӱ<EFBFBD>ָ<EFBFBD><D6B8>
uint32_t downPos ; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ֽ<EFBFBD><D6BD><EFBFBD>ָ<EFBFBD><D6B8>
}DownFileP_s ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><E1B9B9><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>
extern DownFileP_s sDownApp ; //sDownApp<70><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern NETSTATUS_s sNetStatus ; //NETSTATUS_s<5F><EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>״̬
/*<2A><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־λ<D6BE><EFBFBD><EAB6A8>*/
#define MODULEBIT_0 sNetStatus.moduleStatus //<2F><>־EC20_Module_Init()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
#define NETREGBIT_1 sNetStatus.netRegStatus //<2F><>־EC20_Net_Reg()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
#define TCPBIT_2 sNetStatus.tcpStatus //<2F><>־AppTcpInit()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
#define HTTPBIT_3 sNetStatus.httpStatus //<2F><>־Http_Init()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
#define FTPBIT_4 sNetStatus.ftpStatus //<2F><>־AppFtpInit()<29><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬
#define ONCE_DOWN_LEN 2048 //FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>С
/**********************************************************************************
*<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
***********************************************************************************/
uint32_t Check_AppNum( u32 appNumFlagWord ) ;
void Erase_App_Area(uint32_t appNum) ;
/********************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*********************************************************************************/
extern void Board_Init(void) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>ʼ<EFBFBD><CABC>
extern RunResult NetDisconnetc(void) ; //<2F>Ͽ<EFBFBD>TCP<43><50><EFBFBD>ӣ<EFBFBD>ע<EFBFBD><D7A2>FTP<54><50>½
extern RunResult FindAppFile(DownFileP_s *psFileParm) ; //<2F><>sFtpBoot.ftpDirectoryĿ¼<C4BF>в<EFBFBD><D0B2>ң<EFBFBD><D2A3>ļ<EFBFBD><C4BC><EFBFBD>Ϊ24λMAC<41><43>ַ+.bin<69><6E>/("CommonApp.bin")<29><><EFBFBD>ļ<EFBFBD>
extern RunResult DownSubpackVerify(DownFileP_s *psFileParm, int *pHeadPos) ;//<2F>¹̼<C2B9>bin<69>ļ<EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD>ַ<EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>У<EFBFBD><D0A3>
extern RunResult DownOtherSubpack(DownFileP_s *psFileParm) ; //<2F><><EFBFBD><EFBFBD><EFBFBD>¹̼<C2B9><CCBC><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>FLASH<53><48>
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 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
#endif