Skip to content

Commit b236227

Browse files
committed
[ctrl] added GSI Online DNA shutdown and startup
1 parent 59fcc5c commit b236227

File tree

6 files changed

+133
-2
lines changed

6 files changed

+133
-2
lines changed

docs/commands/control/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@ certain components of an instrument.
1010
:maxdepth: 1
1111

1212
shutdown_geocom
13+
shutdown_gsidna
1314
startup_geocom
15+
startup_gsidna
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Shutdown - GSI Online DNA
2+
=================
3+
4+
Requirements
5+
------------
6+
7+
- GSI Online capable digital level
8+
9+
Examples
10+
--------
11+
12+
.. code-block:: shell
13+
:caption: Shutting down the instrument
14+
15+
iman shutdown gsidna COM1
16+
17+
Usage
18+
-----
19+
20+
.. click:: instrumentman.control:cli_shutdown_gsidna
21+
:prog: iman shutdown gsidna
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Startup - GSI Online DNA
2+
=================
3+
4+
Requirements
5+
------------
6+
7+
- GSI Online capable digital level
8+
9+
Examples
10+
--------
11+
12+
.. code-block:: shell
13+
:caption: Waking up instrument
14+
15+
iman startup gsidna COM1
16+
17+
Usage
18+
-----
19+
20+
.. click:: instrumentman.control:cli_startup_gsidna
21+
:prog: iman startup gsidna

src/instrumentman/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,4 +196,6 @@ def cli_startup() -> None:
196196
cli_convert.add_command(setup.cli_convert_targets_to_gsi)
197197
cli_convert.add_command(setmeasurement.cli_convert_set_to_gsi)
198198
cli_shutdown.add_command(control.cli_shutdown_geocom)
199+
cli_shutdown.add_command(control.cli_shutdown_gsidna)
199200
cli_startup.add_command(control.cli_startup_geocom)
201+
cli_startup.add_command(control.cli_startup_gsidna)

src/instrumentman/control/__init__.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,22 @@
1212
)
1313

1414

15+
@extra_command(
16+
"gsidna",
17+
params=None,
18+
context_settings={"auto_envvar_prefix": None}
19+
) # type: ignore[misc]
20+
@com_port_argument()
21+
@com_option_group()
22+
def cli_shutdown_gsidna(**kwargs: Any) -> None:
23+
"""
24+
Deactivate a GSI Online capable digital level.
25+
"""
26+
from .app import main_shutdown_gsidna
27+
28+
main_shutdown_gsidna(**kwargs)
29+
30+
1531
@extra_command(
1632
"geocom",
1733
params=None,
@@ -55,6 +71,22 @@ def cli_shutdown_geocom(**kwargs: Any) -> None:
5571
main_shutdown_geocom(**kwargs)
5672

5773

74+
@extra_command(
75+
"gsidna",
76+
params=None,
77+
context_settings={"auto_envvar_prefix": None}
78+
) # type: ignore[misc]
79+
@com_port_argument()
80+
@com_option_group()
81+
def cli_startup_gsidna(**kwargs: Any) -> None:
82+
"""
83+
Activate/reactivate a GSI Online capable digital level.
84+
"""
85+
from .app import main_startup_gsidna
86+
87+
main_startup_gsidna(**kwargs)
88+
89+
5890
@extra_command(
5991
"geocom",
6092
params=None,

src/instrumentman/control/app.py

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,37 @@
33
from geocompy.communication import open_serial
44
from geocompy.geo import GeoCom
55
from geocompy.geo.gctypes import GeoComCode
6+
from geocompy.gsi.dna import GsiOnlineDNA
67

78
from ..utils import print_error
89

910

11+
def main_shutdown_gsidna(
12+
port: str,
13+
timeout: int = 15,
14+
retry: int = 1,
15+
baud: int = 9600,
16+
sync_after_timeout: bool = False
17+
) -> None:
18+
logger = getLogger("iman.control.shutdown-gsidna")
19+
with open_serial(
20+
port,
21+
speed=baud,
22+
timeout=timeout,
23+
retry=retry,
24+
sync_after_timeout=sync_after_timeout,
25+
logger=logger.getChild("com")
26+
) as com:
27+
instrument = GsiOnlineDNA(com, logger.getChild("instrument"))
28+
resp = instrument.shutdown()
29+
30+
if resp.value:
31+
print_error(
32+
f"Could not shut down instrument ({resp.response})"
33+
)
34+
exit(1)
35+
36+
1037
def main_shutdown_geocom(
1138
component: str,
1239
port: str,
@@ -15,7 +42,7 @@ def main_shutdown_geocom(
1542
baud: int = 9600,
1643
sync_after_timeout: bool = False
1744
) -> None:
18-
logger = getLogger("iman.control.shutdown_geocom")
45+
logger = getLogger("iman.control.shutdown-geocom")
1946
with open_serial(
2047
port,
2148
speed=baud,
@@ -51,6 +78,32 @@ def main_shutdown_geocom(
5178
exit(1)
5279

5380

81+
def main_startup_gsidna(
82+
port: str,
83+
timeout: int = 15,
84+
retry: int = 1,
85+
baud: int = 9600,
86+
sync_after_timeout: bool = False
87+
) -> None:
88+
logger = getLogger("iman.control.startup-gsidna")
89+
with open_serial(
90+
port,
91+
speed=baud,
92+
timeout=timeout,
93+
retry=retry,
94+
sync_after_timeout=sync_after_timeout,
95+
logger=logger.getChild("com")
96+
) as com:
97+
instrument = GsiOnlineDNA(com, logger.getChild("instrument"))
98+
resp = instrument.wakeup()
99+
100+
if resp.value:
101+
print_error(
102+
f"Could not shut down instrument ({resp.response})"
103+
)
104+
exit(1)
105+
106+
54107
def main_startup_geocom(
55108
component: str,
56109
port: str,
@@ -59,7 +112,7 @@ def main_startup_geocom(
59112
baud: int = 9600,
60113
sync_after_timeout: bool = False
61114
) -> None:
62-
logger = getLogger("iman.control.startup_geocom")
115+
logger = getLogger("iman.control.startup-geocom")
63116
with open_serial(
64117
port,
65118
speed=baud,

0 commit comments

Comments
 (0)