00001 #ifndef XMODEM_H 00002 #define XMODEM_H 00003 00004 #define XMODEM_BLOCK_SIZE 128 00005 #define XMODEM_RETRIES 20 00006 #define XMODEM_SOH 0x01 // start of header 128 block size 00007 #define XMODEM_STX 0x02 // start of header 1024 block size 00008 #define XMODEM_EOT 0x04 // end of text 00009 #define XMODEM_ACK 0x06 // acknoledge 00010 #define XMODEM_NAK 0x15 // negative acknoledge 00011 #define XMODEM_ETB 0x17 // negative acknoledge 00012 #define XMODEM_CAN 0x18 // cancel 00013 #define XMODEM_CHAR_C 0x43 // char c 00014 00015 typedef struct{ 00016 U8 Put; 00017 U8 Get; 00018 U8 Data[130]; 00019 }XMODEM_BUFFER; 00020 00021 typedef struct{ 00022 U8 State; 00023 U8 SubState; 00024 U8 Status; 00025 U8 InUse; 00026 U16 Id; 00027 U16 UserId; 00028 U16 Timer; 00029 U8 ReceiveFinish; 00030 U8 BlockNumber; 00031 U8 Error; 00032 U8 ErrorCount; 00033 U8 ErrorCode; 00034 U8 ErrorRecord; 00035 U8 Checksum; 00036 U8 NewBlock; 00037 U32 ByteCount; 00038 U32 TotalBlockCount; 00039 U8 *pData; 00040 XMODEM_BUFFER Buffer; 00041 }XMODEM_CONTROL; 00042 00043 extern XMODEM_CONTROL XmodemCtrl; 00044 extern void XmodemInit(void); 00045 extern void XmodemSvc(void); 00046 extern void XmodemRxReset(void); 00047 extern void XmodemRxStart(void); 00048 extern bool XmodemStatusCheck(void); 00049 extern bool XmodemCrcCheck(U8 *pData); 00050 00051 #endif 00052
1.5.9