Skip to content

Commit 62051ac

Browse files
committed
[geocom] added enum input param handling to core request method
1 parent 22a65be commit 62051ac

File tree

15 files changed

+73
-70
lines changed

15 files changed

+73
-70
lines changed

src/geocompy/geo/__init__.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
from logging import Logger
4141
from traceback import format_exc
4242
from time import sleep
43+
from enum import Enum
4344
from typing import Any, Callable, Iterable, overload, TypeVar
4445

4546
from serial import SerialException, SerialTimeoutException
@@ -279,22 +280,22 @@ def precision(self, value: int) -> None:
279280
def request(
280281
self,
281282
rpc: int,
282-
params: Iterable[int | float | bool | str | Angle | Byte] = (),
283+
params: Iterable[int | float | bool | str | Angle | Byte | Enum] = (),
283284
parsers: Callable[[str], _T] | None = None
284285
) -> GeoComResponse[_T]: ...
285286

286287
@overload
287288
def request(
288289
self,
289290
rpc: int,
290-
params: Iterable[int | float | bool | str | Angle | Byte] = (),
291+
params: Iterable[int | float | bool | str | Angle | Byte | Enum] = (),
291292
parsers: Iterable[Callable[[str], Any]] | None = None
292293
) -> GeoComResponse[tuple[Any, ...]]: ...
293294

294295
def request(
295296
self,
296297
rpc: int,
297-
params: Iterable[int | float | bool | str | Angle | Byte] = (),
298+
params: Iterable[int | float | bool | str | Angle | Byte | Enum] = (),
298299
parsers: (
299300
Iterable[Callable[[str], Any]]
300301
| Callable[[str], Any]
@@ -312,7 +313,7 @@ def request(
312313
----------
313314
rpc: int
314315
Number of the RPC to execute.
315-
params: Iterable[int | float | bool | str | Angle | Byte]
316+
params: Iterable[int | float | bool | str | Angle | Byte | Enum]
316317
Parameters for the request, by default()
317318
parsers: Iterable[Callable[[str], Any]] \
318319
| Callable[[str], Any] \
@@ -344,6 +345,8 @@ def request(
344345
value = f"{item:d}"
345346
case str():
346347
value = f"\"{item}\""
348+
case Enum():
349+
value = f"{item.value:d}"
347350
case _:
348351
raise TypeError(f"unexpected parameter type: {type(item)}")
349352

src/geocompy/geo/aut.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ def turn_to(
373373
_atrmode = get_enum(ATR, atrmode)
374374
return self._request(
375375
9027,
376-
[float(hz), float(v), _posmode.value, _atrmode.value, 0]
376+
[float(hz), float(v), _posmode, _atrmode, 0]
377377
)
378378

379379
def change_face(
@@ -432,7 +432,7 @@ def change_face(
432432
_atrmode = get_enum(ATR, atrmode)
433433
return self._request(
434434
9028,
435-
[_posmode.value, _atrmode.value, 0]
435+
[_posmode, _atrmode, 0]
436436
)
437437

438438
def fine_adjust(
@@ -580,7 +580,7 @@ def set_fine_adjust_mode(
580580
_mode = get_enum(Adjust, mode)
581581
return self._request(
582582
9031,
583-
[_mode.value]
583+
[_mode]
584584
)
585585

586586
def lock_in(self) -> GeoComResponse[None]:
@@ -884,7 +884,7 @@ def powersearch_next(
884884
_direction = get_enum(Turn, direction)
885885
return self._request(
886886
9051,
887-
[_direction.value, swing]
887+
[_direction, swing]
888888
)
889889

890890
def switch_lock_onthefly(
@@ -973,5 +973,5 @@ def aim_at_pixel(
973973
_camera = get_enum(Camera, camera)
974974
return self._request(
975975
9081,
976-
[_camera.value, x, y]
976+
[_camera, x, y]
977977
)

src/geocompy/geo/bap.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def measure_distance_angle(
141141
_mode = get_enum(Program, mode)
142142
return self._request(
143143
17017,
144-
[_mode.value],
144+
[_mode],
145145
(
146146
Angle.parse,
147147
Angle.parse,
@@ -204,7 +204,7 @@ def set_target_type(
204204
_target = get_enum(Target, target)
205205
return self._request(
206206
17021,
207-
[_target.value]
207+
[_target]
208208
)
209209

210210
def get_prism_type(self) -> GeoComResponse[Prism]:
@@ -263,7 +263,7 @@ def set_prism_type(
263263
_prism = get_enum(Prism, prism)
264264
return self._request(
265265
17008,
266-
[_prism.value]
266+
[_prism]
267267
)
268268

269269
def get_prism_definition(
@@ -297,7 +297,7 @@ def get_prism_definition(
297297
_prism = get_enum(Prism, prism)
298298
return self._request(
299299
17023,
300-
[_prism.value],
300+
[_prism],
301301
(
302302
parse_string,
303303
float,
@@ -346,10 +346,10 @@ def set_prism_definition(
346346
return self._request(
347347
17024,
348348
[
349-
_prism.value,
349+
_prism,
350350
name,
351351
const,
352-
_reflector.value
352+
_reflector
353353
]
354354
)
355355

@@ -402,7 +402,7 @@ def set_measurement_program(
402402
_program = get_enum(UserProgram, program)
403403
return self._request(
404404
17019,
405-
[_program.value]
405+
[_program]
406406
)
407407

408408
def search_target(self) -> GeoComResponse[None]:
@@ -495,7 +495,7 @@ def set_prism_type_name(
495495
_prism = get_enum(Prism, prism)
496496
return self._request(
497497
17030,
498-
[_prism.value, name]
498+
[_prism, name]
499499
)
500500

501501
def get_user_prism_definition(
@@ -583,7 +583,7 @@ def set_user_prism_definition(
583583
_reflector = get_enum(Reflector, reflector)
584584
return self._request(
585585
17032,
586-
[name, const, _reflector.value, creator]
586+
[name, const, _reflector, creator]
587587
)
588588

589589
def get_atr_setting(self) -> GeoComResponse[ATRMode]:
@@ -632,7 +632,7 @@ def set_atr_setting(
632632
_mode = get_enum(ATRMode, mode)
633633
return self._request(
634634
17035,
635-
[_mode.value]
635+
[_mode]
636636
)
637637

638638
def get_reduced_atr_fov_status(self) -> GeoComResponse[bool]:

src/geocompy/geo/cam.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def set_zoom(
7676
_camera = get_enum(Camera, camera)
7777
return self._request(
7878
23608,
79-
[_camera.value, _zoom.value]
79+
[_camera, _zoom]
8080
)
8181

8282
def get_zoom(
@@ -106,7 +106,7 @@ def get_zoom(
106106
_camera = get_enum(Camera, camera)
107107
return self._request(
108108
23609,
109-
[_camera.value],
109+
[_camera],
110110
get_enum_parser(Zoom)
111111
)
112112

@@ -154,7 +154,7 @@ def transform(
154154
_camera = get_enum(Camera, camera)
155155
response = self._request(
156156
23611,
157-
[_camera.value],
157+
[_camera],
158158
(
159159
float,
160160
float,
@@ -210,7 +210,7 @@ def transform(
210210
_camera = get_enum(Camera, camera)
211211
response = self._request(
212212
23613,
213-
[_camera.value, dist],
213+
[_camera, dist],
214214
(
215215
float,
216216
float,
@@ -253,7 +253,7 @@ def get_camera_fov(
253253
_zoom = get_enum(Zoom, zoom)
254254
return self._request(
255255
23619,
256-
[_camera.value, _zoom.value],
256+
[_camera, _zoom],
257257
(
258258
Angle.parse,
259259
Angle.parse
@@ -293,7 +293,7 @@ def set_actual_image_name(
293293
_camera = get_enum(Camera, camera)
294294
return self._request(
295295
23622,
296-
[_camera.value, name, number]
296+
[_camera, name, number]
297297
)
298298

299299
def take_image(
@@ -327,7 +327,7 @@ def take_image(
327327
_camera = get_enum(Camera, camera)
328328
return self._request(
329329
23623,
330-
[_camera.value]
330+
[_camera]
331331
)
332332

333333
def get_overview_crosshair(self) -> GeoComResponse[tuple[float, float]]:
@@ -424,7 +424,7 @@ def set_whitebalance(
424424
_camera = get_enum(Camera, camera)
425425
return self._request(
426426
23626,
427-
[_camera.value, _wb.value]
427+
[_camera, _wb]
428428
)
429429

430430
def is_camera_ready(
@@ -458,7 +458,7 @@ def is_camera_ready(
458458
_camera = get_enum(Camera, camera)
459459
return self._request(
460460
23627,
461-
[_camera.value]
461+
[_camera]
462462
)
463463

464464
def set_camera_properties(
@@ -502,7 +502,7 @@ def set_camera_properties(
502502
_camera = get_enum(Camera, camera)
503503
return self._request(
504504
23633,
505-
[_camera.value, _res.value, _comp.value, _qual.value]
505+
[_camera, _res, _comp, _qual]
506506
)
507507

508508
def get_camera_power_status(
@@ -537,7 +537,7 @@ def get_camera_power_status(
537537
_camera = get_enum(Camera, camera)
538538
return self._request(
539539
23636,
540-
[_camera.value],
540+
[_camera],
541541
parse_bool
542542
)
543543

@@ -573,7 +573,7 @@ def switch_camera_power(
573573
_camera = get_enum(Camera, camera)
574574
return self._request(
575575
23637,
576-
[_camera.value, activate]
576+
[_camera, activate]
577577
)
578578

579579
def wait_for_camera_ready(
@@ -610,7 +610,7 @@ def wait_for_camera_ready(
610610
_camera = get_enum(Camera, camera)
611611
return self._request(
612612
23638,
613-
[_camera.value, int(wait * 1000)]
613+
[_camera, int(wait * 1000)]
614614
)
615615

616616
def set_autofocus_position(
@@ -802,7 +802,7 @@ def get_sensor_size(
802802
_camera = get_enum(Camera, camera)
803803
return self._request(
804804
23668,
805-
[_camera.value],
805+
[_camera],
806806
(
807807
float,
808808
float
@@ -962,7 +962,7 @@ def start_remote_video(
962962
_camera = get_enum(Camera, camera)
963963
return self._request(
964964
23675,
965-
[_camera.value, fps, bitrate]
965+
[_camera, fps, bitrate]
966966
)
967967

968968
def stop_remote_video(self) -> GeoComResponse[None]:

src/geocompy/geo/com.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def switch_on(
181181
_mode = get_enum(Startup, mode)
182182
return self._request(
183183
111,
184-
[_mode.value]
184+
[_mode]
185185
)
186186

187187
def switch_off(
@@ -209,7 +209,7 @@ def switch_off(
209209
_mode = get_enum(Shutdown, mode)
210210
return self._request(
211211
112,
212-
[_mode.value]
212+
[_mode]
213213
)
214214

215215
def nullprocess(self) -> GeoComResponse[None]:

src/geocompy/geo/csv.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,7 @@ def check_property(
615615
_prop = get_enum(Property, property)
616616
return self._request(
617617
5139,
618-
[_prop.value],
618+
[_prop],
619619
parse_bool
620620
)
621621

@@ -705,7 +705,7 @@ def set_preferred_powersource(
705705
_source = get_enum(PowerSource, source)
706706
return self._request(
707707
5163,
708-
[_source.value]
708+
[_source]
709709
)
710710

711711
def get_preferred_powersource(self) -> GeoComResponse[PowerSource]:

src/geocompy/geo/dna.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ def set_staff_type(
315315
_staff = get_enum(StaffType, staff)
316316
return self._request(
317317
29127,
318-
[_staff.value]
318+
[_staff]
319319
)
320320

321321
def get_staff_type(self) -> GeoComResponse[StaffType]:

src/geocompy/geo/edm.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ def set_tracklight_brightness(
219219
_intensity = get_enum(Tracklight, intensity)
220220
return self._request(
221221
1032,
222-
[_intensity.value]
222+
[_intensity]
223223
)
224224

225225
def get_tracklight_status(self) -> GeoComResponse[bool]:
@@ -324,7 +324,7 @@ def set_guidelight_intensity(
324324
_intesity = get_enum(Guidelight, intensity)
325325
return self._request(
326326
1059,
327-
[_intesity.value]
327+
[_intesity]
328328
)
329329

330330
def is_continuous_measurement(
@@ -354,7 +354,7 @@ def is_continuous_measurement(
354354
_mode = get_enum(MeasurementType, mode)
355355
return self._request(
356356
1070,
357-
[_mode.value],
357+
[_mode],
358358
parse_bool
359359
)
360360

0 commit comments

Comments
 (0)