Browse Source

Addition of INT8 and INT16 MAV_PARAM_TYPE handling of incoming messages

QGC4.4
Michael Carpenter 12 years ago
parent
commit
e13b3a0d43
  1. 2
      libs/mavlink/include/mavlink/v1.0/mavlink_types.h
  2. 24
      src/uas/UAS.cc

2
libs/mavlink/include/mavlink/v1.0/mavlink_types.h

@ -35,6 +35,8 @@ typedef struct param_union { @@ -35,6 +35,8 @@ typedef struct param_union {
uint32_t param_uint32;
uint8_t param_uint8;
uint8_t bytes[4];
int16_t param_int16;
int8_t param_int8;
};
uint8_t type;
} mavlink_param_union_t;

24
src/uas/UAS.cc

@ -904,6 +904,26 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) @@ -904,6 +904,26 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
emit parameterChanged(uasId, message.compid, value.param_count, value.param_index, parameterName, param);
//qDebug() << "RECEIVED PARAM:" << param;
}
case MAV_PARAM_TYPE_INT8:
{
// Variant
QVariant param(val.param_int8);
parameters.value(component)->insert(parameterName, param);
// Emit change
emit parameterChanged(uasId, message.compid, parameterName, param);
emit parameterChanged(uasId, message.compid, value.param_count, value.param_index, parameterName, param);
//qDebug() << "RECEIVED PARAM:" << param;
}
case MAV_PARAM_TYPE_INT16:
{
// Variant
QVariant param(val.param_int16);
parameters.value(component)->insert(parameterName, param);
// Emit change
emit parameterChanged(uasId, message.compid, parameterName, param);
emit parameterChanged(uasId, message.compid, value.param_count, value.param_index, parameterName, param);
//qDebug() << "RECEIVED PARAM:" << param;
}
case MAV_PARAM_TYPE_UINT32:
{
// Variant
@ -2265,6 +2285,10 @@ void UAS::setParameter(const int component, const QString& id, const QVariant& v @@ -2265,6 +2285,10 @@ void UAS::setParameter(const int component, const QString& id, const QVariant& v
// Assign correct value based on QVariant
switch (value.type())
{
case QVariant::Char:
union_value.param_int8 = value.toChar().toAscii();
p.param_type = MAV_PARAM_TYPE_INT8;
break;
case QVariant::Int:
union_value.param_int32 = value.toInt();
p.param_type = MAV_PARAM_TYPE_INT32;

Loading…
Cancel
Save