fprime-gds 4.0.1__py3-none-any.whl → 4.0.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/decoders/ch_decoder.py +1 -1
- fprime_gds/common/decoders/event_decoder.py +1 -1
- fprime_gds/common/decoders/pkt_decoder.py +1 -1
- fprime_gds/common/distributor/distributor.py +1 -1
- fprime_gds/common/encoders/cmd_encoder.py +1 -1
- fprime_gds/common/encoders/encoder.py +1 -1
- fprime_gds/common/encoders/seq_writer.py +1 -1
- fprime_gds/common/gds_cli/base_commands.py +1 -1
- fprime_gds/common/gds_cli/channels.py +1 -1
- fprime_gds/common/gds_cli/command_send.py +1 -1
- fprime_gds/common/gds_cli/events.py +1 -1
- fprime_gds/common/handlers.py +56 -0
- fprime_gds/common/{pipeline → models}/dictionaries.py +1 -0
- fprime_gds/common/pipeline/publishing.py +111 -0
- fprime_gds/common/pipeline/standard.py +9 -22
- fprime_gds/common/testing_fw/api.py +86 -23
- fprime_gds/common/utils/config_manager.py +1 -1
- fprime_gds/executables/apps.py +59 -14
- fprime_gds/executables/cli.py +34 -5
- fprime_gds/executables/dictionary_merge.py +206 -0
- fprime_gds/executables/fprime_cli.py +1 -1
- fprime_gds/executables/run_deployment.py +19 -6
- {fprime_gds-4.0.1.dist-info → fprime_gds-4.0.2a2.dist-info}/METADATA +1 -1
- {fprime_gds-4.0.1.dist-info → fprime_gds-4.0.2a2.dist-info}/RECORD +29 -29
- {fprime_gds-4.0.1.dist-info → fprime_gds-4.0.2a2.dist-info}/entry_points.txt +1 -0
- fprime_gds/common/models/common/channel_telemetry.py +0 -174
- fprime_gds/common/models/common/event.py +0 -121
- {fprime_gds-4.0.1.dist-info → fprime_gds-4.0.2a2.dist-info}/WHEEL +0 -0
- {fprime_gds-4.0.1.dist-info → fprime_gds-4.0.2a2.dist-info}/licenses/LICENSE.txt +0 -0
- {fprime_gds-4.0.1.dist-info → fprime_gds-4.0.2a2.dist-info}/licenses/NOTICE.txt +0 -0
- {fprime_gds-4.0.1.dist-info → fprime_gds-4.0.2a2.dist-info}/top_level.txt +0 -0
@@ -2,7 +2,7 @@ fastentrypoints.py,sha256=2HO-tsTTZxpzYNd-BaLK3WDLknzCZKzb_yX2p3Ftqa8,4020
|
|
2
2
|
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
|
-
fprime_gds/common/handlers.py,sha256=
|
5
|
+
fprime_gds/common/handlers.py,sha256=vPfW1jJpq-oI7c9OTFqZ1LovlhFjx1DEUrfZTk_iuNY,6344
|
6
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
|
@@ -29,21 +29,21 @@ fprime_gds/common/data_types/file_data.py,sha256=4_G9kf4ThC5NzkxnKa0xNYBdi8UDvZg
|
|
29
29
|
fprime_gds/common/data_types/pkt_data.py,sha256=cxqUnsPte0ijF1E8F1_uglVKIJFAIQbpoBlmwRjMrJY,3405
|
30
30
|
fprime_gds/common/data_types/sys_data.py,sha256=Xfk5xryFg7zWS3VcGUDx9lQYBTajjWXvwkgFK5EUCG4,2095
|
31
31
|
fprime_gds/common/decoders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
|
-
fprime_gds/common/decoders/ch_decoder.py,sha256
|
32
|
+
fprime_gds/common/decoders/ch_decoder.py,sha256=-Vo_GJys-4ohs94XV0ZYB88SNqN0gxxY29Ijt1gwyXY,3847
|
33
33
|
fprime_gds/common/decoders/decoder.py,sha256=9j7u05_nwXaEjR0etsoB--ATsHuILYCXlhk9m9yajKg,2655
|
34
|
-
fprime_gds/common/decoders/event_decoder.py,sha256=
|
34
|
+
fprime_gds/common/decoders/event_decoder.py,sha256=tF_mg98RDjR0PppymGhmXybYXA0mFqklZXwora-cVtw,4503
|
35
35
|
fprime_gds/common/decoders/file_decoder.py,sha256=Ky2U8bli3YL6GbT9jSSvI73ySOtf0cdZLK4FXTuWjfA,2542
|
36
|
-
fprime_gds/common/decoders/pkt_decoder.py,sha256=
|
36
|
+
fprime_gds/common/decoders/pkt_decoder.py,sha256=c1CebqBaD7rAZd9t0AXkGVRTCtvXj0YH9OBN2bJKaTk,3327
|
37
37
|
fprime_gds/common/distributor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
|
-
fprime_gds/common/distributor/distributor.py,sha256=
|
38
|
+
fprime_gds/common/distributor/distributor.py,sha256=hP0mUknxxpKrQfYkf57dHbMItwgUTzpzmkrc1AOHVCw,8034
|
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
|
-
fprime_gds/common/encoders/cmd_encoder.py,sha256=
|
42
|
-
fprime_gds/common/encoders/encoder.py,sha256=
|
41
|
+
fprime_gds/common/encoders/cmd_encoder.py,sha256=iFPi6uMlMPlApC47p9YKRjKJxMvz46p15Yy3NnGTyaE,3497
|
42
|
+
fprime_gds/common/encoders/encoder.py,sha256=jaN-uLHRGAzAs33ZdPm2FTdh3mAvsOCtqO6Ov9hspyI,2997
|
43
43
|
fprime_gds/common/encoders/event_encoder.py,sha256=aM_3hWWx4OrLKF3-MlhmGSBYnzt-4iktSzMVrcUbfB8,3140
|
44
44
|
fprime_gds/common/encoders/file_encoder.py,sha256=G9uUXQP-oD2eW_GJuGNBrN7xPafKFhmgKiNi-zvZz-g,3830
|
45
45
|
fprime_gds/common/encoders/pkt_encoder.py,sha256=6hzwrAEg1tjGw9yGycWMuNgbGCoe87Cd-7eP1rvy2d4,3126
|
46
|
-
fprime_gds/common/encoders/seq_writer.py,sha256=
|
46
|
+
fprime_gds/common/encoders/seq_writer.py,sha256=g0Rmnlw4qLgJn290ORzJ21jZo0gB2dTvHFWs4pzbmio,6880
|
47
47
|
fprime_gds/common/files/File Decoder Documentation.txt,sha256=a-VYHcUMqh7mBGY2fqvMf1nd3gdg3cLdPKwrulNKXjc,5314
|
48
48
|
fprime_gds/common/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
49
|
fprime_gds/common/files/downlinker.py,sha256=CZPfhH0J9-LNqW5Cv_ryicLTuoedLSWK8OPQmmQDZZY,7498
|
@@ -59,10 +59,10 @@ fprime_gds/common/fpy/parser.py,sha256=g-l67oZN_vB1JAdZ5S3u9m8APf6PdJ88GZyz0iX66
|
|
59
59
|
fprime_gds/common/fpy/bytecode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
60
|
fprime_gds/common/fpy/bytecode/directives.py,sha256=tBpPQ2ZnQXA7juB85HhacDdil1vEHUKW8m_AsMf1KdQ,13360
|
61
61
|
fprime_gds/common/gds_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
|
-
fprime_gds/common/gds_cli/base_commands.py,sha256=
|
63
|
-
fprime_gds/common/gds_cli/channels.py,sha256=
|
64
|
-
fprime_gds/common/gds_cli/command_send.py,sha256=
|
65
|
-
fprime_gds/common/gds_cli/events.py,sha256=
|
62
|
+
fprime_gds/common/gds_cli/base_commands.py,sha256=js4SAXPfDYy_ewIL27066XylExxh9S1A-e4NNChWf9s,9430
|
63
|
+
fprime_gds/common/gds_cli/channels.py,sha256=BvADGBrsJ2G9zcGpSwJlxLRFiY1bUxtQSTfEOlA3UME,2134
|
64
|
+
fprime_gds/common/gds_cli/command_send.py,sha256=SnDBbwKzNluG-yJSsmsQJpNBPmv4O7nMvG6qYbdpI64,6606
|
65
|
+
fprime_gds/common/gds_cli/events.py,sha256=9Jpk0C7VI-KldFxo7neaG2MpcKhqH2VE2xaV8G-5pSw,2121
|
66
66
|
fprime_gds/common/gds_cli/filtering_utils.py,sha256=2LxT9tzuNvnwm7HVItv87XkO6K29nOBift2bYcYn3zg,7554
|
67
67
|
fprime_gds/common/gds_cli/test_api_utils.py,sha256=VphGie_VxTMZQGz6p_5AjdEZWXqKJTohrqslRS8VnNU,5109
|
68
68
|
fprime_gds/common/history/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -88,19 +88,18 @@ fprime_gds/common/logger/__init__.py,sha256=TLUbrAnkCtckKGsLzh4hXgEshwQfZsWMDaOO
|
|
88
88
|
fprime_gds/common/logger/data_logger.py,sha256=VjfhTGO1gGw954xNhSc0_zpw8JexCho5f8BlXDEYkL4,2505
|
89
89
|
fprime_gds/common/logger/test_logger.py,sha256=wL8Lq49sVmxGRALgv-ei6AnXFh79qlHFehmKJ1A8X28,6475
|
90
90
|
fprime_gds/common/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
91
|
+
fprime_gds/common/models/dictionaries.py,sha256=8HRnSrg6yVOlep17qFWdJzKJ7gZIoNGA-bCabuITyM8,8091
|
91
92
|
fprime_gds/common/models/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
92
|
-
fprime_gds/common/models/common/channel_telemetry.py,sha256=UkLIgWLgVNi2AmPnuT3k9pAmUqNuw2zYHj_r6dB3q5o,4305
|
93
93
|
fprime_gds/common/models/common/command.py,sha256=ASih9dwR_7F94nR1CV7cIuZEJSuaUAzX7JU2_lCAg4g,5476
|
94
|
-
fprime_gds/common/models/common/event.py,sha256=gSFrCJT9ZddGJfkf3fGCCqk0aMIQV-SNeAhCX6hnbrc,3386
|
95
94
|
fprime_gds/common/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
96
95
|
fprime_gds/common/parsers/seq_file_parser.py,sha256=6DZrA0jmt8IqsutfK7pdLtYn4oVHO593rWgAOH63yRg,9587
|
97
96
|
fprime_gds/common/pipeline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
98
|
-
fprime_gds/common/pipeline/dictionaries.py,sha256=x3QCZAg6YB9bEumZ330PGo0ilJqODGyo_K70RgbQ53M,8009
|
99
97
|
fprime_gds/common/pipeline/encoding.py,sha256=PttJ8NmXm75mLXyhlmxOJqE8RFt46q1dThaV19PyAr4,7216
|
100
98
|
fprime_gds/common/pipeline/files.py,sha256=J2zm0sucvImtmSnv0iUp5uTpvUO8nlmz2lUdMuMC5aM,2244
|
101
99
|
fprime_gds/common/pipeline/histories.py,sha256=7KyboNnm9OARQk4meVPSSeYpeqH0G8RWRiy0BLBL1rw,3671
|
100
|
+
fprime_gds/common/pipeline/publishing.py,sha256=A0Hb4RpK7RCBDN9BEiJZr9WQMSrmohYXCFOuzl23mPo,3953
|
102
101
|
fprime_gds/common/pipeline/router.py,sha256=-P1wI0KXEh_snOzDaq8CjEoWuM_zRm8vUMR1T0oY9qQ,2327
|
103
|
-
fprime_gds/common/pipeline/standard.py,sha256=
|
102
|
+
fprime_gds/common/pipeline/standard.py,sha256=Gj-TPWoCWN-zp6uI2o_TI9jANJ7I7hmXOujgwJ8PlMo,9126
|
104
103
|
fprime_gds/common/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
105
104
|
fprime_gds/common/templates/ch_template.py,sha256=1MoDZsia0dI_CvnIttwyKLhbQhum35OcJnFc50Xohuo,3893
|
106
105
|
fprime_gds/common/templates/cmd_template.py,sha256=n91z4WhFgHwTu6_fQqy7JqpkEObAkllIeEy0AR0DvrQ,5455
|
@@ -109,7 +108,7 @@ fprime_gds/common/templates/event_template.py,sha256=L0hkWB_kEMhTNodPUqBAev76SMm
|
|
109
108
|
fprime_gds/common/templates/pkt_template.py,sha256=5Wi6389m5j8w7JITBGfeUnw6CYE1-hjcVJ42NJmLDcE,1794
|
110
109
|
fprime_gds/common/templates/prm_template.py,sha256=qd0UX4ARZuPWvnFbU_DO3HkQY4QgMfqPxNcNhk-dl9A,2303
|
111
110
|
fprime_gds/common/testing_fw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
112
|
-
fprime_gds/common/testing_fw/api.py,sha256=
|
111
|
+
fprime_gds/common/testing_fw/api.py,sha256=ATxIUWVMjoVUllTr0zd42--xgHE1g_OJKq4ec0UFd5k,67848
|
113
112
|
fprime_gds/common/testing_fw/predicates.py,sha256=CsHsVs_EVXCLQLd2NVOvy8MxmUQVxLMr3i1ouEUqOtQ,18371
|
114
113
|
fprime_gds/common/testing_fw/pytest_integration.py,sha256=CAvuH9_3RuKplKQVB3t_jerPr-LPzwPWoM6z3lMs16g,6203
|
115
114
|
fprime_gds/common/tools/README.md,sha256=WVEciyfsbEVGmb9xR5A6Ioy5pBVnCsWOIJfySLeq9YM,2325
|
@@ -117,17 +116,18 @@ fprime_gds/common/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
117
116
|
fprime_gds/common/tools/params.py,sha256=htnMLlUW9HmBo4Qc7kYhnWr1sO6bK2mckdskLt5rDUk,9323
|
118
117
|
fprime_gds/common/tools/seqgen.py,sha256=O57igktjWku5OJhBqezhCjPYUmh4GZM-9qKCChqEW7g,6034
|
119
118
|
fprime_gds/common/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
120
|
-
fprime_gds/common/utils/config_manager.py,sha256=
|
119
|
+
fprime_gds/common/utils/config_manager.py,sha256=dMqN204UKLiZzIs7-d--fdYMQ8kBzTX56xexkgFq18s,5550
|
121
120
|
fprime_gds/common/utils/data_desc_type.py,sha256=0AkEMfEa5refd_moovf1hkgKiNakADRzv4soghvf9a4,883
|
122
121
|
fprime_gds/common/utils/event_severity.py,sha256=7qPXHrDaM_REJ7sKBUEJTZIE0D4qVnVajsPDUuHg7sI,300
|
123
122
|
fprime_gds/common/utils/string_util.py,sha256=u_2iahRG3ROu3lAAt_KVcK226gEByElXqrA8mH8eDpI,3584
|
124
123
|
fprime_gds/executables/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
125
|
-
fprime_gds/executables/apps.py,sha256=
|
126
|
-
fprime_gds/executables/cli.py,sha256=
|
124
|
+
fprime_gds/executables/apps.py,sha256=_OLWxby1XvYmmDcecsOAKu34XGf952_ya5uRWf_8Y3I,15127
|
125
|
+
fprime_gds/executables/cli.py,sha256=OqcBOpvnj8f8wZjntfbr-pNzCEF3P_-eA58kBqK7iDg,52216
|
127
126
|
fprime_gds/executables/comm.py,sha256=08rO0o0MJgTRngB7Ygu2IL_gEAWKF7WFvFyro1CqReE,5214
|
128
127
|
fprime_gds/executables/data_product_writer.py,sha256=e1Rp2LT_Cpg08f0Ki8GhirC7Wn6LtYiAef7KLAkZHUY,37773
|
129
|
-
fprime_gds/executables/
|
130
|
-
fprime_gds/executables/
|
128
|
+
fprime_gds/executables/dictionary_merge.py,sha256=3Zy8LcbEdBwmNX2GLN_Nr1DfbLyWYHg-y4jdjTVCXgY,7966
|
129
|
+
fprime_gds/executables/fprime_cli.py,sha256=9_eNU7AzUOMhz4FLPkD_byA9C13c509wGPZN-kdw9Ok,12429
|
130
|
+
fprime_gds/executables/run_deployment.py,sha256=4K3isTF7C8FojFvzxLC8vaj1GZpKOuPZQ3CtIYdyhRE,7638
|
131
131
|
fprime_gds/executables/tcpserver.py,sha256=KspVpu5YIuiWKOk5E6UDMKvqXYrRB1j9aX8CkMxysfw,17555
|
132
132
|
fprime_gds/executables/utils.py,sha256=SbzXRe1p41qMPdifvPap5_4v0T42gZZ_Rs_OYfITd80,7626
|
133
133
|
fprime_gds/flask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -244,10 +244,10 @@ fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2,sha256=mDS4KtJuK
|
|
244
244
|
fprime_gds/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
245
245
|
fprime_gds/plugin/definitions.py,sha256=QlxW1gNvoiqGMslSJjh3dTFZuv0igFHawN__3XJ0Wns,5355
|
246
246
|
fprime_gds/plugin/system.py,sha256=M9xb-8jBhCUUx3X1z2uAP8Wx_v6NkL8JeaFgGcMnQqY,13432
|
247
|
-
fprime_gds-4.0.
|
248
|
-
fprime_gds-4.0.
|
249
|
-
fprime_gds-4.0.
|
250
|
-
fprime_gds-4.0.
|
251
|
-
fprime_gds-4.0.
|
252
|
-
fprime_gds-4.0.
|
253
|
-
fprime_gds-4.0.
|
247
|
+
fprime_gds-4.0.2a2.dist-info/licenses/LICENSE.txt,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
248
|
+
fprime_gds-4.0.2a2.dist-info/licenses/NOTICE.txt,sha256=vXjA_xRcQhd83Vfk5D_vXg5kOjnnXvLuMi5vFKDEVmg,1612
|
249
|
+
fprime_gds-4.0.2a2.dist-info/METADATA,sha256=t7Idkx-zA1DrvKJaxm_zVGZoTDFxw_UJtLY35Xje4R4,24576
|
250
|
+
fprime_gds-4.0.2a2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
251
|
+
fprime_gds-4.0.2a2.dist-info/entry_points.txt,sha256=16r0xeF-Qn-ducW_QvHiyrFnNjnLK-OOaTbqQIQpd0o,494
|
252
|
+
fprime_gds-4.0.2a2.dist-info/top_level.txt,sha256=6vzFLIX6ANfavKaXFHDMSLFtS94a6FaAsIWhjgYuSNE,27
|
253
|
+
fprime_gds-4.0.2a2.dist-info/RECORD,,
|
@@ -3,6 +3,7 @@ fprime-cli = fprime_gds.executables.fprime_cli:main
|
|
3
3
|
fprime-dp-write = fprime_gds.executables.data_product_writer:main
|
4
4
|
fprime-fpyc = fprime_gds.common.fpy.main:main
|
5
5
|
fprime-gds = fprime_gds.executables.run_deployment:main
|
6
|
+
fprime-merge-dictionary = fprime_gds.executables.dictionary_merge:main
|
6
7
|
fprime-prm-write = fprime_gds.common.tools.params:main
|
7
8
|
fprime-seqgen = fprime_gds.common.tools.seqgen:main
|
8
9
|
|
@@ -1,174 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Created on Apr. 27, 2015
|
3
|
-
|
4
|
-
@author: reder
|
5
|
-
"""
|
6
|
-
|
7
|
-
from fprime.common.models.serialize.type_base import BaseType
|
8
|
-
|
9
|
-
# Import the types this way so they do not need prefixing for execution.
|
10
|
-
from fprime.common.models.serialize.type_exceptions import (
|
11
|
-
TypeException,
|
12
|
-
TypeMismatchException,
|
13
|
-
)
|
14
|
-
|
15
|
-
|
16
|
-
class Channel:
|
17
|
-
"""
|
18
|
-
Channel class is for deserialize channel telemetry value.
|
19
|
-
Really this is a container since the type will have it's own deserialize
|
20
|
-
implementation.
|
21
|
-
"""
|
22
|
-
|
23
|
-
def __init__(
|
24
|
-
self,
|
25
|
-
name,
|
26
|
-
channel_id,
|
27
|
-
comp_name,
|
28
|
-
ch_description,
|
29
|
-
ch_type,
|
30
|
-
ch_format_string,
|
31
|
-
low_red,
|
32
|
-
low_orange,
|
33
|
-
low_yellow,
|
34
|
-
high_yellow,
|
35
|
-
high_orange,
|
36
|
-
high_red,
|
37
|
-
):
|
38
|
-
"""
|
39
|
-
Constructor
|
40
|
-
"""
|
41
|
-
#
|
42
|
-
# Make sure correct types are passed
|
43
|
-
#
|
44
|
-
if not isinstance(name, str):
|
45
|
-
raise TypeMismatchException(str, type(name))
|
46
|
-
|
47
|
-
if not isinstance(channel_id, int):
|
48
|
-
raise TypeMismatchException(int, type(channel_id))
|
49
|
-
|
50
|
-
if not isinstance(ch_description, str):
|
51
|
-
raise TypeMismatchException(str, type(ch_description))
|
52
|
-
|
53
|
-
if not isinstance(ch_type, BaseType):
|
54
|
-
raise TypeMismatchException(BaseType, type(ch_type))
|
55
|
-
|
56
|
-
# Initialize event internal variables
|
57
|
-
self.__name = name
|
58
|
-
self.__comp_name = comp_name
|
59
|
-
self.__id = channel_id
|
60
|
-
self.__ch_desc = ch_description
|
61
|
-
self.__ch_type = ch_type
|
62
|
-
self.__format_string = ch_format_string
|
63
|
-
self.__low_red = low_red
|
64
|
-
self.__low_orange = low_orange
|
65
|
-
self.__low_yellow = low_yellow
|
66
|
-
self.__high_yellow = high_yellow
|
67
|
-
self.__high_orange = high_orange
|
68
|
-
self.__high_red = high_red
|
69
|
-
#
|
70
|
-
self.__time_base = None
|
71
|
-
self.__time_context = None
|
72
|
-
self.__time_sec = None
|
73
|
-
self.__time_usec = None
|
74
|
-
#
|
75
|
-
self.__changed = False
|
76
|
-
|
77
|
-
def deserialize(self, ser_data, offset):
|
78
|
-
"""
|
79
|
-
Deserialize event arguments
|
80
|
-
:param ser_data: Binary input of the channel value.
|
81
|
-
:param offset: offset in data to deserialize from
|
82
|
-
:return: value from deserialized channel
|
83
|
-
"""
|
84
|
-
try:
|
85
|
-
self.__ch_type.deserialize(ser_data, offset)
|
86
|
-
val = self.__ch_type.val
|
87
|
-
except TypeException as e:
|
88
|
-
print(f"Channel deserialize exception {e.getMsg()}")
|
89
|
-
val = "ERR"
|
90
|
-
|
91
|
-
#
|
92
|
-
return val
|
93
|
-
|
94
|
-
def setTime(self, time_base, time_context, time_sec, time_usec):
|
95
|
-
"""
|
96
|
-
Channel telemetry time updater.
|
97
|
-
"""
|
98
|
-
self.__time_base = time_base
|
99
|
-
self.__time_context = time_context
|
100
|
-
self.__time_sec = time_sec
|
101
|
-
self.__time_usec = time_usec
|
102
|
-
|
103
|
-
def getTime(self):
|
104
|
-
"""
|
105
|
-
Return time tuple for UI updater use.
|
106
|
-
"""
|
107
|
-
return (
|
108
|
-
self.__time_base,
|
109
|
-
self.__time_context,
|
110
|
-
self.__time_sec,
|
111
|
-
self.__time_usec,
|
112
|
-
)
|
113
|
-
|
114
|
-
def getName(self):
|
115
|
-
return self.__name
|
116
|
-
|
117
|
-
def getCompName(self):
|
118
|
-
return self.__comp_name
|
119
|
-
|
120
|
-
def getId(self):
|
121
|
-
return self.__id
|
122
|
-
|
123
|
-
def getChDesc(self):
|
124
|
-
return self.__ch_desc
|
125
|
-
|
126
|
-
def getType(self):
|
127
|
-
return self.__ch_type
|
128
|
-
|
129
|
-
def getTimeBase(self):
|
130
|
-
return self.__time_base
|
131
|
-
|
132
|
-
def getTimeContext(self):
|
133
|
-
return self.__time_context
|
134
|
-
|
135
|
-
def getTimeSec(self):
|
136
|
-
return self.__time_sec
|
137
|
-
|
138
|
-
def getTimeUsec(self):
|
139
|
-
return self.__time_usec
|
140
|
-
|
141
|
-
def getFormatString(self):
|
142
|
-
return self.__format_string
|
143
|
-
|
144
|
-
def getLowRed(self):
|
145
|
-
return self.__low_red
|
146
|
-
|
147
|
-
def getLowOrange(self):
|
148
|
-
return self.__low_orange
|
149
|
-
|
150
|
-
def getLowYellow(self):
|
151
|
-
return self.__low_yellow
|
152
|
-
|
153
|
-
def getHighYellow(self):
|
154
|
-
return self.__high_yellow
|
155
|
-
|
156
|
-
def getHighOrange(self):
|
157
|
-
return self.__high_orange
|
158
|
-
|
159
|
-
def getHighRed(self):
|
160
|
-
return self.__high_red
|
161
|
-
|
162
|
-
@property
|
163
|
-
def changed(self):
|
164
|
-
"""
|
165
|
-
change is True if recently updated.
|
166
|
-
change is False if not changed.
|
167
|
-
"""
|
168
|
-
return self.__changed
|
169
|
-
|
170
|
-
@changed.setter
|
171
|
-
def changed(self, ch):
|
172
|
-
if ch is not False or ch is not True:
|
173
|
-
ch = True
|
174
|
-
self.__changed = ch
|
@@ -1,121 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Created on Feb. 9, 2015
|
3
|
-
|
4
|
-
@author: reder
|
5
|
-
"""
|
6
|
-
|
7
|
-
import traceback
|
8
|
-
from enum import Enum
|
9
|
-
|
10
|
-
from fprime.common.models.serialize.type_base import BaseType
|
11
|
-
|
12
|
-
# Import the types this way so they do not need prefixing for execution.
|
13
|
-
from fprime.common.models.serialize.type_exceptions import (
|
14
|
-
TypeException,
|
15
|
-
TypeMismatchException,
|
16
|
-
)
|
17
|
-
|
18
|
-
Severity = Enum(
|
19
|
-
"Severity", "COMMAND ACTIVITY_LO ACTIVITY_HI WARNING_LO WARNING_HI DIAGNOSTIC FATAL"
|
20
|
-
)
|
21
|
-
|
22
|
-
|
23
|
-
class Event:
|
24
|
-
"""
|
25
|
-
Event class is for deserializing log event messages.
|
26
|
-
THis is essentially the equivalent of EVR's in MSL, SMAP, etc.
|
27
|
-
"""
|
28
|
-
|
29
|
-
def __init__(
|
30
|
-
self, name, event_id, severity, format_string, event_description, arguments
|
31
|
-
):
|
32
|
-
"""
|
33
|
-
Constructor
|
34
|
-
"""
|
35
|
-
|
36
|
-
# Make sure correct types are passed
|
37
|
-
|
38
|
-
if not isinstance(name, str):
|
39
|
-
raise TypeMismatchException(str, type(name))
|
40
|
-
|
41
|
-
if not isinstance(event_id, int):
|
42
|
-
raise TypeMismatchException(int, type(event_id))
|
43
|
-
|
44
|
-
if not isinstance(format_string, str):
|
45
|
-
raise TypeMismatchException(str, type(format_string))
|
46
|
-
|
47
|
-
if not isinstance(event_description, str):
|
48
|
-
raise TypeMismatchException(str, type(event_description))
|
49
|
-
|
50
|
-
if not isinstance(arguments, list):
|
51
|
-
raise TypeMismatchException(list, type(arguments))
|
52
|
-
|
53
|
-
for (argname, argdesc, argtype) in arguments:
|
54
|
-
#
|
55
|
-
if not isinstance(argname, str):
|
56
|
-
raise TypeMismatchException(str, type(argname))
|
57
|
-
#
|
58
|
-
if not isinstance(argdesc, str):
|
59
|
-
raise TypeMismatchException(str, type(argdesc))
|
60
|
-
#
|
61
|
-
if not isinstance(argtype, BaseType):
|
62
|
-
raise TypeMismatchException(BaseType, type(argtype))
|
63
|
-
|
64
|
-
# Initialize event internal variables
|
65
|
-
self.__name = name
|
66
|
-
self.__id = event_id
|
67
|
-
self.__severity = severity
|
68
|
-
self.__format_string = format_string
|
69
|
-
self.__event_description = event_description
|
70
|
-
self.__arguments = arguments
|
71
|
-
|
72
|
-
def deserialize(self, ser_data):
|
73
|
-
"""
|
74
|
-
Deserialize event arguments
|
75
|
-
@param ser_data: Binary input data of id followed by args
|
76
|
-
"""
|
77
|
-
vals = []
|
78
|
-
#
|
79
|
-
# Next parse the arguments.
|
80
|
-
#
|
81
|
-
args = list(self.__arguments)
|
82
|
-
offset = 0
|
83
|
-
for arg in args:
|
84
|
-
arg_obj = arg[2]
|
85
|
-
try:
|
86
|
-
# print arg_obj
|
87
|
-
arg_obj.deserialize(ser_data, offset)
|
88
|
-
vals.append(arg_obj.val)
|
89
|
-
except TypeException as e:
|
90
|
-
print(f"Event deserialize exception {e.getMsg()}")
|
91
|
-
traceback.print_exc()
|
92
|
-
vals.append("ERR")
|
93
|
-
offset = offset + arg_obj.getSize()
|
94
|
-
|
95
|
-
vals = [0] + vals
|
96
|
-
return vals
|
97
|
-
|
98
|
-
def stringify(self, event_args_list):
|
99
|
-
"""
|
100
|
-
Return a formatted string of event args.
|
101
|
-
"""
|
102
|
-
# print event_args_list
|
103
|
-
return self.__format_string % tuple(event_args_list[1:])
|
104
|
-
|
105
|
-
def getName(self):
|
106
|
-
return self.__name
|
107
|
-
|
108
|
-
def getId(self):
|
109
|
-
return self.__id
|
110
|
-
|
111
|
-
def getSeverity(self):
|
112
|
-
return self.__severity
|
113
|
-
|
114
|
-
def getFormatString(self):
|
115
|
-
return self.__format_string
|
116
|
-
|
117
|
-
def getEventDescription(self):
|
118
|
-
return self.__event_description
|
119
|
-
|
120
|
-
def getArgs(self):
|
121
|
-
return self.__arguments
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|