rivian-python-client 2.2.0b0__tar.gz → 2.2.0b1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/PKG-INFO +1 -1
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/__version__.py +1 -1
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/__init__.py +2 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/charging.py +29 -9
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/holiday_celebration.py +1 -1
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/navigation.py +6 -3
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/ota.py +15 -8
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/charging.proto +16 -7
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/charging_pb2.py +12 -10
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/charging_pb2.pyi +19 -6
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/holiday_celebration.proto +4 -1
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/holiday_celebration_pb2.py +4 -4
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/holiday_celebration_pb2.pyi +8 -2
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/navigation.proto +8 -1
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/navigation_pb2.py +19 -17
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/navigation_pb2.pyi +15 -4
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/ota.proto +12 -7
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/ota_pb2.py +15 -13
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/ota_pb2.pyi +14 -9
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/ws_monitor.py +31 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/.gitignore +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/README.md +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/pyproject.toml +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/__init__.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/ble.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/const.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/exceptions.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/body.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/comfort.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/core.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/departure.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/device_table.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/dynamics.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/energy.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/energy_edge_compute.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/gearguard_streaming.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/geofence.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/parallax.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/__init__.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/body.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/body_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/body_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/comfort.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/comfort_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/comfort_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/departure.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/departure_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/departure_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/device_table.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/device_table_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/device_table_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/dynamics.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/dynamics_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/dynamics_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/energy.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/energy_edge_compute.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/energy_edge_compute_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/energy_edge_compute_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/energy_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/energy_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/gearguard_streaming.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/gearguard_streaming_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/gearguard_streaming_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/geofence.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/geofence_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/geofence_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/parallax.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/parallax_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/parallax_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/secure_file_transfer.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/secure_file_transfer_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/secure_file_transfer_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/security.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/security_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/security_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/user_passcodes.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/user_passcodes_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/user_passcodes_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/vehicle.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/vehicle_access.proto +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/vehicle_access_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/vehicle_access_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/vehicle_pb2.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/vehicle_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/secure_file_transfer.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/security.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/user_passcodes.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/vehicle.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/vehicle_access.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/py.typed +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/rivian.py +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/schemas/charging.graphql +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/schemas/gateway.graphql +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/schemas/orders.graphql +0 -0
- {rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rivian-python-client
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.0b1
|
|
4
4
|
Summary: Rivian API Client (Unofficial)
|
|
5
5
|
Author-email: Brian Retterer <bretterer@gmail.com>, "J.R. Gutierrez" <jrgutier@gmail.com>, Nathan Spencer <natekspencer@gmail.com>, Trevor Mack <drummer8001@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/__init__.py
RENAMED
|
@@ -50,7 +50,9 @@ from .core import (
|
|
|
50
50
|
PARALLAX_RVMS: list[str] = list(RVMDecoder.decoders)
|
|
51
51
|
|
|
52
52
|
CHARGING_RVMS: list[str] = [
|
|
53
|
+
"charging.energy.state",
|
|
53
54
|
"charging.session.notification",
|
|
55
|
+
"charging.session.power",
|
|
54
56
|
"charging.session.remote_command",
|
|
55
57
|
"charging.session.soc_slider",
|
|
56
58
|
"charging.session.status",
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/charging.py
RENAMED
|
@@ -210,17 +210,37 @@ def decode_time_estimation(m: charging_pb2.TimeEstimation) -> dict[str, Any]:
|
|
|
210
210
|
return {"timeToEndOfCharge": m.estimated_time_remaining}
|
|
211
211
|
|
|
212
212
|
|
|
213
|
+
_CHARGER_STATUS_MAP: Final[dict[int, str]] = {
|
|
214
|
+
1: "chrgr_sts_not_connected",
|
|
215
|
+
2: "chrgr_sts_connected_no_chrg",
|
|
216
|
+
3: "chrgr_sts_connected_charging",
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
|
|
213
220
|
@RVMDecoder.register("charging.energy.state", charging_pb2.EnergyState)
|
|
214
221
|
def decode_energy_state(m: charging_pb2.EnergyState) -> dict[str, Any]:
|
|
215
|
-
"""charging.energy.state —
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
222
|
+
"""charging.energy.state — charger connection status.
|
|
223
|
+
|
|
224
|
+
Fields:
|
|
225
|
+
chargerStatus: str — GraphQL chargerStatus values
|
|
226
|
+
("chrgr_sts_not_connected" | "chrgr_sts_connected_no_chrg" |
|
|
227
|
+
"chrgr_sts_connected_charging"); inferred
|
|
228
|
+
_field1, _field3, _field11: int — raw
|
|
229
|
+
"""
|
|
230
|
+
result: dict[str, Any] = {}
|
|
231
|
+
if (v := _present(m, "charger_status")) is not None:
|
|
232
|
+
result["chargerStatus"] = _enum(_CHARGER_STATUS_MAP, v, what="charger status")
|
|
233
|
+
for num in (1, 3, 11):
|
|
234
|
+
if (v := _present(m, f"field_{num}")) is not None:
|
|
235
|
+
result[f"_field{num}"] = v
|
|
236
|
+
return result
|
|
221
237
|
|
|
222
238
|
|
|
223
239
|
@RVMDecoder.register("charging.session.power", charging_pb2.SessionPower)
|
|
224
|
-
def decode_session_power(
|
|
225
|
-
"""charging.session.power —
|
|
226
|
-
|
|
240
|
+
def decode_session_power(m: charging_pb2.SessionPower) -> dict[str, Any]:
|
|
241
|
+
"""charging.session.power — live charging power, about every 5 seconds.
|
|
242
|
+
|
|
243
|
+
Fields:
|
|
244
|
+
power: float (kW; 0 when not charging)
|
|
245
|
+
"""
|
|
246
|
+
return {"power": round(m.power, 2)}
|
|
@@ -62,7 +62,7 @@ def decode_halloween_celebration_settings(
|
|
|
62
62
|
Each field's wrapped value, when set, as a raw `_fieldN`.
|
|
63
63
|
"""
|
|
64
64
|
result: dict[str, Any] = {}
|
|
65
|
-
for num in (1, 2, 3, 4, 7, 8, 9, 10):
|
|
65
|
+
for num in (1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12):
|
|
66
66
|
field = f"field_{num}"
|
|
67
67
|
if (
|
|
68
68
|
m.HasField(field)
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/navigation.py
RENAMED
|
@@ -149,6 +149,8 @@ def _decode_index_ranges(leg: TripInfo.Leg) -> list[dict[str, Any]]:
|
|
|
149
149
|
return [
|
|
150
150
|
{
|
|
151
151
|
**_copy_present(seg, (("start", "start"), ("end", "end"))),
|
|
152
|
+
"startFraction": round(seg.start_fraction, 4),
|
|
153
|
+
"endFraction": round(seg.end_fraction, 4),
|
|
152
154
|
"flagged": seg.HasField("flag"),
|
|
153
155
|
}
|
|
154
156
|
for seg in leg.index_range_segment
|
|
@@ -255,9 +257,10 @@ def decode_trip_info(m: navigation_pb2.TripInfo) -> dict[str, Any]:
|
|
|
255
257
|
RangeRemaining (percent, meters), departureTime
|
|
256
258
|
legs: list[dict] — distance, duration (meters, seconds),
|
|
257
259
|
roadLabel, polyline (Google-encoded), energyUsed (kWh;
|
|
258
|
-
unverified), indexRangeSegments ({start, end,
|
|
259
|
-
|
|
260
|
-
|
|
260
|
+
unverified), indexRangeSegments ({start, startFraction, end,
|
|
261
|
+
endFraction, flagged}; fractions are 0-1 positions past those
|
|
262
|
+
points) and categorizedIndexRanges ({start, end, category}),
|
|
263
|
+
index ranges into the polyline whose meaning is unknown
|
|
261
264
|
overviewPolyline: str — Google-encoded, whole trip
|
|
262
265
|
nextWaypointDepartureTime: datetime — the next stop's departure if
|
|
263
266
|
it's a charging stop, else its arrival
|
|
@@ -122,20 +122,25 @@ def decode_deployment_state(m: ota_pb2.DeploymentState) -> dict[str, Any]:
|
|
|
122
122
|
|
|
123
123
|
@RVMDecoder.register("ota.user_schedule.ota_config", ota_pb2.OtaConfig)
|
|
124
124
|
def decode_ota_config(m: ota_pb2.OtaConfig) -> dict[str, Any]:
|
|
125
|
-
"""ota.user_schedule.ota_config —
|
|
125
|
+
"""ota.user_schedule.ota_config — install schedules.
|
|
126
126
|
|
|
127
127
|
Fields:
|
|
128
128
|
otaSchedules: list[dict] (empty when none is set), each with:
|
|
129
|
+
type: str — "one_time" (a scheduled install) or "recurring"
|
|
130
|
+
(auto-install)
|
|
129
131
|
id: str — UUID, when sent
|
|
130
|
-
enabled: bool
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
enabled: bool
|
|
133
|
+
installTime: datetime — one-time only, once a time is picked;
|
|
134
|
+
kept after the install or a cancel
|
|
135
|
+
startTime: int — recurring only; minutes after local midnight
|
|
136
|
+
location: str — recurring only; a saved location (e.g.
|
|
137
|
+
"home") or "anywhere"
|
|
134
138
|
otaScheduleUpdatedAt: datetime
|
|
135
139
|
"""
|
|
136
140
|
schedules: list[dict[str, Any]] = []
|
|
137
141
|
for schedule in m.schedule:
|
|
138
|
-
|
|
142
|
+
one_time = schedule.HasField("one_time")
|
|
143
|
+
entry: dict[str, Any] = {"type": "one_time" if one_time else "recurring"}
|
|
139
144
|
if (v := _present(schedule, "id")) is not None:
|
|
140
145
|
entry["id"] = v
|
|
141
146
|
if schedule.HasField("time_of_day"):
|
|
@@ -147,9 +152,11 @@ def decode_ota_config(m: ota_pb2.OtaConfig) -> dict[str, Any]:
|
|
|
147
152
|
and (v := _present(time_of_day.location, "name")) is not None
|
|
148
153
|
):
|
|
149
154
|
entry["location"] = v
|
|
155
|
+
if one_time and (
|
|
156
|
+
seconds := _present(schedule.one_time.install_time, "seconds")
|
|
157
|
+
):
|
|
158
|
+
entry["installTime"] = from_epoch(seconds)
|
|
150
159
|
entry["enabled"] = schedule.enabled
|
|
151
|
-
if schedule.HasField("field_4"):
|
|
152
|
-
entry["_field4"] = schedule.field_4.field_1
|
|
153
160
|
schedules.append(entry)
|
|
154
161
|
|
|
155
162
|
result: dict[str, Any] = {"otaSchedules": schedules}
|
|
@@ -122,14 +122,23 @@ message TimeEstimation {
|
|
|
122
122
|
int32 estimated_time_remaining = 2; // minutes
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
// charging.energy.state
|
|
125
|
+
// charging.energy.state
|
|
126
126
|
message EnergyState {
|
|
127
|
-
optional int32 field_1 = 1;
|
|
128
|
-
optional
|
|
129
|
-
optional int32 field_3 = 3;
|
|
127
|
+
optional int32 field_1 = 1; // inferred: ChargingState (1 ready ... 4 complete)
|
|
128
|
+
optional ChargerStatus charger_status = 2; // inferred
|
|
129
|
+
optional int32 field_3 = 3; // unknown; 1 so far
|
|
130
130
|
string field_10 = 10; // always empty so far
|
|
131
|
-
optional int32 field_11 = 11;
|
|
131
|
+
optional int32 field_11 = 11; // unknown; 1 or 2
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
enum ChargerStatus {
|
|
135
|
+
CHARGER_STATUS_UNSPECIFIED = 0;
|
|
136
|
+
CHARGER_STATUS_NOT_CONNECTED = 1;
|
|
137
|
+
CHARGER_STATUS_CONNECTED_NO_CHARGE = 2;
|
|
138
|
+
CHARGER_STATUS_CONNECTED_CHARGING = 3;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// charging.session.power -- live charging power; empty when not charging.
|
|
142
|
+
message SessionPower {
|
|
143
|
+
optional float power = 1; // kW
|
|
144
|
+
}
|
|
@@ -24,19 +24,21 @@ _sym_db = _symbol_database.Default()
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$rivian/parallax/proto/charging.proto\x12\x18rivian.parallax.charging\"\xe8\x04\n\x12ScheduleTimeWindow\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x43\n\x06window\x18\x02 \x01(\x0b\x32\x33.rivian.parallax.charging.ScheduleTimeWindow.Window\x1a\xbe\x02\n\x06Window\x12\x12\n\nstart_time\x18\x01 \x01(\x05\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x05\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x12\x11\n\x04\x61mps\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12L\n\x08location\x18\x05 \x01(\x0b\x32:.rivian.parallax.charging.ScheduleTimeWindow.GeoCoordinate\x12I\n\tstart_day\x18\x06 \x01(\x0e\x32\x36.rivian.parallax.charging.ScheduleTimeWindow.DayOfWeek\x12G\n\x07\x65nd_day\x18\x07 \x01(\x0e\x32\x36.rivian.parallax.charging.ScheduleTimeWindow.DayOfWeekB\x07\n\x05_amps\x1a\x34\n\rGeoCoordinate\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\"\x84\x01\n\tDayOfWeek\x12\x1b\n\x17\x44\x41Y_OF_WEEK_UNSPECIFIED\x10\x00\x12\n\n\x06SUNDAY\x10\x01\x12\n\n\x06MONDAY\x10\x02\x12\x0b\n\x07TUESDAY\x10\x03\x12\r\n\tWEDNESDAY\x10\x04\x12\x0c\n\x08THURSDAY\x10\x05\x12\n\n\x06\x46RIDAY\x10\x06\x12\x0c\n\x08SATURDAY\x10\x07\"5\n\x13SessionNotification\x12\x13\n\x06\x66ield1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_field1\"a\n\x14SessionRemoteCommand\x12=\n\x07\x63ommand\x18\x01 \x01(\x0e\x32\'.rivian.parallax.charging.RemoteCommandH\x00\x88\x01\x01\x42\n\n\x08_command\"1\n\tSocSlider\x12\x16\n\tsoc_limit\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_soc_limit\",\n\nTripTarget\x12\x13\n\x06\x66ield2\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_field2\"\x17\n\x15SmartChargingSettings\"\x13\n\x11SmartChargingInfo\"\x1a\n\x18WeightedChargingForecast\"\xda\x01\n\rSessionStatus\x12H\n\x10\x63onnection_state\x18\x01 \x01(\x0e\x32).rivian.parallax.charging.ConnectionStateH\x00\x88\x01\x01\x12\x44\n\x0e\x63harging_state\x18\x02 \x01(\x0e\x32\'.rivian.parallax.charging.ChargingStateH\x01\x88\x01\x01\x12\x11\n\tis_active\x18\x03 \x01(\x08\x42\x13\n\x11_connection_stateB\x11\n\x0f_charging_state\"2\n\x0eTimeEstimation\x12 \n\x18\x65stimated_time_remaining\x18\x02 \x01(\x05\"\
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$rivian/parallax/proto/charging.proto\x12\x18rivian.parallax.charging\"\xe8\x04\n\x12ScheduleTimeWindow\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x43\n\x06window\x18\x02 \x01(\x0b\x32\x33.rivian.parallax.charging.ScheduleTimeWindow.Window\x1a\xbe\x02\n\x06Window\x12\x12\n\nstart_time\x18\x01 \x01(\x05\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x05\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x12\x11\n\x04\x61mps\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12L\n\x08location\x18\x05 \x01(\x0b\x32:.rivian.parallax.charging.ScheduleTimeWindow.GeoCoordinate\x12I\n\tstart_day\x18\x06 \x01(\x0e\x32\x36.rivian.parallax.charging.ScheduleTimeWindow.DayOfWeek\x12G\n\x07\x65nd_day\x18\x07 \x01(\x0e\x32\x36.rivian.parallax.charging.ScheduleTimeWindow.DayOfWeekB\x07\n\x05_amps\x1a\x34\n\rGeoCoordinate\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\"\x84\x01\n\tDayOfWeek\x12\x1b\n\x17\x44\x41Y_OF_WEEK_UNSPECIFIED\x10\x00\x12\n\n\x06SUNDAY\x10\x01\x12\n\n\x06MONDAY\x10\x02\x12\x0b\n\x07TUESDAY\x10\x03\x12\r\n\tWEDNESDAY\x10\x04\x12\x0c\n\x08THURSDAY\x10\x05\x12\n\n\x06\x46RIDAY\x10\x06\x12\x0c\n\x08SATURDAY\x10\x07\"5\n\x13SessionNotification\x12\x13\n\x06\x66ield1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_field1\"a\n\x14SessionRemoteCommand\x12=\n\x07\x63ommand\x18\x01 \x01(\x0e\x32\'.rivian.parallax.charging.RemoteCommandH\x00\x88\x01\x01\x42\n\n\x08_command\"1\n\tSocSlider\x12\x16\n\tsoc_limit\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_soc_limit\",\n\nTripTarget\x12\x13\n\x06\x66ield2\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_field2\"\x17\n\x15SmartChargingSettings\"\x13\n\x11SmartChargingInfo\"\x1a\n\x18WeightedChargingForecast\"\xda\x01\n\rSessionStatus\x12H\n\x10\x63onnection_state\x18\x01 \x01(\x0e\x32).rivian.parallax.charging.ConnectionStateH\x00\x88\x01\x01\x12\x44\n\x0e\x63harging_state\x18\x02 \x01(\x0e\x32\'.rivian.parallax.charging.ChargingStateH\x01\x88\x01\x01\x12\x11\n\tis_active\x18\x03 \x01(\x08\x42\x13\n\x11_connection_stateB\x11\n\x0f_charging_state\"2\n\x0eTimeEstimation\x12 \n\x18\x65stimated_time_remaining\x18\x02 \x01(\x05\"\xe0\x01\n\x0b\x45nergyState\x12\x14\n\x07\x66ield_1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x44\n\x0e\x63harger_status\x18\x02 \x01(\x0e\x32\'.rivian.parallax.charging.ChargerStatusH\x01\x88\x01\x01\x12\x14\n\x07\x66ield_3\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x10\n\x08\x66ield_10\x18\n \x01(\t\x12\x15\n\x08\x66ield_11\x18\x0b \x01(\x05H\x03\x88\x01\x01\x42\n\n\x08_field_1B\x11\n\x0f_charger_statusB\n\n\x08_field_3B\x0b\n\t_field_11\",\n\x0cSessionPower\x12\x12\n\x05power\x18\x01 \x01(\x02H\x00\x88\x01\x01\x42\x08\n\x06_power*b\n\rRemoteCommand\x12\x1e\n\x1aREMOTE_COMMAND_UNSPECIFIED\x10\x00\x12\x18\n\x14REMOTE_COMMAND_START\x10\x01\x12\x17\n\x13REMOTE_COMMAND_STOP\x10\x02*v\n\x0f\x43onnectionState\x12 \n\x1c\x43ONNECTION_STATE_UNSPECIFIED\x10\x00\x12!\n\x1d\x43ONNECTION_STATE_DISCONNECTED\x10\x01\x12\x1e\n\x1a\x43ONNECTION_STATE_CONNECTED\x10\x02*\xfc\x05\n\rChargingState\x12\x1e\n\x1a\x43HARGING_STATE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x43HARGING_READY\x10\x01\x12\x17\n\x13\x43HARGING_CONNECTING\x10\x02\x12\x13\n\x0f\x43HARGING_ACTIVE\x10\x03\x12\x15\n\x11\x43HARGING_COMPLETE\x10\x04\x12\x16\n\x12\x43HARGING_SCHEDULED\x10\x05\x12\x1a\n\x16\x43HARGING_VEHICLE_ERROR\x10\x06\x12\x1a\n\x16\x43HARGING_STATION_ERROR\x10\x07\x12\x19\n\x15\x43HARGING_USER_STOPPED\x10\x08\x12\x1c\n\x18\x43HARGING_STATION_STOPPED\x10\t\x12\x1a\n\x16\x43HARGING_PAYMENT_ERROR\x10\n\x12\x17\n\x13\x43HARGING_CERT_ERROR\x10\x0b\x12\x16\n\x12\x43HARGING_TLS_ERROR\x10\x0c\x12(\n$CHARGING_ERROR_AC_ADAPTER_USED_ON_DC\x10\r\x12(\n$CHARGING_ERROR_DC_ADAPTER_USED_ON_AC\x10\x0e\x12\'\n#CHARGING_ERROR_INCOMPATIBLE_CHARGER\x10\x0f\x12\x1c\n\x18\x43HARGING_SD_COMPENSATION\x10\x10\x12\x16\n\x12WAITING_ON_CHARGER\x10\x11\x12%\n!CHARGER_NOT_READY_OR_INCOMPATIBLE\x10\x12\x12\x1c\n\x18\x43HARGING_VEHICLE_STOPPED\x10\x13\x12+\n\'CHARGING_PAYMENT_ERROR_START_RIVIAN_APP\x10\x14\x12&\n\"CHARGING_TLS_ERROR_UNKNOWN_CHARGER\x10\x15\x12&\n\"CHARGING_TLS_ERROR_UNEXPECTED_FAIL\x10\x16\x12\'\n#CHARGING_TLS_ERROR_START_RIVIAN_APP\x10\x17*\xa0\x01\n\rChargerStatus\x12\x1e\n\x1a\x43HARGER_STATUS_UNSPECIFIED\x10\x00\x12 \n\x1c\x43HARGER_STATUS_NOT_CONNECTED\x10\x01\x12&\n\"CHARGER_STATUS_CONNECTED_NO_CHARGE\x10\x02\x12%\n!CHARGER_STATUS_CONNECTED_CHARGING\x10\x03\x62\x06proto3')
|
|
28
28
|
|
|
29
29
|
_globals = globals()
|
|
30
30
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
31
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'rivian.parallax.proto.charging_pb2', _globals)
|
|
32
32
|
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
33
|
DESCRIPTOR._loaded_options = None
|
|
34
|
-
_globals['_REMOTECOMMAND']._serialized_start=
|
|
35
|
-
_globals['_REMOTECOMMAND']._serialized_end=
|
|
36
|
-
_globals['_CONNECTIONSTATE']._serialized_start=
|
|
37
|
-
_globals['_CONNECTIONSTATE']._serialized_end=
|
|
38
|
-
_globals['_CHARGINGSTATE']._serialized_start=
|
|
39
|
-
_globals['_CHARGINGSTATE']._serialized_end=
|
|
34
|
+
_globals['_REMOTECOMMAND']._serialized_start=1556
|
|
35
|
+
_globals['_REMOTECOMMAND']._serialized_end=1654
|
|
36
|
+
_globals['_CONNECTIONSTATE']._serialized_start=1656
|
|
37
|
+
_globals['_CONNECTIONSTATE']._serialized_end=1774
|
|
38
|
+
_globals['_CHARGINGSTATE']._serialized_start=1777
|
|
39
|
+
_globals['_CHARGINGSTATE']._serialized_end=2541
|
|
40
|
+
_globals['_CHARGERSTATUS']._serialized_start=2544
|
|
41
|
+
_globals['_CHARGERSTATUS']._serialized_end=2704
|
|
40
42
|
_globals['_SCHEDULETIMEWINDOW']._serialized_start=67
|
|
41
43
|
_globals['_SCHEDULETIMEWINDOW']._serialized_end=683
|
|
42
44
|
_globals['_SCHEDULETIMEWINDOW_WINDOW']._serialized_start=176
|
|
@@ -64,7 +66,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
64
66
|
_globals['_TIMEESTIMATION']._serialized_start=1231
|
|
65
67
|
_globals['_TIMEESTIMATION']._serialized_end=1281
|
|
66
68
|
_globals['_ENERGYSTATE']._serialized_start=1284
|
|
67
|
-
_globals['_ENERGYSTATE']._serialized_end=
|
|
68
|
-
_globals['_SESSIONPOWER']._serialized_start=
|
|
69
|
-
_globals['_SESSIONPOWER']._serialized_end=
|
|
69
|
+
_globals['_ENERGYSTATE']._serialized_end=1508
|
|
70
|
+
_globals['_SESSIONPOWER']._serialized_start=1510
|
|
71
|
+
_globals['_SESSIONPOWER']._serialized_end=1554
|
|
70
72
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -44,6 +44,13 @@ class ChargingState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
|
44
44
|
CHARGING_TLS_ERROR_UNKNOWN_CHARGER: _ClassVar[ChargingState]
|
|
45
45
|
CHARGING_TLS_ERROR_UNEXPECTED_FAIL: _ClassVar[ChargingState]
|
|
46
46
|
CHARGING_TLS_ERROR_START_RIVIAN_APP: _ClassVar[ChargingState]
|
|
47
|
+
|
|
48
|
+
class ChargerStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
49
|
+
__slots__ = ()
|
|
50
|
+
CHARGER_STATUS_UNSPECIFIED: _ClassVar[ChargerStatus]
|
|
51
|
+
CHARGER_STATUS_NOT_CONNECTED: _ClassVar[ChargerStatus]
|
|
52
|
+
CHARGER_STATUS_CONNECTED_NO_CHARGE: _ClassVar[ChargerStatus]
|
|
53
|
+
CHARGER_STATUS_CONNECTED_CHARGING: _ClassVar[ChargerStatus]
|
|
47
54
|
REMOTE_COMMAND_UNSPECIFIED: RemoteCommand
|
|
48
55
|
REMOTE_COMMAND_START: RemoteCommand
|
|
49
56
|
REMOTE_COMMAND_STOP: RemoteCommand
|
|
@@ -74,6 +81,10 @@ CHARGING_PAYMENT_ERROR_START_RIVIAN_APP: ChargingState
|
|
|
74
81
|
CHARGING_TLS_ERROR_UNKNOWN_CHARGER: ChargingState
|
|
75
82
|
CHARGING_TLS_ERROR_UNEXPECTED_FAIL: ChargingState
|
|
76
83
|
CHARGING_TLS_ERROR_START_RIVIAN_APP: ChargingState
|
|
84
|
+
CHARGER_STATUS_UNSPECIFIED: ChargerStatus
|
|
85
|
+
CHARGER_STATUS_NOT_CONNECTED: ChargerStatus
|
|
86
|
+
CHARGER_STATUS_CONNECTED_NO_CHARGE: ChargerStatus
|
|
87
|
+
CHARGER_STATUS_CONNECTED_CHARGING: ChargerStatus
|
|
77
88
|
|
|
78
89
|
class ScheduleTimeWindow(_message.Message):
|
|
79
90
|
__slots__ = ("enabled", "window")
|
|
@@ -178,19 +189,21 @@ class TimeEstimation(_message.Message):
|
|
|
178
189
|
def __init__(self, estimated_time_remaining: _Optional[int] = ...) -> None: ...
|
|
179
190
|
|
|
180
191
|
class EnergyState(_message.Message):
|
|
181
|
-
__slots__ = ("field_1", "
|
|
192
|
+
__slots__ = ("field_1", "charger_status", "field_3", "field_10", "field_11")
|
|
182
193
|
FIELD_1_FIELD_NUMBER: _ClassVar[int]
|
|
183
|
-
|
|
194
|
+
CHARGER_STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
184
195
|
FIELD_3_FIELD_NUMBER: _ClassVar[int]
|
|
185
196
|
FIELD_10_FIELD_NUMBER: _ClassVar[int]
|
|
186
197
|
FIELD_11_FIELD_NUMBER: _ClassVar[int]
|
|
187
198
|
field_1: int
|
|
188
|
-
|
|
199
|
+
charger_status: ChargerStatus
|
|
189
200
|
field_3: int
|
|
190
201
|
field_10: str
|
|
191
202
|
field_11: int
|
|
192
|
-
def __init__(self, field_1: _Optional[int] = ...,
|
|
203
|
+
def __init__(self, field_1: _Optional[int] = ..., charger_status: _Optional[_Union[ChargerStatus, str]] = ..., field_3: _Optional[int] = ..., field_10: _Optional[str] = ..., field_11: _Optional[int] = ...) -> None: ...
|
|
193
204
|
|
|
194
205
|
class SessionPower(_message.Message):
|
|
195
|
-
__slots__ = ()
|
|
196
|
-
|
|
206
|
+
__slots__ = ("power",)
|
|
207
|
+
POWER_FIELD_NUMBER: _ClassVar[int]
|
|
208
|
+
power: float
|
|
209
|
+
def __init__(self, power: _Optional[float] = ...) -> None: ...
|
|
@@ -31,16 +31,19 @@ message CarCostumeState {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
// holiday_celebration.mobile_vehicle_settings.halloween_celebration_settings
|
|
34
|
-
// All fields unknown; 1, 3 and 8-
|
|
34
|
+
// All fields unknown; 1, 3, 5 and 8-12 only sent empty.
|
|
35
35
|
message HalloweenCelebrationSettings {
|
|
36
36
|
Value field_1 = 1;
|
|
37
37
|
Value field_2 = 2;
|
|
38
38
|
Value field_3 = 3;
|
|
39
39
|
Value field_4 = 4;
|
|
40
|
+
Value field_5 = 5;
|
|
40
41
|
Value field_7 = 7;
|
|
41
42
|
Value field_8 = 8;
|
|
42
43
|
Value field_9 = 9;
|
|
43
44
|
Value field_10 = 10;
|
|
45
|
+
Value field_11 = 11;
|
|
46
|
+
Value field_12 = 12;
|
|
44
47
|
|
|
45
48
|
message Value {
|
|
46
49
|
optional int32 value = 1;
|
|
@@ -24,7 +24,7 @@ _sym_db = _symbol_database.Default()
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/rivian/parallax/proto/holiday_celebration.proto\x12#rivian.parallax.holiday_celebration\"\x1b\n\x19HolidayCelebrationEnabled\"\xa8\x02\n\x12\x43\x61rCostumeSettings\x12\x14\n\x07\x66ield_1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07\x66ield_2\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x07\x66ield_3\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x14\n\x07\x66ield_6\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x14\n\x07\x66ield_7\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12\x14\n\x07\x66ield_9\x18\t \x01(\x05H\x05\x88\x01\x01\x12\x15\n\x08\x66ield_11\x18\x0b \x01(\x05H\x06\x88\x01\x01\x12\x15\n\x08\x66ield_12\x18\x0c \x01(\x05H\x07\x88\x01\x01\x42\n\n\x08_field_1B\n\n\x08_field_2B\n\n\x08_field_3B\n\n\x08_field_6B\n\n\x08_field_7B\n\n\x08_field_9B\x0b\n\t_field_11B\x0b\n\t_field_12\"\x9f\x01\n\x0f\x43\x61rCostumeState\x12\x17\n\ncostume_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07\x66ield_2\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x07\x66ield_3\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x14\n\x07\x66ield_6\x18\x06 \x01(\x05H\x03\x88\x01\x01\x42\r\n\x0b_costume_idB\n\n\x08_field_2B\n\n\x08_field_3B\n\n\x08_field_6\"\
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/rivian/parallax/proto/holiday_celebration.proto\x12#rivian.parallax.holiday_celebration\"\x1b\n\x19HolidayCelebrationEnabled\"\xa8\x02\n\x12\x43\x61rCostumeSettings\x12\x14\n\x07\x66ield_1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07\x66ield_2\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x07\x66ield_3\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x14\n\x07\x66ield_6\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x14\n\x07\x66ield_7\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12\x14\n\x07\x66ield_9\x18\t \x01(\x05H\x05\x88\x01\x01\x12\x15\n\x08\x66ield_11\x18\x0b \x01(\x05H\x06\x88\x01\x01\x12\x15\n\x08\x66ield_12\x18\x0c \x01(\x05H\x07\x88\x01\x01\x42\n\n\x08_field_1B\n\n\x08_field_2B\n\n\x08_field_3B\n\n\x08_field_6B\n\n\x08_field_7B\n\n\x08_field_9B\x0b\n\t_field_11B\x0b\n\t_field_12\"\x9f\x01\n\x0f\x43\x61rCostumeState\x12\x17\n\ncostume_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07\x66ield_2\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x07\x66ield_3\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x14\n\x07\x66ield_6\x18\x06 \x01(\x05H\x03\x88\x01\x01\x42\r\n\x0b_costume_idB\n\n\x08_field_2B\n\n\x08_field_3B\n\n\x08_field_6\"\xa6\x08\n\x1cHalloweenCelebrationSettings\x12X\n\x07\x66ield_1\x18\x01 \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12X\n\x07\x66ield_2\x18\x02 \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12X\n\x07\x66ield_3\x18\x03 \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12X\n\x07\x66ield_4\x18\x04 \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12X\n\x07\x66ield_5\x18\x05 \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12X\n\x07\x66ield_7\x18\x07 \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12X\n\x07\x66ield_8\x18\x08 \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12X\n\x07\x66ield_9\x18\t \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12Y\n\x08\x66ield_10\x18\n \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12Y\n\x08\x66ield_11\x18\x0b \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x12Y\n\x08\x66ield_12\x18\x0c \x01(\x0b\x32G.rivian.parallax.holiday_celebration.HalloweenCelebrationSettings.Value\x1a%\n\x05Value\x12\x12\n\x05value\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x08\n\x06_valueb\x06proto3')
|
|
28
28
|
|
|
29
29
|
_globals = globals()
|
|
30
30
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -38,7 +38,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
38
38
|
_globals['_CARCOSTUMESTATE']._serialized_start=417
|
|
39
39
|
_globals['_CARCOSTUMESTATE']._serialized_end=576
|
|
40
40
|
_globals['_HALLOWEENCELEBRATIONSETTINGS']._serialized_start=579
|
|
41
|
-
_globals['_HALLOWEENCELEBRATIONSETTINGS']._serialized_end=
|
|
42
|
-
_globals['_HALLOWEENCELEBRATIONSETTINGS_VALUE']._serialized_start=
|
|
43
|
-
_globals['_HALLOWEENCELEBRATIONSETTINGS_VALUE']._serialized_end=
|
|
41
|
+
_globals['_HALLOWEENCELEBRATIONSETTINGS']._serialized_end=1641
|
|
42
|
+
_globals['_HALLOWEENCELEBRATIONSETTINGS_VALUE']._serialized_start=1604
|
|
43
|
+
_globals['_HALLOWEENCELEBRATIONSETTINGS_VALUE']._serialized_end=1641
|
|
44
44
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -42,7 +42,7 @@ class CarCostumeState(_message.Message):
|
|
|
42
42
|
def __init__(self, costume_id: _Optional[int] = ..., field_2: _Optional[int] = ..., field_3: _Optional[int] = ..., field_6: _Optional[int] = ...) -> None: ...
|
|
43
43
|
|
|
44
44
|
class HalloweenCelebrationSettings(_message.Message):
|
|
45
|
-
__slots__ = ("field_1", "field_2", "field_3", "field_4", "field_7", "field_8", "field_9", "field_10")
|
|
45
|
+
__slots__ = ("field_1", "field_2", "field_3", "field_4", "field_5", "field_7", "field_8", "field_9", "field_10", "field_11", "field_12")
|
|
46
46
|
class Value(_message.Message):
|
|
47
47
|
__slots__ = ("value",)
|
|
48
48
|
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -52,16 +52,22 @@ class HalloweenCelebrationSettings(_message.Message):
|
|
|
52
52
|
FIELD_2_FIELD_NUMBER: _ClassVar[int]
|
|
53
53
|
FIELD_3_FIELD_NUMBER: _ClassVar[int]
|
|
54
54
|
FIELD_4_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
+
FIELD_5_FIELD_NUMBER: _ClassVar[int]
|
|
55
56
|
FIELD_7_FIELD_NUMBER: _ClassVar[int]
|
|
56
57
|
FIELD_8_FIELD_NUMBER: _ClassVar[int]
|
|
57
58
|
FIELD_9_FIELD_NUMBER: _ClassVar[int]
|
|
58
59
|
FIELD_10_FIELD_NUMBER: _ClassVar[int]
|
|
60
|
+
FIELD_11_FIELD_NUMBER: _ClassVar[int]
|
|
61
|
+
FIELD_12_FIELD_NUMBER: _ClassVar[int]
|
|
59
62
|
field_1: HalloweenCelebrationSettings.Value
|
|
60
63
|
field_2: HalloweenCelebrationSettings.Value
|
|
61
64
|
field_3: HalloweenCelebrationSettings.Value
|
|
62
65
|
field_4: HalloweenCelebrationSettings.Value
|
|
66
|
+
field_5: HalloweenCelebrationSettings.Value
|
|
63
67
|
field_7: HalloweenCelebrationSettings.Value
|
|
64
68
|
field_8: HalloweenCelebrationSettings.Value
|
|
65
69
|
field_9: HalloweenCelebrationSettings.Value
|
|
66
70
|
field_10: HalloweenCelebrationSettings.Value
|
|
67
|
-
|
|
71
|
+
field_11: HalloweenCelebrationSettings.Value
|
|
72
|
+
field_12: HalloweenCelebrationSettings.Value
|
|
73
|
+
def __init__(self, field_1: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_2: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_3: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_4: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_5: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_7: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_8: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_9: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_10: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_11: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ..., field_12: _Optional[_Union[HalloweenCelebrationSettings.Value, _Mapping]] = ...) -> None: ...
|
|
@@ -130,7 +130,9 @@ message TripInfo {
|
|
|
130
130
|
|
|
131
131
|
message IndexRangeSegment {
|
|
132
132
|
optional int32 start = 1;
|
|
133
|
+
float start_fraction = 2; // position past the start point, 0-1
|
|
133
134
|
optional int32 end = 3;
|
|
135
|
+
float end_fraction = 4; // position past the end point, 0-1
|
|
134
136
|
optional bool flag = 5; // present means flagged
|
|
135
137
|
}
|
|
136
138
|
}
|
|
@@ -145,9 +147,14 @@ message TripInfo {
|
|
|
145
147
|
|
|
146
148
|
message TripMeta {
|
|
147
149
|
optional int32 field_1 = 1;
|
|
148
|
-
|
|
150
|
+
Unmapped2 field_2 = 2;
|
|
149
151
|
optional int32 field_3 = 3;
|
|
150
152
|
optional int32 field_4 = 4;
|
|
153
|
+
|
|
154
|
+
message Unmapped2 {
|
|
155
|
+
int32 field_2 = 2;
|
|
156
|
+
int32 field_4 = 4;
|
|
157
|
+
}
|
|
151
158
|
}
|
|
152
159
|
}
|
|
153
160
|
|
|
@@ -24,7 +24,7 @@ _sym_db = _symbol_database.Default()
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&rivian/parallax/proto/navigation.proto\x12\x1arivian.parallax.navigation\"Y\n\rGeoCoordinate\x12\x15\n\x08latitude\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x16\n\tlongitude\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x0b\n\t_latitudeB\x0c\n\n_longitude\"K\n\tTimestamp\x12\x14\n\x07seconds\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05nanos\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\n\n\x08_secondsB\x08\n\x06_nanos\"\
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&rivian/parallax/proto/navigation.proto\x12\x1arivian.parallax.navigation\"Y\n\rGeoCoordinate\x12\x15\n\x08latitude\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x16\n\tlongitude\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x0b\n\t_latitudeB\x0c\n\n_longitude\"K\n\tTimestamp\x12\x14\n\x07seconds\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05nanos\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\n\n\x08_secondsB\x08\n\x06_nanos\"\xdc\x1b\n\x08TripInfo\x12\x14\n\x07trip_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12;\n\x06origin\x18\x02 \x01(\x0b\x32+.rivian.parallax.navigation.TripInfo.Origin\x12\x37\n\x04trip\x18\x03 \x01(\x0b\x32).rivian.parallax.navigation.TripInfo.Trip\x12P\n\x11route_preferences\x18\x04 \x01(\x0b\x32\x35.rivian.parallax.navigation.TripInfo.RoutePreferences\x12\x17\n\norigin_soc\x18\x05 \x01(\x01H\x01\x88\x01\x01\x12[\n\x17next_waypoint_departure\x18\x06 \x01(\x0b\x32:.rivian.parallax.navigation.TripInfo.NextWaypointDeparture\x1a\x83\x01\n\x06Origin\x12;\n\x08location\x18\x01 \x01(\x0b\x32).rivian.parallax.navigation.GeoCoordinate\x12\x14\n\x07heading\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12\x11\n\x04time\x18\x05 \x01(\x03H\x01\x88\x01\x01\x42\n\n\x08_headingB\x07\n\x05_time\x1a\x39\n\x15NextWaypointDeparture\x12\x14\n\x07seconds\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_seconds\x1a\x95\x03\n\x04Trip\x12\x15\n\x08\x64istance\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64uration\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x46\n\x08waypoint\x18\x03 \x03(\x0b\x32\x34.rivian.parallax.navigation.TripInfo.WaypointWrapper\x12\x35\n\x03leg\x18\x04 \x03(\x0b\x32(.rivian.parallax.navigation.TripInfo.Leg\x12\x16\n\tfinal_soc\x18\x06 \x01(\x01H\x02\x88\x01\x01\x12\x18\n\x0b\x66inal_range\x18\x07 \x01(\x01H\x03\x88\x01\x01\x12\x1e\n\x11overview_polyline\x18\n \x01(\tH\x04\x88\x01\x01\x12@\n\ttrip_meta\x18\r \x01(\x0b\x32-.rivian.parallax.navigation.TripInfo.TripMetaB\x0b\n\t_distanceB\x0b\n\t_durationB\x0c\n\n_final_socB\x0e\n\x0c_final_rangeB\x14\n\x12_overview_polyline\x1a\x96\x01\n\x0fWaypointWrapper\x12\x39\n\x05place\x18\x01 \x01(\x0b\x32*.rivian.parallax.navigation.TripInfo.Place\x12H\n\rcharging_stop\x18\x02 \x01(\x0b\x32\x31.rivian.parallax.navigation.TripInfo.ChargingStop\x1a\xe1\x02\n\x05Place\x12;\n\x08location\x18\x01 \x01(\x0b\x32).rivian.parallax.navigation.GeoCoordinate\x12\x43\n\x10snapped_location\x18\x02 \x01(\x0b\x32).rivian.parallax.navigation.GeoCoordinate\x12\x17\n\nplace_type\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08place_id\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x03soc\x18\x07 \x01(\x01H\x03\x88\x01\x01\x12\x12\n\x05range\x18\x08 \x01(\x01H\x04\x88\x01\x01\x12\x36\n\x07\x61rrival\x18\t \x01(\x0b\x32%.rivian.parallax.navigation.TimestampB\r\n\x0b_place_typeB\x07\n\x05_nameB\x0b\n\t_place_idB\x06\n\x04_socB\x08\n\x06_range\x1a\xb9\x06\n\x0c\x43hargingStop\x12\x17\n\nstation_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\tH\x01\x88\x01\x01\x12;\n\x08location\x18\x03 \x01(\x0b\x32).rivian.parallax.navigation.GeoCoordinate\x12\x1c\n\x0f\x63harge_duration\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x18\n\x0b\x61rrival_soc\x18\x06 \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\rarrival_range\x18\x07 \x01(\x01H\x04\x88\x01\x01\x12\x1a\n\rdeparture_soc\x18\x08 \x01(\x01H\x05\x88\x01\x01\x12\x1c\n\x0f\x64\x65parture_range\x18\t \x01(\x01H\x06\x88\x01\x01\x12^\n\x0e\x64\x65parture_time\x18\n \x01(\x0b\x32\x46.rivian.parallax.navigation.TripInfo.ChargingStop.DepartureTimeWrapper\x12Z\n\x0c\x61rrival_time\x18\x0b \x01(\x0b\x32\x44.rivian.parallax.navigation.TripInfo.ChargingStop.ArrivalTimeWrapper\x12\x15\n\x08\x66ield_12\x18\x0c \x01(\x05H\x07\x88\x01\x01\x12\x15\n\x08\x66ield_13\x18\r \x01(\x05H\x08\x88\x01\x01\x12\x15\n\x08\x66ield_14\x18\x0e \x01(\x05H\t\x88\x01\x01\x12\x15\n\x08\x66ield_17\x18\x11 \x01(\x05H\n\x88\x01\x01\x1a\x38\n\x14\x44\x65partureTimeWrapper\x12\x14\n\x07seconds\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_seconds\x1a\x36\n\x12\x41rrivalTimeWrapper\x12\x14\n\x07seconds\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_secondsB\r\n\x0b_station_idB\x08\n\x06_labelB\x12\n\x10_charge_durationB\x0e\n\x0c_arrival_socB\x10\n\x0e_arrival_rangeB\x10\n\x0e_departure_socB\x12\n\x10_departure_rangeB\x0b\n\t_field_12B\x0b\n\t_field_13B\x0b\n\t_field_14B\x0b\n\t_field_17\x1a\xcb\x06\n\x03Leg\x12\x15\n\x08\x64istance\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x64uration\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\nroad_label\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08polyline\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\"\n\x15\x66lagged_ranges_packed\x18\x05 \x01(\x0cH\x04\x88\x01\x01\x12$\n\x17unflagged_ranges_packed\x18\x06 \x01(\x0cH\x05\x88\x01\x01\x12?\n\x06\x65nergy\x18\x08 \x01(\x0b\x32/.rivian.parallax.navigation.TripInfo.Leg.Energy\x12\x63\n\x19\x63\x61tegorized_range_segment\x18\t \x03(\x0b\x32@.rivian.parallax.navigation.TripInfo.Leg.CategorizedRangeSegment\x12W\n\x13index_range_segment\x18\n \x03(\x0b\x32:.rivian.parallax.navigation.TripInfo.Leg.IndexRangeSegment\x1a\"\n\x06\x45nergy\x12\x10\n\x03kwh\x18\x01 \x01(\x01H\x00\x88\x01\x01\x42\x06\n\x04_kwh\x1au\n\x17\x43\x61tegorizedRangeSegment\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08\x63\x61tegory\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x0b\n\t_category\x1a\x95\x01\n\x11IndexRangeSegment\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\x0estart_fraction\x18\x02 \x01(\x02\x12\x10\n\x03\x65nd\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x0c\x65nd_fraction\x18\x04 \x01(\x02\x12\x11\n\x04\x66lag\x18\x05 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_flagB\x0b\n\t_distanceB\x0b\n\t_durationB\r\n\x0b_road_labelB\x0b\n\t_polylineB\x18\n\x16_flagged_ranges_packedB\x1a\n\x18_unflagged_ranges_packed\x1a\x94\x01\n\x10RoutePreferences\x12\x15\n\x08weight_a\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x15\n\x08weight_b\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x16\n\x0eroad_avoidance\x18\x03 \x03(\t\x12 \n\x18\x63harging_network_filters\x18\x04 \x03(\tB\x0b\n\t_weight_aB\x0b\n\t_weight_b\x1a\xe9\x01\n\x08TripMeta\x12\x14\n\x07\x66ield_1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12H\n\x07\x66ield_2\x18\x02 \x01(\x0b\x32\x37.rivian.parallax.navigation.TripInfo.TripMeta.Unmapped2\x12\x14\n\x07\x66ield_3\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x07\x66ield_4\x18\x04 \x01(\x05H\x02\x88\x01\x01\x1a-\n\tUnmapped2\x12\x0f\n\x07\x66ield_2\x18\x02 \x01(\x05\x12\x0f\n\x07\x66ield_4\x18\x04 \x01(\x05\x42\n\n\x08_field_1B\n\n\x08_field_3B\n\n\x08_field_4B\n\n\x08_trip_idB\r\n\x0b_origin_soc\"\xff\x04\n\x0cTripProgress\x12L\n\rnext_waypoint\x18\x01 \x01(\x0b\x32\x35.rivian.parallax.navigation.TripProgress.NextWaypoint\x12T\n\x11\x66inal_destination\x18\x02 \x01(\x0b\x32\x39.rivian.parallax.navigation.TripProgress.FinalDestination\x12\x1f\n\x12\x64istance_remaining\x18\x04 \x01(\x01H\x00\x88\x01\x01\x12\x1f\n\x12\x64uration_remaining\x18\x05 \x01(\x01H\x01\x88\x01\x01\x12J\n\x0clocation_fix\x18\x06 \x01(\x0b\x32\x34.rivian.parallax.navigation.TripProgress.LocationFix\x1a\x30\n\x0cNextWaypoint\x12\x14\n\x07seconds\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_seconds\x1a\x34\n\x10\x46inalDestination\x12\x14\n\x07seconds\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_seconds\x1a\xa6\x01\n\x0bLocationFix\x12;\n\x08location\x18\x01 \x01(\x0b\x32).rivian.parallax.navigation.GeoCoordinate\x12\x12\n\x05speed\x18\x02 \x01(\x02H\x00\x88\x01\x01\x12\x14\n\x07heading\x18\x03 \x01(\x02H\x01\x88\x01\x01\x12\x11\n\x04time\x18\x05 \x01(\x03H\x02\x88\x01\x01\x42\x08\n\x06_speedB\n\n\x08_headingB\x07\n\x05_timeB\x15\n\x13_distance_remainingB\x15\n\x13_duration_remainingb\x06proto3')
|
|
28
28
|
|
|
29
29
|
_globals = globals()
|
|
30
30
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -36,7 +36,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
36
36
|
_globals['_TIMESTAMP']._serialized_start=161
|
|
37
37
|
_globals['_TIMESTAMP']._serialized_end=236
|
|
38
38
|
_globals['_TRIPINFO']._serialized_start=239
|
|
39
|
-
_globals['_TRIPINFO']._serialized_end=
|
|
39
|
+
_globals['_TRIPINFO']._serialized_end=3787
|
|
40
40
|
_globals['_TRIPINFO_ORIGIN']._serialized_start=592
|
|
41
41
|
_globals['_TRIPINFO_ORIGIN']._serialized_end=723
|
|
42
42
|
_globals['_TRIPINFO_NEXTWAYPOINTDEPARTURE']._serialized_start=725
|
|
@@ -54,23 +54,25 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
54
54
|
_globals['_TRIPINFO_CHARGINGSTOP_ARRIVALTIMEWRAPPER']._serialized_start=2304
|
|
55
55
|
_globals['_TRIPINFO_CHARGINGSTOP_ARRIVALTIMEWRAPPER']._serialized_end=2358
|
|
56
56
|
_globals['_TRIPINFO_LEG']._serialized_start=2530
|
|
57
|
-
_globals['_TRIPINFO_LEG']._serialized_end=
|
|
57
|
+
_globals['_TRIPINFO_LEG']._serialized_end=3373
|
|
58
58
|
_globals['_TRIPINFO_LEG_ENERGY']._serialized_start=2960
|
|
59
59
|
_globals['_TRIPINFO_LEG_ENERGY']._serialized_end=2994
|
|
60
60
|
_globals['_TRIPINFO_LEG_CATEGORIZEDRANGESEGMENT']._serialized_start=2996
|
|
61
61
|
_globals['_TRIPINFO_LEG_CATEGORIZEDRANGESEGMENT']._serialized_end=3113
|
|
62
|
-
_globals['_TRIPINFO_LEG_INDEXRANGESEGMENT']._serialized_start=
|
|
63
|
-
_globals['_TRIPINFO_LEG_INDEXRANGESEGMENT']._serialized_end=
|
|
64
|
-
_globals['_TRIPINFO_ROUTEPREFERENCES']._serialized_start=
|
|
65
|
-
_globals['_TRIPINFO_ROUTEPREFERENCES']._serialized_end=
|
|
66
|
-
_globals['_TRIPINFO_TRIPMETA']._serialized_start=
|
|
67
|
-
_globals['_TRIPINFO_TRIPMETA']._serialized_end=
|
|
68
|
-
_globals['
|
|
69
|
-
_globals['
|
|
70
|
-
_globals['
|
|
71
|
-
_globals['
|
|
72
|
-
_globals['
|
|
73
|
-
_globals['
|
|
74
|
-
_globals['
|
|
75
|
-
_globals['
|
|
62
|
+
_globals['_TRIPINFO_LEG_INDEXRANGESEGMENT']._serialized_start=3116
|
|
63
|
+
_globals['_TRIPINFO_LEG_INDEXRANGESEGMENT']._serialized_end=3265
|
|
64
|
+
_globals['_TRIPINFO_ROUTEPREFERENCES']._serialized_start=3376
|
|
65
|
+
_globals['_TRIPINFO_ROUTEPREFERENCES']._serialized_end=3524
|
|
66
|
+
_globals['_TRIPINFO_TRIPMETA']._serialized_start=3527
|
|
67
|
+
_globals['_TRIPINFO_TRIPMETA']._serialized_end=3760
|
|
68
|
+
_globals['_TRIPINFO_TRIPMETA_UNMAPPED2']._serialized_start=3679
|
|
69
|
+
_globals['_TRIPINFO_TRIPMETA_UNMAPPED2']._serialized_end=3724
|
|
70
|
+
_globals['_TRIPPROGRESS']._serialized_start=3790
|
|
71
|
+
_globals['_TRIPPROGRESS']._serialized_end=4429
|
|
72
|
+
_globals['_TRIPPROGRESS_NEXTWAYPOINT']._serialized_start=4112
|
|
73
|
+
_globals['_TRIPPROGRESS_NEXTWAYPOINT']._serialized_end=4160
|
|
74
|
+
_globals['_TRIPPROGRESS_FINALDESTINATION']._serialized_start=4162
|
|
75
|
+
_globals['_TRIPPROGRESS_FINALDESTINATION']._serialized_end=4214
|
|
76
|
+
_globals['_TRIPPROGRESS_LOCATIONFIX']._serialized_start=4217
|
|
77
|
+
_globals['_TRIPPROGRESS_LOCATIONFIX']._serialized_end=4383
|
|
76
78
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -141,14 +141,18 @@ class TripInfo(_message.Message):
|
|
|
141
141
|
category: int
|
|
142
142
|
def __init__(self, start: _Optional[int] = ..., end: _Optional[int] = ..., category: _Optional[int] = ...) -> None: ...
|
|
143
143
|
class IndexRangeSegment(_message.Message):
|
|
144
|
-
__slots__ = ("start", "end", "flag")
|
|
144
|
+
__slots__ = ("start", "start_fraction", "end", "end_fraction", "flag")
|
|
145
145
|
START_FIELD_NUMBER: _ClassVar[int]
|
|
146
|
+
START_FRACTION_FIELD_NUMBER: _ClassVar[int]
|
|
146
147
|
END_FIELD_NUMBER: _ClassVar[int]
|
|
148
|
+
END_FRACTION_FIELD_NUMBER: _ClassVar[int]
|
|
147
149
|
FLAG_FIELD_NUMBER: _ClassVar[int]
|
|
148
150
|
start: int
|
|
151
|
+
start_fraction: float
|
|
149
152
|
end: int
|
|
153
|
+
end_fraction: float
|
|
150
154
|
flag: bool
|
|
151
|
-
def __init__(self, start: _Optional[int] = ..., end: _Optional[int] = ..., flag: _Optional[bool] = ...) -> None: ...
|
|
155
|
+
def __init__(self, start: _Optional[int] = ..., start_fraction: _Optional[float] = ..., end: _Optional[int] = ..., end_fraction: _Optional[float] = ..., flag: _Optional[bool] = ...) -> None: ...
|
|
152
156
|
DISTANCE_FIELD_NUMBER: _ClassVar[int]
|
|
153
157
|
DURATION_FIELD_NUMBER: _ClassVar[int]
|
|
154
158
|
ROAD_LABEL_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -181,15 +185,22 @@ class TripInfo(_message.Message):
|
|
|
181
185
|
def __init__(self, weight_a: _Optional[float] = ..., weight_b: _Optional[float] = ..., road_avoidance: _Optional[_Iterable[str]] = ..., charging_network_filters: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
182
186
|
class TripMeta(_message.Message):
|
|
183
187
|
__slots__ = ("field_1", "field_2", "field_3", "field_4")
|
|
188
|
+
class Unmapped2(_message.Message):
|
|
189
|
+
__slots__ = ("field_2", "field_4")
|
|
190
|
+
FIELD_2_FIELD_NUMBER: _ClassVar[int]
|
|
191
|
+
FIELD_4_FIELD_NUMBER: _ClassVar[int]
|
|
192
|
+
field_2: int
|
|
193
|
+
field_4: int
|
|
194
|
+
def __init__(self, field_2: _Optional[int] = ..., field_4: _Optional[int] = ...) -> None: ...
|
|
184
195
|
FIELD_1_FIELD_NUMBER: _ClassVar[int]
|
|
185
196
|
FIELD_2_FIELD_NUMBER: _ClassVar[int]
|
|
186
197
|
FIELD_3_FIELD_NUMBER: _ClassVar[int]
|
|
187
198
|
FIELD_4_FIELD_NUMBER: _ClassVar[int]
|
|
188
199
|
field_1: int
|
|
189
|
-
field_2:
|
|
200
|
+
field_2: TripInfo.TripMeta.Unmapped2
|
|
190
201
|
field_3: int
|
|
191
202
|
field_4: int
|
|
192
|
-
def __init__(self, field_1: _Optional[int] = ..., field_2: _Optional[
|
|
203
|
+
def __init__(self, field_1: _Optional[int] = ..., field_2: _Optional[_Union[TripInfo.TripMeta.Unmapped2, _Mapping]] = ..., field_3: _Optional[int] = ..., field_4: _Optional[int] = ...) -> None: ...
|
|
193
204
|
TRIP_ID_FIELD_NUMBER: _ClassVar[int]
|
|
194
205
|
ORIGIN_FIELD_NUMBER: _ClassVar[int]
|
|
195
206
|
TRIP_FIELD_NUMBER: _ClassVar[int]
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/ota.proto
RENAMED
|
@@ -67,17 +67,18 @@ message DeploymentState {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
// ota.user_schedule.ota_config --
|
|
71
|
-
//
|
|
70
|
+
// ota.user_schedule.ota_config -- install schedules: a one-time scheduled
|
|
71
|
+
// install and the recurring auto-install. Entries may be resent without
|
|
72
|
+
// their ids.
|
|
72
73
|
message OtaConfig {
|
|
73
74
|
repeated Schedule schedule = 1;
|
|
74
75
|
UpdatedAt updated_at = 2;
|
|
75
76
|
|
|
76
77
|
message Schedule {
|
|
77
78
|
optional string id = 1; // UUID
|
|
78
|
-
bool enabled = 2;
|
|
79
|
-
TimeOfDay time_of_day = 3;
|
|
80
|
-
|
|
79
|
+
bool enabled = 2;
|
|
80
|
+
TimeOfDay time_of_day = 3; // recurring auto-install
|
|
81
|
+
OneTime one_time = 4; // one-time scheduled install
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
message TimeOfDay {
|
|
@@ -89,8 +90,12 @@ message OtaConfig {
|
|
|
89
90
|
optional string name = 1; // a saved location (e.g. "home") or "anywhere"
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
message
|
|
93
|
-
|
|
93
|
+
message OneTime {
|
|
94
|
+
InstallTime install_time = 1; // empty until a time is picked
|
|
95
|
+
|
|
96
|
+
message InstallTime {
|
|
97
|
+
optional int64 seconds = 1; // epoch seconds
|
|
98
|
+
}
|
|
94
99
|
}
|
|
95
100
|
|
|
96
101
|
message UpdatedAt {
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/ota_pb2.py
RENAMED
|
@@ -24,7 +24,7 @@ _sym_db = _symbol_database.Default()
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1frivian/parallax/proto/ota.proto\x12\x13rivian.parallax.ota\"\xd5\x0c\n\x0f\x44\x65ploymentState\x12\x43\n\ndeployment\x18\x01 \x01(\x0b\x32/.rivian.parallax.ota.DeploymentState.Deployment\x1a\xb9\x01\n\nDeployment\x12\x12\n\x05state\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12=\n\x07version\x18\x02 \x01(\x0b\x32,.rivian.parallax.ota.DeploymentState.Version\x12N\n\x10progress_wrapper\x18\x04 \x01(\x0b\x32\x34.rivian.parallax.ota.DeploymentState.ProgressWrapperB\x08\n\x06_state\x1a\xb7\x01\n\x07Version\x12\x1b\n\x0eversion_string\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cversion_year\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\rversion_build\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x15\n\x08\x62uild_id\x18\x06 \x01(\tH\x03\x88\x01\x01\x42\x11\n\x0f_version_stringB\x0f\n\r_version_yearB\x10\n\x0e_version_buildB\x0b\n\t_build_id\x1a\xd2\x02\n\x0fProgressWrapper\x12\x1a\n\rdeployment_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x44\n\x0etarget_version\x18\x02 \x01(\x0b\x32,.rivian.parallax.ota.DeploymentState.Version\x12\x18\n\x0b\x61\x63tive_flag\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12?\n\x08progress\x18\x05 \x01(\x0b\x32-.rivian.parallax.ota.DeploymentState.Progress\x12\x1b\n\x0etimeout_budget\x18\x07 \x01(\x05H\x02\x88\x01\x01\x12\x1c\n\x0flate_stage_flag\x18\x0b \x01(\x05H\x03\x88\x01\x01\x42\x10\n\x0e_deployment_idB\x0e\n\x0c_active_flagB\x11\n\x0f_timeout_budgetB\x12\n\x10_late_stage_flag\x1a\xa3\x04\n\x08Progress\x12\x41\n\x05phase\x18\x01 \x01(\x0e\x32-.rivian.parallax.ota.DeploymentState.OtaPhaseH\x00\x88\x01\x01\x12\x14\n\x07\x66ield_2\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12T\n\x11\x64ownload_progress\x18\x03 \x01(\x0b\x32\x39.rivian.parallax.ota.DeploymentState.Progress.Progress100\x12S\n\x10install_progress\x18\x04 \x01(\x0b\x32\x39.rivian.parallax.ota.DeploymentState.Progress.Progress100\x12\x14\n\x07\x66ield_5\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0etime_remaining\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x14\n\x07\x66ield_7\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12\x1f\n\x12update_cycle_count\x18\x08 \x01(\x05H\x05\x88\x01\x01\x12\x14\n\x07\x66ield_9\x18\t \x01(\x05H\x06\x88\x01\x01\x1a/\n\x0bProgress100\x12\x14\n\x07\x66ield_2\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\n\n\x08_field_2B\x08\n\x06_phaseB\n\n\x08_field_2B\n\n\x08_field_5B\x11\n\x0f_time_remainingB\n\n\x08_field_7B\x15\n\x13_update_cycle_countB\n\n\x08_field_9\"\x8b\x02\n\x08OtaPhase\x12\x19\n\x15OTA_PHASE_UNSPECIFIED\x10\x00\x12\x12\n\x0eOTA_PHASE_IDLE\x10\x01\x12\x1f\n\x1bOTA_PHASE_INSTALL_COUNTDOWN\x10\x05\x12\x17\n\x13OTA_PHASE_PREPARING\x10\x06\x12\x19\n\x15OTA_PHASE_DOWNLOADING\x10\x07\x12\"\n\x1eOTA_PHASE_SCHEDULED_TO_INSTALL\x10\x08\x12\x1e\n\x1aOTA_PHASE_AWAITING_INSTALL\x10\n\x12\x18\n\x14OTA_PHASE_INSTALLING\x10\x0b\x12\x1d\n\x19OTA_PHASE_INSTALL_SUCCESS\x10\x0c\"\
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1frivian/parallax/proto/ota.proto\x12\x13rivian.parallax.ota\"\xd5\x0c\n\x0f\x44\x65ploymentState\x12\x43\n\ndeployment\x18\x01 \x01(\x0b\x32/.rivian.parallax.ota.DeploymentState.Deployment\x1a\xb9\x01\n\nDeployment\x12\x12\n\x05state\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12=\n\x07version\x18\x02 \x01(\x0b\x32,.rivian.parallax.ota.DeploymentState.Version\x12N\n\x10progress_wrapper\x18\x04 \x01(\x0b\x32\x34.rivian.parallax.ota.DeploymentState.ProgressWrapperB\x08\n\x06_state\x1a\xb7\x01\n\x07Version\x12\x1b\n\x0eversion_string\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cversion_year\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\rversion_build\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x15\n\x08\x62uild_id\x18\x06 \x01(\tH\x03\x88\x01\x01\x42\x11\n\x0f_version_stringB\x0f\n\r_version_yearB\x10\n\x0e_version_buildB\x0b\n\t_build_id\x1a\xd2\x02\n\x0fProgressWrapper\x12\x1a\n\rdeployment_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x44\n\x0etarget_version\x18\x02 \x01(\x0b\x32,.rivian.parallax.ota.DeploymentState.Version\x12\x18\n\x0b\x61\x63tive_flag\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12?\n\x08progress\x18\x05 \x01(\x0b\x32-.rivian.parallax.ota.DeploymentState.Progress\x12\x1b\n\x0etimeout_budget\x18\x07 \x01(\x05H\x02\x88\x01\x01\x12\x1c\n\x0flate_stage_flag\x18\x0b \x01(\x05H\x03\x88\x01\x01\x42\x10\n\x0e_deployment_idB\x0e\n\x0c_active_flagB\x11\n\x0f_timeout_budgetB\x12\n\x10_late_stage_flag\x1a\xa3\x04\n\x08Progress\x12\x41\n\x05phase\x18\x01 \x01(\x0e\x32-.rivian.parallax.ota.DeploymentState.OtaPhaseH\x00\x88\x01\x01\x12\x14\n\x07\x66ield_2\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12T\n\x11\x64ownload_progress\x18\x03 \x01(\x0b\x32\x39.rivian.parallax.ota.DeploymentState.Progress.Progress100\x12S\n\x10install_progress\x18\x04 \x01(\x0b\x32\x39.rivian.parallax.ota.DeploymentState.Progress.Progress100\x12\x14\n\x07\x66ield_5\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0etime_remaining\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x14\n\x07\x66ield_7\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12\x1f\n\x12update_cycle_count\x18\x08 \x01(\x05H\x05\x88\x01\x01\x12\x14\n\x07\x66ield_9\x18\t \x01(\x05H\x06\x88\x01\x01\x1a/\n\x0bProgress100\x12\x14\n\x07\x66ield_2\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\n\n\x08_field_2B\x08\n\x06_phaseB\n\n\x08_field_2B\n\n\x08_field_5B\x11\n\x0f_time_remainingB\n\n\x08_field_7B\x15\n\x13_update_cycle_countB\n\n\x08_field_9\"\x8b\x02\n\x08OtaPhase\x12\x19\n\x15OTA_PHASE_UNSPECIFIED\x10\x00\x12\x12\n\x0eOTA_PHASE_IDLE\x10\x01\x12\x1f\n\x1bOTA_PHASE_INSTALL_COUNTDOWN\x10\x05\x12\x17\n\x13OTA_PHASE_PREPARING\x10\x06\x12\x19\n\x15OTA_PHASE_DOWNLOADING\x10\x07\x12\"\n\x1eOTA_PHASE_SCHEDULED_TO_INSTALL\x10\x08\x12\x1e\n\x1aOTA_PHASE_AWAITING_INSTALL\x10\n\x12\x18\n\x14OTA_PHASE_INSTALLING\x10\x0b\x12\x1d\n\x19OTA_PHASE_INSTALL_SUCCESS\x10\x0c\"\xff\x04\n\tOtaConfig\x12\x39\n\x08schedule\x18\x01 \x03(\x0b\x32\'.rivian.parallax.ota.OtaConfig.Schedule\x12<\n\nupdated_at\x18\x02 \x01(\x0b\x32(.rivian.parallax.ota.OtaConfig.UpdatedAt\x1a\xac\x01\n\x08Schedule\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12=\n\x0btime_of_day\x18\x03 \x01(\x0b\x32(.rivian.parallax.ota.OtaConfig.TimeOfDay\x12\x38\n\x08one_time\x18\x04 \x01(\x0b\x32&.rivian.parallax.ota.OtaConfig.OneTimeB\x05\n\x03_id\x1an\n\tTimeOfDay\x12\x17\n\nstart_time\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x39\n\x08location\x18\x02 \x01(\x0b\x32\'.rivian.parallax.ota.OtaConfig.LocationB\r\n\x0b_start_time\x1a&\n\x08Location\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\x1a\x84\x01\n\x07OneTime\x12H\n\x0cinstall_time\x18\x01 \x01(\x0b\x32\x32.rivian.parallax.ota.OtaConfig.OneTime.InstallTime\x1a/\n\x0bInstallTime\x12\x14\n\x07seconds\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_seconds\x1a+\n\tUpdatedAt\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\"\x1f\n\x0fVehicleOtaState\x12\x0c\n\x04name\x18\x01 \x01(\tb\x06proto3')
|
|
28
28
|
|
|
29
29
|
_globals = globals()
|
|
30
30
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -46,17 +46,19 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
46
46
|
_globals['_DEPLOYMENTSTATE_OTAPHASE']._serialized_start=1411
|
|
47
47
|
_globals['_DEPLOYMENTSTATE_OTAPHASE']._serialized_end=1678
|
|
48
48
|
_globals['_OTACONFIG']._serialized_start=1681
|
|
49
|
-
_globals['_OTACONFIG']._serialized_end=
|
|
49
|
+
_globals['_OTACONFIG']._serialized_end=2320
|
|
50
50
|
_globals['_OTACONFIG_SCHEDULE']._serialized_start=1816
|
|
51
|
-
_globals['_OTACONFIG_SCHEDULE']._serialized_end=
|
|
52
|
-
_globals['_OTACONFIG_TIMEOFDAY']._serialized_start=
|
|
53
|
-
_globals['_OTACONFIG_TIMEOFDAY']._serialized_end=
|
|
54
|
-
_globals['_OTACONFIG_LOCATION']._serialized_start=
|
|
55
|
-
_globals['_OTACONFIG_LOCATION']._serialized_end=
|
|
56
|
-
_globals['
|
|
57
|
-
_globals['
|
|
58
|
-
_globals['
|
|
59
|
-
_globals['
|
|
60
|
-
_globals['
|
|
61
|
-
_globals['
|
|
51
|
+
_globals['_OTACONFIG_SCHEDULE']._serialized_end=1988
|
|
52
|
+
_globals['_OTACONFIG_TIMEOFDAY']._serialized_start=1990
|
|
53
|
+
_globals['_OTACONFIG_TIMEOFDAY']._serialized_end=2100
|
|
54
|
+
_globals['_OTACONFIG_LOCATION']._serialized_start=2102
|
|
55
|
+
_globals['_OTACONFIG_LOCATION']._serialized_end=2140
|
|
56
|
+
_globals['_OTACONFIG_ONETIME']._serialized_start=2143
|
|
57
|
+
_globals['_OTACONFIG_ONETIME']._serialized_end=2275
|
|
58
|
+
_globals['_OTACONFIG_ONETIME_INSTALLTIME']._serialized_start=2228
|
|
59
|
+
_globals['_OTACONFIG_ONETIME_INSTALLTIME']._serialized_end=2275
|
|
60
|
+
_globals['_OTACONFIG_UPDATEDAT']._serialized_start=2277
|
|
61
|
+
_globals['_OTACONFIG_UPDATEDAT']._serialized_end=2320
|
|
62
|
+
_globals['_VEHICLEOTASTATE']._serialized_start=2322
|
|
63
|
+
_globals['_VEHICLEOTASTATE']._serialized_end=2353
|
|
62
64
|
# @@protoc_insertion_point(module_scope)
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/ota_pb2.pyi
RENAMED
|
@@ -97,16 +97,16 @@ class DeploymentState(_message.Message):
|
|
|
97
97
|
class OtaConfig(_message.Message):
|
|
98
98
|
__slots__ = ("schedule", "updated_at")
|
|
99
99
|
class Schedule(_message.Message):
|
|
100
|
-
__slots__ = ("id", "enabled", "time_of_day", "
|
|
100
|
+
__slots__ = ("id", "enabled", "time_of_day", "one_time")
|
|
101
101
|
ID_FIELD_NUMBER: _ClassVar[int]
|
|
102
102
|
ENABLED_FIELD_NUMBER: _ClassVar[int]
|
|
103
103
|
TIME_OF_DAY_FIELD_NUMBER: _ClassVar[int]
|
|
104
|
-
|
|
104
|
+
ONE_TIME_FIELD_NUMBER: _ClassVar[int]
|
|
105
105
|
id: str
|
|
106
106
|
enabled: bool
|
|
107
107
|
time_of_day: OtaConfig.TimeOfDay
|
|
108
|
-
|
|
109
|
-
def __init__(self, id: _Optional[str] = ..., enabled: _Optional[bool] = ..., time_of_day: _Optional[_Union[OtaConfig.TimeOfDay, _Mapping]] = ...,
|
|
108
|
+
one_time: OtaConfig.OneTime
|
|
109
|
+
def __init__(self, id: _Optional[str] = ..., enabled: _Optional[bool] = ..., time_of_day: _Optional[_Union[OtaConfig.TimeOfDay, _Mapping]] = ..., one_time: _Optional[_Union[OtaConfig.OneTime, _Mapping]] = ...) -> None: ...
|
|
110
110
|
class TimeOfDay(_message.Message):
|
|
111
111
|
__slots__ = ("start_time", "location")
|
|
112
112
|
START_TIME_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -119,11 +119,16 @@ class OtaConfig(_message.Message):
|
|
|
119
119
|
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
120
120
|
name: str
|
|
121
121
|
def __init__(self, name: _Optional[str] = ...) -> None: ...
|
|
122
|
-
class
|
|
123
|
-
__slots__ = ("
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
class OneTime(_message.Message):
|
|
123
|
+
__slots__ = ("install_time",)
|
|
124
|
+
class InstallTime(_message.Message):
|
|
125
|
+
__slots__ = ("seconds",)
|
|
126
|
+
SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
127
|
+
seconds: int
|
|
128
|
+
def __init__(self, seconds: _Optional[int] = ...) -> None: ...
|
|
129
|
+
INSTALL_TIME_FIELD_NUMBER: _ClassVar[int]
|
|
130
|
+
install_time: OtaConfig.OneTime.InstallTime
|
|
131
|
+
def __init__(self, install_time: _Optional[_Union[OtaConfig.OneTime.InstallTime, _Mapping]] = ...) -> None: ...
|
|
127
132
|
class UpdatedAt(_message.Message):
|
|
128
133
|
__slots__ = ("seconds", "nanos")
|
|
129
134
|
SECONDS_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -26,6 +26,10 @@ if TYPE_CHECKING:
|
|
|
26
26
|
|
|
27
27
|
_LOGGER = logging.getLogger(__name__)
|
|
28
28
|
|
|
29
|
+
RATE_LIMITED = "Rate limited"
|
|
30
|
+
RATE_LIMIT_BACKOFF_MIN = 30
|
|
31
|
+
RATE_LIMIT_BACKOFF_MAX = 900
|
|
32
|
+
|
|
29
33
|
|
|
30
34
|
async def cancel_task(*tasks: asyncio.Task | None) -> None:
|
|
31
35
|
"""Cancel task(s)."""
|
|
@@ -54,6 +58,8 @@ class WebSocketMonitor:
|
|
|
54
58
|
|
|
55
59
|
self._connection_ack: asyncio.Event = asyncio.Event()
|
|
56
60
|
self._disconnect = False
|
|
61
|
+
self._rate_limited = False
|
|
62
|
+
self._rate_limit_attempt = 0
|
|
57
63
|
self._ws: ClientWebSocketResponse[bool] | None = None
|
|
58
64
|
self._monitor_task: asyncio.Task | None = None
|
|
59
65
|
self._receiver_task: asyncio.Task | None = None
|
|
@@ -88,6 +94,7 @@ class WebSocketMonitor:
|
|
|
88
94
|
"""Create a new connection and, optionally, start the monitor."""
|
|
89
95
|
await cancel_task(self._receiver_task)
|
|
90
96
|
self._disconnect = False
|
|
97
|
+
self._rate_limited = False
|
|
91
98
|
# pylint: disable=protected-access
|
|
92
99
|
assert self._account._session
|
|
93
100
|
self._ws = await self._account._session.ws_connect(
|
|
@@ -145,6 +152,8 @@ class WebSocketMonitor:
|
|
|
145
152
|
self._log_message(msg)
|
|
146
153
|
if msg.extra == "Unauthenticated":
|
|
147
154
|
self._disconnect = True
|
|
155
|
+
elif msg.extra == RATE_LIMITED:
|
|
156
|
+
self._rate_limited = True
|
|
148
157
|
break
|
|
149
158
|
self._last_received = datetime.now(timezone.utc)
|
|
150
159
|
if msg.type == WSMsgType.TEXT:
|
|
@@ -152,6 +161,7 @@ class WebSocketMonitor:
|
|
|
152
161
|
if (data_type := data.get("type")) == "connection_ack":
|
|
153
162
|
self._connection_ack.set()
|
|
154
163
|
elif data_type == "next":
|
|
164
|
+
self._rate_limit_attempt = 0
|
|
155
165
|
if (_id := data.get("id")) in self._subscriptions:
|
|
156
166
|
_fn = self._subscriptions[_id][0]
|
|
157
167
|
if inspect.iscoroutinefunction(_fn):
|
|
@@ -164,6 +174,8 @@ class WebSocketMonitor:
|
|
|
164
174
|
self._log_message(msg, True)
|
|
165
175
|
continue
|
|
166
176
|
except asyncio.TimeoutError:
|
|
177
|
+
# The connection has stayed open, so any rate limit has passed
|
|
178
|
+
self._rate_limit_attempt = 0
|
|
167
179
|
await self._resubscribe_all()
|
|
168
180
|
self._connection_ack.clear()
|
|
169
181
|
self._log_message("web socket stopped")
|
|
@@ -177,6 +189,10 @@ class WebSocketMonitor:
|
|
|
177
189
|
# Need to restart the receiver
|
|
178
190
|
self._receiver_task = asyncio.ensure_future(self._receiver())
|
|
179
191
|
await asyncio.sleep(1)
|
|
192
|
+
if self._rate_limited:
|
|
193
|
+
await self._rate_limit_backoff()
|
|
194
|
+
if self._disconnect or self.connected:
|
|
195
|
+
continue
|
|
180
196
|
if not self._disconnect:
|
|
181
197
|
try:
|
|
182
198
|
await self.new_connection()
|
|
@@ -190,6 +206,21 @@ class WebSocketMonitor:
|
|
|
190
206
|
self._log_message("web socket connection reopened")
|
|
191
207
|
await self._resubscribe_all()
|
|
192
208
|
|
|
209
|
+
async def _rate_limit_backoff(self) -> None:
|
|
210
|
+
"""Wait before reconnecting after the server closed the connection due to rate limiting."""
|
|
211
|
+
self._rate_limited = False
|
|
212
|
+
delay = min(
|
|
213
|
+
RATE_LIMIT_BACKOFF_MIN * 2**self._rate_limit_attempt
|
|
214
|
+
+ uniform(0, RATE_LIMIT_BACKOFF_MIN),
|
|
215
|
+
RATE_LIMIT_BACKOFF_MAX,
|
|
216
|
+
)
|
|
217
|
+
self._rate_limit_attempt += 1
|
|
218
|
+
_LOGGER.warning(
|
|
219
|
+
"Web socket connection was rate limited, reconnecting in %.0f seconds",
|
|
220
|
+
delay,
|
|
221
|
+
)
|
|
222
|
+
await asyncio.sleep(delay)
|
|
223
|
+
|
|
193
224
|
async def start_monitor(self) -> None:
|
|
194
225
|
"""Start or restart the monitor task."""
|
|
195
226
|
if self._monitor_task is None or self._monitor_task.done():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/comfort.py
RENAMED
|
File without changes
|
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/departure.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/device_table.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/dynamics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/geofence.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/parallax.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/__init__.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/body.proto
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/body_pb2.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/body_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/proto/energy.proto
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/security.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/user_passcodes.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/vehicle.py
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/parallax/vehicle_access.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/schemas/charging.graphql
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/schemas/gateway.graphql
RENAMED
|
File without changes
|
{rivian_python_client-2.2.0b0 → rivian_python_client-2.2.0b1}/src/rivian/schemas/orders.graphql
RENAMED
|
File without changes
|
|
File without changes
|