diff options
Diffstat (limited to 'build/resources/main/VehicleRemoteHvac.proto')
-rw-r--r-- | build/resources/main/VehicleRemoteHvac.proto | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/build/resources/main/VehicleRemoteHvac.proto b/build/resources/main/VehicleRemoteHvac.proto new file mode 100644 index 0000000..38afaae --- /dev/null +++ b/build/resources/main/VehicleRemoteHvac.proto @@ -0,0 +1,96 @@ +syntax = "proto3"; /** +* <h2>Cabin Preconditioning</h2> +* <p>This set of messages define how to acquire vehicle location, either on demand or by interval and events.</p> +* +* <h3>Message Orchestration</h3> +* <p>[TO-DO]</p> +* +* <h3>MQTT Topic Design</h3> +* <table> +* <thead> +* <tr> +* <th>Direction</th> +* <th>Subscribe Topic</th> +* <th>Publish Topic</th> +* </tr> +* </thead> +* <tbody> +* <tr> +* <td>Vehicle to Cloud</td> +* <td>cabin/#</td> +* <td>cabin/<device_id></td> +* </tr> +* <tr> +* <td>Cloud to Vehicle</td> +* <td><device_id>/cabin</td> +* <td><device_id>/cabin</td> +* </tr> +* </tbody> +* </table> +*/ +import "google/protobuf/timestamp.proto"; +package messages; +message CabinConditionStatusPublish { + + google.protobuf.Timestamp event_time = 1; // Time of the event + HVACState hvac_state = 2; // Current state of the HVAC + CabinTemperature cabin_temperature = 3; // Current cabin temperature +} + +message PreconditionRequest { + + repeated HVACZone hvac_zones = 1; // List of HVAC zones to precondition + // For scheduled preconditioning, set the start_time to the desired future time. + // For on-demand preconditioning, leave the start_time unset. + google.protobuf.Timestamp start_time = 2; +} + +message PreconditionResponse { + enum Status { + SUCCESS = 0; + FAILURE = 1; + PENDING = 2; + } + + Status status = 1; // Status of the precondition request + string message = 2; // Optional message +} + +message CabinTemperature { + Temperature temperature = 1; // Current cabin temperature + HVACZone zone = 2; // Zone of the reported temperature +} + + +message Temperature { + float value = 1; // Temperature value + string unit = 2; // Temperature unit (e.g., "Celsius", "Fahrenheit") +} + +message HVACZone { + enum Zone { + DRIVER = 0; + PASSENGER = 1; + REAR_LEFT = 2; + REAR_RIGHT = 3; + } + + Zone zone = 1; // HVAC Zone + Temperature target_temperature = 2; // Target temperature +} + + +message HVACState { + enum State { + OFF = 0; + HEATING = 1; + COOLING = 2; + IDLE = 3; + } + + State state = 1; // Current state of the HVAC + HVACZone current_zone = 2; // Current active zone +} + + + |