如何正确填充缓冲区?
How to fill properly a buffer?
我正在与 python 的鹦鹉无人机(跳跃相扑)通信,我需要每 25 毫秒向他发送一个缓冲区以保持连接。问题,我不知道该怎么做^^
受此代码启发,写于javascript:https://github.com/forgeByAcision/node-sumo/blob/master/lib/sumo.js
我试着翻译一下:
var buf = new Buffer(7);
buf.writeUInt8(constants.ARCOMMANDS_ID_PROJECT_JUMPINGSUMO, 0);
buf.writeUInt8(constants.ARCOMMANDS_ID_JUMPINGSUMO_CLASS_PILOTING, 1);
buf.writeUInt16LE(constants.ARCOMMANDS_ID_JUMPINGSUMO_PILOTING_CMD_PCMD, 2);
buf.writeUInt8(this._pcmd.flag || 1, 4);
buf.writeInt8(this._pcmd.speed || 0, 5);
buf.writeInt8(this._pcmd.turn || 0, 6);
我听说过 struct library,但我被卡住了。
如何编写此类类型,如何仅更改变量的字节顺序?
PS:我没有被套接字卡住(好吧,我想)
您可以使用struct
将您的数据打包到缓冲区中。类似于:
from struct import *
buf = ['[=10=]'] * 7
pack_into('BBHBbb', buf, 0, constants.ARCOMMANDS_ID_PROJECT_JUMPINGSUMO, constants.ARCOMMANDS_ID_JUMPINGSUMO_CLASS_PILOTING, constants.ARCOMMANDS_ID_JUMPINGSUMO_PILOTING_CMD_PCMD,...)
格式字符串还可以有一个指示字节顺序的初始字符。见 documentation.
最后我使用 struct module 将我的数据打包到缓冲区中,如下所示:
import struct
buf = struct.pack("BBHBbb", constant1, constant2, constant3, constant4 ....)
我正在与 python 的鹦鹉无人机(跳跃相扑)通信,我需要每 25 毫秒向他发送一个缓冲区以保持连接。问题,我不知道该怎么做^^
受此代码启发,写于javascript:https://github.com/forgeByAcision/node-sumo/blob/master/lib/sumo.js 我试着翻译一下:
var buf = new Buffer(7);
buf.writeUInt8(constants.ARCOMMANDS_ID_PROJECT_JUMPINGSUMO, 0);
buf.writeUInt8(constants.ARCOMMANDS_ID_JUMPINGSUMO_CLASS_PILOTING, 1);
buf.writeUInt16LE(constants.ARCOMMANDS_ID_JUMPINGSUMO_PILOTING_CMD_PCMD, 2);
buf.writeUInt8(this._pcmd.flag || 1, 4);
buf.writeInt8(this._pcmd.speed || 0, 5);
buf.writeInt8(this._pcmd.turn || 0, 6);
我听说过 struct library,但我被卡住了。 如何编写此类类型,如何仅更改变量的字节顺序?
PS:我没有被套接字卡住(好吧,我想)
您可以使用struct
将您的数据打包到缓冲区中。类似于:
from struct import *
buf = ['[=10=]'] * 7
pack_into('BBHBbb', buf, 0, constants.ARCOMMANDS_ID_PROJECT_JUMPINGSUMO, constants.ARCOMMANDS_ID_JUMPINGSUMO_CLASS_PILOTING, constants.ARCOMMANDS_ID_JUMPINGSUMO_PILOTING_CMD_PCMD,...)
格式字符串还可以有一个指示字节顺序的初始字符。见 documentation.
最后我使用 struct module 将我的数据打包到缓冲区中,如下所示:
import struct
buf = struct.pack("BBHBbb", constant1, constant2, constant3, constant4 ....)