往串口下发消息后,从串口返回的消息不全,收到的消息就是下发的消息

luorixiangyang 2010-09-21 05:31:31
// 对应到Serial.dll中的Write函数,函数接口完全相同
TriStatus fx_Write(const TriFunctionId *functionId,
TciParameterList *parList,
TciValue *returnValue)
{
CHECK_PARA_COUNT(3);
GET_CHECK_PARA(pPara0, 0, TciCharstringValue , TCI_IN); //端口名称
GET_CHECK_PARA(pPara1, 1, TciCharstringValue , TCI_IN); //需要发送的命令
GET_CHECK_PARA(pPara2, 2, TciCharstringValue, TCI_OUT);
GET_CHECK_RETURN(TciIntValue); //实际写入命令长度

string sErr ="";
if(false == InitRecoreFlg)
{
sErr = "请先开启串口";
AddErrorLog(sErr);
pPara1->SetString(sErr);
pReturn->SetInteger(0);
}

string csPortName = pPara0->GetString();
//string csSerialCmd = pPara1->GetString();
TCHAR csSerialCmd[] = _T("version");


int iSerialTag = GetSerialNo(csPortName);
bool bRet =false;
if(MAX_SerialNum == iSerialTag)
{
sErr = "找不到相应串口信息";
AddErrorLog(sErr);
pPara1->SetString(sErr);
pReturn->SetInteger(0);
}
else
{
//DWORD iNum = SerialRecordList[iSerialTag].pComm->Write(/*csSerialCmd*/sTmp/*,csSerialCmd.length()*/);
wchar_t buf[1024] = {0};
SerialRecordList[iSerialTag].pComm->Write(_T("version"));//写入10个字节
wchar_t *buf1 = SerialRecordList[iSerialTag].pComm->ReadString(buf, 1024,INFINITE);//读出5个字节 并返回实际读出数

//AddErrorLog(buf);
pPara1->SetString("");
pReturn->SetInteger(0);
//pReturn->SetInteger(iNum);
}

return TRI_OK;
}
...全文
113 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2010-09-21
  • 打赏
  • 举报
回复
通讯参数是否保持一致了?

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧