通过udp消息格式max / msp到ruby

时间:2013-06-23 11:03:57

标签: ruby max-msp-jitter

我正在尝试使用max / msp为ruby项目构建一个小GUI 我无法找到一种方法来正确转换我收到的数据格式

这里有几个我从ruby收到的消息的例子(我先发送2然后发送1 0 -1 -2):

["int\x00,i\x00\x00\x00\x00\x00\x02", ["AF_INET", 53802, "127.0.0.1", "127.0.0.1"]]
["int\x00,i\x00\x00\x00\x00\x00\x01", ["AF_INET", 53802, "127.0.0.1", "127.0.0.1"]]
["int\x00,i\x00\x00\x00\x00\x00\x00", ["AF_INET", 53802, "127.0.0.1", "127.0.0.1"]]
["int\x00,i\x00\x00\xFF\xFF\xFF\xFF", ["AF_INET", 53802, "127.0.0.1", "127.0.0.1"]]
["int\x00,i\x00\x00\xFF\xFF\xFF\xFE", ["AF_INET", 53802, "127.0.0.1", "127.0.0.1"]]

到目前为止,我已经能够通过String#ord或String#unpack将正值转换为整数,但是使用这些方法,负整数会给我0值

1 个答案:

答案 0 :(得分:2)

您可以使用#unpack,使用offset('@ 8')和32位signed signed bigendian int('l>')

轻松完成
str.unpack('@8l>')

我不确定字符串的初始部分是什么意思(“int \ x00,i \ x00 \ x00”)而我只是忽略了偏移量。如果有任何重要数据,可能需要额外的摆弄。