📄 编辑1
字号:
// -------------------------------------------
// 串口读取数据
// -------------------------------------------
void ReadFromCom()
{
int j;
char ch;
unsigned long addr;
char buf[256];
int hfile;
int werr;
int realwritesize;
int error;
if (ShowMessage("串口读取数据", "请连接设备的串口", MB_CANCEL | MB_OK, true) == MR_CANCEL)
return;
clrscr();
hCom = open(COM1, BAUD_9600);
if(hCom == INVALID_DEV_HANDLE)
{
ShowMessage("打开串口", "失败!", MB_CANCEL | MB_OK, true);
}
while (true){
for(j=0;j<18;j++)
blkin[0] = 0;
error = RxTx(READ,NULL,NULL,0);
if(error == ERR_NONE)
{
memcpy(buf,&blkin[2],13);
addr = (unsigned long)((buf[0]<<24)|(buf[1]<<16)|(buf[2]<<8|(buf[3])));
if(RxOkAck(addr) == ERR_OTHER)
{ //发送确认
ShowMessage("发送确认", "失败",MB_OK | MB_CANCEL, true);
break;
}
hfile = file_open("DAT",WRITE_ONLY);
if(hfile<0)
{
if(ShowMessage("打开文件", "失败!", MB_OK, true)==MB_OK)
break;
}
file_seek(hfile,0,SEEK_FILE_END);
werr = file_write(hfile,buf,13,&realwritesize);
if(werr == 0)
{
file_close(hfile);
// ShowMessage("写入数据", "写入成功", MB_OK, true);
continue;
}
else if(werr == NO_ENOUGH_MEMORY)
{
file_close(hfile);
if(ShowMessage("写入数据", "空间不足", MB_OK, true)==MB_OK)
break;
}
else
{
file_close(hfile);
if(ShowMessage("写入数据", "文件不可写", MB_OK, true) ==MB_OK)
break;
}
i++;
}
else if(error == DATA_OVER)
{
clrscr();
if(ShowMessage("串口读取数据", "结束!", MB_OK, true)==MB_OK)
break;
}
else if(error == ERR_OTHER){
clrscr();
if(ShowMessage("串口读取数据", "失败", MB_OK, true)==MB_OK)
break;
}
}
close(hCom);
}
if(read(hCom, 0, rxFrame,18)<=0){
memcpy(blkin,&err[0],10);
return ERR_OTHER;
}
if((calcChecksum(&rxFrame[2],rxFrame[1]-2) == ((rxFrame[15]<<8)|rxFrame[16]))
&&(rxFrame[1] == 0x0F)
&&(rxFrame[6] == READACK)){
memcpy(blkin,rxFrame,18);
return ERR_NONE;
}
else if((calcChecksum(&rxFrame[2],rxFrame[1]-2) == ((rxFrame[7]<<8)|rxFrame[8]))
&&(rxFrame[1] == 0x07)
&&(rxFrame[6] == READACK)){
memcpy(blkin,rxFrame,10);
return DATA_OVER;
}
/* else{
memcpy(blkin,&err[0],10);
return ERR_OTHER;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -