fprime-gds 4.0.0a6__py3-none-any.whl → 4.0.0a8__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.
@@ -22,6 +22,8 @@ from fprime_gds.common.decoders import decoder
22
22
  from fprime_gds.common.decoders.decoder import DecodingException
23
23
  from fprime_gds.common.utils import config_manager
24
24
 
25
+ import logging
26
+ LOGGER = logging.getLogger("event_decoder")
25
27
 
26
28
  class EventDecoder(decoder.Decoder):
27
29
  """Decoder class for event data"""
@@ -67,7 +69,11 @@ class EventDecoder(decoder.Decoder):
67
69
  while (ptr < len(data)):
68
70
 
69
71
  # Decode event ID here...
70
- self.id_obj.deserialize(data, ptr)
72
+ if ptr + self.id_obj.getSize() <= len(data):
73
+ self.id_obj.deserialize(data, ptr)
74
+ else:
75
+ LOGGER.warning("Insufficient data for event ID")
76
+ break
71
77
  ptr += self.id_obj.getSize()
72
78
  event_id = self.id_obj.val
73
79
 
@@ -203,6 +203,8 @@ class Distributor(DataHandler):
203
203
  try:
204
204
  d.data_callback(msg)
205
205
  except DecodingException as dexc:
206
- LOGGER.warning("Decoding error occurred: %s. Skipping.", dexc)
206
+ LOGGER.warning("Decoding error: %s", dexc)
207
+ except Exception as exc:
208
+ LOGGER.warning("Parsing error: %s", exc)
207
209
  else:
208
210
  LOGGER.warning("No decoder registered for: %s", data_desc_type.DataDescType(data_desc).name)
@@ -13,7 +13,7 @@ import sys
13
13
  INITIALIZED = False
14
14
 
15
15
 
16
- def configure_py_log(directory=None, filename=sys.argv[0], mirror_to_stdout=False):
16
+ def configure_py_log(directory=None, filename=sys.argv[0], mirror_to_stdout=False, log_level="INFO"):
17
17
  """
18
18
  Configure the python logging. If logdir is supplied, our logs will go in that directory as a log file. Otherwise,
19
19
  logs will go to the CLI.
@@ -40,6 +40,6 @@ def configure_py_log(directory=None, filename=sys.argv[0], mirror_to_stdout=Fals
40
40
  for handler in handlers:
41
41
  handler.setFormatter(formatter)
42
42
  logging.getLogger().addHandler(handler)
43
- logging.getLogger().setLevel(logging.INFO)
43
+ logging.getLogger().setLevel(log_level)
44
44
  logging.info("Logging system initialized!")
45
45
  INITIALIZED = True
@@ -829,6 +829,13 @@ class LogDeployParser(ParserBase):
829
829
  "default": False,
830
830
  "help": "Log to standard out along with log output files",
831
831
  },
832
+ ("--log-level-gds",): {
833
+ "action": "store",
834
+ "dest": "log_level_gds",
835
+ "choices": ["DEBUG", "INFO", "WARNING", "ERROR"],
836
+ "default": "INFO",
837
+ "help": "Set the logging level of GDS processes [default: %(default)s]",
838
+ },
832
839
  }
833
840
 
834
841
  def handle_arguments(self, args, **kwargs):
@@ -856,7 +863,7 @@ class LogDeployParser(ParserBase):
856
863
  raise
857
864
  # Setup the basic python logging
858
865
  fprime_gds.common.logger.configure_py_log(
859
- args.logs, mirror_to_stdout=args.log_to_stdout
866
+ args.logs, mirror_to_stdout=args.log_to_stdout, log_level=args.log_level_gds
860
867
  )
861
868
  return args
862
869
 
@@ -336,12 +336,12 @@ class DPHeader(BaseModel):
336
336
 
337
337
  @computed_field
338
338
  @property
339
- def dataId(self) -> Type:
339
+ def dataId(self) -> AliasType:
340
340
  return self.header.get("FwDpIdType")
341
341
 
342
342
  @computed_field
343
343
  @property
344
- def dataSize(self) -> Type:
344
+ def dataSize(self) -> AliasType:
345
345
  return self.header.get("FwSizeStoreType")
346
346
 
347
347
  @model_validator(mode='after')
@@ -731,7 +731,7 @@ class DataProductWriter:
731
731
  def get_record_data(self, headerJSON: DPHeader, dictJSON: FprimeDict) -> Dict[str, int]:
732
732
  rootDict = {}
733
733
  # Go through all the Records and find the one that matches recordId
734
- rootDict['dataId'] = self.read_field(headerJSON.dataId.type)
734
+ rootDict['dataId'] = self.read_field(headerJSON.dataId.underlyingType)
735
735
  for record in dictJSON.records:
736
736
  if record.id == rootDict['dataId']:
737
737
  print(f'Processing Record ID {record.id}')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fprime-gds
3
- Version: 4.0.0a6
3
+ Version: 4.0.0a8
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:
@@ -241,7 +241,7 @@ Requires-Dist: openpyxl>=3.0.10
241
241
  Requires-Dist: pyserial>=3.5
242
242
  Requires-Dist: pydantic>=2.6
243
243
  Requires-Dist: PyYAML>=6.0.2
244
- Requires-Dist: spacepackets>=0.28.0
244
+ Requires-Dist: spacepackets>=0.30.0
245
245
  Requires-Dist: crc>=7.0.0
246
246
  Dynamic: license-file
247
247
 
@@ -31,11 +31,11 @@ fprime_gds/common/data_types/sys_data.py,sha256=Xfk5xryFg7zWS3VcGUDx9lQYBTajjWXv
31
31
  fprime_gds/common/decoders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  fprime_gds/common/decoders/ch_decoder.py,sha256=mx0yfT-DQqQ8TrmRM3dr79eL9_E-c0gsKiKvvsjAu98,3849
33
33
  fprime_gds/common/decoders/decoder.py,sha256=9j7u05_nwXaEjR0etsoB--ATsHuILYCXlhk9m9yajKg,2655
34
- fprime_gds/common/decoders/event_decoder.py,sha256=BH1Q_489ZgBhqMutG-WwMGikpXsqiv-Jd2zZsHZBLnc,4280
34
+ fprime_gds/common/decoders/event_decoder.py,sha256=ib-O18V5Z7bcnUUSDE9R0fU--bAZsfxLwuHXm964rzE,4505
35
35
  fprime_gds/common/decoders/file_decoder.py,sha256=Ky2U8bli3YL6GbT9jSSvI73ySOtf0cdZLK4FXTuWjfA,2542
36
36
  fprime_gds/common/decoders/pkt_decoder.py,sha256=kW8k3OSbMy96w6MzsGWp656lAQvwxrIznWkD3Sbi8Ig,3329
37
37
  fprime_gds/common/distributor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- fprime_gds/common/distributor/distributor.py,sha256=KMQcr4fFncDewCMAUR64Yy5OIRdF2CCzmfGNE5J6wIY,7917
38
+ fprime_gds/common/distributor/distributor.py,sha256=ay2b-eMuBEGzQwNoSBLK341CXxGnrFHSIcRKErzIQIU,7999
39
39
  fprime_gds/common/encoders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  fprime_gds/common/encoders/ch_encoder.py,sha256=TBrTJ7TK4WwCh6KAspozh63WcPxrMImloB8tz7qeulw,2878
41
41
  fprime_gds/common/encoders/cmd_encoder.py,sha256=5wG5854ozmxctnYou3q9MdQNkTQEmpCiT4oBVgNRZdE,3499
@@ -78,7 +78,7 @@ fprime_gds/common/loaders/pkt_json_loader.py,sha256=OuHYXE0FP33oAh0z6AScUdLgFg9V
78
78
  fprime_gds/common/loaders/pkt_xml_loader.py,sha256=ZS4qchqQnIBx0Tw69ehP8yqm1g_uYSQzmnijR3FxqJg,4795
79
79
  fprime_gds/common/loaders/prm_json_loader.py,sha256=YCSg3PhVsJTD1FgY_h0i8wV3TNikcZSrczHCzrTM6JM,2896
80
80
  fprime_gds/common/loaders/xml_loader.py,sha256=8AlTTHddJbJqUr6St-zJI8CTqoPuCNtNoRBmdwCorcg,14820
81
- fprime_gds/common/logger/__init__.py,sha256=YBrr9An0fZbp4kvphRl8nLfolkdBqFAsSGzEZXQiH6g,1448
81
+ fprime_gds/common/logger/__init__.py,sha256=TLUbrAnkCtckKGsLzh4hXgEshwQfZsWMDaOOt369BqU,1463
82
82
  fprime_gds/common/logger/data_logger.py,sha256=VjfhTGO1gGw954xNhSc0_zpw8JexCho5f8BlXDEYkL4,2505
83
83
  fprime_gds/common/logger/test_logger.py,sha256=wL8Lq49sVmxGRALgv-ei6AnXFh79qlHFehmKJ1A8X28,6475
84
84
  fprime_gds/common/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -117,9 +117,9 @@ fprime_gds/common/utils/event_severity.py,sha256=7qPXHrDaM_REJ7sKBUEJTZIE0D4qVnV
117
117
  fprime_gds/common/utils/string_util.py,sha256=u_2iahRG3ROu3lAAt_KVcK226gEByElXqrA8mH8eDpI,3584
118
118
  fprime_gds/executables/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
119
  fprime_gds/executables/apps.py,sha256=u79T_PlgMmNmA4YwWjs7LvPMCJnrjnURr05NMthOYP0,13350
120
- fprime_gds/executables/cli.py,sha256=aNO8saIKuTDQMwWNFlrpIL5HuwIWWei94Wxf3G0lY3k,50382
120
+ fprime_gds/executables/cli.py,sha256=SfKL8UZL2aR_YwcG8_4ndZeLxdvgnZOlfIF2yGr1zKo,50729
121
121
  fprime_gds/executables/comm.py,sha256=08rO0o0MJgTRngB7Ygu2IL_gEAWKF7WFvFyro1CqReE,5214
122
- fprime_gds/executables/data_product_writer.py,sha256=cM_OsISsy0bwONrvUu9pYZRhaHeY_GNxsyM18k85wZM,35801
122
+ fprime_gds/executables/data_product_writer.py,sha256=PGNju52vjfg7-AUURFojmMV8S83Tzy58Hyti5tmpffc,35821
123
123
  fprime_gds/executables/fprime_cli.py,sha256=CMoT7zWNwM8h2mSZW03AR96wl_XnZXoLNiOZN_sDi38,12431
124
124
  fprime_gds/executables/run_deployment.py,sha256=Zl0Y9-6i6c8tZhcS7XkAeVQtzn0d9fV-3UJQZ0bnBrc,7237
125
125
  fprime_gds/executables/tcpserver.py,sha256=KspVpu5YIuiWKOk5E6UDMKvqXYrRB1j9aX8CkMxysfw,17555
@@ -238,10 +238,10 @@ fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2,sha256=mDS4KtJuK
238
238
  fprime_gds/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
239
239
  fprime_gds/plugin/definitions.py,sha256=QlxW1gNvoiqGMslSJjh3dTFZuv0igFHawN__3XJ0Wns,5355
240
240
  fprime_gds/plugin/system.py,sha256=M9xb-8jBhCUUx3X1z2uAP8Wx_v6NkL8JeaFgGcMnQqY,13432
241
- fprime_gds-4.0.0a6.dist-info/licenses/LICENSE.txt,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
242
- fprime_gds-4.0.0a6.dist-info/licenses/NOTICE.txt,sha256=vXjA_xRcQhd83Vfk5D_vXg5kOjnnXvLuMi5vFKDEVmg,1612
243
- fprime_gds-4.0.0a6.dist-info/METADATA,sha256=1UB0xbbo6uXm-Skimx0uePjGF1cxgisaEo_Y072HiKA,24549
244
- fprime_gds-4.0.0a6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
245
- fprime_gds-4.0.0a6.dist-info/entry_points.txt,sha256=qFBHIR7CZ5CEeSEdZ-ZVQN9ZfUOZfm0PvvDZAAheuLk,445
246
- fprime_gds-4.0.0a6.dist-info/top_level.txt,sha256=6vzFLIX6ANfavKaXFHDMSLFtS94a6FaAsIWhjgYuSNE,27
247
- fprime_gds-4.0.0a6.dist-info/RECORD,,
241
+ fprime_gds-4.0.0a8.dist-info/licenses/LICENSE.txt,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
242
+ fprime_gds-4.0.0a8.dist-info/licenses/NOTICE.txt,sha256=vXjA_xRcQhd83Vfk5D_vXg5kOjnnXvLuMi5vFKDEVmg,1612
243
+ fprime_gds-4.0.0a8.dist-info/METADATA,sha256=LQafB-nq76AfTT18Hgog3D2SZVDsSfDTi97SSn8W6_0,24549
244
+ fprime_gds-4.0.0a8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
245
+ fprime_gds-4.0.0a8.dist-info/entry_points.txt,sha256=qFBHIR7CZ5CEeSEdZ-ZVQN9ZfUOZfm0PvvDZAAheuLk,445
246
+ fprime_gds-4.0.0a8.dist-info/top_level.txt,sha256=6vzFLIX6ANfavKaXFHDMSLFtS94a6FaAsIWhjgYuSNE,27
247
+ fprime_gds-4.0.0a8.dist-info/RECORD,,