我正在尝试在dspace微型自动装置之间设置UDP通信接口,其间通信接口可以在simulink中播放,而linux机器则使用julia代码接收/发送数据包。通过以太网发送双精度数组需要进行预处理。
我想知道dspace端的'pack'和'unpack'块实际上是这样做的,我可以在linux机器端重新创建相同的块来解码通过局域网发送的数据。
答案 0 :(得分:0)
可以使用python中的struct模块在python中完成pack和unpack函数。以下是在simulink(dspace)端执行与pack和unpack块相同工作的函数。注意:dspace处理器是big endian,它解释了更改endianess块
示例代码:
import struct as st
def pack_unpack_receive(X,len_data):
packed_Uint8 = st.pack('B'*len(X),*X)
unpacked_double = st.unpack('d'*len_data, packed_Uint8)
return unpacked_double
def pack_unpack_send(X):
packed_double = st.pack('d'*len(X),*X)
unpacked_Uint8 = st.unpack('B'*len(X)*8,packed_double)
return unpacked_double