问如何将QByteArray转换为struct
Qt-how to convert a QByteArray to struct
我需要将QByteArray
转换为结构。我有一个这样的结构:
struct mavlink_attitude_t
{
/// <summary> Timestamp (milliseconds since system boot) </summary>
quint32 time_boot_ms;
/// <summary> Roll angle (rad, -pi..+pi) </summary>
float roll;
/// <summary> Pitch angle (rad, -pi..+pi) </summary>
float pitch;
/// <summary> Yaw angle (rad, -pi..+pi) </summary>
float yaw;
/// <summary> Roll angular speed (rad/s) </summary>
float rollspeed;
/// <summary> Pitch angular speed (rad/s) </summary>
float pitchspeed;
/// <summary> Yaw angular speed (rad/s) </summary>
float yawspeed;
};
我有一个来自串行端口的CCD_ 2。我已经使用了union,但我认为它不能用于QByteArray
。还有别的办法吗?举个例子确实有帮助。
您可以投射它:
QByteArray arr;
mavlink_attitude_t* m = reinterpret_cast<mavlink_attitude_t*>(arr.data());
接受的响应无法工作。.data()
为空终止
您有浮点和int,请使用左移
示例:
mavlink_attitude_t.time_boot_ms = (bytearray.at(0) & 0xFFFF) |
(bytearray.at(1) & 0xFFFF) << 8 |
(bytearray.at(2) & 0xFFFF) << 16|
(bytearray.at(3) & 0xFFFF) << 24
如果使用Little-endian,则反转索引。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- 使用 std::transform 将 std::vector<struct{key; val;}> 转换为 std::map<key, val>
- 如何将CPP结构中的字符串转换为Python struct
- 将包含struct的c++函数传递给c#,并使用Marshal.PtrToStructure将其转换为c#函数
- 将void*转换回struct时出错
- 问如何将QByteArray转换为struct
- 从int到struct的强制转换出现问题
- 将指向struct的指针强制转换为数组
- 将字符串转换为const char,然后再转换为struct hostent
- 将指向struct的指针强制转换为数组指针是否有效?
- 将std::chrono::system_clock::time_point转换为struct timeval并返回
- 将streamstream强制转换为struct
- 在模板中将Tuple转换为Struct
- 正在从struct-timespec转换为std::chrono::
- Struct到u_char的转换
- 将OADate转换为struct
- 将void*强制转换为struct*