串口 大文件 发送

时间:2015-02-04 10:53:58
【文件属性】:

文件名称:串口 大文件 发送

文件大小:7.55MB

文件格式:ZIP

更新时间:2015-02-04 10:53:58

串口 大文件 发送

#ifndef __WD_PROTOCOL_H__ #define __WD_PROTOCOL_H__ #define SERIALPORT_BUFF_LEN (1024*100) //串口缓存 //区长1M Byte //释放内存时,专用的宏 #define DELETE_OBJ(X) if(x){deletex;x=NULL;} #define DELETE_ARRAYOBJS(x) if(x){delete[]x;x=NULL;} #define CMD_SYN_WORD 0xBBAAFE6B //同步字 #define FILEDATA_LEN 1024*2 //文件数据块长度 typedef enum tagCMDTYPE { CMD_UNKNOWN =0, CMD_FILEINFO =1, CMD_FILEDATA =2, CMD_FILEEOF =3, CMD_FILEINFO_RESP =4,//响应命令 CMD_FILEDATA_RESP =5,//响应命令 CMD_FILEEOF_RESP =6 //响应命令 }CMDTYPE; typedef enum tagCMDSTATE { STATE_UNKNOWN =0, //未知状态 CMD_STATE_OK =1, CMD_STATE_ERROR =2 }CMDSTATE; //帧头-命令消息头 typedef struct tagCMDHEADER { ULONG ulSyncWord; //同步头 CMDTYPE cmdType; CMDSTATE cmdState; ULONG ulPackLen; //包长度,包括数据+校验和 }CMDHEADER; //文件信息结构体,主要发送文件名称和文件大小信息 typedef struct tagFILEINFO { CMDHEADER header; //帧头 UCHAR ucFileName[MAX_PATH]; //文件名称 ULONG ulFileNameLen; //文件名称长度 long lFileLen; //文件长度(单位:字节) ULONG ulCheckSum; //校验和 }FILEINFO; //要发送的文件数据结构体:主要是以固定大小发送文件中的数据 typedef struct tagFILEDATA { CMDHEADER header; //帧头 ULONG ulCheckSum; //校验和 UCHAR *pucBuf; //指向发送缓冲区 }FILEDATA; //文件发送结束命令 typedef struct tagFILEEOF { CMDHEADER header; ULONG ulCheckSum; UCHAR *pucBuf; }FILEEOF; typedef struct tagADDATA { UCHAR ucSyncHeader1; //同步头,0xAABB UCHAR ucSyncHeader2; //同步头,0xAABB float fChan0; //通道0 float fChan1; //通道1 float fChan2; //通道2 float fChan3; //通道3 float fChan4; //通道4 float fChan5; //通道5 float fChan6; //通道6 float fChan7; //通道7 float fChan8; //通道8 float fChan9; //通道9 float fChan10; //通道10 float fChan11; //通道11 UCHAR ucCheckSum; //校验和,前面所有数据的累加和,并取低8位 }ADDATA; ULONG CheckSum(UCHAR *pszBuf,ULONG ulBufLen) { ULONG ulCheckSum =0; for (UINT i=0;i


【文件预览】:
SCOMM
----SCOMM()
--------ReadMe.txt(3KB)
--------StdAfx.h(1KB)
--------PushPin.h(1KB)
--------HYPERLINK.H(3KB)
--------SCOMM.APS(50KB)
--------SCOMM.OPT(144KB)
--------Scomm.cpp(2KB)
--------HYPERLINK.CPP(13KB)
--------SCOMM.NCB(721KB)
--------RES()
--------SCOMMDlg.h(5KB)
--------SCOMM.H(1KB)
--------AnimateDlgIcon.h(980B)
--------Debug()
--------AnimateDlgIcon.cpp(2KB)
--------resource.h(4KB)
--------LABEL.CPP(5KB)
--------WD_Protocol.h(2KB)
--------SCOMM.dsp(5KB)
--------SCOMM.rc(12KB)
--------PushPin.cpp(6KB)
--------SCOMM.DSW(533B)
--------SCOMM.clw(3KB)
--------StdAfx.cpp(207B)
--------SCOMM.plg(244B)
--------LABEL.H(2KB)
--------SerialPort.h(3KB)
--------SerialPort.cpp(19KB)
--------SCOMMDlg.cpp(43KB)

网友评论

  • 还说发大文件呢,不知道,他说的大文件是多大啊
  • 不行啊,用不了,会死机。浪费10分了。
  • 串口发送数据,解决了项目中棘手的问题。。
  • 发一半就死了,代码还需要完善很多。