diff --git a/src/comm/MAVLinkXMLParser.cc b/src/comm/MAVLinkXMLParser.cc index 1a44b405d9c2ac5341b68b7e752814c66bcbdd6f..312737a8da1bca36873eb46a10d1d5e5717d3ab5 100644 --- a/src/comm/MAVLinkXMLParser.cc +++ b/src/comm/MAVLinkXMLParser.cc @@ -258,7 +258,7 @@ bool MAVLinkXMLParser::generate() packLines += QString("\ti += put_%1_by_index(%2, %3, i, msg->payload); //%4\n").arg(arrayType, fieldName, QString::number(arrayLength), e2.text()); // Add decode function for this type decodeLines += QString("\tmavlink_msg_%1_get_%2(msg, %1->%2);\n").arg(messageName, fieldName); - arrayDefines += QString("#define MAVLINK_MSG_%1_FIELD_%2_LEN %3").arg(messageName.toUpper(), fieldName.toUpper(), QString::number(arrayLength)); + arrayDefines += QString("#define MAVLINK_MSG_%1_FIELD_%2_LEN %3\n").arg(messageName.toUpper(), fieldName.toUpper(), QString::number(arrayLength)); } else if (fieldType.startsWith("string")) { @@ -273,7 +273,7 @@ bool MAVLinkXMLParser::generate() packLines += QString("\ti += put_%1_by_index(%2, %3, i, msg->payload); //%4\n").arg(arrayType, fieldName, QString::number(arrayLength), e2.text()); // Add decode function for this type decodeLines += QString("\tmavlink_msg_%1_get_%2(msg, %1->%2);\n").arg(messageName, fieldName); - arrayDefines += QString("#define MAVLINK_MSG_%1_FIELD_%2_LEN %3").arg(messageName.toUpper(), fieldName.toUpper(), QString::number(arrayLength)); + arrayDefines += QString("#define MAVLINK_MSG_%1_FIELD_%2_LEN %3\n").arg(messageName.toUpper(), fieldName.toUpper(), QString::number(arrayLength)); } else // Handle simple types like integers and floats diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index 1a5b2a6f4b9b4cae22cb6645ab967bc699b98e54..fec0ffbe59e6319f9788e702b956d18ee6db4680 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -940,21 +940,20 @@ void UAS::enableExtra3Transmission(bool enabled) } void UAS::setParameter(int component, QString id, float value) -{ +{ mavlink_message_t msg; mavlink_param_set_t p; p.param_value = value; p.target_system = (uint8_t)uasId; p.target_component = (uint8_t)component; - // Copy string into buffer, ensuring not to exceed the buffer size - char* s = (char*)id.toStdString().c_str(); + // Copy string into buffer, ensuring not to exceed the buffer size for (unsigned int i = 0; i < sizeof(p.param_id); i++) { // String characters if ((int)i < id.length() && i < (sizeof(p.param_id) - 1)) { - p.param_id[i] = s[i]; + p.param_id[i] = id.toAscii()[i]; } // Null termination at end of string or end of buffer else if ((int)i == id.length() || i == (sizeof(p.param_id) - 1)) @@ -966,7 +965,7 @@ void UAS::setParameter(int component, QString id, float value) { p.param_id[i] = 0; } - } + } mavlink_msg_param_set_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &p); sendMessage(msg); }