📄 xmodem.h
字号:
/******************************************************************************
文 件 名 : xmodem.h
功能描述 : xmodem协议的头文件
创建日期 : 2008年6月28日
作 者 : gateWay
修改记录 :
******************************************************************************/
#ifndef __XMODEM_API_H_
#define __XMODEM_API_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "std.h"
/*xmodem使用的控制字符定义*/
#define SOH 0x01
#define STX 0x02
#define EOT 0x04
#define ACK 0x06
#define NAK 0x15
#define CAN 0x18
#define CTZ 0x1A
#define C 0x43
/*最大重试次数*/
#define MAX_RETRY 10
/*最大包序列宏定义*/
#define MAX_SEQNO 255
/*等待包头的时间 10S*/
#define WAIT_SOH_TIME 10
/*发送C字符的次数*/
#define SEND_C_TIMES 3
/*校验和方式*/
#define CHECK_CRC 1 /*CRC 校验*/
#define CHECK_SUM 0 /*和校验*/
/*数据包长度,XMODEM:每包128字节,1K xmodem 协议,每包1024字节*/
#define PACKET_MAX_LEM 1030 /* 1024(XModem 1k数据) + 2(序列号空间) + 2 (crc 空间)+ NULL */
#define XMODEM_DATA_LENGTH 128 /*xmodem*/
#define XMODEM_1K_LENGTH 1024 /*1K xmodem*/
/*函数返回值定义*/
#define XMODEM_OK 0x00 /* 操作成功 */
#define XMODEM_ERROR 0xFF /* 操作失败 */
/* xmodem 连接状态定义 */
typedef enum XMODEM_LINK_STATE
{
START_OF_LINK,
RECEIVE_DATA,
TRANS_DATA,
WAIT_FOR_ACK,
END_OF_LINK,
XMODEM_REMOTE_CANCELES,
XMODEM_SOH_WAIT_ERROR,
XMODEM_FILE_TOO_LONG,
TRANS_EOT
}XMODEM_LINK_ENUM;
/* Xmodem packet 的公共属性 */
typedef struct XMODEM_PROPERTY
{
U32 ulProSize; /* 根据协议确定每数据包的大小是1K 还是 128*/
U8* pPacketData; /* 接收/发送包的数据暂存区 */
U32 ulLenTemps; /* 接收/发送包的数据长度暂存 */
U8* pDataPtr; /* 指向接收/发送缓冲区的指针 */
U32 ulDataLength; /* 接收/发送数据的总长度 */
U8 ucCheckType; /* 校验和的方式 */
U8 ucPacketNo; /* 包序列号记录 */
}XMODEM_PROPERTY_STRUCT;
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /*__MSGQ_API_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -