我最近做串口发送和接收文件的内容。老师要求将串口拔掉后,再插上,可以继续传文件的内容。
(我个人认为这个比较有难度,可以简化,做个续传按钮和续传函数。
我主要是使用以下函数:
 CStdioFile file1;
file1.Open(strDirFile,CFile::modeReadWrite|CFile::shareExclusive);
 record=file1.GetPosition();//记录上次的结果(读到哪了)
file1.Seek(record,0);
file1.ReadString(szLine) 
结果不成功求高手指点。

解决方案 »

  1.   

        你把发送的数据量记下来,看你的代码,好象是个文本文件,那就先定义一个变量:m_SendCount;每读一条记录并发送成功后就加1:m_SendCount++;,如果没发送成功,就不读,就定期的试试的发送当前的记录.
        如果你把程序也关了,那就得在关闭前先保存这个变量:m_SendCount;当运行程序时,先读出这个变量,然后读文件时就把文件指针移到这个位置上再读记录
      

  2.   

    我用
    record=file1.GetPosition();//记录上次的结果(读到哪了)
    file1.Seek(record,0);
    拔掉串口后,发送方续传正确。但接收方的结尾会丟掉部分内容。
      

  3.   

        象这种情况,你得按应答方式收发,上位机发送一条记录,下位机就得回答一次:或者正确或者错误.只有上位机收到下位机接收正确报文后,上位机才能接着读下一条记录并发送.否则就会出现象你说的这种情况.
        发送报文:0XAA+长度+数据+校验;应答帧:0XAA+0XAB:接收正确,0XAC+0XAD:接收错误;
        同时,上位机还得判断接收应答帖超时时间,如果接收应答帧在超过一定时间比如1秒后未收到,就说明发送失败
      

  4.   

    你应该告诉老师 这是串口不是usb口。