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 {
|
struct HapCharType {
|
||||||
char *id;
|
char *id;
|
||||||
char *name;
|
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 {
|
struct HapCharList {
|
||||||
|
|
||||||
HAPCHAR( Active, B0 );
|
HAPCHAR( Active, B0, PW+PR+EV );
|
||||||
HAPCHAR( CarbonDioxideDetected, XX );
|
HAPCHAR( AirQuality, 95, PR+EV );
|
||||||
HAPCHAR( ChargingState, XX );
|
HAPCHAR( BatteryLevel, 68, PR+EV );
|
||||||
HAPCHAR( CurrentAirPurifierState, XX );
|
HAPCHAR( Brightness, 8, PR+PW+EV );
|
||||||
HAPCHAR( AirQuality, 95 );
|
HAPCHAR( CarbonMonoxideLevel, 90, PR+EV );
|
||||||
HAPCHAR( BatteryLevel, XX );
|
HAPCHAR( CarbonMonoxidePeakLevel, 91, PR+EV );
|
||||||
HAPCHAR( Brightness, 8 );
|
HAPCHAR( CarbonDioxideDetected, 92, PR+EV );
|
||||||
HAPCHAR( ColorTemperature, CE );
|
HAPCHAR( CarbonDioxideLevel, 93, PR+EV );
|
||||||
HAPCHAR( CurrentDoorState, E );
|
HAPCHAR( CarbonDioxidePeakLevel, 94, PR+EV );
|
||||||
HAPCHAR( CurrentPosition, 6D );
|
HAPCHAR( CarbonMonoxideDetected, 69, PR+EV );
|
||||||
HAPCHAR( CurrentTemperature, 11 );
|
HAPCHAR( ChargingState, 8F, PR+EV );
|
||||||
HAPCHAR( FirmwareRevision, 52 );
|
HAPCHAR( CoolingThresholdTemperature, D, PR+PW+EV );
|
||||||
HAPCHAR( HardwareRevision, 53 );
|
HAPCHAR( ColorTemperature, CE, PR+PW+EV );
|
||||||
HAPCHAR( HoldPosition, 6F );
|
HAPCHAR( ContactSensorState, 6A, PR+EV );
|
||||||
HAPCHAR( Hue, 13 );
|
HAPCHAR( CurrentAmbientLightLevel, 6B, PR+EV );
|
||||||
HAPCHAR( Identify, 14 );
|
HAPCHAR( CurrentHorizontalTiltAngle, 6C, PR+EV );
|
||||||
HAPCHAR( LockPhysicalControls, );
|
HAPCHAR( CurrentAirPurifierState, A9, PR+EV );
|
||||||
HAPCHAR( Manufacturer, 20 );
|
HAPCHAR( CurrentSlatState, AA, PR+EV );
|
||||||
HAPCHAR( Model, 21 );
|
HAPCHAR( CurrentPosition, 6D, PR+EV );
|
||||||
HAPCHAR( Name, 23 );
|
HAPCHAR( CurrentVerticalTiltAngle, 6E, PR+EV );
|
||||||
HAPCHAR( NitrogenDioxideDensity, C4 );
|
HAPCHAR( CurrentHumidifierDehumidifierState, B3, PR+EV );
|
||||||
HAPCHAR( ObstructionDetected, 24 );
|
HAPCHAR( CurrentDoorState, E, PR+EV );
|
||||||
HAPCHAR( On, 25 );
|
HAPCHAR( CurrentFanState, AF, PR+EV );
|
||||||
HAPCHAR( OutletInUse, 26 );
|
HAPCHAR( CurrentHeatingCoolingState, F, PR+EV );
|
||||||
HAPCHAR( OzoneDensity, C3 );
|
HAPCHAR( CurrentHeaterCoolerState, B1, PR+EV );
|
||||||
HAPCHAR( PM10Density, C7 );
|
HAPCHAR( CurrentRelativeHumidity, 10, PR+EV );
|
||||||
HAPCHAR( PM25Density, C6 );
|
HAPCHAR( CurrentTemperature, 11, PR+EV );
|
||||||
HAPCHAR( PositionState, 72 );
|
HAPCHAR( CurrentTiltAngle, C1, PR+EV );
|
||||||
HAPCHAR( RotationDirection, 28 );
|
HAPCHAR( FilterLifeLevel, AB, PR+EV );
|
||||||
HAPCHAR( RotationSpeed, 29 );
|
HAPCHAR( FilterChangeIndication, AC, PR+EV );
|
||||||
HAPCHAR( Saturation , 2F );
|
HAPCHAR( FirmwareRevision, 52, PR );
|
||||||
HAPCHAR( SerialNumber, 30 );
|
HAPCHAR( HardwareRevision, 53, PR );
|
||||||
HAPCHAR( SlatType, C0 );
|
HAPCHAR( HeatingThresholdTemperature, 12, PR+PW+EV );
|
||||||
HAPCHAR( SmokeDetected, 76 );
|
HAPCHAR( HoldPosition, 6F, PW );
|
||||||
HAPCHAR( StatusActive, 75 );
|
HAPCHAR( Hue, 13, PR+PW+EV );
|
||||||
HAPCHAR( StatusFault, 77 );
|
HAPCHAR( Identify, 14, PW );
|
||||||
HAPCHAR( StatusJammed, 78 );
|
HAPCHAR( InUse, D2, PR+EV );
|
||||||
HAPCHAR( StatusLowBattery, 79 );
|
HAPCHAR( IsConfigured, D6, PR+EV );
|
||||||
HAPCHAR( StatusTampered, 7A );
|
HAPCHAR( LeakDetected, 70, PR+EV );
|
||||||
HAPCHAR( SulphurDioxideDensity, C5 );
|
HAPCHAR( LockCurrentState, 1D, PR+EV );
|
||||||
HAPCHAR( SwingMode, B6 );
|
HAPCHAR( LockPhysicalControls, A7, PW+PR+EV );
|
||||||
HAPCHAR( TargetAirPurifierState, XX );
|
HAPCHAR( LockTargetState, 1E, PW+PR+EV );
|
||||||
HAPCHAR( TargetDoorState, 32 );
|
HAPCHAR( Manufacturer, 20, PR );
|
||||||
HAPCHAR( TargetPosition, 7C );
|
HAPCHAR( Model, 21, PR );
|
||||||
HAPCHAR( TemperatureDisplayUnits, 36 );
|
HAPCHAR( MotionDetected, 22, PR+EV );
|
||||||
HAPCHAR( Version, 37 );
|
HAPCHAR( Name, 23, PR );
|
||||||
HAPCHAR( VOCDensity, C8 );
|
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::SpanService(const char *type, const char *hapName, char *requiredChars, char *optionalChars){
|
SpanService::SpanService(const char *type, const char *hapName){
|
||||||
|
|
||||||
this->type=type;
|
this->type=type;
|
||||||
this->hapName=hapName;
|
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 *> 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
|
vector<HapCharType *> opt; // vector of pointers to all optional HAP Characteristic Types for this Service
|
||||||
|
|
||||||
SpanService(const char *type, const char *hapName,
|
SpanService(const char *type, const char *hapName);
|
||||||
char *requiredChars="", char *optionalChars="");
|
|
||||||
|
|
||||||
SpanService *setPrimary(); // sets the Service Type to be primary and returns pointer to self
|
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
|
SpanService *setHidden(); // sets the Service Type to be hidden and returns pointer to self
|
||||||
|
|
|
||||||
|
|
@ -143,9 +143,9 @@ namespace Service {
|
||||||
OPT(RotationSpeed);
|
OPT(RotationSpeed);
|
||||||
OPT(TemperatureDisplayUnits);
|
OPT(TemperatureDisplayUnits);
|
||||||
OPT(SwingMode);
|
OPT(SwingMode);
|
||||||
OPT(CoolingThesholdTemperature)
|
OPT(CoolingThresholdTemperature);
|
||||||
OPT(HeatingThresholdTemperature);
|
OPT(HeatingThresholdTemperature);
|
||||||
OPT(CHAR_LockPhysicalControls);
|
OPT(LockPhysicalControls);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
struct HumidifierDehumidifier : SpanService { HumidifierDehumidifier() : SpanService{"BD","HumidifierDehumidifier"}{
|
struct HumidifierDehumidifier : SpanService { HumidifierDehumidifier() : SpanService{"BD","HumidifierDehumidifier"}{
|
||||||
|
|
@ -155,7 +155,7 @@ namespace Service {
|
||||||
REQ(TargetHumidifierDehumidifierState);
|
REQ(TargetHumidifierDehumidifierState);
|
||||||
OPT(Name);
|
OPT(Name);
|
||||||
OPT(RelativeHumidityDehumidifierThreshold);
|
OPT(RelativeHumidityDehumidifierThreshold);
|
||||||
OPT(RelativeHumidityHumnidifierThreshold);
|
OPT(RelativeHumidityHumidifierThreshold);
|
||||||
OPT(RotationSpeed);
|
OPT(RotationSpeed);
|
||||||
OPT(SwingMode);
|
OPT(SwingMode);
|
||||||
OPT(WaterLevel);
|
OPT(WaterLevel);
|
||||||
|
|
@ -275,7 +275,7 @@ namespace Service {
|
||||||
|
|
||||||
struct Thermostat : SpanService { Thermostat() : SpanService{"4A","Thermostat"}{
|
struct Thermostat : SpanService { Thermostat() : SpanService{"4A","Thermostat"}{
|
||||||
REQ(CurrentHeatingCoolingState);
|
REQ(CurrentHeatingCoolingState);
|
||||||
REQ(TargetHeatingColingState);
|
REQ(TargetHeatingCoolingState);
|
||||||
REQ(CurrentTemperature);
|
REQ(CurrentTemperature);
|
||||||
REQ(TargetTemperature);
|
REQ(TargetTemperature);
|
||||||
REQ(TemperatureDisplayUnits);
|
REQ(TemperatureDisplayUnits);
|
||||||
|
|
@ -319,7 +319,7 @@ namespace Service {
|
||||||
OPT(TargetVerticalTiltAngle);
|
OPT(TargetVerticalTiltAngle);
|
||||||
OPT(ObstructionDetected);
|
OPT(ObstructionDetected);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////
|
/////////////////////////////////////////
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue