关于串口通信调试助手 !!自动换行!!问题
mfc吧
全部回复
仅看楼主
level 1
有谁知道如何实现的吗?就是每当接收完一次数据后 就会自动换行
2012年01月06日 07点01分 1
level 1
我用的是多线程类 目前编了个类似于串口通信调试助手的界面!!但 自动换行的功能实现不了 比如:接收到ABC 那么我如何判断接收完了啊!!??
2012年01月06日 07点01分 2
level 1
硬件有自己结束符吧
2012年01月06日 08点01分 3
level 1
那样的话 是双方规定的一种协议把!!我现在需要的是 选中 自动换行这个复选框 就会自动换行了 比如:我们接收的是:“abc”,那么当第二次接收的时候 不是连在前一次的后面 而是另起一行显示 明白我的意思了把
2012年01月06日 09点01分 4
level 1
串口都有结束符的 应该能判断的
2012年01月06日 09点01分 5
level 1
比如??去判断‘\r\n’么??
2012年01月06日 09点01分 6
level 1
不通硬件协议不一样的吧 我也不是很清楚
2012年01月06日 09点01分 7
level 1
LONG CMyCommDlg::OnComm(WPARAM ch,LPARAM port)
{
CString string;
int ncout;
if(m_ctrlCheckClear.GetCheck()&&m_ctrlRXChar.GetLineCount()>=30) //自动清空
{
m_strRXChar.Empty();
UpdateData(FALSE);
}
if(m_ctrlCheckRxChar.GetCheck()) //十六进制显示
{
string.Format("%02X ",ch);
ncout=string.GetLength();
}
else
{
string.Format("%c",ch);
ncout=string.GetLength();
}
#if 0
if(m_ctrlCheckNewLine.GetCheck()) //自动换行
{
m_strRXChar+=string;
if(ch=='\r')
m_strRXChar+="\r\n";
} else
#endif
m_strRXChar+=string;
m_ctrlRXChar.SetWindowText(m_strRXChar);
//m_ctrlRXChar.LineScroll(m_ctrlRXChar.GetLineCount());
//UpdateData(FALSE);
//CString string1="\r\n";
if(m_bFileIsOpened)
{
m_rFile.SeekToEnd();
m_rFile.Write(string,ncout);
// m_rFile.Write(string1,2);
m_rFile.Flush();
} return 0;
}
2012年01月06日 09点01分 8
请问关于换行的代码中m_ctrlCheckNewLine是谁的变量?
2017年09月04日 08点09分
level 1
这是 接收响应的 代码
2012年01月06日 09点01分 9
level 1
百度 谷歌上查查看结束符
2012年01月06日 09点01分 10
level 1
用过那个 串口调试助手精装版么?他里面就有个复选框 选中就可以自动换行了 我就是模拟这个调试助手编的程序 就是自动换行实现不了啊。。
2012年01月13日 06点01分 12
level 1
感觉是发送端要发送结束符
2017年09月14日 04点09分 14
level 2
每接收一次换行
给Edit Control添加控制变量m_edit1
设置Edit属性 Want Return、Multline和Vertical Scroll设置为True
在需要换行的地方添加如下代码
int nLen = m_edit1.GetWindowTextLength();
m_edit1.SetSel(-1, -1); //自动滚屏
if (nLen == 0)
m_edit1.ReplaceSel(m_str);
else
m_edit1.ReplaceSel(_T("\r\n") + m_str);
用replacesel换行可以避免显示频率高时的闪屏问题
2017年09月19日 06点09分 15
1