protected TelemetryValue(iRSDKSharp.iRacingSDK sdk, string name)
        {
            if (sdk == null) throw new ArgumentNullException("sdk");

            _exists = sdk.VarHeaders.ContainsKey(name);
            if (_exists)
            {
                var header = sdk.VarHeaders[name];
                _name = name;
                _description = header.Desc;
                _unit = header.Unit;
                _type = header.Type;
            }
        }
        public static string GetNativeType(CVarHeader.VarType varType)
        {
            switch (varType)
            {
            case CVarHeader.VarType.irChar: return("string");

            case CVarHeader.VarType.irBool: return("bool");

            case CVarHeader.VarType.irInt: return("int");

            case CVarHeader.VarType.irBitField: return("bitfield");   //this case will throw a compiler error (good)

            case CVarHeader.VarType.irFloat: return("float");

            case CVarHeader.VarType.irDouble: return("double");

            default: return("unknown");
            }
        }