plantstar-shared 2.0.3.0.2.12__py3-none-any.whl → 2.0.3.0.2.14__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.
@@ -97,6 +97,8 @@ class DataCollectionModuleApiTypes(SysconType):
97
97
  class ApuApiTypes(SysconType):
98
98
  SET_IS_INITIALIZING_STATUS = ("data_collection_module_manager/set_is_initializing_status", "data_collection_module_manager/set_is_initializing_status", True)
99
99
  SET_IS_COLDBOOTING_STATUS = ("data_collection_module_manager/set_is_coldbooting_status", "data_collection_module_manager/set_is_coldbooting_status", True)
100
+ REGISTER_HMI = ("data_collection_module_manager/register_hmi", "data_collection_module_manager/register_hmi", True)
101
+ REGISTER_DCM = ("data_collection_module_manager/register_dcm", "data_collection_module_manager/register_dcm", True)
100
102
 
101
103
 
102
104
  class CosmosApiTypes(SysconType):
@@ -2,9 +2,9 @@ import msgpack
2
2
 
3
3
  from plantstar_shared.errors import SocketConnectionError
4
4
 
5
-
6
5
  # Converts bytes into an object using msgpack, with a parameter for strict_map_key
7
6
  def convert_bytes_to_object(object_as_bytes, strict_map_key=False):
7
+
8
8
  if not object_as_bytes:
9
9
  raise SocketConnectionError
10
10
 
@@ -2,86 +2,47 @@ import struct
2
2
 
3
3
  from plantstar_shared.convert_bytes_to_object import convert_bytes_to_object
4
4
  from plantstar_shared.convert_object_to_bytes import convert_object_to_bytes
5
- from plantstar_shared.errors import SocketConnectionError, SysconProgrammingError
5
+ from plantstar_shared.errors import SocketConnectionError
6
6
 
7
- SIZE_OF_UNSIGNED_INT_FOR_HUSKY = 2 # size of the integer value that precedes data coming from Husky OIs
8
- SIZE_OF_UNSIGNED_INT_STRUCT = 4 # size of the integer value that precedes data coming from most sockets (DeviceController, DCM, etc)
7
+ SIZE_OF_UNSIGNED_INT_STRUCT = 4
9
8
 
10
9
 
11
- def read_size_value_from_socket(*, remote_socket, is_big_endian, number_of_bytes_for_size_prefix):
12
- size_bytes = remote_socket.recv(number_of_bytes_for_size_prefix)
10
+ def read_size_value_from_socket(*, remote_socket):
11
+ size_struct = remote_socket.recv(SIZE_OF_UNSIGNED_INT_STRUCT)
13
12
 
14
- if not size_bytes:
15
- return None, None
16
-
17
- if number_of_bytes_for_size_prefix == SIZE_OF_UNSIGNED_INT_FOR_HUSKY:
18
- size_for_message = int.from_bytes(size_bytes, 'big') if is_big_endian else int.from_bytes(size_bytes, 'little')
19
- elif number_of_bytes_for_size_prefix == SIZE_OF_UNSIGNED_INT_STRUCT:
20
- number_format = ">I" if is_big_endian else "<I"
21
-
22
- try:
23
- size_for_message = struct.unpack(number_format, size_bytes)[0]
24
- except struct.error as error:
25
- raise SocketConnectionError
26
- else:
27
- raise SysconProgrammingError("A size prefix was set to something other than 2 or 4")
28
-
29
- return size_for_message, size_bytes
30
-
31
-
32
- def get_bytes_from_socket(*, remote_socket, number_of_bytes_to_read=None, is_big_endian=True, number_of_bytes_for_size_prefix=0):
33
- """Obtains a number of bytes from a provided socket, with options for different configurations and situations.
34
- Returns byte sequence, and the size value that was obtained from the prefix bytes.
35
-
36
- Keywords / Example Configurations:
37
- remote_socket -- the connection that bytes will be read from
38
-
39
- number_of_bytes_to_read -- the number of bytes to read on the socket, if this is known, this is the only optional parameter needed (default: 0)
40
-
41
- is_big_endian -- bool that determines what format string should be used for unpacking the size value (default: True)
42
-
43
- number_of_bytes_for_size_prefix -- the number of bytes to read to determine the total size of the message to pass (default: 0)
44
-
45
- should_remove_prefix_size_from_read -- bool that determines if the size should be removed from the calculated number of bytes to read (default: False)
46
-
47
- -----
48
-
49
- get_bytes_from_socket(remote_socket=conn, number_of_bytes_to_read=100) - likely would not be called directly, in most cases
13
+ if not size_struct:
14
+ return None
50
15
 
51
- get_bytes_from_socket(remote_socket=conn, is_big_endian=True, number_of_bytes_for_size_prefix=4) - reads 4 bytes to get the size, then reads that amount (DCM socket, etc)
16
+ try:
17
+ message_length = struct.unpack('>I', size_struct)[0]
18
+ except struct.error as error:
19
+ raise SocketConnectionError
52
20
 
53
- get_bytes_from_socket(remote_socket=conn, is_big_endian=False, number_of_bytes_for_size_prefix=2, should_remove_prefix_size_from_read=True) - reads 2 bytes to get the size,
54
- then reads that calculated amount minus 2 (Husky socket, etc)
21
+ return message_length
55
22
 
56
- """
57
23
 
58
- if not number_of_bytes_to_read:
59
- if number_of_bytes_for_size_prefix:
60
- number_of_bytes_to_read, size_bytes = read_size_value_from_socket(
61
- remote_socket=remote_socket, is_big_endian=is_big_endian, number_of_bytes_for_size_prefix=number_of_bytes_for_size_prefix
62
- )
24
+ def get_message_from_socket(*, remote_socket):
25
+ message_length = read_size_value_from_socket(remote_socket=remote_socket)
63
26
 
64
- if not number_of_bytes_to_read:
65
- return None, None
66
- else:
67
- raise SysconProgrammingError("get_bytes_from_socket was called with no parameters for number_of_bytes_to_read or number_of_bytes_for_size_prefix")
27
+ if not message_length:
28
+ return None
68
29
 
69
30
  packets = []
70
31
  bytes_received = 0
71
32
 
72
33
  # While loop that will stream in data if the full request is not available yet
73
- while bytes_received < number_of_bytes_to_read:
74
- buffer_size = number_of_bytes_to_read - bytes_received
34
+ while bytes_received < message_length:
35
+ buffer_size = message_length - bytes_received
75
36
  packet = remote_socket.recv(buffer_size)
76
37
 
77
38
  if not packet:
78
- return None, number_of_bytes_to_read
39
+ return None
79
40
 
80
41
  packets.append(packet)
81
42
  bytes_received = bytes_received + len(packet)
82
43
 
83
44
  data = b''.join(packets)
84
- return data, number_of_bytes_to_read
45
+ return data
85
46
 
86
47
 
87
48
  def send_message_on_socket(*, remote_socket, dumpsable_object):
@@ -101,16 +62,7 @@ def send_encoded_message_on_socket(*, remote_socket, encoded_message):
101
62
  bytes_sent += new_bytes_sent
102
63
 
103
64
 
104
- def get_object_from_socket(
105
- *, remote_socket, number_of_bytes_to_read=None, is_big_endian=True, number_of_bytes_for_size_prefix=SIZE_OF_UNSIGNED_INT_STRUCT
106
- ):
107
- """Function that is used between the APU and DCM to send dictionaries. Returns a tuple of the object and its size in bytes."""
108
- object_from_interface_as_bytes, size_of_object_in_bytes = get_bytes_from_socket(
109
- remote_socket=remote_socket, number_of_bytes_to_read=number_of_bytes_to_read, is_big_endian=is_big_endian, number_of_bytes_for_size_prefix=number_of_bytes_for_size_prefix
110
- )
111
-
112
- if not object_from_interface_as_bytes:
113
- return None
114
-
65
+ def get_object_from_socket(*, remote_socket):
66
+ object_from_interface_as_bytes = get_message_from_socket(remote_socket=remote_socket)
115
67
  object_from_interface = convert_bytes_to_object(object_from_interface_as_bytes)
116
- return object_from_interface, size_of_object_in_bytes
68
+ return object_from_interface
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: plantstar-shared
3
- Version: 2.0.3.0.2.12
3
+ Version: 2.0.3.0.2.14
4
4
  Summary: Shared code used in plantstar_apu and plantstar_dcm
5
5
  Home-page: https://github.com/SYSCON-International/plantstar_shared
6
6
  Author: SYSCON International
@@ -5,8 +5,8 @@ plantstar_shared/RawDataProcessorInterfaceActions.py,sha256=XnXuFW3BFSa89-VmhGAK
5
5
  plantstar_shared/SysconType.py,sha256=6Ae9F0fBr0vpXAmP8fYqoWyFUGTEECtS55zAYMkeKlY,1581
6
6
  plantstar_shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  plantstar_shared/add_size_onto_string_and_return.py,sha256=j7XSs5ubKKo5LCMVljzZudK2nw8CZh-zMSLT_t30aGg,385
8
- plantstar_shared/api_types.py,sha256=gKN2LmUFBcpa7gJSNwCJ0eSv4IqkIP01pCLfy8-mT50,5001
9
- plantstar_shared/convert_bytes_to_object.py,sha256=YKf410EWUpeyyeBhJ3kl6PYIAcHJKKkhp8JkE-CuSv0,405
8
+ plantstar_shared/api_types.py,sha256=uoVePGb-C0fRtKpWcjiRK_Cvvfoh1izITDjkZ37ssXQ,5241
9
+ plantstar_shared/convert_bytes_to_object.py,sha256=MVOKqJJeUjvEKJL_ELNPkxZEgqwlk3zT8CwfVtpwOgU,409
10
10
  plantstar_shared/convert_object_to_bytes.py,sha256=vVS3dKkPynOJ2NV2LgLHdEOZflK_0hhdS-NuU_gcfHs,206
11
11
  plantstar_shared/errors.py,sha256=qEUHh2d7pqZHoag6YJjnVfRWzWAzjuyGZH7stT_-Nzk,341
12
12
  plantstar_shared/global_definitions.py,sha256=mj59nU21DYza4XgZQxLX2lTvJYooN_-ZFrh8SVXFBRs,1153
@@ -14,8 +14,8 @@ plantstar_shared/is_valid_signed_string.py,sha256=5ZiEsPRz30J8yxN4A1dHq-hlz7VI9r
14
14
  plantstar_shared/obtain_raw_data_processor_function_for_action_name.py,sha256=DYo307PraRRD8zGiSO6Fn03bZ4X9aDOYV9rwaRm8mXM,1134
15
15
  plantstar_shared/syscon_image_field.py,sha256=GlTTudqFT5EsWM5sPRO0p5SDascX7gI1BEOeF1OG7Tw,441
16
16
  plantstar_shared/syscon_json.py,sha256=8OG9_55d52V9e2fFNguDtQ_pnw1YwyYsg2pnUkhjW6g,4213
17
- plantstar_shared/tcp_socket_utils.py,sha256=bW4KSKSTZLWyivdVZ0cIH4CN5Kw92CNa2xMj3fIZ7_U,5586
18
- plantstar_shared-2.0.3.0.2.12.dist-info/METADATA,sha256=bjxjBORuN81GgyCFuQ7bxShD1Hbh7ot7TsxuZQnFuUo,659
19
- plantstar_shared-2.0.3.0.2.12.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
20
- plantstar_shared-2.0.3.0.2.12.dist-info/top_level.txt,sha256=9ZTCr_aP1GqYGt7EVmlSIUF72bdMZErapyhbik-MWVQ,17
21
- plantstar_shared-2.0.3.0.2.12.dist-info/RECORD,,
17
+ plantstar_shared/tcp_socket_utils.py,sha256=sI5IJXMTsQuTPzm8V5T1nsY5aMF-78zGL69aIDLCD_A,2250
18
+ plantstar_shared-2.0.3.0.2.14.dist-info/METADATA,sha256=LncRbvpfkol2OpHWakTI_fFAmpBsgAJnrNrQAlWCpu4,659
19
+ plantstar_shared-2.0.3.0.2.14.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
20
+ plantstar_shared-2.0.3.0.2.14.dist-info/top_level.txt,sha256=9ZTCr_aP1GqYGt7EVmlSIUF72bdMZErapyhbik-MWVQ,17
21
+ plantstar_shared-2.0.3.0.2.14.dist-info/RECORD,,