我有一个连接到Interface Module的工业传感器,该传感器通过telnet
向最终用户提供信息。
Telnet配置
港口:10001
数据格式:Little-Endian
数据payload
Preamble - 32 bit
Article number - 32 bit
Serial number - 32 bit
Channels - 64 bit
Status - 32 bit
Frame number M / - 16 bit/ 16 bit
bytes per frame
Measuring value counter - 32 bit
Measuring value frame 1 - N * 32 bit
..
..
TCP标头(如果我理解正确)(即有效负载)之后应该可以使用。我正在尝试通过更多实际示例来学习golang,并且正在朝以下方向思考:
preamble
,article number
等)打印出来,作为初学者的任务我浏览了一些有关TCP服务器/客户端创建的博客文章,但它们仅解决有效负载中的
string
。我如何提取如上所述的面向字节的自定义有效负载?附言
我可以理解,这可以在python中通过
struct.pack
和struct.unpack
来实现,因此可以理解一些相关性, 最佳答案
在上方的链接pdf文档的6.2节中,有一个表格列出了您似乎在问题中列出的数据
我会将该表转换为结构,然后使用encoding / binary模块将其读入。有关示例,请参见https://golang.org/pkg/encoding/binary/#example_Read。
“根据连接的传感器,所有测量值都将以Int32,Uint32或Float的形式传输”,可能最容易将它们转换为uint32,然后在以后进行转换
关于go - 使用golang提取TCP有效负载中的自定义数据格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53428674/