public static double?Convert(TelemetryKey key, double?value) { // Don't check, return as is if (value == null) { return(null); } // Try to get field data, if none, return as is TelemetryField field = TelemetryKeys.GetTelemetryFieldByKeyOrNull(key); if (field == null) { return(value); } // We have a semantic, check if it is to be coverted to degrees if (field.SemanticSpecified && DEGREE_VALUES.Contains(field.Semantic)) { return(value.Value / Math.PI * 180.0); } // Return as is return(value); }
private static TelemetryKey register(String code, Semantic semantic, Subsystem subsystem, int subsystemId = 0) { TelemetryKey key = new TelemetryKey(subsystem, code); TelemetryFields.Add(key, TelemetryField.Create(code, semantic, subsystem, subsystemId)); return(key); }
public static TelemetryKey Register(TelemetryField telemetryField) { TelemetryKey?key = getIndex(telemetryField); if (key.HasValue) { return(key.Value); //already present } return(register(telemetryField.Code, telemetryField.Semantic, telemetryField.Subsystem, telemetryField.SubsystemId)); }
private static TelemetryKey?getIndex(TelemetryField telemetryField) { TelemetryKey?key = null; foreach (KeyValuePair <TelemetryKey, TelemetryField> kvp in TelemetryFields) { if (kvp.Value.Code == telemetryField.Code && kvp.Value.Subsystem == telemetryField.Subsystem) { key = kvp.Key; break; } } return(key); }