stm32_ota/ABM开发板(BOOT源码)/BOOTV2.1/HARDWARE/LTE/EC20/ec20module.h

100 lines
5.5 KiB
C
Raw Permalink Normal View History

2024-12-17 20:03:43 +08:00
#ifndef _EC20MODULE_H
#define _EC20MODULE_H
#include <stdbool.h>
#include "usart.h"
#include "syslib.h"
/*****************************************
*ec20module<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
****************************************/
#define EC20_UART COM1 //STM32<33><32>EC20ͨ<30>Ŵ<EFBFBD><C5B4>ڵ<EFBFBD>ӳ<EFBFBD><D3B3>
#define MODULE_CMDPACK_LEN 1288 //EC20 module<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD>
#define SIM_ICCID_LEN 25 //<2F><><EFBFBD><EFBFBD> SIM<49><4D>ICCID<49><44> <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
#define EC20_VER_LEN 20 //<2F>ַ<EFBFBD>EC20ģ<30><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE> <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
#define EC20_VOL_LEN 4 //<2F><><EFBFBD><EFBFBD>EC20ģ<30><C4A3><EFBFBD><EFBFBD>ѹ <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
#define CSQ_LEN 3 //<2F><><EFBFBD><EFBFBD>EC20ģ<30><C4A3><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
/*EC20 3.6V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹƬʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD>ߵ<EFBFBD>ƽʹ<EFBFBD><EFBFBD>*/
#define EC20_POW_PORT PE
#define EC20_POW_PIN PIN15
#define EC20_POW PEout(EC20_POW_PIN)
/*EC20 Ӳ<><D3B2><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>̬<EFBFBD>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>帴λEC20*/
#define EC20_RST_PORT PE //PE15
#define EC20_RST_PIN PIN11
#define EC20_RST PEout(EC20_RST_PIN)
/*****************************************
*ec20module<EFBFBD>û<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
****************************************/
typedef enum
{
AT_MODE = 0 , //AT<41><54><EFBFBD><EFBFBD>ģʽ
USER_MODE = 1 , //<2F><><EFBFBD><EFBFBD>sever<65>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ģʽ
} EC20RECMODE_e ; //EC20<32><30><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>ģʽ
typedef struct
{
uint8_t cmdNum ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char *cmdStr ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
uint16_t timeout ; //<2F><><EFBFBD>ջ<EFBFBD><D5BB>볬ʱʱ<CAB1><CAB1>t=revTimeout*100ms
char *trueStr ; //<2F><>ȷ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>Ӵ<EFBFBD>
volatile int trueOffset ; //<2F><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>Ӵ<EFBFBD><D3B4><EFBFBD>ec20AtBuf<75>е<EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
char *falseStr ; //ָ<><EFBFBD><EEB4A6>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ص<EFBFBD><D8B5>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
RunResult revResult ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t rtyNum ; //ʧ<>ܺ<EFBFBD><DCBA>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
}EC20_CMD_DATA_s; //ec20ͨ<30><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9>
typedef struct
{
char ec20SoftVer[EC20_VER_LEN+1] ; //<2F><><EFBFBD><EFBFBD>EC20ģ<30><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char ec20Voltage[EC20_VOL_LEN+1] ; //<2F><><EFBFBD><EFBFBD>EC20ģ<30><C4A3><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>ѹ
char csq[CSQ_LEN+1] ; //3+1bytes <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>CSQ
char simICCID[SIM_ICCID_LEN+1] ; //25+1bytes <20><><EFBFBD><EFBFBD>SIM<49><4D><EFBFBD><EFBFBD>ICCID<49><44>
}ModuleParam_s ; //EC20<32><30><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľṹ<C4BD><E1B9B9>
/*****************************************
*ec20<EFBFBD>ɹ<EFBFBD><EFBFBD>ⲿʹ<EFBFBD>õij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
****************************************/
#define MAX_IP_LEN 16 //IPV4 IP<49><50>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD>
#define PORT_MAXLEN 6 //IPV4 <20>˿ڵ<CBBF><DAB5><EFBFBD><EFBFBD>󳤶ȣ<F3B3A4B6>0-65535<33><35>
#define EC20_ATBUF_LEN 320 //ec20AtBuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define EC20_HTTPBUF_LEN 320 //ec20AtBuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define EC20_FTPBUF_LEN (2048+256) //ec20FtpBuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern ModuleParam_s sEc20Param ; //<2F><><EFBFBD><EFBFBD>ModuleParam_s<5F><EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sEc20Param<61><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EC20һЩ<D2BB><D0A9>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
extern volatile bool httpDataMode ; //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http<74><70><EFBFBD><EFBFBD>ģʽ
extern volatile bool ftpDataMode ; //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ftp<74><70><EFBFBD><EFBFBD>ģʽ
extern char ec20AtBuf[EC20_ATBUF_LEN] ; //EC20 AT<41><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>
extern char ec20HttpBuf[EC20_HTTPBUF_LEN] ; //EC20 AT<41><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>
extern char ec20FtpBuf[EC20_FTPBUF_LEN] ; //EC20 FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>
extern volatile int ec20FtpBufIndex ; //ec20FtpBuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дָ<D0B4><D6B8>
extern FrameQueue_s sTcpQueue ; //<2F><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢ģ<E6B4A2><EFBFBD>ص<EFBFBD>tcp<63><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern FrameQueue_s sUrcQueue ; //<2F><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢ģ<E6B4A2><EFBFBD>ص<EFBFBD>URC<52><43><EFBFBD><EFBFBD>
/*****************************************
*<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
****************************************/
RunResult EC20_SendModuleCmd( uint8_t cmdNum, char *format,... ) ; // EC20ͨ<30><CDA8><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>module<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void EC20_Uart_Init(void) ; //<2F><>ʼ<EFBFBD><CABC>EC20_UART
void EC20_GPIO_Init( void ) ; //<2F><>ʼ<EFBFBD><CABC>EC20<32><30><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD>IO
void EC20_POWON(void) ; //EC20 3.6V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹƬʹ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>
void EC20_POWOFF(void) ; //EC20 3.6V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹƬʧ<EFBFBD>ܶϵ<EFBFBD>
RunResult EC20_START(void) ; //EC20<32><30><EFBFBD><EFBFBD><EFBFBD>ϵ硢<CFB5>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ڡ<EFBFBD>RDY<44><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RunResult EC20_Handshake( void ) ; //mcu<63><75>EC20ͨ<30><CDA8>EC20_UART<52><54><EFBFBD><EFBFBD>
RunResult EC20_CloseEcho(void) ; //<2F>ر<EFBFBD>EC20 AT<41><54><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>
void Ec20ReceiveFrameCallback(char *recvBuf, uint16_t recvLen) ; //EC20_UART<52><54><EFBFBD><EFBFBD>֡<EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
/*****************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
****************************************/
extern void Ec20AtBufReset(void) ; //ec20AtBuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC>
extern void Ec20HttpBufReset(void) ; //ec20HttpBuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC>
extern void Ec20FtpBufReset(void) ; //ec20FtpBuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
extern RunResult EC20_CLOSE(void) ; //EC20<32>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ػ<EFBFBD>+<2B>ϵ<EFBFBD>
extern RunResult EC20_Query_SoftRelese(char *version) ; //<2F><>ȡEC20<32><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
extern RunResult EC20_Query_Voltage(char *voltage) ; //<2F><>ȡEC20<32>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>ѹ
extern RunResult EC20_Module_Init( void ) ; //EC20ģ<30><C4A3><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD>ʼ<EFBFBD><CABC>
#endif