Skip to content

Commit dce00a2

Browse files
authored
Harmonizes Q10 status names in python-roborock to canonical values instead of legacy *state strings (#793)
* fix(q10): normalize status names to canonical values * fix(q10): normalize YXDeviceState status names to canonical values * fix(q10): refactor test for canonical status names using a dictionary * fix(q10): add tests for Q10 status values and code mappings
1 parent dca91a0 commit dce00a2

File tree

2 files changed

+55
-17
lines changed

2 files changed

+55
-17
lines changed

roborock/data/b01_q10/b01_q10_code_mappings.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -164,24 +164,24 @@ class YXCleanType(RoborockModeEnum):
164164

165165
class YXDeviceState(RoborockModeEnum):
166166
UNKNOWN = "unknown", -1
167-
SLEEP_STATE = "sleepstate", 2
168-
STANDBY_STATE = "standbystate", 3
169-
CLEANING_STATE = "cleaningstate", 5
170-
TO_CHARGE_STATE = "tochargestate", 6
171-
REMOTEING_STATE = "remoteingstate", 7
172-
CHARGING_STATE = "chargingstate", 8
173-
PAUSE_STATE = "pausestate", 10
174-
FAULT_STATE = "faultstate", 12
175-
UPGRADE_STATE = "upgradestate", 14
167+
SLEEP_STATE = "sleeping", 2
168+
STANDBY_STATE = "standby", 3
169+
CLEANING_STATE = "cleaning", 5
170+
TO_CHARGE_STATE = "going_to_charge", 6
171+
REMOTEING_STATE = "remote_control", 7
172+
CHARGING_STATE = "charging", 8
173+
PAUSE_STATE = "paused", 10
174+
FAULT_STATE = "fault", 12
175+
UPGRADE_STATE = "updating", 14
176176
DUSTING = "dusting", 22
177-
CREATING_MAP_STATE = "creatingmapstate", 29
178-
MAP_SAVE_STATE = "mapsavestate", 99
179-
RE_LOCATION_STATE = "relocationstate", 101
180-
ROBOT_SWEEPING = "robotsweeping", 102
181-
ROBOT_MOPING = "robotmoping", 103
182-
ROBOT_SWEEP_AND_MOPING = "robotsweepandmoping", 104
183-
ROBOT_TRANSITIONING = "robottransitioning", 105
184-
ROBOT_WAIT_CHARGE = "robotwaitcharge", 108
177+
CREATING_MAP_STATE = "creating_map", 29
178+
MAP_SAVE_STATE = "saving_map", 99
179+
RE_LOCATION_STATE = "relocating", 101
180+
ROBOT_SWEEPING = "sweeping", 102
181+
ROBOT_MOPING = "mopping", 103
182+
ROBOT_SWEEP_AND_MOPING = "sweep_and_mop", 104
183+
ROBOT_TRANSITIONING = "transitioning", 105
184+
ROBOT_WAIT_CHARGE = "waiting_to_charge", 108
185185

186186

187187
class YXBackType(RoborockModeEnum):
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
"""Test cases for B01 Q10 code mappings."""
2+
3+
from roborock.data.b01_q10 import YXDeviceState
4+
5+
6+
def test_q10_status_values_are_canonical() -> None:
7+
"""Q10 status enum values should expose canonical names."""
8+
expected_values = {
9+
YXDeviceState.UNKNOWN: "unknown",
10+
YXDeviceState.SLEEP_STATE: "sleeping",
11+
YXDeviceState.STANDBY_STATE: "standby",
12+
YXDeviceState.CLEANING_STATE: "cleaning",
13+
YXDeviceState.TO_CHARGE_STATE: "going_to_charge",
14+
YXDeviceState.REMOTEING_STATE: "remote_control",
15+
YXDeviceState.CHARGING_STATE: "charging",
16+
YXDeviceState.PAUSE_STATE: "paused",
17+
YXDeviceState.FAULT_STATE: "fault",
18+
YXDeviceState.UPGRADE_STATE: "updating",
19+
YXDeviceState.DUSTING: "dusting",
20+
YXDeviceState.CREATING_MAP_STATE: "creating_map",
21+
YXDeviceState.MAP_SAVE_STATE: "saving_map",
22+
YXDeviceState.RE_LOCATION_STATE: "relocating",
23+
YXDeviceState.ROBOT_SWEEPING: "sweeping",
24+
YXDeviceState.ROBOT_MOPING: "mopping",
25+
YXDeviceState.ROBOT_SWEEP_AND_MOPING: "sweep_and_mop",
26+
YXDeviceState.ROBOT_TRANSITIONING: "transitioning",
27+
YXDeviceState.ROBOT_WAIT_CHARGE: "waiting_to_charge",
28+
}
29+
30+
assert {state: state.value for state in expected_values} == expected_values
31+
assert all(not value.endswith("state") for value in expected_values.values())
32+
33+
34+
def test_q10_status_codes_map_to_canonical_values() -> None:
35+
"""Code-based mapping should return canonical status values."""
36+
assert YXDeviceState.from_code(5) is YXDeviceState.CLEANING_STATE
37+
assert YXDeviceState.from_code(8) is YXDeviceState.CHARGING_STATE
38+
assert YXDeviceState.from_code(14) is YXDeviceState.UPGRADE_STATE

0 commit comments

Comments
 (0)