########################################################################### # # Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file test_blood_flow.py # # @author (last) Peter Lucia # @date (last) 21-May-2021 # @author (original) Peter Lucia # @date (original) 29-Apr-2021 # ############################################################################ import numpy as np import sys from time import sleep sys.path.append("../../") from dialin import HDSimulator from dialin.protocols.CAN import DenaliMessage, DenaliChannels from dialin.common import MsgIds from dialin.utils.conversions import integer_to_bytearray, float_to_bytearray def run(): hd_sim = HDSimulator(log_level="DEBUG") while True: target_blood_flow_rate = np.random.randint(-500, 500) measured_blood_flow_rate = np.random.uniform(-500, 500) measured_blood_pump_rotor_speed = np.random.uniform(0, 150) measured_blood_pump_speed = np.random.uniform(0, 3000) measured_blood_pump_mc_speed = np.random.uniform(0, 3000) measured_blood_pump_mc_current = np.random.uniform(0, 2000) pwm_duty_cycle_pct = np.random.uniform(0, 100) flow_signal_strength = np.random.uniform(0, 100) payload = integer_to_bytearray(target_blood_flow_rate) payload += float_to_bytearray(measured_blood_flow_rate) payload += float_to_bytearray(measured_blood_pump_rotor_speed) payload += float_to_bytearray(measured_blood_pump_speed) payload += float_to_bytearray(measured_blood_pump_mc_speed) payload += float_to_bytearray(measured_blood_pump_mc_current) payload += float_to_bytearray(pwm_duty_cycle_pct) payload += float_to_bytearray(flow_signal_strength) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_BLOOD_FLOW_DATA.value, payload=payload) hd_sim.can_interface.send(message, 0) print("Sent", message) sleep(1) if __name__ == '__main__': run()