message: core: add missing param type check
diff: @@ -302,7 +302,6 @@ void MAVLinkParameters::process_param_value(const mavlink_message_t &message)
  if (strncmp(work->param_name.c_str(), param_value.param_id, PARAM_ID_LEN) == 0) {
  // We are done, inform caller and go back to idle
  _cache[work->param_name] = work->param_value;
  - // TODO: check types as well
  if (work->callback) {
  work->callback(MAVLinkParameters::Result::SUCCESS);
  }
  @@ -337,11 +336,18 @@ void MAVLinkParameters::process_param_ext_value(const mavlink_message_t &message
  if (strncmp(work->param_name.c_str(), param_ext_value.param_id, PARAM_ID_LEN) == 0) {
  ParamValue value;
  value.set_from_mavlink_param_ext_value(param_ext_value);
  - // TODO: check types as well
  + if (value.is_same_type(work->param_value_type)) {
  _cache[work->param_name] = value;
  if (work->callback) {
  work->callback(MAVLinkParameters::Result::SUCCESS, value);
  }
  + } else {
  + LogErr() << "Param types don't match";
  + ParamValue no_value;
  + if (work->callback) {
  + work->callback(MAVLinkParameters::Result::WRONG_TYPE, no_value);
  + }
  + }
  _state = State::NONE;
  _parent.unregister_timeout_handler(_timeout_cookie);
  // LogDebug() << "time taken: " <<
  @@ -398,7 +404,6 @@ void MAVLinkParameters::process_param_ext_ack(const mavlink_message_t &message)
  if (strncmp(work->param_name.c_str(), param_ext_ack.param_id, PARAM_ID_LEN) == 0) {
  if (param_ext_ack.param_result == PARAM_ACK_ACCEPTED) {
  // We are done, inform caller and go back to idle
  - // TODO: check types as well
  _cache[work->param_name] = work->param_value;
  if (work->callback) {
  work->callback(MAVLinkParameters::Result::SUCCESS);
  