20 #ifndef VEHICLEPROPERTY_H
21 #define VEHICLEPROPERTY_H
30 #include "abstractpropertytype.h"
31 #include "mappropertytype.hpp"
33 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
35 namespace ButtonEvents {
36 enum ButtonEventType {
42 Preset1Button = 1 << 4,
43 Preset2Button = 1 << 5,
44 Preset3Button = 1 << 6,
45 Preset4Button = 1 << 7,
47 NavigateUpButton = 1 << 9,
48 NavigateDownButton = 1 << 10,
49 NavigateLeftButton = 1 << 11,
50 NavigateRightButton = 1 << 12
55 extern const char* Home;
56 extern const char* Back;
57 extern const char* Search;
58 extern const char* Call;
59 extern const char* EndCall;
60 extern const char* MediaPlay;
61 extern const char* MediaNext;
62 extern const char* MediaPrevious;
63 extern const char* MediaPause;
64 extern const char* VoiceRecognize;
65 extern const char* Enter;
66 extern const char* Left;
67 extern const char* Right;
68 extern const char* Up;
69 extern const char* Down;
73 namespace TurnSignals {
84 enum TransmissionPositions
121 extern const char* Park;
122 extern const char* Reverse;
123 extern const char* Neutral;
124 extern const char* Low;
125 extern const char* Drive;
126 extern const char* Overdrive;
159 UnknownPosition = -1,
195 extern const char * Disarmed;
196 extern const char * Prearmed;
197 extern const char * Armed;
198 extern const char * Alarmed;
224 extern const char * Closed;
225 extern const char * Open;
226 extern const char * Ajar;
241 extern const char * Vacant;
242 extern const char * Child;
243 extern const char * Adult;
245 extern const char * Pin;
246 extern const char * Keyfob;
247 extern const char * Bluetooth;
248 extern const char * NFC ;
249 extern const char * Fingerprint;
250 extern const char * Camera;
251 extern const char * Voice;
268 namespace ConvertibleRoofW3C
270 extern const char * Opened;
271 extern const char * Opening;
272 extern const char * Closed;
273 extern const char * Closing;
276 namespace WiperSpeedSetting
280 extern const char * Off;
281 extern const char * Once;
282 extern const char * Slowest;
283 extern const char * Slow;
284 extern const char * Middle;
285 extern const char * Fast;
286 extern const char * Fastest;
287 extern const char * Auto;
293 enum AirflowDirection
304 extern const char * FloorPanel;
305 extern const char * FloorDuct;
306 extern const char * Bilevel;
307 extern const char * DefrostFloor;
332 extern const char* Comfort;
333 extern const char* Auto;
334 extern const char* Sport;
335 extern const char* Eco;
336 extern const char* Manual;
337 extern const char* Winter;
342 namespace Measurement
352 namespace LaneDeparture
356 extern const char * Off;
357 extern const char * Pause;
358 extern const char * Running;
366 extern const char * Inactive;
367 extern const char * Active;
368 extern const char * Error;
372 #include <boost/preprocessor/comma.hpp>
374 #define PROPERTYTYPE(property, propertyType, baseClass, valueType) \
375 class propertyType : public baseClass { \
376 public: propertyType(): baseClass(property) {} \
377 propertyType(valueType val) : baseClass(property, val) {} \
378 using baseClass::operator=; \
381 #define PROPERTYTYPE1(property, propertyType, baseClass, valueType) \
382 class propertyType : public baseClass { \
383 public: propertyType(): baseClass(#property) {} \
384 propertyType(valueType val) : baseClass(#property, val) {} \
387 #define PROPERTYTYPEBASIC(property, valueType) \
388 class property ## Type : public BasicPropertyType<valueType> { \
389 public: property ## Type(): BasicPropertyType(property) {} \
390 property ## Type(valueType val) : BasicPropertyType(property, val) {} \
391 using BasicPropertyType<valueType>::operator=; \
394 #define PROPERTYTYPEBASIC1(property, valueType) \
395 class property ## Type : public BasicPropertyType<valueType> { \
396 public: property ## Type(): BasicPropertyType( #property) {} \
397 property ## Type(valueType val) : BasicPropertyType(#property, val) {} \
400 #define PROPERTYTYPENOVAL(property, propertyType, baseClass) \
401 class propertyType : public baseClass { \
402 public: propertyType(): baseClass(property) {} \
408 typedef std::vector<std::string> PropertyList;
409 typedef std::set<std::string> PropertySet;
421 typedef std::string Property;
453 PROPERTYTYPE(TransmissionShiftPosition, TransmissionShiftPositionType,
465 static const Property TransmissionGearPosition;
466 PROPERTYTYPE(TransmissionGearPosition, TransmissionGearPositionType,
471 static const Property TransmissionMode;
479 static const Property TransmissionModeW3C;
492 static const Property WheelBrakePressure;
504 PROPERTYTYPEBASIC(SteeringWheelAngleW3C, int16_t)
508 PROPERTYTYPEBASIC(TurnSignal, TurnSignals::TurnSignalType)
519 static const Property EngineCoolantTemperature;
520 PROPERTYTYPEBASIC(EngineCoolantTemperature, int16_t)
526 static const Property MachineGunTurretStatus;
527 PROPERTYTYPEBASIC(MachineGunTurretStatus,
bool)
529 static const Property AccelerationX;
530 PROPERTYTYPEBASIC(AccelerationX, int16_t)
532 static const Property AccelerationY;
533 PROPERTYTYPEBASIC(AccelerationY, int16_t)
536 PROPERTYTYPEBASIC(AccelerationZ, int16_t)
539 static const Property MassAirFlow;
545 [[deprecated("Deprecated in 0.14. Use ButtonEventW3C")]]
549 static const Property ButtonEventW3C;
558 static const Property AirIntakeTemperature;
567 static const Property BatteryCurrent;
572 PROPERTYTYPEBASIC(BatteryChargeLevel, uint16_t)
575 static const Property InteriorTemperature;
579 static const Property ExteriorTemperature;
583 static const Property EngineOilTemperature;
584 PROPERTYTYPEBASIC(EngineOilTemperature,
int)
586 static const Property EngineOilRemaining;
587 PROPERTYTYPEBASIC(EngineOilRemaining, uint16_t)
589 static const Property EngineOilLifeRemaining;
590 PROPERTYTYPEBASIC(EngineOilLifeRemaining, uint16_t)
593 PROPERTYTYPEBASIC(EngineOilChangeIndicator,
bool)
596 static const Property VIN;
601 static const Property
WMI;
602 PROPERTYTYPE(WMI, WMIType, StringPropertyType, std::
string)
607 PROPERTYTYPEBASIC(TirePressure, uint16_t)
611 PROPERTYTYPEBASIC(TirePressureLow,
bool)
615 PROPERTYTYPEBASIC(TireTemperature, int16_t)
624 static const Property TripMeters;
628 static const Property CruiseControlActive;
632 static const Property CruiseControlSpeed;
636 static const Property LightHead;
638 static const Property LightRightTurn;
640 static const Property LightLeftTurn;
642 static const Property LightBrake;
644 static const Property LightFog;
646 static const Property LightHazard;
648 static const Property LightParking;
650 static const Property LightHighBeam;
652 static const Property LightAutomatic;
653 PROPERTYTYPEBASIC(LightAutomatic,
bool)
654 static const Property LightDynamicHighBeam;
655 PROPERTYTYPEBASIC(LightDynamicHighBeam,
bool)
668 PROPERTYTYPEBASIC(InteriorLightStatus,
bool)
670 static const Property EngineLoad;
673 static const Property
Horn;
676 static const Property FuelLevel;
679 static const Property FuelRange;
682 static const Property FuelConsumption;
685 static const Property FuelEconomy;
688 static const Property FuelAverageEconomy;
691 static const Property FuelAverageConsumption;
692 PROPERTYTYPEBASIC(FuelAverageConsumption, uint)
694 static const Property FuelTimeSinceRestart;
695 PROPERTYTYPEBASIC(FuelTimeSinceRestart, uint)
697 static const Property FuelConsumptionSinceRestart;
698 PROPERTYTYPEBASIC(FuelConsumptionSinceRestart, uint)
700 static const Property FuelType;
703 static const Property FuelPositionSide;
709 static const Property Latitude;
712 static const Property Longitude;
715 static const Property Altitude;
718 static const Property Direction;
721 static const Property VehicleWidth;
723 static const Property VehicleHeight;
725 static const Property VehicleLength;
731 static const Property DoorsPerRow;
734 static const Property TransmissionGearType;
737 static const Property FrontWheelRadius;
739 static const Property RearWheelRadius;
742 static const Property WheelTrack;
745 static const Property BrakePressure;
746 PROPERTYTYPEBASIC(BrakePressure, uint16_t)
750 PROPERTYTYPEBASIC(Odometer, uint)
752 static const Property DistanceTotal;
753 PROPERTYTYPEBASIC(DistanceTotal, uint)
756 PROPERTYTYPEBASIC(DistanceSinceStart, uint)
760 static const Property TransmissionFluidLevel;
761 PROPERTYTYPEBASIC(TransmissionFluidLevel, uint16_t)
763 static const Property TransmissionOilWear;
764 PROPERTYTYPEBASIC(TransmissionOilWear, uint16_t)
766 static const Property TransmissionOilTemperature;
767 PROPERTYTYPEBASIC(TransmissionOilTemperature, int16_t)
770 PROPERTYTYPEBASIC(TransmissionClutchWear, uint16_t)
775 PROPERTYTYPEBASIC(BrakeFluidLevel, uint16_t)
779 static const Property WasherFluidLevel;
780 PROPERTYTYPEBASIC(WasherFluidLevel, uint16_t)
782 static const Property WasherFluidLevelLow;
783 PROPERTYTYPEBASIC(WasherFluidLevelLow,
bool)
787 PROPERTYTYPEBASIC(SecurityAlertStatus, Security::Status)
793 static const Property ParkingBrakeStatus;
794 PROPERTYTYPEBASIC(ParkingBrakeStatus,
bool)
800 PROPERTYTYPE(ParkingBrakeStatusW3C, ParkingBrakeStatusW3CType, StringPropertyType, std::
string)
806 PROPERTYTYPEBASIC(ParkingLightStatus,
bool)
811 static const Property HazardLightStatus;
812 PROPERTYTYPEBASIC(HazardLightStatus,
bool)
815 PROPERTYTYPEBASIC(AntilockBrakingSystem,
bool)
817 static const Property AntilockBrakingSystemEnabled;
818 PROPERTYTYPEBASIC(AntilockBrakingSystemEnabled,
bool)
821 PROPERTYTYPEBASIC(TractionControlSystem,
bool)
823 static const Property TractionControlSystemEnabled;
824 PROPERTYTYPEBASIC(TractionControlSystemEnabled,
bool)
827 PROPERTYTYPEBASIC(VehicleTopSpeedLimit,uint16_t)
831 PROPERTYTYPEBASIC(AirbagStatus, Airbag::Status)
833 static const Property AirbagActivated;
834 PROPERTYTYPEBASIC(AirbagActivated,
bool)
836 static const Property AirbagDeployed;
837 PROPERTYTYPEBASIC(AirbagDeployed,
bool)
841 PROPERTYTYPEBASIC(DoorStatus,
Door::Status)
848 PROPERTYTYPE(DoorStatusW3C, DoorStatusW3CType, StringPropertyType, std::
string)
850 static const Property DoorLockStatus;
851 PROPERTYTYPEBASIC(DoorLockStatus,
bool)
853 static const Property ChildLockStatus;
854 PROPERTYTYPEBASIC(ChildLockStatus,
bool)
856 static const Property SeatBeltStatus;
857 PROPERTYTYPEBASIC(SeatBeltStatus,
bool)
859 static const Property WindowLockStatus;
860 PROPERTYTYPEBASIC(WindowLockStatus,
bool)
864 PROPERTYTYPEBASIC(OccupantStatus,
Seat::Occupant)
866 static const Property OccupantStatusW3C;
867 PROPERTYTYPE(OccupantStatusW3C, OccupantStatusW3CType, StringPropertyType, std::
string)
870 PROPERTYTYPEBASIC(ObstacleDistance,
double)
873 PROPERTYTYPEBASIC(RainSensor, uint16_t)
877 PROPERTYTYPEBASIC(WindshieldWiper, Window::WiperSpeed)
884 PROPERTYTYPE(WindshieldWiperSpeed, WindshieldWiperSpeedType, StringPropertyType, std::
string)
891 PROPERTYTYPE(WindshieldWiperSetting, WindshieldWiperSettingType, StringPropertyType, std::
string)
895 PROPERTYTYPEBASIC(AirflowDirection,
HVAC::AirflowDirection)
897 static const Property AirflowDirectionW3C;
898 PROPERTYTYPE(AirflowDirectionW3C, AirflowDirectionW3CType, StringPropertyType, std::
string)
900 static const Property FanSpeed;
901 PROPERTYTYPEBASIC(FanSpeed, uint16_t)
903 static const Property TargetTemperature;
904 PROPERTYTYPEBASIC(TargetTemperature,
int)
906 static const Property AirConditioning;
907 PROPERTYTYPEBASIC(AirConditioning,
bool)
909 static const Property AirRecirculation;
910 PROPERTYTYPEBASIC(AirRecirculation,
bool)
912 static const Property Heater;
913 PROPERTYTYPEBASIC(Heater,
bool)
917 PROPERTYTYPEBASIC(Defrost,
bool )
919 static const Property DefrostWindow;
920 PROPERTYTYPEBASIC(DefrostWindow,
bool )
922 static const Property DefrostMirror;
923 PROPERTYTYPEBASIC(DefrostMirror,
bool )
925 static const Property SteeringWheelHeater;
926 PROPERTYTYPEBASIC(SteeringWheelHeater,
bool)
929 static const Property SeatHeater;
930 PROPERTYTYPEBASIC(SeatHeater,
int)
933 static const Property SeatCooler;
934 PROPERTYTYPEBASIC(SeatCooler,
bool)
938 PROPERTYTYPEBASIC(WindowStatus, uint16_t)
941 PROPERTYTYPEBASIC(Sunroof, uint16_t)
944 static const Property SunroofTilt;
945 PROPERTYTYPEBASIC(SunroofTilt,uint16_t)
949 PROPERTYTYPEBASIC(ConvertibleRoof,
bool)
955 PROPERTYTYPE(ConvertibleRoofStatus, ConvertibleRoofStatusType, StringPropertyType, std::
string)
958 PROPERTYTYPEBASIC(NightMode,
bool)
961 PROPERTYTYPEBASIC(DrivingMode, Driving::Mode)
963 static const Property DrivingModeW3C;
964 PROPERTYTYPEBASIC(DrivingModeW3C,
bool)
966 static const Property KeyId;
967 PROPERTYTYPE(KeyId, KeyIdType, StringPropertyType, std::
string)
969 static const Property Language;
970 PROPERTYTYPE(Language, LanguageType, StringPropertyType, std::
string)
972 static const Property MeasurementSystem;
973 PROPERTYTYPEBASIC(MeasurementSystem, Measurement::Type)
975 static const Property MirrorSettingPan;
976 static const Property MirrorSettingTilt;
978 PROPERTYTYPEBASIC(MirrorSettingPan, uint16_t)
979 PROPERTYTYPEBASIC(MirrorSettingTilt, uint16_t)
981 static const Property SteeringWheelPositionSlide;
982 static const Property SteeringWheelPositionTilt;
984 PROPERTYTYPEBASIC(SteeringWheelPositionSlide, uint16_t)
985 PROPERTYTYPEBASIC(SteeringWheelPositionTilt, uint16_t)
987 static const Property SeatPositionRecline;
988 static const Property SeatPositionSlide;
989 static const Property SeatPositionCushionHeight;
990 static const Property SeatPositionHeadrest;
991 static const Property SeatPositionBackCushion;
992 static const Property SeatPositionSideCushion;
994 PROPERTYTYPEBASIC(SeatPositionRecline, uint16_t)
995 PROPERTYTYPEBASIC(SeatPositionSlide, uint16_t)
996 PROPERTYTYPEBASIC(SeatPositionCushionHeight, uint16_t)
997 PROPERTYTYPEBASIC(SeatPositionHeadrest, uint16_t)
998 PROPERTYTYPEBASIC(SeatPositionBackCushion, uint16_t)
999 PROPERTYTYPEBASIC(SeatPositionSideCushion, uint16_t)
1001 static const Property DashboardIllumination;
1002 PROPERTYTYPEBASIC(DashboardIllumination, uint16_t)
1004 static const Property GeneratedVehicleSoundMode;
1005 PROPERTYTYPEBASIC(GeneratedVehicleSoundMode, Vehicle::SoundMode)
1007 static const Property DriverId;
1008 PROPERTYTYPE(DriverId, DriverIdType, StringPropertyType, std::
string)
1011 PROPERTYTYPEBASIC(PowertrainTorque, uint16_t)
1014 PROPERTYTYPEBASIC(AcceleratorPedalPosition, uint16_t)
1016 static const Property
Chime;
1017 PROPERTYTYPEBASIC(Chime,
bool)
1020 PROPERTYTYPEBASIC(WheelTick, uint)
1022 static const Property IgnitionTimeOn;
1023 PROPERTYTYPEBASIC(IgnitionTimeOn, uint64_t)
1025 static const Property IgnitionTimeOff;
1026 PROPERTYTYPEBASIC(IgnitionTimeOff, uint64_t)
1028 static const Property
YawRate;
1029 PROPERTYTYPEBASIC(YawRate, int16_t)
1031 static const Property BrakePadWear;
1032 PROPERTYTYPEBASIC(BrakePadWear, uint16_t)
1034 static const Property BrakeFluidLevelLow;
1035 PROPERTYTYPEBASIC(BrakeFluidLevelLow,
bool)
1037 static const Property BrakesWorn;
1038 PROPERTYTYPEBASIC(BrakesWorn,
bool)
1040 static const Property MalfunctionIndicatorOn;
1041 PROPERTYTYPEBASIC(MalfunctionIndicatorOn,
bool)
1043 static const Property AccumulatedEngineRuntime;
1044 PROPERTYTYPEBASIC(AccumulatedEngineRuntime, uint32_t)
1046 static const Property DistanceSinceCodeCleared;
1047 PROPERTYTYPEBASIC(DistanceSinceCodeCleared, uint32_t)
1049 static const Property DistanceWithMILOn;
1050 PROPERTYTYPEBASIC(DistanceWithMILOn, uint32_t)
1052 static const Property TimeRunMILOn;
1053 PROPERTYTYPEBASIC(TimeRunMILOn, uint32_t)
1055 static const Property TimeTroubleCodeClear;
1056 PROPERTYTYPEBASIC(TimeTroubleCodeClear, uint32_t)
1058 static const Property VehicleDriveMode;
1059 PROPERTYTYPE(VehicleDriveMode, VehicleDriveModeType, StringPropertyType, std::
string)
1061 static const Property ActiveNoiseControlMode;
1062 PROPERTYTYPEBASIC(ActiveNoiseControlMode,
bool)
1064 static const Property AvailableSounds;
1067 static const Property EngineSoundEnhancementMode;
1068 PROPERTYTYPE(EngineSoundEnhancementMode, EngineSoundEnhancementModeType, StringPropertyType, std::
string)
1070 static const Property ElectronicStabilityControlEnabled;
1071 PROPERTYTYPEBASIC(ElectronicStabilityControlEnabled,
bool)
1073 static const Property ElectronicStabilityControlEngaged;
1074 PROPERTYTYPEBASIC(ElectronicStabilityControlEngaged,
bool)
1076 static const Property OccupantIdentificationType;
1077 PROPERTYTYPE(OccupantIdentificationType, OccupantIdentificationTypeType, StringPropertyType, std::
string)
1079 static const Property OccupantName;
1080 PROPERTYTYPE(OccupantName, OccupantNameType, StringPropertyType, std::
string)
1083 PROPERTYTYPEBASIC(AtmosphericPressure, uint16_t)
1085 static const Property LaneDepartureStatus;
1086 PROPERTYTYPE(LaneDepartureStatus, LaneDepartureStatusType, StringPropertyType, std::
string)
1092 PROPERTYTYPE(AlarmStatus, AlarmStatusType, StringPropertyType, std::
string)
1143 static std::unique_ptr<VehicleProperty> thereCanOnlyBeOne;
1148 static PropertyList mCapabilities;
1149 static PropertyList mCustomProperties;
1152 #endif // VEHICLEPROPERTY_H