holado 0.9.3__py3-none-any.whl → 0.10.0__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.

Potentially problematic release.


This version of holado might be problematic. Click here for more details.

Files changed (38) hide show
  1. holado/__init__.py +24 -6
  2. holado/holado_config.py +4 -1
  3. {holado-0.9.3.dist-info → holado-0.10.0.dist-info}/METADATA +1 -1
  4. {holado-0.9.3.dist-info → holado-0.10.0.dist-info}/RECORD +38 -37
  5. holado_ais/ais/ais_messages.py +32 -2
  6. holado_ais/tests/behave/steps/ais/ais_messages_steps.py +23 -3
  7. holado_core/common/tools/path_manager.py +6 -3
  8. holado_docker/tools/docker_controller/server/rest/run.py +5 -2
  9. holado_docker/tools/docker_viewer/server/rest/run.py +5 -2
  10. holado_test/test_server/server/rest/run.py +2 -1
  11. test_holado/environment.py +3 -1
  12. test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature +1 -1
  13. test_holado/features/NonReg/holado_ais/ais_message-nmea_raw_to_dict.feature +93 -0
  14. test_holado/features/NonReg/holado_ais/message_types/type-10.feature +1 -1
  15. test_holado/features/NonReg/holado_ais/message_types/type-12.feature +1 -1
  16. test_holado/features/NonReg/holado_ais/message_types/type-14.feature +1 -1
  17. test_holado/features/NonReg/holado_ais/message_types/type-15.feature +1 -1
  18. test_holado/features/NonReg/holado_ais/message_types/type-16.feature +1 -1
  19. test_holado/features/NonReg/holado_ais/message_types/type-17.feature +1 -1
  20. test_holado/features/NonReg/holado_ais/message_types/type-18.feature +1 -1
  21. test_holado/features/NonReg/holado_ais/message_types/type-19.feature +1 -1
  22. test_holado/features/NonReg/holado_ais/message_types/type-1_2_3.feature +1 -1
  23. test_holado/features/NonReg/holado_ais/message_types/type-20.feature +1 -1
  24. test_holado/features/NonReg/holado_ais/message_types/type-21.feature +1 -1
  25. test_holado/features/NonReg/holado_ais/message_types/type-22.feature +2 -2
  26. test_holado/features/NonReg/holado_ais/message_types/type-23.feature +1 -1
  27. test_holado/features/NonReg/holado_ais/message_types/type-24.feature +2 -2
  28. test_holado/features/NonReg/holado_ais/message_types/type-25.feature +4 -4
  29. test_holado/features/NonReg/holado_ais/message_types/type-26.feature +4 -4
  30. test_holado/features/NonReg/holado_ais/message_types/type-27.feature +1 -1
  31. test_holado/features/NonReg/holado_ais/message_types/type-4_11.feature +1 -1
  32. test_holado/features/NonReg/holado_ais/message_types/type-5.feature +1 -1
  33. test_holado/features/NonReg/holado_ais/message_types/type-6.feature +1 -1
  34. test_holado/features/NonReg/holado_ais/message_types/type-7_13.feature +1 -1
  35. test_holado/features/NonReg/holado_ais/message_types/type-8.feature +1 -1
  36. test_holado/features/NonReg/holado_ais/message_types/type-9.feature +1 -1
  37. {holado-0.9.3.dist-info → holado-0.10.0.dist-info}/WHEEL +0 -0
  38. {holado-0.9.3.dist-info → holado-0.10.0.dist-info}/licenses/LICENSE +0 -0
holado/__init__.py CHANGED
@@ -82,8 +82,8 @@ def initialize_minimal():
82
82
  garbage_collector_periodicity=None)
83
83
 
84
84
  def initialize(TSessionContext=None, use_holado_logger=True, logging_config_file_path=None,
85
- log_level=None, log_time_in_utc=None, log_on_console=False, log_in_file=True, session_kwargs=None,
86
- garbage_collector_periodicity=default_value):
85
+ log_level=None, log_time_in_utc=None, log_on_console=False, log_in_file=True,
86
+ config_kwargs=None, session_kwargs=None, garbage_collector_periodicity=default_value):
87
87
  global __initialized
88
88
  if __initialized:
89
89
  from holado_core.common.exceptions.technical_exception import TechnicalException
@@ -113,10 +113,16 @@ def initialize(TSessionContext=None, use_holado_logger=True, logging_config_file
113
113
  if Tools.do_log(logger, logging.DEBUG):
114
114
  logger.debug("Configured logging")
115
115
 
116
+ # Import modules
116
117
  if Tools.do_log(logger, logging.DEBUG):
117
118
  logger.debug("Importing HolAdo modules")
118
119
  _import_modules(get_holado_module_names())
119
120
 
121
+ # Update config with given kwargs
122
+ # Note: it is made after modules import to enable override modules specific config parameters
123
+ _update_config(config_kwargs)
124
+
125
+ # Initialize session context
120
126
  _initialize_session_context(session_kwargs)
121
127
 
122
128
  # Initialize garbage collector
@@ -133,17 +139,29 @@ def initialize(TSessionContext=None, use_holado_logger=True, logging_config_file
133
139
  __initialized = True
134
140
 
135
141
  def initialize_for_script(TSessionContext=None, use_holado_logger=True, logging_config_file_path=None,
136
- log_level=logging.WARNING, log_on_console=True, log_in_file=False, session_kwargs=None,
137
- garbage_collector_periodicity=None):
142
+ log_level=logging.WARNING, log_time_in_utc=None, log_on_console=True, log_in_file=False,
143
+ config_kwargs=None, session_kwargs=None, garbage_collector_periodicity=None):
138
144
  if session_kwargs is None:
139
145
  session_kwargs={'with_session_path':log_in_file, 'raise_if_not_exist':False}
140
146
 
141
147
  initialize(TSessionContext=TSessionContext, use_holado_logger=use_holado_logger, logging_config_file_path=logging_config_file_path,
142
- log_level=log_level, log_on_console=log_on_console, log_in_file=log_in_file,
143
- session_kwargs=session_kwargs,
148
+ log_level=log_level, log_time_in_utc=log_time_in_utc, log_on_console=log_on_console, log_in_file=log_in_file,
149
+ config_kwargs=config_kwargs, session_kwargs=session_kwargs,
144
150
  garbage_collector_periodicity=garbage_collector_periodicity )
145
151
 
152
+
153
+ def _update_config(config_kwargs):
154
+ from holado.holado_config import Config
146
155
 
156
+ if config_kwargs is not None:
157
+ for name, value in config_kwargs.items():
158
+ if hasattr(Config, name):
159
+ setattr(Config, name, value)
160
+ else:
161
+ from holado_core.common.exceptions.technical_exception import TechnicalException
162
+ from holado_python.standard_library.typing import Typing
163
+ raise TechnicalException(f"Parameter '{name}' is not configurable, it doesn't exist. Available configurable parameters: {Typing.get_object_attributes(Config)}")
164
+
147
165
  def _initialize_session_context(session_kwargs=None):
148
166
  from holado_core.common.tools.tools import Tools
149
167
 
holado/holado_config.py CHANGED
@@ -15,7 +15,10 @@ import logging
15
15
 
16
16
  class Config(object):
17
17
  """HolAdo project configuration"""
18
-
18
+
19
+ # Application properties
20
+ application_group = None
21
+
19
22
  # Timeouts
20
23
  session_timeout_seconds = 7 * 24 * 3600 # Session timeout is by default to 7 days
21
24
  timeout_seconds = 240 # Default timeout
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holado
3
- Version: 0.9.3
3
+ Version: 0.10.0
4
4
  Summary: HolAdo framework
5
5
  Project-URL: Homepage, https://gitlab.com/holado_framework/python
6
6
  Project-URL: Issues, https://gitlab.com/holado_framework/python/-/issues
@@ -1,5 +1,5 @@
1
- holado/__init__.py,sha256=VUOUKhp-7JRRdYwwXGhuAK0IxqWCDxjPSo6j_Y4vfvA,16011
2
- holado/holado_config.py,sha256=dZADu2J87H0mtCBFURZVebLGihn_JNSAsNQtH9vq_e8,2479
1
+ holado/__init__.py,sha256=dQKHAMF-TxtzuUtXxEVzLCcZfVvcKFY00CYrW0d1Fbg,16979
2
+ holado/holado_config.py,sha256=auz-mOLCkz9JVlx3xx5XL-fZt2kAs1NjZnHU9LOG5qw,2546
3
3
  holado/common/__init__.py,sha256=ZjXM-FRQgnfzRNXqcvJOGewDHVRR-U5-ugStSs8U2Xs,1525
4
4
  holado/common/context/__init__.py,sha256=3jJBLm8myrYF9jbdV1EhIA6BtnlmjX33eeoDpTzwmLA,1604
5
5
  holado/common/context/context.py,sha256=MV8A6JSpUcTcfia_QzjyDLybQC50rZ-NA0ffotnHXQY,11994
@@ -14,14 +14,14 @@ holado/common/tools/gc_manager.py,sha256=TjQg7MisGRhxuiQ22hB3IuqNhnWCVEWpU253-rO
14
14
  holado_ais/__init__.py,sha256=Mudcgu_7p1hBDBs6LpSz757H4haB0yLHgT70sznG82c,1807
15
15
  holado_ais/ais/MaritimeIdentificationDigits.csv,sha256=r-uHt4wOvxlbA26af9e-N3BKbuiMf6ia3PN0ZGfYk2A,8547
16
16
  holado_ais/ais/ais_manager.py,sha256=QvN94JoUBbSXT08HABl2FNsAVOM-YCmQO5tN9COg6Rc,6496
17
- holado_ais/ais/ais_messages.py,sha256=-kAQCgHwNZpmtMqx4LsGBGuxQTJfj80fUB9U5xxiHNs,15991
17
+ holado_ais/ais/ais_messages.py,sha256=ppJQOP4L0CAYlG5AFESeDLziN9aK2Q92tXF-wZ6Xkl0,17520
18
18
  holado_ais/ais/ais_payload.py,sha256=mdOa_4JIbkFLK4_KUmQF5jUt1nLxvZhmIcqK8i-YY6w,1791
19
19
  holado_ais/ais/enums.py,sha256=bsqfJVg65fWiJwL_VlSKwKgTY0pLoDcI4T06aEOcQnw,1108
20
20
  holado_ais/ais/patch_pyais.py,sha256=M4Fa8GZubXx4auRsk5I1yQPC40IR1p-1iVZIc4PXFfk,49850
21
21
  holado_ais/tests/behave/steps/__init__.py,sha256=cM4YsjHIq0Tb9mTTJjvDojzhLwov6mc2RyjZz8XLVA8,1321
22
22
  holado_ais/tests/behave/steps/ais/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  holado_ais/tests/behave/steps/ais/ais_manager_steps.py,sha256=nRtJUEyAzAqgm0UWwRUFAyOzhDxzRZKTGsEYU1DwE-Q,2170
24
- holado_ais/tests/behave/steps/ais/ais_messages_steps.py,sha256=jqRupZyEc5jn_jwvAQJqVb-0cUTx77VBIGNGUvgt_sA,10471
24
+ holado_ais/tests/behave/steps/ais/ais_messages_steps.py,sha256=XMBpCqtyRBQJ2ODRxRN-tVcWr7O72c2o0Yy-0Sd5phE,11741
25
25
  holado_binary/__init__.py,sha256=Gl285tg-QaPE-3etWwZql9sH26G7EnVoQn97B0NMvOI,1248
26
26
  holado_binary/ipc/binary.py,sha256=QYwK7jK4dzXRKprHMxnTxFljMy1LZDSXjMJ406yEOHk,5520
27
27
  holado_binary/ipc/bit_series.py,sha256=PNuW_OXGV8yeRrMHxMPImR75np52KpcDOfXXdDKObWw,15508
@@ -126,7 +126,7 @@ holado_core/common/tables/comparators/table_with_header_comparator.py,sha256=j7B
126
126
  holado_core/common/tables/converters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
127
  holado_core/common/tables/converters/table_converter.py,sha256=PD7NJoxtejpr4aS1l3YKcXW1aEn1xBxdi4Ljs5G7R4g,10251
128
128
  holado_core/common/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
- holado_core/common/tools/path_manager.py,sha256=vwf07C51H03RoZ-w3xLZQgKbC9XuOZlKm5zslXGhK_I,10743
129
+ holado_core/common/tools/path_manager.py,sha256=27kLsvS2PfbZufG6P7T_-7N9Dh4dY3wgSZUwjM6ta_A,10876
130
130
  holado_core/common/tools/string_tools.py,sha256=bQuMlI_yS7OoSPFL7qyfyXkrnjC8xHVpIsfmEC6JxhI,5590
131
131
  holado_core/common/tools/tools.py,sha256=zkDz7u8S_02bfyN6K-p7-Ey_SkDxzu9DJljnczY0OAo,9683
132
132
  holado_core/common/tools/comparators/comparator.py,sha256=K4LcXIRORHX5vkmDibI6P6Bu1L-6Xezb63ZzzOMKrWY,6812
@@ -205,7 +205,7 @@ holado_docker/tools/docker_controller/server/grpc/proto/definitions/docker_contr
205
205
  holado_docker/tools/docker_controller/server/rest/README,sha256=-uqu3drdPXkPkU4ha1IKcXGBHFIBEWH-uiTT74DExwE,167
206
206
  holado_docker/tools/docker_controller/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
207
207
  holado_docker/tools/docker_controller/server/rest/openapi.yaml,sha256=8mhJdAYi-wftxdStsD6el0j1Zo8zqx1MzwqZndyKhMY,6864
208
- holado_docker/tools/docker_controller/server/rest/run.py,sha256=8w5Xl7uOnjsYW59cmuUMOUd71fcXQn30k2jVis7cVNs,1748
208
+ holado_docker/tools/docker_controller/server/rest/run.py,sha256=4bEcRbobax-b8MugINb852Tdg6r-nQlfa8_bfil8xDE,2011
209
209
  holado_docker/tools/docker_controller/server/rest/api/__init__.py,sha256=FlLRagAiw1LDxnF0CmW7Y6bVXuj8x6volT8-DuHTTVY,2427
210
210
  holado_docker/tools/docker_controller/server/rest/api/config.py,sha256=Ln__1bsigSzJZ-Iy3MQgmiZMnpBxC3TCQE0O72g5cAs,2459
211
211
  holado_docker/tools/docker_controller/server/rest/api/container.py,sha256=6D612WF4chpDCzr4MBzZXzELxi-yOwrgxCxSBBVMcVo,2673
@@ -218,7 +218,7 @@ holado_docker/tools/docker_viewer/server/run_docker_viewer_in_docker.sh,sha256=q
218
218
  holado_docker/tools/docker_viewer/server/rest/README,sha256=1FMg-U_D9pUMBVmZJsirOXHFLTciDL5jB-Yqzp9U6uM,163
219
219
  holado_docker/tools/docker_viewer/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
220
220
  holado_docker/tools/docker_viewer/server/rest/openapi.yaml,sha256=ZBjVs7Ld1VCdTBk7FgZXEvUACtn6aDdv8cHDE669YZc,1715
221
- holado_docker/tools/docker_viewer/server/rest/run.py,sha256=8w5Xl7uOnjsYW59cmuUMOUd71fcXQn30k2jVis7cVNs,1748
221
+ holado_docker/tools/docker_viewer/server/rest/run.py,sha256=jgJgmFFdppadLBahWU8Yw8-PdA5HJzBTDCPTPHGRzbA,2007
222
222
  holado_docker/tools/docker_viewer/server/rest/api/__init__.py,sha256=FlLRagAiw1LDxnF0CmW7Y6bVXuj8x6volT8-DuHTTVY,2427
223
223
  holado_examples/projects/server_rest/server_rest_example/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
224
224
  holado_examples/projects/server_rest/server_rest_example/rest_server.py,sha256=xMLHBwGBdBvT0DYOpGBuvnSXNjEu3cvU9ty_h187QW4,1887
@@ -512,7 +512,7 @@ holado_test/test_server/server/rest/README,sha256=J_LIXWFxtxc8okQGZ8Kk0dMSRra9oU
512
512
  holado_test/test_server/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
513
513
  holado_test/test_server/server/rest/logging.conf,sha256=yeNIHFQCYlDmkdLlQ3NCoMuxpUNn6i8ZDAzOUna_2aA,1282
514
514
  holado_test/test_server/server/rest/openapi.yaml,sha256=4Juf_QggWo7z9te3_sS96TxxARWU1MtFkJZAilEsxr8,1027
515
- holado_test/test_server/server/rest/run.py,sha256=0BC3fHDDaE28IoObQrICUatDRAOiFxrb0WU_VZU2q4Y,2321
515
+ holado_test/test_server/server/rest/run.py,sha256=xS_uCK7X3XqcuvpSSesW7xx9PE6FbFvwj0CqxBDWIks,2389
516
516
  holado_test/test_server/server/rest/api/__init__.py,sha256=4QcsiWhFX0sGhJYuoqUUfwEYb6ceIDlFFlU1q3ls7Xc,1442
517
517
  holado_test/test_server/server/rest/api/campaign/__init__.py,sha256=btZb20N5k7_WbowNAC1C7yYDUkwPnUU5QUmh-jO0bhg,1586
518
518
  holado_test/test_server/server/rest/api/campaign/scenario.py,sha256=4eTIScEGL0GKD7g6aIPHJVvaVbwz487zlEg9mRQv84Y,1737
@@ -552,7 +552,7 @@ test_holado/Dockerfile_test_holado,sha256=zO6OUFnC1X9ZG7fPWWWfcWgZwnxif4WDE4ZDEm
552
552
  test_holado/__init__.py,sha256=TIHAHrF05rvz6-VDKuDBSBjasD6PxTxXvcXjMEC3D6E,54
553
553
  test_holado/__main__.py,sha256=PVdCX8V_RGRzbQQKVxf7eyt8a10XfUJ1pcaajGgIlus,1509
554
554
  test_holado/build_docker_image_to_test_holado_in_docker.sh,sha256=B3hbi0yKnEC-t9S18o6ZR27AU1bqiuptwOqm6H7tv8s,142
555
- test_holado/environment.py,sha256=wfVHsu_e67cjARLwmDsECbPH-yZN5WGJOeJj61-gmeM,2293
555
+ test_holado/environment.py,sha256=SLGJ2v1BoyP_s_KucvuQJLnWPzPJAD6cS4C8eBNaJW8,2381
556
556
  test_holado/initialize_holado.py,sha256=IPYH-GYNiHV5-7ZCCH6CFmPpmACsPrTV74TYz3MRjpA,3102
557
557
  test_holado/logging.conf,sha256=au0QmrtF97ZxuVhgItHXdMLalkxAkxuWtgoOvGivfxc,1312
558
558
  test_holado/test_holado_session_context.py,sha256=qOB_i2k8mYjkR3-q2uv0B04xFc1K3p-K20ttYwe1Z18,1364
@@ -566,30 +566,31 @@ test_holado/features/NonReg/common/tables/table.feature,sha256=JRBfjuhCF7gmU_Has
566
566
  test_holado/features/NonReg/common/tables/value_table_conversion.feature,sha256=FRpm7ai5l7rvIbjy2fFXYZU-7juV_ZrOv2LUZtl4YtM,1061
567
567
  test_holado/features/NonReg/common/tools/DateTime.feature,sha256=Gf59f3iOdlE2fDnnZyNhz9SMqnl0W9mfLKvaWQVPuv4,3606
568
568
  test_holado/features/NonReg/common/tools/UniqueValueManager.feature,sha256=Ok-f0RB01KQGIbEVyZ8nNmXJ3Y-qs3rzHg1_EPHIkuQ,995
569
- test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature,sha256=ILT9HR_v9kRSfoycMWtH329G5Wtx6H4Tu-V_uXXWphA,14188
570
- test_holado/features/NonReg/holado_ais/message_types/type-10.feature,sha256=XNk-Z0HlLmDJPSDlgCMTeMGyIXo3rKS9As1C3IQCHUY,1495
571
- test_holado/features/NonReg/holado_ais/message_types/type-12.feature,sha256=qG1Yt4klAdDpGi8ZU2NHeSsl3_wjIJr__iFcu_83v4g,1715
572
- test_holado/features/NonReg/holado_ais/message_types/type-14.feature,sha256=ohBmsbuthRMRGtmfMj-aPpdupUG4O1mYSAHNsU14RdA,1570
573
- test_holado/features/NonReg/holado_ais/message_types/type-15.feature,sha256=awQKEh-vYcT-Pco0TqdNBzb209YISpfJC7GCQRZxChg,1915
574
- test_holado/features/NonReg/holado_ais/message_types/type-16.feature,sha256=9uBLWdoUAJbcQ8XjY1TFkUXzskDJh4vxT4gSX-q3Snc,1803
575
- test_holado/features/NonReg/holado_ais/message_types/type-17.feature,sha256=SdLR3yxQ1VcYLpjIi_IOzs7tiv-1b293rRxGAvPo1xE,1743
576
- test_holado/features/NonReg/holado_ais/message_types/type-18.feature,sha256=J0c85rJWEyV7qSo9IL4nE56qAy8PmJpKTVDJFXlERug,2357
577
- test_holado/features/NonReg/holado_ais/message_types/type-19.feature,sha256=5GRe7IXmGc_-zhLiB9vsx9fIgG-uTQ4YuEPQbHWnnI8,2568
578
- test_holado/features/NonReg/holado_ais/message_types/type-1_2_3.feature,sha256=30JTq9xcfdLJUesQUP09RXIg8MQvxql8yKnFlZoWYiQ,2283
579
- test_holado/features/NonReg/holado_ais/message_types/type-20.feature,sha256=badMirPaJRTsbhsfNZvv4FEV0rB8lScEE-2xivAitrU,2466
580
- test_holado/features/NonReg/holado_ais/message_types/type-21.feature,sha256=xDqfzp2z1gRuCIe553bQ0AVUrcX2vGHN0fNVTWxrLQs,2464
581
- test_holado/features/NonReg/holado_ais/message_types/type-22.feature,sha256=x3RVWKorZH5E9ODOt6_vBWGtIQM9wCEOkxvCfemAxU8,4519
582
- test_holado/features/NonReg/holado_ais/message_types/type-23.feature,sha256=d5SfiA-bXGql2pNZ6x1sG2svR1jk_OxaqslRa1LKHQc,2216
583
- test_holado/features/NonReg/holado_ais/message_types/type-24.feature,sha256=ngYiOhE6D4dp5Cdm97REl20dbsfFbYhLBx-Y83p5g2Q,3621
584
- test_holado/features/NonReg/holado_ais/message_types/type-25.feature,sha256=ECBzw-IRdKJqL2nyCQ9NoEikWrb_e8e7eEBhOwRiCKg,6878
585
- test_holado/features/NonReg/holado_ais/message_types/type-26.feature,sha256=fiAhhYLK2yt2UibkWb_6D_3mSaRcK6sc0V8k7mDHbL0,7008
586
- test_holado/features/NonReg/holado_ais/message_types/type-27.feature,sha256=fYH4tVzZ2Ngsi6A4qr8Gui2fMDtVLPmDAsV5ycAYTiM,1817
587
- test_holado/features/NonReg/holado_ais/message_types/type-4_11.feature,sha256=uGc6JwB98Iiw97e7wXEgEOJJGzMkyIz5wjS-o2nb8JY,2172
588
- test_holado/features/NonReg/holado_ais/message_types/type-5.feature,sha256=aVxQap88Myeut9lWmCIR4ONgiTNh8gkRZneajTqAcMM,2431
589
- test_holado/features/NonReg/holado_ais/message_types/type-6.feature,sha256=q2Bcmjn-2yPHrK_VWsnoCY8MgGpLmcGdf8IXk6o6XPQ,1771
590
- test_holado/features/NonReg/holado_ais/message_types/type-7_13.feature,sha256=FcnduMuDb8RHnb7bODmL1I5EleMAQWIaUKJrTN-xnxg,2188
591
- test_holado/features/NonReg/holado_ais/message_types/type-8.feature,sha256=hYdJ8ln8fp06a0mNlVPErayC5t7k7162nVQwQ0XaRHo,1531
592
- test_holado/features/NonReg/holado_ais/message_types/type-9.feature,sha256=JNiBFcp6wQwDRWt63DYdoPtsSsMGu8n79EbN3k0hsyk,2074
569
+ test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature,sha256=HHtOn0daKy5gDAWJuQYhwXzWmrrwUDdKLKI9JIY6Pmg,14189
570
+ test_holado/features/NonReg/holado_ais/ais_message-nmea_raw_to_dict.feature,sha256=6BDax9rgBrgRl84R7OR3XSehVes9lmHy_f5SsymVUic,3586
571
+ test_holado/features/NonReg/holado_ais/message_types/type-10.feature,sha256=NCsV9FVHLcUY3_VZckl8rWCuSLNck8rFDk5DlcY0EQw,1494
572
+ test_holado/features/NonReg/holado_ais/message_types/type-12.feature,sha256=De6q7dkltXCpAkPxV_rgZ33uTsR3atavDajMpVx0t_k,1714
573
+ test_holado/features/NonReg/holado_ais/message_types/type-14.feature,sha256=IniZ39Zn5U2I8CF0wvdK1MgMUisqbFZKeCslN04wWjI,1569
574
+ test_holado/features/NonReg/holado_ais/message_types/type-15.feature,sha256=yZGEiyt9KQaVbzzTO-M_cACymxQ2ZH6XvIGeewmvHeQ,1914
575
+ test_holado/features/NonReg/holado_ais/message_types/type-16.feature,sha256=gU7GNifRz8TEIpGcgX__qkz3rlAvuWz2svbPvJGxXW4,1802
576
+ test_holado/features/NonReg/holado_ais/message_types/type-17.feature,sha256=fbI7-4ZURy-etZ13GEwlSnxQAu3tymGS2EPygpEC_T0,1742
577
+ test_holado/features/NonReg/holado_ais/message_types/type-18.feature,sha256=x3ZEUBdSPNDwZjltK8GbAXOAgYhWS5OT2HWEmkLHdog,2356
578
+ test_holado/features/NonReg/holado_ais/message_types/type-19.feature,sha256=rOfMtO_CiGOAH38irzLskYndd7LJQSk8dt1YXkUuC5U,2567
579
+ test_holado/features/NonReg/holado_ais/message_types/type-1_2_3.feature,sha256=VLRKzUM2xAIXpVpDSzhVyY0wRF01mWGxZh0RNvnkQKA,2282
580
+ test_holado/features/NonReg/holado_ais/message_types/type-20.feature,sha256=69lCRDh1plqcJNqxczMjO4NQv_qhvo0xTcH0VqvoJSs,2465
581
+ test_holado/features/NonReg/holado_ais/message_types/type-21.feature,sha256=FrBGZbGQgc4nWSlxkDIP8ESElUSuVaD9as-Ebz2y2Gs,2463
582
+ test_holado/features/NonReg/holado_ais/message_types/type-22.feature,sha256=gWWMoZ_fleEjw7lUW_BvLuKZjf2uzcbJcZFDCB6-eSo,4517
583
+ test_holado/features/NonReg/holado_ais/message_types/type-23.feature,sha256=C_mST_R9C_HO88RskRbnXEDGb22UNsC7yM1t4F6fGn0,2215
584
+ test_holado/features/NonReg/holado_ais/message_types/type-24.feature,sha256=5_DMecsJ4cTSc_5sBtFPTEAN_kFv8VcxFdZS6YXj3rY,3619
585
+ test_holado/features/NonReg/holado_ais/message_types/type-25.feature,sha256=bGxJYHo_bMP1mwi3T2sCbQTJJ75K5qgB_fpTfb8Jcls,6874
586
+ test_holado/features/NonReg/holado_ais/message_types/type-26.feature,sha256=5qPr7AwgV-yc9HMhT5ViGzKqhlz5nkVesQfbRWjVDZM,7004
587
+ test_holado/features/NonReg/holado_ais/message_types/type-27.feature,sha256=d7BwUMjyuGdfuwnoy5PhSpv9K0kK_GA9qqQcfQMeZPQ,1816
588
+ test_holado/features/NonReg/holado_ais/message_types/type-4_11.feature,sha256=g2wv4vqjOqJSsliK_EnH42SlOrRnLggabsQEQTN1ZiQ,2171
589
+ test_holado/features/NonReg/holado_ais/message_types/type-5.feature,sha256=hM01jfco7qZAIwQFjMwelWkPXQsIv71Qb9kbpXZNfrY,2430
590
+ test_holado/features/NonReg/holado_ais/message_types/type-6.feature,sha256=f3QgGWYjHcAEV63e-dXo3dLXVmbmzEhQ2s362gIoyT8,1770
591
+ test_holado/features/NonReg/holado_ais/message_types/type-7_13.feature,sha256=lniTrxn42KDZdAnki7qyoF7x-LHp1lb3V0QH-aarN24,2187
592
+ test_holado/features/NonReg/holado_ais/message_types/type-8.feature,sha256=QWXB-3F2CLPh33svNeP0vtG56S2g41s8FATf0CBfVFo,1530
593
+ test_holado/features/NonReg/holado_ais/message_types/type-9.feature,sha256=d3RYPP2HObb10B_gsj-5i5btf5kiyAd8n2SyMU5m0NU,2073
593
594
  test_holado/features/NonReg/holado_binary/bit_series.error.feature,sha256=6RVQIb5oeuEHM-MvR0z9t_uT81GY0MbpZOxZp4qf_x4,1903
594
595
  test_holado/features/NonReg/holado_binary/bit_series.feature,sha256=_FS1JMDFtt3LzBOhl92wgdznZJxbPAiFx9Z_p4mpJ_U,5730
595
596
  test_holado/features/NonReg/holado_protobuf/protobuf.feature,sha256=5PjD4R_ow3lMwWNFuemGZ6J0_A2_pzn-oNY4aV-wsGg,11857
@@ -670,7 +671,7 @@ test_holado/tools/django/api_rest/api_rest/api1/serializers.py,sha256=o_YxFr-tgC
670
671
  test_holado/tools/django/api_rest/api_rest/api1/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
671
672
  test_holado/tools/django/api_rest/api_rest/api1/views.py,sha256=kOt2xT6bxO47_z__5yYR9kcYIWWv4qYzpX0K8Tqonik,758
672
673
  test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
673
- holado-0.9.3.dist-info/METADATA,sha256=W_XfLvh8aSgsFRRoREiihdApcOhYXEIiJ06opmCdOv8,7671
674
- holado-0.9.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
675
- holado-0.9.3.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
676
- holado-0.9.3.dist-info/RECORD,,
674
+ holado-0.10.0.dist-info/METADATA,sha256=oEi5XHFtWVdRSs9H_2nAI3A3dzSXFYiZosDZqVyflK4,7672
675
+ holado-0.10.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
676
+ holado-0.10.0.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
677
+ holado-0.10.0.dist-info/RECORD,,
@@ -83,7 +83,37 @@ class AISMessages(object):
83
83
  message_type = self.__get_message_type(msg_type)
84
84
  res = message_type.create(**data)
85
85
  return res
86
-
86
+
87
+ def decode_nmea_raw_as_dict(self, raw, merge_tag_block_and_message_dicts=False, enum_as_int=False, ignore_spare=True):
88
+ # Convert NMEA raw to sentences
89
+ sentences = self.split_raw_to_sentences(raw)
90
+
91
+ # Convert sentences to message type as dict
92
+ msg = self.decode(*sentences)
93
+ msg_dict = msg.asdict(enum_as_int=enum_as_int, ignore_spare=ignore_spare)
94
+
95
+ # Extract tagblock of first sentence if present, and add tagblock information in result
96
+ tag_block_str, _ = self.split_sentence_to_tab_block_and_message(sentences[0])
97
+ if not isinstance(tag_block_str, bytes):
98
+ tag_block_str = tag_block_str.encode('utf8')
99
+ logger.print(f"++++++++++++ {tag_block_str=}")
100
+ tag_block = TagBlock(tag_block_str)
101
+ tag_block.init()
102
+ tag_block_dict = tag_block.asdict() if tag_block is not None else None
103
+ if tag_block_dict is not None:
104
+ tag_block_dict = {k:v for k,v in tag_block_dict.items() if k != 'raw' and v is not None}
105
+
106
+ # Build result
107
+ if merge_tag_block_and_message_dicts:
108
+ res = msg_dict
109
+ if tag_block_dict is not None:
110
+ res.update(tag_block_dict)
111
+ elif tag_block_dict is not None:
112
+ res = (tag_block_dict, msg_dict)
113
+ else:
114
+ res = msg_dict
115
+ return res
116
+
87
117
  def decode(self, *args, encoded_msg=None, parts_separator=b'\n'):
88
118
  if encoded_msg is not None:
89
119
  if isinstance(encoded_msg, str):
@@ -263,7 +293,7 @@ class AISMessages(object):
263
293
 
264
294
  res = ais_sentence.split(split_char)
265
295
  if len(res) > 1:
266
- # Remove part before first '\'
296
+ # Tag block is present, remove part before first '\'
267
297
  del res[0]
268
298
  else:
269
299
  # Tag block is not present, insert it as None
@@ -22,6 +22,8 @@ from holado_test.behave.behave import * # @UnusedWildImport
22
22
  from holado_ais.ais.enums import AISMessageType
23
23
  from holado_core.common.tools.string_tools import StrTools
24
24
  from holado_value.common.tables.converters.value_table_converter import ValueTableConverter
25
+ from holado_core.common.block.function import Function
26
+ from holado_core.common.exceptions.functional_exception import FunctionalException
25
27
 
26
28
  logger = logging.getLogger(__name__)
27
29
 
@@ -148,8 +150,26 @@ if AISMessages.is_available():
148
150
 
149
151
  __get_variable_manager().register_variable(var_name, res)
150
152
 
151
- @Step(r"(?P<var_name>{Variable}) = decode NMEA AIS message (?P<encoded_ais_message>{Str})(?P<dictionnary_str> as dictionnary)?")
152
- def step_impl(context, var_name, encoded_ais_message, dictionnary_str):
153
+ @Step(r"(?:(?P<tagblock_var_name>{Variable}), )?(?P<var_name>{Variable}) = decode NMEA AIS raw (?P<ais_raw>{Bytes}|{Str}) as dictionary(?: \((?P<merge_tag_block_and_message_dicts_str>merge tag block and message dictionaries)?\))?")
154
+ def step_impl(context, tagblock_var_name, var_name, ais_raw, merge_tag_block_and_message_dicts_str):
155
+ var_name = StepTools.evaluate_variable_name(var_name)
156
+ ais_raw = StepTools.evaluate_scenario_parameter(ais_raw)
157
+ merge_tag_block_and_message_dicts = merge_tag_block_and_message_dicts_str is not None
158
+
159
+ res = __get_ais_messages().decode_nmea_raw_as_dict(ais_raw, merge_tag_block_and_message_dicts=merge_tag_block_and_message_dicts)
160
+
161
+ if tagblock_var_name is None:
162
+ __get_variable_manager().register_variable(var_name, res)
163
+ else:
164
+ if len(res) == 2:
165
+ tb_dict, msg_dict = res
166
+ else:
167
+ tb_dict, msg_dict = None, res
168
+ __get_variable_manager().register_variable(tagblock_var_name, tb_dict)
169
+ __get_variable_manager().register_variable(var_name, msg_dict)
170
+
171
+ @Step(r"(?P<var_name>{Variable}) = decode NMEA AIS message (?P<encoded_ais_message>{Str})(?P<dictionary_str> as dictionary)?")
172
+ def step_impl(context, var_name, encoded_ais_message, dictionary_str):
153
173
  var_name = StepTools.evaluate_variable_name(var_name)
154
174
  encoded_ais_message = StepTools.evaluate_scenario_parameter(encoded_ais_message)
155
175
 
@@ -158,7 +178,7 @@ if AISMessages.is_available():
158
178
  else:
159
179
  res = __get_ais_messages().decode(encoded_msg=encoded_ais_message)
160
180
 
161
- if dictionnary_str is not None:
181
+ if dictionary_str is not None:
162
182
  res = res.asdict()
163
183
 
164
184
  __get_variable_manager().register_variable(var_name, res)
@@ -22,6 +22,7 @@ from datetime import datetime
22
22
  from holado_core.common.tools.tools import Tools
23
23
  from pathlib import Path
24
24
  from holado_python.common.tools.datetime import DateTime
25
+ from holado.holado_config import Config
25
26
 
26
27
  logger = logging.getLogger(__name__)
27
28
 
@@ -162,10 +163,12 @@ class PathManager(object):
162
163
  if base_path is None:
163
164
  base_path = os.path.join(self.get_user_home_path(), '.holado', 'output')
164
165
 
166
+ res = os.path.join(base_path, "reports")
167
+ if Config.application_group is not None:
168
+ res = os.path.join(res, Config.application_group)
165
169
  if name is not None:
166
- return os.path.join(base_path, "reports", name)
167
- else:
168
- return os.path.join(base_path, "reports")
170
+ res = os.path.join(res, name)
171
+ return res
169
172
 
170
173
  def chown(self, path, user = None, group = None):
171
174
  if user is not None or group is not None:
@@ -18,8 +18,11 @@ from initialize_holado import insert_holado_source_paths # @UnresolvedImport
18
18
  insert_holado_source_paths(with_test_behave=False)
19
19
 
20
20
  # Initialize HolAdo
21
- from holado import initialize_minimal
22
- initialize_minimal()
21
+ from holado import initialize
22
+ initialize(TSessionContext=None, use_holado_logger=True, logging_config_file_path=None,
23
+ log_level=None, log_time_in_utc=None, log_on_console=True, log_in_file=False,
24
+ config_kwargs={'application_group':'docker_controller'},
25
+ garbage_collector_periodicity=None)
23
26
 
24
27
 
25
28
  app = connexion.FlaskApp(__name__, pythonic_params=True)
@@ -18,8 +18,11 @@ from initialize_holado import insert_holado_source_paths # @UnresolvedImport
18
18
  insert_holado_source_paths(with_test_behave=False)
19
19
 
20
20
  # Initialize HolAdo
21
- from holado import initialize_minimal
22
- initialize_minimal()
21
+ from holado import initialize
22
+ initialize(TSessionContext=None, use_holado_logger=True, logging_config_file_path=None,
23
+ log_level=None, log_time_in_utc=None, log_on_console=True, log_in_file=False,
24
+ config_kwargs={'application_group':'docker_viewer'},
25
+ garbage_collector_periodicity=None)
23
26
 
24
27
 
25
28
  app = connexion.FlaskApp(__name__, pythonic_params=True)
@@ -26,7 +26,8 @@ import holado
26
26
  from holado_test.test_server.server.core.server_context import TestServerSessionContext
27
27
  holado.initialize(TSessionContext=TestServerSessionContext,
28
28
  logging_config_file_path=os.path.join(here, 'logging.conf'), log_level=logging.INFO,
29
- log_on_console=True, log_in_file=False,
29
+ log_on_console=True, log_in_file=False,
30
+ config_kwargs={'application_group':'test_server'},
30
31
  garbage_collector_periodicity=None)
31
32
 
32
33
  # Update stored campaigns
@@ -33,7 +33,9 @@ import holado
33
33
  # - log_on_console is True for initialization phase, it will be set to False when root log file will be defined
34
34
  # - logging config file
35
35
  from test_holado.test_holado_session_context import TestHoladoSessionContext
36
- holado.initialize(TSessionContext=TestHoladoSessionContext, logging_config_file_path=os.path.join(here, 'logging.conf'), log_level=logging.INFO, log_on_console=True)
36
+ holado.initialize(TSessionContext=TestHoladoSessionContext, logging_config_file_path=os.path.join(here, 'logging.conf'),
37
+ log_level=logging.INFO, log_on_console=True,
38
+ config_kwargs={'application_group':'test_runner'})
37
39
 
38
40
 
39
41
 
@@ -1,6 +1,6 @@
1
1
  @testing_solution
2
2
  @ais
3
- Feature: Test decode of AIS message from bitarry and its encode in NMEAv4
3
+ Feature: Test decode of AIS message from bitarray and its encode in NMEAv4
4
4
 
5
5
  @bitarray_to_nmea_through_decode
6
6
  Scenario Outline: from bitarray to NMEAv4 sentences through decode
@@ -0,0 +1,93 @@
1
+ @testing_solution
2
+ @ais
3
+ Feature: Test decode of NMEA AIS raw to dict
4
+
5
+ @nmea_to_dict_without_tagblock
6
+ Scenario: from NMEA raw to dict (without tagblock)
7
+ Given RAW = '!AIVDM,1,1,,A,13KG`rU0001RbwdT6CR3TB3f0000,0*4E'
8
+
9
+ When MSG_DICT = decode NMEA AIS raw RAW as dictionary
10
+
11
+ Then MSG_TABLE = convert dictionary MSG_DICT to name/value table
12
+ Then table MSG_TABLE is
13
+ | Name | Value |
14
+ | 'accuracy' | False |
15
+ | 'course' | 91.3 |
16
+ | 'heading' | 65 |
17
+ | 'lat' | 63.086733 |
18
+ | 'lon' | 21.555183 |
19
+ | 'maneuver' | 0 |
20
+ | 'mmsi' | 230025450 |
21
+ | 'msg_type' | 1 |
22
+ | 'radio' | 0 |
23
+ | 'raim' | False |
24
+ | 'repeat' | 0 |
25
+ | 'second' | 55 |
26
+ | 'speed' | 0.0 |
27
+ | 'status' | 5 |
28
+ | 'turn' | 0.0 |
29
+
30
+
31
+ @nmea_to_dict_with_tagblock
32
+ @without_merge
33
+ Scenario: from NMEA raw to dict (with tagblock, without merge)
34
+ Given RAW = '\\s:STATION1,t:Hello*2\\!AIVDM,1,1,,A,13KG`rU0001RbwdT6CR3TB3f0000,0*4E'
35
+
36
+ When TB_DICT, MSG_DICT = decode NMEA AIS raw RAW as dictionary
37
+
38
+ Then TB_TABLE = convert dictionary TB_DICT to name/value table
39
+ Then table TB_TABLE is
40
+ | Name | Value |
41
+ | 'source_station' | 'STATION1' |
42
+ | 'text' | 'Hello' |
43
+
44
+ Then MSG_TABLE = convert dictionary MSG_DICT to name/value table
45
+ Then table MSG_TABLE is
46
+ | Name | Value |
47
+ | 'accuracy' | False |
48
+ | 'course' | 91.3 |
49
+ | 'heading' | 65 |
50
+ | 'lat' | 63.086733 |
51
+ | 'lon' | 21.555183 |
52
+ | 'maneuver' | 0 |
53
+ | 'mmsi' | 230025450 |
54
+ | 'msg_type' | 1 |
55
+ | 'radio' | 0 |
56
+ | 'raim' | False |
57
+ | 'repeat' | 0 |
58
+ | 'second' | 55 |
59
+ | 'speed' | 0.0 |
60
+ | 'status' | 5 |
61
+ | 'turn' | 0.0 |
62
+
63
+
64
+ @nmea_to_dict_with_tagblock
65
+ @with_merge
66
+ Scenario: from NMEA raw to dict (with tagblock, with merge)
67
+ Given RAW = '\\s:STATION1,t:Hello*2\\!AIVDM,1,1,,A,13KG`rU0001RbwdT6CR3TB3f0000,0*4E'
68
+
69
+ When MSG_DICT = decode NMEA AIS raw RAW as dictionary (merge tag block and message dictionaries)
70
+
71
+ Then MSG_TABLE = convert dictionary MSG_DICT to name/value table
72
+ Then table MSG_TABLE is
73
+ | Name | Value |
74
+ | 'accuracy' | False |
75
+ | 'course' | 91.3 |
76
+ | 'heading' | 65 |
77
+ | 'lat' | 63.086733 |
78
+ | 'lon' | 21.555183 |
79
+ | 'maneuver' | 0 |
80
+ | 'mmsi' | 230025450 |
81
+ | 'msg_type' | 1 |
82
+ | 'radio' | 0 |
83
+ | 'raim' | False |
84
+ | 'repeat' | 0 |
85
+ | 'second' | 55 |
86
+ | 'source_station' | 'STATION1' |
87
+ | 'speed' | 0.0 |
88
+ | 'status' | 5 |
89
+ | 'text' | 'Hello' |
90
+ | 'turn' | 0.0 |
91
+
92
+
93
+
@@ -26,7 +26,7 @@ Feature: Message type 10 : Coordinated UTC Inquiry
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | dest_mmsi | mmsi | msg_type | repeat |
@@ -26,7 +26,7 @@ Feature: Message type 12 : Addressed Safety Related Message
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | dest_mmsi | mmsi | msg_type | repeat | retransmit | seqno | text |
@@ -26,7 +26,7 @@ Feature: Message type 14 : Safety Related Broadcast Message
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | mmsi | msg_type | repeat | text |
@@ -26,7 +26,7 @@ Feature: Message type 15 : Interrogation
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | mmsi | mmsi1 | mmsi2 | msg_type | offset1_1 | offset1_2 | offset2_1 | repeat | type1_1 | type1_2 | type2_1 |
@@ -26,7 +26,7 @@ Feature: Message type 16 : Assigned Mode Command
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | increment1 | increment2 | mmsi | mmsi1 | mmsi2 | msg_type | offset1 | offset2 | repeat |
@@ -35,7 +35,7 @@ Feature: Message type 17 : GNSS Broadcast Binary Message
35
35
  Then STRING_NMEA_MSG[-3] == 'A'
36
36
 
37
37
  # Decode NMEA message
38
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
38
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
39
39
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
40
40
  Then table DECODED_NMEA_MESSAGE_TABLE is
41
41
  | data | lat | lon | mmsi | msg_type | repeat |
@@ -26,7 +26,7 @@ Feature: Message type 18 : Standard Class B Position Report
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | accuracy | assigned | band | course | cs | display | dsc | heading | lat | lon | mmsi | msg22 | msg_type | radio | raim | repeat | reserved_1 | reserved_2 | second | speed |
@@ -26,7 +26,7 @@ Feature: Message type 19 : Extended Class B Position Report
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | accuracy | assigned | course | dte | epfd | heading | lat | lon | mmsi | msg_type | raim | repeat | reserved_1 | reserved_2 | second | ship_type | shipname | speed | to_bow | to_port | to_starboard | to_stern |
@@ -28,7 +28,7 @@ Feature: Message types 1, 2 and 3 : position report
28
28
  Then STRING_NMEA_MSG[-3] == <channel>
29
29
 
30
30
  # Decode NMEA message
31
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
31
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
32
32
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
33
33
  Then table DECODED_NMEA_MESSAGE_TABLE is
34
34
  | accuracy | course | heading | lat | lon | maneuver | mmsi | msg_type | radio | raim | repeat | second | speed | status | turn |
@@ -26,7 +26,7 @@ Feature: Message type 20 : Data Link Management
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | increment1 | increment2 | increment3 | increment4 | mmsi | msg_type | number1 | number2 | number3 | number4 | offset1 | offset2 | offset3 | offset4 | repeat | timeout1 | timeout2 | timeout3 | timeout4 |
@@ -26,7 +26,7 @@ Feature: Message type 21 : Aids To Navigation Report
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | accuracy | aid_type | assigned | epfd | lat | lon | mmsi | msg_type | name | name_ext | off_position | raim | repeat | reserved_1 | second | to_bow | to_port | to_starboard | to_stern | virtual_aid |
@@ -27,7 +27,7 @@ Feature: Message type 22 : Channel Management Addressed & Broadcast
27
27
  Then STRING_NMEA_MSG[-3] == 'A'
28
28
 
29
29
  # Decode NMEA message
30
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
30
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
31
31
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
32
32
  Then table DECODED_NMEA_MESSAGE_TABLE is
33
33
  | addressed | band_a | band_b | channel_a | channel_b | dest1 | dest2 | empty_1 | empty_2 | mmsi | msg_type | power | repeat | txrx | zonesize |
@@ -73,7 +73,7 @@ Feature: Message type 22 : Channel Management Addressed & Broadcast
73
73
  Then STRING_NMEA_MSG[-3] == 'B'
74
74
 
75
75
  # Decode NMEA message
76
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
76
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
77
77
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
78
78
  Then table DECODED_NMEA_MESSAGE_TABLE is
79
79
  | addressed | band_a | band_b | channel_a | channel_b | mmsi | msg_type | ne_lat | ne_lon | power | repeat | sw_lat | sw_lon | txrx | zonesize |
@@ -38,7 +38,7 @@ Feature: Message type 23 : Group Assignment Command
38
38
  Then STRING_NMEA_MSG[-3] == 'A'
39
39
 
40
40
  # Decode NMEA message
41
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
41
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
42
42
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
43
43
  Then table DECODED_NMEA_MESSAGE_TABLE is
44
44
  | interval | mmsi | msg_type | ne_lat | ne_lon | quiet | repeat | ship_type | station_type | sw_lat | sw_lon | txrx |
@@ -27,7 +27,7 @@ Feature: Message type 24 : Static Data Report Part A & part B
27
27
  Then STRING_NMEA_MSG[-3] == 'A'
28
28
 
29
29
  # Decode NMEA message
30
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
30
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
31
31
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
32
32
  Then table DECODED_NMEA_MESSAGE_TABLE is
33
33
  | mmsi | msg_type | partno | repeat | shipname |
@@ -61,7 +61,7 @@ Feature: Message type 24 : Static Data Report Part A & part B
61
61
  Then STRING_NMEA_MSG[-3] == 'A'
62
62
 
63
63
  # Decode NMEA message
64
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
64
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
65
65
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
66
66
  Then table DECODED_NMEA_MESSAGE_TABLE is
67
67
  | callsign | mmsi | model | msg_type | partno | repeat | serial | ship_type | to_bow | to_port | to_starboard | to_stern | vendorid |
@@ -28,7 +28,7 @@ Feature: Message type 25 : Single Slot Binary Message
28
28
  Then STRING_NMEA_MSG[-3] == 'A'
29
29
 
30
30
  # Decode NMEA message
31
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
31
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
32
32
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
33
33
  Then table DECODED_NMEA_MESSAGE_TABLE is
34
34
  | addressed | app_id | data | dest_mmsi | mmsi | msg_type | repeat | structured |
@@ -63,7 +63,7 @@ Feature: Message type 25 : Single Slot Binary Message
63
63
  Then STRING_NMEA_MSG[-3] == 'A'
64
64
 
65
65
  # Decode NMEA message
66
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
66
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
67
67
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
68
68
  Then table DECODED_NMEA_MESSAGE_TABLE is
69
69
  | addressed | app_id | data | mmsi | msg_type | repeat | structured |
@@ -98,7 +98,7 @@ Feature: Message type 25 : Single Slot Binary Message
98
98
  Then STRING_NMEA_MSG[-3] == 'A'
99
99
 
100
100
  # Decode NMEA message
101
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
101
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
102
102
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
103
103
  Then table DECODED_NMEA_MESSAGE_TABLE is
104
104
  | addressed | data | dest_mmsi | mmsi | msg_type | repeat | structured |
@@ -133,7 +133,7 @@ Feature: Message type 25 : Single Slot Binary Message
133
133
  Then STRING_NMEA_MSG[-3] == 'A'
134
134
 
135
135
  # Decode NMEA message
136
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
136
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
137
137
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
138
138
  Then table DECODED_NMEA_MESSAGE_TABLE is
139
139
  | addressed | data | mmsi | msg_type | repeat | structured |
@@ -28,7 +28,7 @@ Feature: Message type 26
28
28
  Then STRING_NMEA_MSG[-3] == 'A'
29
29
 
30
30
  # Decode NMEA message
31
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
31
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
32
32
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
33
33
  Then table DECODED_NMEA_MESSAGE_TABLE is
34
34
  | addressed | app_id | data | dest_mmsi | mmsi | msg_type | radio | repeat | structured |
@@ -63,7 +63,7 @@ Feature: Message type 26
63
63
  Then STRING_NMEA_MSG[-3] == 'A'
64
64
 
65
65
  # Decode NMEA message
66
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
66
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
67
67
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
68
68
  Then table DECODED_NMEA_MESSAGE_TABLE is
69
69
  | addressed | app_id | data | mmsi | msg_type | radio | repeat | structured |
@@ -98,7 +98,7 @@ Feature: Message type 26
98
98
  Then STRING_NMEA_MSG[-3] == 'A'
99
99
 
100
100
  # Decode NMEA message
101
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
101
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
102
102
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
103
103
  Then table DECODED_NMEA_MESSAGE_TABLE is
104
104
  | addressed | data | dest_mmsi | mmsi | msg_type | radio | repeat | structured |
@@ -133,7 +133,7 @@ Feature: Message type 26
133
133
  Then STRING_NMEA_MSG[-3] == 'A'
134
134
 
135
135
  # Decode NMEA message
136
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
136
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
137
137
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
138
138
  Then table DECODED_NMEA_MESSAGE_TABLE is
139
139
  | addressed | data | mmsi | msg_type | radio | repeat | structured |
@@ -26,7 +26,7 @@ Feature: Message type 27
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | accuracy | course | gnss | lat | lon | mmsi | msg_type | raim | repeat | speed | status |
@@ -27,7 +27,7 @@ Feature: Message types 4 and 11 : Base Station Report
27
27
  Then STRING_NMEA_MSG[-3] == <channel>
28
28
 
29
29
  # Decode NMEA message
30
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
30
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
31
31
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
32
32
  Then table DECODED_NMEA_MESSAGE_TABLE is
33
33
  | accuracy | day | epfd | hour | lat | lon | minute | mmsi | month | msg_type | radio | raim | repeat | second | year |
@@ -26,7 +26,7 @@ Feature: Message type 5 : Ship Static Data
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | ais_version | callsign | day | destination | draught | dte | epfd | hour | imo | minute | mmsi | month | msg_type | repeat | ship_type | shipname | to_bow | to_port | to_starboard | to_stern |
@@ -26,7 +26,7 @@ Feature: Message type 6 : Addressed Binary Message
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | dac | data | dest_mmsi | fid | mmsi | msg_type | repeat | retransmit | seqno |
@@ -27,7 +27,7 @@ Feature: Message types 7 and 13 : Binary Acknowledge
27
27
  Then STRING_NMEA_MSG[-3] == <channel>
28
28
 
29
29
  # Decode NMEA message
30
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
30
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
31
31
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
32
32
  Then table DECODED_NMEA_MESSAGE_TABLE is
33
33
  | mmsi | mmsi1 | mmsi2 | mmsi3 | mmsi4 | mmsiseq1 | mmsiseq2 | mmsiseq3 | mmsiseq4 | msg_type | repeat |
@@ -26,7 +26,7 @@ Feature: Message type 8 : Binary Broadcast Message
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | dac | data | fid | mmsi | msg_type | repeat |
@@ -26,7 +26,7 @@ Feature: Message type 9 : Standard SAR Aircraft Position Report
26
26
  Then STRING_NMEA_MSG[-3] == 'A'
27
27
 
28
28
  # Decode NMEA message
29
- Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionnary
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
30
  When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
31
  Then table DECODED_NMEA_MESSAGE_TABLE is
32
32
  | accuracy | alt | assigned | course | dte | lat | lon | mmsi | msg_type | radio | raim | repeat | reserved_1 | second | speed |