加时间到串口打印中,时间显示位置有异常
加时间到串口打印中,时间显示位置有错误。
现在打印效果是:
请问应该如何修改,能保证打印时间位置始终在每行的开头。
我在CEDITVIEW的串口信息接收函数如下:
------解决方案--------------------
检测字符串, 在\r\n后面加时间字符串。
有可能一次收到的不是一行。
现在打印效果是:
[16:01:45] get IR key = 0x91
[app_ui_bt_entry]
[app_ui_root_en
[16:01:45] try] #这行时间加的位置不对
[16:01:45] get IR key = 0x91
请问应该如何修改,能保证打印时间位置始终在每行的开头。
我在CEDITVIEW的串口信息接收函数如下:
void CserialtoolView::OnComm()
{
// TODO: 在此处添加消息处理程序代码
int inCount;
CString str,temp,timestr;
VARIANT input;
BYTE rxdata[1024];
long len,k,i=0;
COleSafeArray safearray;
CByteArray Array;
CTime curtime=CTime::GetCurrentTime();
timestr=curtime.Format(_T("[%H:%M:%S] "));
myStr+=timestr;
switch(myComm.get_CommEvent())
{
case 2:
{
inCount=myComm.get_InBufferCount();
input=myComm.get_Input();
safearray=input;
len=safearray.GetOneDimSize();
for (k=0;k<len;k++)
{
safearray.GetElement(&k,rxdata+k);
str.Format(_T("%c"),rxdata[k]);
temp+=str;
}
//MessageBox(temp);
myComm.put_InBufferCount(0);//清空串口buffer
Sleep(10);
break;
}
default:
break;
}
//GetEditCtrl().SetWindowText(timestr);
//temp+=str;
myStr+=temp;
myStr+='\n';
GetEditCtrl().SetWindowText(myStr);
SendMessage(WM_VSCROLL,SB_BOTTOM);
}
------解决方案--------------------
检测字符串, 在\r\n后面加时间字符串。
有可能一次收到的不是一行。