我对 lua 和一般编程(自学)比较陌生,所以请温柔一点!
无论如何,我编写了一个 lua 脚本来读取游戏中的 UDP 消息。消息的结构是:
DATAxXXXXaaaaBBBBccccDDDDeeeeFFFFggggHHHH
DATAx = 4 letter ID and x = control character
XXXX = integer shows the group of the data (groups are known)
aaaa...HHHHH = 8 single-precision floating point numbers
最后一个是我需要解码的数字。
如果我打印收到的消息,它类似于:
DATA*{V???A?A?...etc.
使用string.byte(),我得到了这样的字节流(我已经“格式化”了字节以反映上面的结构。
68 65 84 65/42/20 0 0 0/237 222 28 66/189 59 182 65/107 42 41 65/33 173 79 63/0 0 128 63/146 41 41 65/0 0 30 66/0 0 184 65
前 5 个字节当然是 DATA*。接下来的4个是第20组数据。接下来的字节,我需要解码的字节,等于这些值:
237 222 28 66 = 39.218
189 59 182 65 = 22.779
107 42 41 65 = 10.573
33 173 79 63 = 0.8114
0 0 128 63 = 1.0000
146 41 41 65 = 10.573
0 0 30 66 = 39.500
0 0 184 65 = 23.000
我找到了使用BitConverter.ToSingle()进行解码的 C# 代码,但我还没有为 Lua 找到类似的代码。任何想法?