⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmodem.h

📁 原创:xmodem协议介绍及VxWorks下的应用 最初
💻 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 + -