vc++ 6.0串口通讯
在 vc++ 中,我使用 MScomm 进行串行通信, 我收到这种格式的数据02120812550006050.0, 我不知道如何阅读它,它的格式是什么, 开始的起始帧和最后的结束文件,仍然是我不知道的。
编辑1:
它包含日期时间和数据我如何分开这个
In vc++ i am using MScomm for serial communication,
i received data in this format 02120812550006050.0,
i am not gettng how to read this ,in which format it is,
begning starting frame and at the end ending file, remaing i dont know.
EDIT 1:
it contains date time and data how i can seperate this one
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有趣的字符是指示记录开始、记录结束、字段分隔符等内容的标记。 在不了解实际协议的情况下,很难说清楚。
数据就容易多了。
在 000f 和 0002 标记之间有一个日期/时间字段,2008 年 12 月 2 日,12:55:00。
在 0002 和 0003 标记之间,它看起来像一个简单的浮点数,可以是美元值或任何其他值,这取决于链接另一端的内容。
为了将其分开,我假设您已将其读入某种可变字符数组中。 只需查找标记并提取它们之间的字段即可。
日期/时间是固定大小的,值也可能是固定大小的(因为它有一个前导 0),所以你可能只使用 memcpy 从缓冲区中提取你需要的信息,以 null 终止它们,将值转换为漂浮,瞧。
如果它是固定格式,您可以使用类似:
并调用它:
如果不是固定格式,您只需编写代码来检测字段分隔符的位置并提取它们之间的内容。
The funny characters are markers indicating things like record start, record end, field separator and so on. Without knowing the actual protocol, it's a little hard to tell.
The data is a lot easier.
Between the 000f and 0002 markers you have a date/time field, 2nd of December 2008, 12:55:00.
Between 0002 and 0003 marker, it looks like a simple float which could be a dollar value or anytrhing really, it depends on what's at the other end of the link.
To separate it, I'm assuming you've read it into a variable character array of some sort. Just look for the markers and extract the fields in between them.
The date/time is fixed size and the value probably is as well (since it has a leading 0), so you could probably just use memcpy's to pull out the information you need from the buffer, null terminate them, convert the value to a float, and voila.
If it is fixed format, you can use something like:
and call it with:
If not fixed format, you just have to write code to detect the positions of the field separators and extract what's between them.
除非您知道您正在与什么通信以及它如何与您通信,否则您不太可能弄清楚这一点。 (提示——您可以尝试告诉我们)
It is unlikely that you will figure it out unless you know what you are communicating with and how it communicates with you. (hint -- you can try telling us)