Skip to content

Commit 8be1ef9

Browse files
committed
updated tools for future sdi12 analog mix
1 parent ba4ff8d commit 8be1ef9

6 files changed

Lines changed: 36 additions & 20 deletions

File tree

src/rtgs_lab_tools/device_configuration/cli.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@ def decode_both(ctx, system_uid, sensor_uid, verbose, log_file, no_postgres_log,
348348
@click.option("--num-co2", type=int, default=0, help="Number of CO2 sensors")
349349
@click.option("--num-o2", type=int, default=0, help="Number of O2 sensors")
350350
@click.option("--num-pressure", type=int, default=0, help="Number of pressure sensors")
351+
@click.option("--num-analog-mux", type=int, default=0, help="Number of analog mux sensors")
351352
@add_common_options
352353
@click.pass_context
353354
@handle_common_errors("create-config")
@@ -368,6 +369,7 @@ def create_config(
368369
num_co2,
369370
num_o2,
370371
num_pressure,
372+
num_analog_mux,
371373
verbose,
372374
log_file,
373375
no_postgres_log,
@@ -398,6 +400,7 @@ def create_config(
398400
"numCO2": num_co2,
399401
"numO2": num_o2,
400402
"numPressure": num_pressure,
403+
"numAnalogMux": num_analog_mux,
401404
},
402405
}
403406
}
@@ -432,6 +435,7 @@ def create_config(
432435
"num_co2": num_co2,
433436
"num_o2": num_o2,
434437
"num_pressure": num_pressure,
438+
"num_analog_mux": num_analog_mux,
435439
"note": note,
436440
}
437441
results = {
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
{
22
"config": {
3-
"system": {
4-
"logPeriod": 300,
5-
"backhaulCount": 1,
6-
"powerSaveMode": 2,
7-
"loggingMode": 2,
8-
"numAuxTalons": 1,
9-
"numI2CTalons": 1,
10-
"numSDI12Talons": 1
11-
},
12-
"sensors": {
13-
"numET": 0,
14-
"numHaar": 0,
15-
"numSoil": 2,
16-
"numApogeeSolar": 0,
17-
"numCO2": 0,
18-
"numO2": 0,
19-
"numPressure": 0
20-
}
3+
"system": {
4+
"logPeriod": 300,
5+
"backhaulCount": 4,
6+
"powerSaveMode": 1,
7+
"loggingMode": 0,
8+
"numAuxTalons": 1,
9+
"numI2CTalons": 1,
10+
"numSDI12Talons": 1
11+
},
12+
"sensors": {
13+
"numET": 0,
14+
"numHaar": 0,
15+
"numSoil": 1,
16+
"numApogeeSolar": 0,
17+
"numCO2": 0,
18+
"numO2": 0,
19+
"numPressure": 0
20+
}
2121
}
22-
}
22+
}

src/rtgs_lab_tools/device_configuration/particle_client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ def calculate_config_uid(config: Dict[str, Any]) -> Tuple[int, int]:
157157
| (sensors.get("numCO2", 0) << 12)
158158
| (sensors.get("numO2", 0) << 8)
159159
| (sensors.get("numPressure", 0) << 4)
160+
| sensors.get("numAnalogMux", 0)
160161
)
161162

162163
return system_uid, sensor_uid

src/rtgs_lab_tools/device_configuration/uid_decoding.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def decode_sensor_configuration_uid(uid: int) -> Dict[str, int]:
5050
config["num_co2"] = (uid >> 12) & 0xF # 4 bits at position 12-15
5151
config["num_o2"] = (uid >> 8) & 0xF # 4 bits at position 8-11
5252
config["num_pressure"] = (uid >> 4) & 0xF # 4 bits at position 4-7
53+
config["num_analog_mux"] = uid & 0xF # 4 bits at position 0-3
5354

5455
return config
5556

@@ -98,6 +99,7 @@ def format_sensor_config(uid: int) -> str:
9899
f"Num CO2 Sensors: {config['num_co2']}",
99100
f"Num O2 Sensors: {config['num_o2']}",
100101
f"Num Pressure Sensors: {config['num_pressure']}",
102+
f"Num Analog Mux: {config['num_analog_mux']}",
101103
]
102104
return "\n".join(lines)
103105

src/rtgs_lab_tools/mcp_server/rtgs_lab_tools_mcp_server.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,7 @@ async def device_configuration_create_config(
786786
num_co2: int = 0,
787787
num_o2: int = 0,
788788
num_pressure: int = 0,
789+
num_analog_mux: int = 0,
789790
note: Optional[str] = None,
790791
) -> Dict[str, Any]:
791792
"""
@@ -810,6 +811,7 @@ async def device_configuration_create_config(
810811
num_co2: Number of CO2 sensors (default: 0)
811812
num_o2: Number of O2 sensors (default: 0)
812813
num_pressure: Number of pressure sensors (default: 0)
814+
num_analog_mux: Number of analog mux sensors (default: 0)
813815
note: Description for this operation (optional)
814816
815817
Returns:
@@ -861,6 +863,8 @@ async def device_configuration_create_config(
861863
str(num_o2),
862864
"--num-pressure",
863865
str(num_pressure),
866+
"--num-analog-mux",
867+
str(num_analog_mux),
864868
]
865869

866870
if note:
@@ -890,6 +894,7 @@ async def device_configuration_create_config(
890894
"numCO2": num_co2,
891895
"numO2": num_o2,
892896
"numPressure": num_pressure,
897+
"numAnalogMux": num_analog_mux,
893898
},
894899
}
895900
}

tests/device_configuration/test_uid_decoding.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def test_decode_basic_sensor_config(self):
7878
"""Test decoding a basic sensor configuration UID."""
7979
# Create a test UID with known values
8080
# num_et=0, num_haar=0, num_soil=1, num_apogee_solar=0,
81-
# num_co2=0, num_o2=0, num_pressure=0
81+
# num_co2=0, num_o2=0, num_pressure=0, num_analog_mux=0
8282
# 0x00100000 = 1048576
8383
uid = 0x00100000
8484

@@ -91,6 +91,7 @@ def test_decode_basic_sensor_config(self):
9191
assert config["num_co2"] == 0
9292
assert config["num_o2"] == 0
9393
assert config["num_pressure"] == 0
94+
assert config["num_analog_mux"] == 0
9495

9596
def test_decode_zero_sensor_uid(self):
9697
"""Test decoding a zero sensor UID."""
@@ -113,6 +114,7 @@ def test_decode_max_sensor_values(self):
113114
assert config["num_co2"] == 0xF # 4 bits
114115
assert config["num_o2"] == 0xF # 4 bits
115116
assert config["num_pressure"] == 0xF # 4 bits
117+
assert config["num_analog_mux"] == 0xF # 4 bits
116118

117119
def test_decode_sensor_config_bit_masks(self):
118120
"""Test specific bit mask operations for sensor config."""
@@ -128,6 +130,7 @@ def test_decode_sensor_config_bit_masks(self):
128130
assert config["num_co2"] == (0x12345678 >> 12) & 0xF
129131
assert config["num_o2"] == (0x12345678 >> 8) & 0xF
130132
assert config["num_pressure"] == (0x12345678 >> 4) & 0xF
133+
assert config["num_analog_mux"] == 0x12345678 & 0xF
131134

132135

133136
class TestFormatSystemConfig:
@@ -182,6 +185,7 @@ def test_format_sensor_config_basic(self):
182185
assert "Num CO2 Sensors: 0" in formatted
183186
assert "Num O2 Sensors: 0" in formatted
184187
assert "Num Pressure Sensors: 0" in formatted
188+
assert "Num Analog Mux: 0" in formatted
185189

186190
def test_format_sensor_config_zero(self):
187191
"""Test formatting a zero sensor configuration."""

0 commit comments

Comments
 (0)