[求助]关于串口数据如何换行显示?
我的串口读写程序可以正常工作,但是在read buffer中显示的数据为一大片一大片,我用的是16进制显示;我现在想把每一条发送和接收的数据分行显示,即对发送和接收到的数据逐行显示,
请问如何实现??请大侠们指点!! 谢谢cpubbs,我找找吧;但是我每次的发送和接收的数据不是固定的,我逐行显示的目的就是要分别出发送和接收。 <P>要分别出发送和接收,可以用连接字符串的方法!concatenate string!</P> 有一个属性叫做size to string length的好像是!你找找!应该会有的,它自动调整这个显示框的长度的,使它自动适应长度变化,然后自动变化长度! <P>这个是UDP发送消息的,有点类似你所说的分开发送与接收数据的,你参考这一部分!</P><P>http://www.cpubbs.com/Soft_Show.asp?SoftID=93</P> <P>我的发送和接收都是没有问题的,例如在read buffer里显示:0F45 1267 98AB 99C5 15CE 59FF 0719 44DF ……数据是一大块,现在我想把它们显示为</P><P>0F45 1267 98AB 99C5 </P><P>15CE 59FF 0719 44DF</P><P>这样逐行显示,一行是发送的数据,一行是接受的数据,不知道版主明白我的意思了没有??十分的感谢,谢谢你了:)</P> 我觉得我的问题是出在显示方面,我不知道如何在发送完成和接收完成后,将数据在read buffer里换行显示。 你把这个显示的框框调整好大小,它会自动换行的呀! <P> 不是这样的,您没有理解我要达到的目的,因为我的发送和接收的数据的长度不相同,并且每条发送的命令数据的长度也可能不一样,所以通过调整显示框的大小,并不能达到我所要的自动换行的要求。请看通过调整显示框,我得到以下数据:</P><P>FFFF FFFF FF06 8000 0E00 00FE A67C 0505 0502 1800 0001 9123</P><P>FFFF FFFF FF06 8000 0E00 00FE A67C 0505 0502 1800 0001 9123</P><P>FFFF FFFF FF02 8000 0082 0000 FFFF FFFF FF06 8000 0E 00 00FE</P><P>A67C 0505 0502 1800 0001 9123 </P><P>第一、二行的数据达到要求,第三行的数据显示不对我希望是如下显示:</P><P>FFFF FFFF FF06 8000 0E00 00FE A67C 0505 0502 1800 0001 9123 (从机回答数据)</P><P>FFFF FFFF FF06 8000 0E00 00FE A67C 0505 0502 1800 0001 9123 (从机回答数据)</P><P>FFFF FFFF FF02 8000 0082 0000 (主机发送数据)</P><P>FFFF FFFF FF06 8000 0E 00 00FE A67C 0505 0502 1800 0001 9123 (从机回答数据)</P><P>我不知道应该怎样达到这种发送和回答分行显示的效果,这样说您清楚了吗?还是很感谢您的帮助,谢谢,比较急,我已经想了好几天了</P> 用concatenate的确是能实现,就是还要在循环里面加个移位寄存器,然后每次的后面再加一个回车,就能实现的啦!就在哪个UDP做的程序里面就有这样子做的呢,你看看! 加一个回车符就行的!
[此贴子已经被作者于2005-7-18 14:26:41编辑过]
我在看,不过比较复杂,一时看不大懂;移位寄存器是不是rotate string??还有就是我要显示的是16进制的数据,回车和换行字符就显示为0A0D了 我在看,不过比较复杂,一时看不大懂;移位寄存器是不是rotate string??还有就是我要显示的是16进制的数据,回车和换行字符就显示为0A0D了 谢谢大侠了 我试了,要是在循环里面加上回车字符,它不是回车,而是一旦运行就显示0D,而且是不断的显示,直到程序停止运行 版主的方法是很好的,支持一下,你在concatenate中加一个回车符就可以实现换行了,不难实现。
页:
[1]
2