stm32_ota/USER/USER_TCP/user_tcp.h

70 lines
3.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef _USER_TCP_H
#define _USER_TCP_H
#include "ec20tcp.h"
#include "mac.h"
/*****************************************
*用户自定义变量类型
****************************************/
typedef enum
{
BOOTTOTCPFRAME = 'B' , //(硬件TX->Tcp server/串口上位机) BOOT中所有tcp上行的数据包
TCPHEARTFRAME = 'H' , //(硬件TX->Tcp server)TCP心跳数据包
TCPLOGFRAME = 'L' , //(硬件TX->Tcp server)Log数据包
TCPSERVERACK = 'A' , //(Tcp server->硬件RX)硬件上行的TCP心跳数据包、Log数据包Tcp server下发的ACK确认包
TCPCMDFRAME = 'C' , //(Tcp server->硬件RX)用户控制命令帧
COMCMDFRAME = 'c' , //(串口上位机->硬件RX)用户控制命令帧
TCPCMDBACKFRAME = 'R' , //(硬件TX->Tcp server)用户数据帧帧,硬件回复帧
COMCMDBACKFRAME = 'r' //(硬件TX->串口上位机)用户数据帧帧,硬件回复帧
}UPDATATYPE_e ; //用户数据帧类型枚举
typedef struct
{
char head ; //TCP数据帧头
UPDATATYPE_e frameType ; //数据帧类型 UPDATATYPE_e枚举类型
char loadLen[3] ; //负载数据的长度从loadHead~loadTail不包含loadHead和loadTail字节长度
uint8_t frameNum ; //数据帧序号字符串0~9循环
char macHead[4] ; //mac地址标志头字符串 固定字符串“MAC:”
uint8_t macid[MAC_BYTES_LEN] ; //设备的mac地址
char macTail ; //MAC地址结尾标识符
char cmdCode[2] ; //命令操作码
char loadHead ; //负载数据头 '&'
// char *loadBuf ; //负载数据缓冲区地址
char loadTail ; //负载数据尾 $
char reserve ; //预留1byte 固定为X
char tail ; //TCP数据帧尾
}TcpFrame_S ; //tcp数据帧结构体类型
/*****************************************
*ec20tcp外部常变量及申明
****************************************/
#define TCP_LOADBUF_MAXLEN 512 //TCP帧数据负载的最大长度
#define TCP_CONNECTID0 0 //TCP0通道 的ID
#define TCP_CONNECTID0_SERVERIP0 "58.23.31.118" //TCP0通道 主TCP服务器ip地址
#define TCP_CONNECTID0_SERVERPORT0 14001 //TCP0通道 主TCP服务器端口号
#define TCP_CONNECTID0_LOCALPORT0 6000 //TCP0通道 的本地端口
extern ChannalP_s sChannal0 ; //TCP通道0的参数实例化
/*****************************************
*驱动可供外部使用的常变量
****************************************/
extern FrameQueue_s sTcp0Queue ; //需要TCP connect0发送的数据在此环形缓冲区在OS中有个TCP发送的任务一直在发送TCP数据需要发送数据只需要将数据丢到此缓冲区即可
/*****************************************
*对外接口函数声明
****************************************/
extern void SetAppTcpIP(ChannalP_s *psChannal, char* ip) ; //设置登TCP服务器的IP
extern void SetAppTcpPort(ChannalP_s *psChannal, char* port) ; //设置登TCP服务器的PORT
extern RunResult AppTcpInit(void) ; //初始化应用TCP链路的PDP和打开TCP0的通道SOCKET服务
extern void TcpDisconnetc(void) ; //断开Socket 去激活TCP链路的PDP
extern RunResult TcpUpdata( UPDATATYPE_e updataType, char *format, ...) ; //通过TCP将可变参数数据上传到TCP SERVER
#endif