Completed adding all characteristic types to HAPCharList
This commit is contained in:
parent
1d8bdc1202
commit
5838768f38
|
|
@ -66,60 +66,119 @@ enum class StatusCode {
|
|||
struct HapCharType {
|
||||
char *id;
|
||||
char *name;
|
||||
uint8_t perms;
|
||||
};
|
||||
|
||||
///////////////////////////////
|
||||
|
||||
#define HAPCHAR(name,id) HapCharType name {#id,#name}
|
||||
#define HAPCHAR(name,id,perms) HapCharType name {#id,#name,perms}
|
||||
|
||||
enum { // create bitflags based on HAP Table 6-4
|
||||
PR=1,
|
||||
PW=2,
|
||||
EV=4,
|
||||
AA=8,
|
||||
TW=16,
|
||||
HD=32,
|
||||
WR=64
|
||||
};
|
||||
|
||||
struct HapCharList {
|
||||
|
||||
HAPCHAR( Active, B0 );
|
||||
HAPCHAR( CarbonDioxideDetected, XX );
|
||||
HAPCHAR( ChargingState, XX );
|
||||
HAPCHAR( CurrentAirPurifierState, XX );
|
||||
HAPCHAR( AirQuality, 95 );
|
||||
HAPCHAR( BatteryLevel, XX );
|
||||
HAPCHAR( Brightness, 8 );
|
||||
HAPCHAR( ColorTemperature, CE );
|
||||
HAPCHAR( CurrentDoorState, E );
|
||||
HAPCHAR( CurrentPosition, 6D );
|
||||
HAPCHAR( CurrentTemperature, 11 );
|
||||
HAPCHAR( FirmwareRevision, 52 );
|
||||
HAPCHAR( HardwareRevision, 53 );
|
||||
HAPCHAR( HoldPosition, 6F );
|
||||
HAPCHAR( Hue, 13 );
|
||||
HAPCHAR( Identify, 14 );
|
||||
HAPCHAR( LockPhysicalControls, );
|
||||
HAPCHAR( Manufacturer, 20 );
|
||||
HAPCHAR( Model, 21 );
|
||||
HAPCHAR( Name, 23 );
|
||||
HAPCHAR( NitrogenDioxideDensity, C4 );
|
||||
HAPCHAR( ObstructionDetected, 24 );
|
||||
HAPCHAR( On, 25 );
|
||||
HAPCHAR( OutletInUse, 26 );
|
||||
HAPCHAR( OzoneDensity, C3 );
|
||||
HAPCHAR( PM10Density, C7 );
|
||||
HAPCHAR( PM25Density, C6 );
|
||||
HAPCHAR( PositionState, 72 );
|
||||
HAPCHAR( RotationDirection, 28 );
|
||||
HAPCHAR( RotationSpeed, 29 );
|
||||
HAPCHAR( Saturation , 2F );
|
||||
HAPCHAR( SerialNumber, 30 );
|
||||
HAPCHAR( SlatType, C0 );
|
||||
HAPCHAR( SmokeDetected, 76 );
|
||||
HAPCHAR( StatusActive, 75 );
|
||||
HAPCHAR( StatusFault, 77 );
|
||||
HAPCHAR( StatusJammed, 78 );
|
||||
HAPCHAR( StatusLowBattery, 79 );
|
||||
HAPCHAR( StatusTampered, 7A );
|
||||
HAPCHAR( SulphurDioxideDensity, C5 );
|
||||
HAPCHAR( SwingMode, B6 );
|
||||
HAPCHAR( TargetAirPurifierState, XX );
|
||||
HAPCHAR( TargetDoorState, 32 );
|
||||
HAPCHAR( TargetPosition, 7C );
|
||||
HAPCHAR( TemperatureDisplayUnits, 36 );
|
||||
HAPCHAR( Version, 37 );
|
||||
HAPCHAR( VOCDensity, C8 );
|
||||
HAPCHAR( Active, B0, PW+PR+EV );
|
||||
HAPCHAR( AirQuality, 95, PR+EV );
|
||||
HAPCHAR( BatteryLevel, 68, PR+EV );
|
||||
HAPCHAR( Brightness, 8, PR+PW+EV );
|
||||
HAPCHAR( CarbonMonoxideLevel, 90, PR+EV );
|
||||
HAPCHAR( CarbonMonoxidePeakLevel, 91, PR+EV );
|
||||
HAPCHAR( CarbonDioxideDetected, 92, PR+EV );
|
||||
HAPCHAR( CarbonDioxideLevel, 93, PR+EV );
|
||||
HAPCHAR( CarbonDioxidePeakLevel, 94, PR+EV );
|
||||
HAPCHAR( CarbonMonoxideDetected, 69, PR+EV );
|
||||
HAPCHAR( ChargingState, 8F, PR+EV );
|
||||
HAPCHAR( CoolingThresholdTemperature, D, PR+PW+EV );
|
||||
HAPCHAR( ColorTemperature, CE, PR+PW+EV );
|
||||
HAPCHAR( ContactSensorState, 6A, PR+EV );
|
||||
HAPCHAR( CurrentAmbientLightLevel, 6B, PR+EV );
|
||||
HAPCHAR( CurrentHorizontalTiltAngle, 6C, PR+EV );
|
||||
HAPCHAR( CurrentAirPurifierState, A9, PR+EV );
|
||||
HAPCHAR( CurrentSlatState, AA, PR+EV );
|
||||
HAPCHAR( CurrentPosition, 6D, PR+EV );
|
||||
HAPCHAR( CurrentVerticalTiltAngle, 6E, PR+EV );
|
||||
HAPCHAR( CurrentHumidifierDehumidifierState, B3, PR+EV );
|
||||
HAPCHAR( CurrentDoorState, E, PR+EV );
|
||||
HAPCHAR( CurrentFanState, AF, PR+EV );
|
||||
HAPCHAR( CurrentHeatingCoolingState, F, PR+EV );
|
||||
HAPCHAR( CurrentHeaterCoolerState, B1, PR+EV );
|
||||
HAPCHAR( CurrentRelativeHumidity, 10, PR+EV );
|
||||
HAPCHAR( CurrentTemperature, 11, PR+EV );
|
||||
HAPCHAR( CurrentTiltAngle, C1, PR+EV );
|
||||
HAPCHAR( FilterLifeLevel, AB, PR+EV );
|
||||
HAPCHAR( FilterChangeIndication, AC, PR+EV );
|
||||
HAPCHAR( FirmwareRevision, 52, PR );
|
||||
HAPCHAR( HardwareRevision, 53, PR );
|
||||
HAPCHAR( HeatingThresholdTemperature, 12, PR+PW+EV );
|
||||
HAPCHAR( HoldPosition, 6F, PW );
|
||||
HAPCHAR( Hue, 13, PR+PW+EV );
|
||||
HAPCHAR( Identify, 14, PW );
|
||||
HAPCHAR( InUse, D2, PR+EV );
|
||||
HAPCHAR( IsConfigured, D6, PR+EV );
|
||||
HAPCHAR( LeakDetected, 70, PR+EV );
|
||||
HAPCHAR( LockCurrentState, 1D, PR+EV );
|
||||
HAPCHAR( LockPhysicalControls, A7, PW+PR+EV );
|
||||
HAPCHAR( LockTargetState, 1E, PW+PR+EV );
|
||||
HAPCHAR( Manufacturer, 20, PR );
|
||||
HAPCHAR( Model, 21, PR );
|
||||
HAPCHAR( MotionDetected, 22, PR+EV );
|
||||
HAPCHAR( Name, 23, PR );
|
||||
HAPCHAR( NitrogenDioxideDensity, C4, PR+EV );
|
||||
HAPCHAR( ObstructionDetected, 24, PR+EV );
|
||||
HAPCHAR( PM25Density, C6, PR+EV );
|
||||
HAPCHAR( OccupancyDetected, 71, PR+EV );
|
||||
HAPCHAR( OutletInUse, 26, PR+EV );
|
||||
HAPCHAR( On, 25, PR+PW+EV );
|
||||
HAPCHAR( OzoneDensity, C3, PR+EV );
|
||||
HAPCHAR( PM10Density, C7, PR+EV );
|
||||
HAPCHAR( PositionState, 72, PR+EV );
|
||||
HAPCHAR( ProgramMode, D1, PR+EV );
|
||||
HAPCHAR( ProgrammableSwitchEvent, 73, PR+EV );
|
||||
HAPCHAR( RelativeHumidityDehumidifierThreshold, C9, PR+PW+EV );
|
||||
HAPCHAR( RelativeHumidityHumidifierThreshold, CA, PR+PW+EV );
|
||||
HAPCHAR( RemainingDuration, D4, PR+EV );
|
||||
HAPCHAR( ResetFilterIndication, AD, PW );
|
||||
HAPCHAR( RotationDirection, 28, PR+PW+EV );
|
||||
HAPCHAR( RotationSpeed, 29, PR+PW+EV );
|
||||
HAPCHAR( Saturation , 2F, PR+PW+EV );
|
||||
HAPCHAR( SerialNumber, 30, PR );
|
||||
HAPCHAR( ServiceLabelIndex, CB, PR );
|
||||
HAPCHAR( ServiceLabelNamespace, CD, PR );
|
||||
HAPCHAR( SlatType, C0, PR );
|
||||
HAPCHAR( SmokeDetected, 76, PR+EV );
|
||||
HAPCHAR( StatusActive, 75, PR+EV );
|
||||
HAPCHAR( StatusFault, 77, PR+EV );
|
||||
HAPCHAR( StatusJammed, 78, PR+EV );
|
||||
HAPCHAR( StatusLowBattery, 79, PR+EV );
|
||||
HAPCHAR( StatusTampered, 7A, PR+EV );
|
||||
HAPCHAR( SulphurDioxideDensity, C5, PR+EV );
|
||||
HAPCHAR( SwingMode, B6, PR+EV+PW );
|
||||
HAPCHAR( TargetAirPurifierState, A8, PW+PR+EV );
|
||||
HAPCHAR( TargetFanState, BF, PW+PR+EV );
|
||||
HAPCHAR( TargetTiltAngle, C2, PW+PR+EV );
|
||||
HAPCHAR( TargetHeaterCoolerState, ??, PW+PR+EV ); // HAP documentation error - no code provided - must look up elsewhere
|
||||
HAPCHAR( SetDuration, D3, PW+PR+EV );
|
||||
HAPCHAR( TargetHorizontalTiltAngle, 7B, PW+PR+EV );
|
||||
HAPCHAR( TargetHumidifierDehumidifierState, B4, PW+PR+EV );
|
||||
HAPCHAR( TargetPosition, 7C, PW+PR+EV );
|
||||
HAPCHAR( TargetDoorState, 32, PW+PR+EV );
|
||||
HAPCHAR( TargetHeatingCoolingState, 33, PW+PR+EV );
|
||||
HAPCHAR( TargetRelativeHumidity, 34, PW+PR+EV );
|
||||
HAPCHAR( TargetTemperature, 35, PW+PR+EV );
|
||||
HAPCHAR( TemperatureDisplayUnits, 36, PW+PR+EV );
|
||||
HAPCHAR( TargetVerticalTiltAngle, 7D, PW+PR+EV );
|
||||
HAPCHAR( ValveType, D5, PR+EV );
|
||||
HAPCHAR( Version, 37, PR );
|
||||
HAPCHAR( VOCDensity, C8, PR+EV );
|
||||
HAPCHAR( Volume, 119, PW+PR+EV );
|
||||
HAPCHAR( WaterLevel, B5, PR+EV );
|
||||
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1034,7 +1034,7 @@ int SpanAccessory::sprintfAttributes(char *cBuf){
|
|||
// SpanService //
|
||||
///////////////////////////////
|
||||
|
||||
SpanService::SpanService(const char *type, const char *hapName, char *requiredChars, char *optionalChars){
|
||||
SpanService::SpanService(const char *type, const char *hapName){
|
||||
|
||||
this->type=type;
|
||||
this->hapName=hapName;
|
||||
|
|
|
|||
|
|
@ -136,8 +136,7 @@ struct SpanService{
|
|||
vector<HapCharType *> req; // vector of pointers to all required HAP Characteristic Types for this Service
|
||||
vector<HapCharType *> opt; // vector of pointers to all optional HAP Characteristic Types for this Service
|
||||
|
||||
SpanService(const char *type, const char *hapName,
|
||||
char *requiredChars="", char *optionalChars="");
|
||||
SpanService(const char *type, const char *hapName);
|
||||
|
||||
SpanService *setPrimary(); // sets the Service Type to be primary and returns pointer to self
|
||||
SpanService *setHidden(); // sets the Service Type to be hidden and returns pointer to self
|
||||
|
|
|
|||
|
|
@ -143,9 +143,9 @@ namespace Service {
|
|||
OPT(RotationSpeed);
|
||||
OPT(TemperatureDisplayUnits);
|
||||
OPT(SwingMode);
|
||||
OPT(CoolingThesholdTemperature)
|
||||
OPT(CoolingThresholdTemperature);
|
||||
OPT(HeatingThresholdTemperature);
|
||||
OPT(CHAR_LockPhysicalControls);
|
||||
OPT(LockPhysicalControls);
|
||||
}};
|
||||
|
||||
struct HumidifierDehumidifier : SpanService { HumidifierDehumidifier() : SpanService{"BD","HumidifierDehumidifier"}{
|
||||
|
|
@ -155,7 +155,7 @@ namespace Service {
|
|||
REQ(TargetHumidifierDehumidifierState);
|
||||
OPT(Name);
|
||||
OPT(RelativeHumidityDehumidifierThreshold);
|
||||
OPT(RelativeHumidityHumnidifierThreshold);
|
||||
OPT(RelativeHumidityHumidifierThreshold);
|
||||
OPT(RotationSpeed);
|
||||
OPT(SwingMode);
|
||||
OPT(WaterLevel);
|
||||
|
|
@ -275,7 +275,7 @@ namespace Service {
|
|||
|
||||
struct Thermostat : SpanService { Thermostat() : SpanService{"4A","Thermostat"}{
|
||||
REQ(CurrentHeatingCoolingState);
|
||||
REQ(TargetHeatingColingState);
|
||||
REQ(TargetHeatingCoolingState);
|
||||
REQ(CurrentTemperature);
|
||||
REQ(TargetTemperature);
|
||||
REQ(TemperatureDisplayUnits);
|
||||
|
|
|
|||
Loading…
Reference in New Issue