diff --git a/j1939/j1939_22.py b/j1939/j1939_22.py index c55cf93..16f32d9 100644 --- a/j1939/j1939_22.py +++ b/j1939/j1939_22.py @@ -2,7 +2,6 @@ from .message_id import MessageId, FrameFormat import logging import time -import numpy as np logger = logging.getLogger(__name__) @@ -267,13 +266,9 @@ def send_pgn(self, data_page, pdu_format, pdu_specific, priority, src_address, d if priority == None: priority = 7 # get chunks from data - full_tp_size_packages = int(data_length/self.DataLength.TP) - arr = np.array(data) - list_of_arr = np.split(arr, [full_tp_size_packages*self.DataLength.TP]) - arr = np.reshape(list_of_arr[0], (-1,self.DataLength.TP)) - data_list = arr.tolist() + list_of_arr, data_list = self.get_chunks(data, data_length) if len(list_of_arr) > 1: - data_list.append(list_of_arr[1].tolist()) + data_list.append(list_of_arr[1]) # if the PF is between 240 and 255, the message can only be broadcast if dest_address == ParameterGroupNumber.Address.GLOBAL: @@ -319,6 +314,13 @@ def send_pgn(self, data_page, pdu_format, pdu_specific, priority, src_address, d return True + def get_chunks(self, data, data_length): + full_tp_size_packages = int(data_length / self.DataLength.TP) + index = full_tp_size_packages * self.DataLength.TP + list_of_arr = [data[:index], data[index:]] + data_list = [list_of_arr[0][i : (i + min(self.DataLength.TP, len(list_of_arr[0]) - i))] for i in range(0, len(list_of_arr[0]), self.DataLength.TP)] + return list_of_arr, data_list + def __send_multi_pg(self, frame_format, cpg_list, src_address, dst_address): # deadline reached priority = 7 diff --git a/setup.py b/setup.py index 8885ff7..0594b8c 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,6 @@ ], install_requires=[ "python-can >= 3.3.4", - "numpy >= 1.17.0", "pytest >= 6.2.5", ], include_package_data=True,