fprime-gds 3.5.1__py3-none-any.whl → 3.5.2a2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fprime_gds/common/data_types/cmd_data.py +2 -3
- fprime_gds/common/history/chrono.py +3 -1
- fprime_gds/common/loaders/json_loader.py +12 -3
- fprime_gds/common/transport.py +1 -1
- {fprime_gds-3.5.1.dist-info → fprime_gds-3.5.2a2.dist-info}/METADATA +2 -2
- {fprime_gds-3.5.1.dist-info → fprime_gds-3.5.2a2.dist-info}/RECORD +11 -11
- {fprime_gds-3.5.1.dist-info → fprime_gds-3.5.2a2.dist-info}/WHEEL +1 -1
- {fprime_gds-3.5.1.dist-info → fprime_gds-3.5.2a2.dist-info}/LICENSE.txt +0 -0
- {fprime_gds-3.5.1.dist-info → fprime_gds-3.5.2a2.dist-info}/NOTICE.txt +0 -0
- {fprime_gds-3.5.1.dist-info → fprime_gds-3.5.2a2.dist-info}/entry_points.txt +0 -0
- {fprime_gds-3.5.1.dist-info → fprime_gds-3.5.2a2.dist-info}/top_level.txt +0 -0
@@ -131,9 +131,8 @@ class CmdData(sys_data.SysData):
|
|
131
131
|
else:
|
132
132
|
# The arguments are currently serializable objects which cannot be
|
133
133
|
# used to fill in a format string. Convert them to values that can be
|
134
|
-
arg_val_list =
|
135
|
-
|
136
|
-
arg_str = " ".join(str(arg_val_list))
|
134
|
+
arg_val_list = self.get_arg_vals()
|
135
|
+
arg_str = str(arg_val_list)
|
137
136
|
|
138
137
|
if verbose and csv:
|
139
138
|
return f"{time_str},{raw_time_str},{name},{self.id},{arg_str}"
|
@@ -160,7 +160,9 @@ class ChronologicalHistory(History):
|
|
160
160
|
the index that the item was inserted at (int)
|
161
161
|
"""
|
162
162
|
for i, item in reversed(list(enumerate(ordered))):
|
163
|
-
|
163
|
+
# Note: for events with the exact same time, this should default to the order received from downlink
|
164
|
+
# and as such the data item should be treated as newer because it was received later.
|
165
|
+
if item.get_time() <= data_object.get_time():
|
164
166
|
ordered.insert(i + 1, data_object)
|
165
167
|
return i
|
166
168
|
# If the data object is the earliest in the list or the list was empty
|
@@ -178,7 +178,10 @@ class JsonLoader(dict_loader.DictLoader):
|
|
178
178
|
SerializableType: The constructed serializable type.
|
179
179
|
|
180
180
|
"""
|
181
|
-
struct_members
|
181
|
+
# Note on struct_members: the order of the members list matter when calling construct_type() below.
|
182
|
+
# It should be ordered by incrementing index which corresponds to the order in the FPP declaration
|
183
|
+
# The JSON dictionary ordering is not guaranteed, so we use a dict() to sort by index below.
|
184
|
+
struct_members = {}
|
182
185
|
for name, member_dict in qualified_type.get("members").items():
|
183
186
|
member_type_dict = member_dict["type"]
|
184
187
|
member_type_obj = self.parse_type(member_type_dict)
|
@@ -197,11 +200,17 @@ class JsonLoader(dict_loader.DictLoader):
|
|
197
200
|
member_type_obj.FORMAT if hasattr(member_type_obj, "FORMAT") else "{}"
|
198
201
|
)
|
199
202
|
description = member_type_dict.get("annotation", "")
|
200
|
-
|
203
|
+
member_index = member_dict["index"]
|
204
|
+
if member_index in struct_members:
|
205
|
+
raise KeyError(
|
206
|
+
f"Invalid dictionary: Duplicate index {member_index} in serializable type {type_name}"
|
207
|
+
)
|
208
|
+
struct_members[member_index] = (name, member_type_obj, fmt_str, description)
|
201
209
|
|
210
|
+
# Construct the serializable type with list of members sorted by index
|
202
211
|
ser_type = SerializableType.construct_type(
|
203
212
|
type_name,
|
204
|
-
struct_members,
|
213
|
+
[struct_members[i] for i in sorted(struct_members.keys())],
|
205
214
|
)
|
206
215
|
self.parsed_types[type_name] = ser_type
|
207
216
|
return ser_type
|
fprime_gds/common/transport.py
CHANGED
@@ -241,7 +241,7 @@ class ThreadedTCPSocketClient(ThreadedTransportClient):
|
|
241
241
|
assert self.dest is not None, "Cannot send data before connect call"
|
242
242
|
self.sock.send(b"A5A5 %s %s" % (self.dest, data))
|
243
243
|
|
244
|
-
def recv(self, timeout=
|
244
|
+
def recv(self, timeout=0.1):
|
245
245
|
"""Receives data from the threaded tcp server
|
246
246
|
|
247
247
|
Receives raw data from the threaded tcp server. This data is expected to have no headers and will be passed as
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: fprime-gds
|
3
|
-
Version: 3.5.
|
3
|
+
Version: 3.5.2a2
|
4
4
|
Summary: F Prime Flight Software Ground Data System layer
|
5
5
|
Author-email: Michael Starch <Michael.D.Starch@jpl.nasa.gov>, Thomas Boyer-Chammard <Thomas.Boyer.Chammard@jpl.nasa.gov>
|
6
6
|
License:
|
@@ -3,7 +3,7 @@ fprime_gds/__init__.py,sha256=y2ljhCEHnvyfSDvXIEgBGIk8oHjjjjCWFxfddOGeYFk,115
|
|
3
3
|
fprime_gds/version.py,sha256=dlUlfOKTsGaqz_L7TjhCVC-Vanx5cK67kdZlqcHCM8M,395
|
4
4
|
fprime_gds/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
fprime_gds/common/handlers.py,sha256=t2-st-C3Z486kfcu2cpf-wHJQmpaaHQYj1dyXJEMmSU,2632
|
6
|
-
fprime_gds/common/transport.py,sha256=
|
6
|
+
fprime_gds/common/transport.py,sha256=uYXWkM8TYEYz1vfY4AEn0PF8Gu4tkYmJ5t4w1YY1yW8,10565
|
7
7
|
fprime_gds/common/zmq_transport.py,sha256=E_iBZ5sA4JKB99MWSOM6XnPrO-mbFyRvD9eQp9te6-Y,12397
|
8
8
|
fprime_gds/common/communication/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
fprime_gds/common/communication/checksum.py,sha256=f6W0Tr68U-XGnFmysMqsFzoGYZVE8clKf-VIJja_1YM,741
|
@@ -17,7 +17,7 @@ fprime_gds/common/communication/adapters/uart.py,sha256=6SrN42ShVjwNubFg-1YrO09o
|
|
17
17
|
fprime_gds/common/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
18
18
|
fprime_gds/common/data_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
19
|
fprime_gds/common/data_types/ch_data.py,sha256=RP9zSyzNcH0nJ3MYyW_IATnmnHYZ6d0KmoJUJantdBI,6111
|
20
|
-
fprime_gds/common/data_types/cmd_data.py,sha256=
|
20
|
+
fprime_gds/common/data_types/cmd_data.py,sha256=EARx7Q2owmPzq2CZX9oouDYgbCfTnWTZavn2bZlkq-M,7050
|
21
21
|
fprime_gds/common/data_types/event_data.py,sha256=7_vA6Xwvs9kK1-xJzc6lwO_TtUeWdI7p29B6QJNMc40,5372
|
22
22
|
fprime_gds/common/data_types/exceptions.py,sha256=C16L2lofigH8UmnsYO_fuY6yR20U-ckRcl14HZjQlJc,1054
|
23
23
|
fprime_gds/common/data_types/file_data.py,sha256=4_G9kf4ThC5NzkxnKa0xNYBdi8UDvZg8f5Vw0DdGIBE,3904
|
@@ -52,7 +52,7 @@ fprime_gds/common/gds_cli/events.py,sha256=EpaUfDEaXvPwKu7qutkuU1f8zrFoVNsbyCIGU
|
|
52
52
|
fprime_gds/common/gds_cli/filtering_utils.py,sha256=2LxT9tzuNvnwm7HVItv87XkO6K29nOBift2bYcYn3zg,7554
|
53
53
|
fprime_gds/common/gds_cli/test_api_utils.py,sha256=VphGie_VxTMZQGz6p_5AjdEZWXqKJTohrqslRS8VnNU,5109
|
54
54
|
fprime_gds/common/history/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
|
-
fprime_gds/common/history/chrono.py,sha256=
|
55
|
+
fprime_gds/common/history/chrono.py,sha256=Yz8zwqTYC5C4CIuWtHVvspr-J8kQ5PXXX0IITQi8_7I,7748
|
56
56
|
fprime_gds/common/history/history.py,sha256=LbdMzlbZ2AGt5I76DqgQWU852Jg0946hVGc6N6OSNUQ,2423
|
57
57
|
fprime_gds/common/history/ram.py,sha256=ELNlyC6SmQJ-ZKD1NRi4H892tt1ppDNfz7R2c0UFCbQ,5797
|
58
58
|
fprime_gds/common/history/test.py,sha256=JMOlXPYtS9OTT1xb0GKn2YLI-0ESElbhvhb8usFatz0,5048
|
@@ -67,7 +67,7 @@ fprime_gds/common/loaders/dict_loader.py,sha256=TasuICjsRYPWAsgmHGmsioxa8F7xmgAj
|
|
67
67
|
fprime_gds/common/loaders/event_json_loader.py,sha256=DPVJQ1wIY3r13rxTWrE9n7i6kSAF5m4jB-XRsxaRaDA,3572
|
68
68
|
fprime_gds/common/loaders/event_py_loader.py,sha256=m4KlDl0mXn8ZQr-IfpUg0KaGIOJUErZkcIohlW9jNPc,2598
|
69
69
|
fprime_gds/common/loaders/event_xml_loader.py,sha256=Q3Vm7ROTVgolSp5umkNMp0Eh95sir6ZAyAegrSjkiis,2875
|
70
|
-
fprime_gds/common/loaders/json_loader.py,sha256=
|
70
|
+
fprime_gds/common/loaders/json_loader.py,sha256=nXdu3eDI7_FSVbNmjbldFjReBQTxMLg14BpZlSGIAeM,8750
|
71
71
|
fprime_gds/common/loaders/pkt_xml_loader.py,sha256=ZS4qchqQnIBx0Tw69ehP8yqm1g_uYSQzmnijR3FxqJg,4795
|
72
72
|
fprime_gds/common/loaders/python_loader.py,sha256=FUNQbFy75bpqvss1JDu2UWZBMrtnMpFegM6mcglh42I,4858
|
73
73
|
fprime_gds/common/loaders/xml_loader.py,sha256=8AlTTHddJbJqUr6St-zJI8CTqoPuCNtNoRBmdwCorcg,14820
|
@@ -227,10 +227,10 @@ fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2,sha256=mDS4KtJuK
|
|
227
227
|
fprime_gds/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
228
228
|
fprime_gds/plugin/definitions.py,sha256=5rHGSOrr62qRNVfX9bZIo4HDAKG62lKteNum9G40y3g,2347
|
229
229
|
fprime_gds/plugin/system.py,sha256=uWd6DVW90Re0FoNMPNCx0cXXTJUdpgAAO0mtakzRNgk,8564
|
230
|
-
fprime_gds-3.5.
|
231
|
-
fprime_gds-3.5.
|
232
|
-
fprime_gds-3.5.
|
233
|
-
fprime_gds-3.5.
|
234
|
-
fprime_gds-3.5.
|
235
|
-
fprime_gds-3.5.
|
236
|
-
fprime_gds-3.5.
|
230
|
+
fprime_gds-3.5.2a2.dist-info/LICENSE.txt,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
231
|
+
fprime_gds-3.5.2a2.dist-info/METADATA,sha256=xq12LG22iaSHz8kLu-zEwshPLqhew6kiUmgpbLeSbbA,24772
|
232
|
+
fprime_gds-3.5.2a2.dist-info/NOTICE.txt,sha256=vXjA_xRcQhd83Vfk5D_vXg5kOjnnXvLuMi5vFKDEVmg,1612
|
233
|
+
fprime_gds-3.5.2a2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
234
|
+
fprime_gds-3.5.2a2.dist-info/entry_points.txt,sha256=oqUiO3xhJCR943jdU3zcxbqEvSXNeVgshk7dVaf_nGY,322
|
235
|
+
fprime_gds-3.5.2a2.dist-info/top_level.txt,sha256=6vzFLIX6ANfavKaXFHDMSLFtS94a6FaAsIWhjgYuSNE,27
|
236
|
+
fprime_gds-3.5.2a2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|