我最近做串口发送和接收文件的内容。老师要求将串口拔掉后,再插上,可以继续传文件的内容。
(我个人认为这个比较有难度,可以简化,做个续传按钮和续传函数。
我主要是使用以下函数:
CStdioFile file1;
file1.Open(strDirFile,CFile::modeReadWrite|CFile::shareExclusive);
record=file1.GetPosition();//记录上次的结果(读到哪了)
file1.Seek(record,0);
file1.ReadString(szLine)
结果不成功求高手指点。
(我个人认为这个比较有难度,可以简化,做个续传按钮和续传函数。
我主要是使用以下函数:
CStdioFile file1;
file1.Open(strDirFile,CFile::modeReadWrite|CFile::shareExclusive);
record=file1.GetPosition();//记录上次的结果(读到哪了)
file1.Seek(record,0);
file1.ReadString(szLine)
结果不成功求高手指点。
解决方案 »
- 关于DirectinputDevice8::GetDeviceInfo...为啥总是调用失败...
- 在OpenGL实现的2D程序中怎么去做裁剪渲染区域?
- 怎么检查一个指针是否有效?
- vc6 和 vs2008 能不能一起安装?
- 有关服务器和多客户端通信的问题!帮忙
- 一个很简单的问题,不过大家看过了以后多想想哦
- 需要做这样一个MDI工程,工具栏放6个按钮,点击每个按钮打开不同的窗口(CFormView,可以直接在上面放控件),该怎么做?
- 我想在一个对话框里加一个picture控件,并且显示一个图片,怎么弄啊?
- 请教如何获取toolbar输出的文字?
- VC编译问题!!!
- 求助,Interinet HTTP数据Gzip解压?
- CryptoAPI如何将生成的RSA私钥保存为.p12文件
如果你把程序也关了,那就得在关闭前先保存这个变量:m_SendCount;当运行程序时,先读出这个变量,然后读文件时就把文件指针移到这个位置上再读记录
record=file1.GetPosition();//记录上次的结果(读到哪了)
file1.Seek(record,0);
拔掉串口后,发送方续传正确。但接收方的结尾会丟掉部分内容。
发送报文:0XAA+长度+数据+校验;应答帧:0XAA+0XAB:接收正确,0XAC+0XAD:接收错误;
同时,上位机还得判断接收应答帖超时时间,如果接收应答帧在超过一定时间比如1秒后未收到,就说明发送失败