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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
        }