public static ParamValueDTO createParamValueDTO(ParamValue source) { if (null == source) { return(null); } ParamValueDTO result = new ParamValueDTO(); // lookup static metadata about result parameter ParameterMetadata metadataLookup = new ParameterMetadata(); ParameterMetadataEntry data = metadataLookup.fetchMetadata(source.param_id); if (null != data) { result.DisplayName = data.DisplayName; result.Description = data.Description; result.Units = data.Units; result.Upper = data.Upper; result.Lower = data.Lower; } result.param_type = source.param_type.ToString(); result.param_value = source.param_value; result.param_index = source.param_index; result.param_id = source.param_id; result.param_count = source.param_count; return(result); }
public IHttpActionResult putParameters(string id, [FromBody] ParametersDTO values) { logger.Debug("setting parameters for /drones/{0}", id); Drone target = droneMgr.getById(new Guid(id)); if (null != target) { if (!target.isConnected()) { return(BadRequest("Target system is not connected, refusing request")); } Boolean result = true; foreach (String key in values.parameters.Keys) { ParamValueDTO parameter = values.parameters[key]; bool parameterSetResult = target.setParameter(parameter.param_id, parameter.param_value, (MAVLink.MAV_PARAM_TYPE)Enum.Parse(typeof(MAVLink.MAV_PARAM_TYPE), parameter.param_type)); result = result && parameterSetResult; } Dictionary <String, ParamValue> parameters = target.Parameters; if ((null != parameters) && (result)) { return(Ok(DTOFactory.DTOFactory.createParametersDTO(parameters))); } else { return(ResponseMessage(new HttpResponseMessage(HttpStatusCode.RequestTimeout))); } } else { return(NotFound()); } }
public void CheckParameterValueObject() { MAVLink.mavlink_param_value_t data = new MAVLink.mavlink_param_value_t(); data.param_count = 1; data.param_id = Encoding.ASCII.GetBytes("foo"); data.param_index = 3; data.param_type = 4; data.param_value = 5; MavLinkMessage message = createSampleMessage(MAVLink.MAVLINK_MSG_ID.PARAM_VALUE, data); ParamValue obj = new ParamValue(message); Assert.AreEqual(obj.param_count, data.param_count); Assert.AreEqual(Encoding.ASCII.GetBytes(obj.param_id)[0], data.param_id[0]); Assert.AreEqual(obj.param_index, data.param_index); Assert.AreEqual((int)obj.param_type, data.param_type); Assert.AreEqual(obj.param_value, data.param_value); ParamValueDTO dto = DTOFactory.createParamValueDTO(obj); Assert.AreEqual(dto.param_count, obj.param_count); Assert.AreEqual(dto.param_id, obj.param_id); Assert.AreEqual(dto.param_index, obj.param_index); Assert.AreEqual(dto.param_type, obj.param_type.ToString()); Assert.AreEqual(dto.param_value, obj.param_value); }