TReK Python  5.3.2
Telemetry/Command API
ex_telem.py
1"""
2Example using TREK API using Python.
3"""
4import time
5
6import trek
7
8PACKET_DEFINITION = "PdssPayload.RT.PL.24"
9
10telem_api = trek.TelemetryApi()
11packet = trek.Packet()
12packet_buffer = bytearray(4096)
13
14
15def main() -> None:
16 """
17 Main Routine
18 """
19
20 try:
21 telem_api.connect()
22 telem_api.cleanse()
23
24 # Explains layout of packet
25 telem_api.get_packet_definition(PACKET_DEFINITION, packet)
26
27 # Gets pointer to specific parameter (can be reused, don't re-assign)
28 tank1_fluid = packet.find_parameter("24_TANK1_FLUID_LEVEL")
29 tank2_fluid = packet.find_parameter("24_TANK2_FLUID_LEVEL")
30 time_param = packet.find_parameter("EHSP=GRT")
31
32 # Take 50 data points, 1 per second.
33 for _i in range(50):
34
35 # Get the newest
36 telem_api.get_newest_packet(PACKET_DEFINITION, packet_buffer)
37
38 packet.extract(packet_buffer, len(packet_buffer))
39
40 # Get values
41 time_value = time_param.get_value_as_string()
42 tank1_fluid_value = tank1_fluid.get_value()
43 tank2_fluid_value = tank2_fluid.get_value()
44
45 print(f"{time_value}{tank1_fluid_value=}, {tank2_fluid_value=}")
46
47 time.sleep(1)
48
49 telem_api.disconnect()
50
51 except trek.TrekError as err:
52 # Locate friendly message why it failed.
53 print(err.find_error_code())
54 print(err)
55
56
57if __name__ == "__main__":
58 main()
This class describes a packet composed of one or more parameters.
Definition: trek.py:5009
Provides access to telemetry features of TReK.
Definition: trek.py:12101
The TReK C++ was designed to return error codes.
Definition: trek.py:12846