Index: dialin/protocols/CAN.py =================================================================== diff -u -r32e628abcbbd3fd70866505d9f2836a6f732ef06 -ra8cd68044f2b4fbc036f775de6828619b8729c59 --- dialin/protocols/CAN.py (.../CAN.py) (revision 32e628abcbbd3fd70866505d9f2836a6f732ef06) +++ dialin/protocols/CAN.py (.../CAN.py) (revision a8cd68044f2b4fbc036f775de6828619b8729c59) @@ -15,6 +15,7 @@ ############################################################################ import threading +import time from collections import deque import asyncio from typing import Callable @@ -32,6 +33,7 @@ from ..utils import SingletonMeta, IntervalTimer from concurrent.futures import ThreadPoolExecutor +import os class DenaliMessage: BYTE_ORDER = 'little' @@ -471,7 +473,12 @@ self.callback_listener_complete_messages = None self.callback_listener_invalid_messages = None self.thread_pool_executor = ThreadPoolExecutor(max_workers=1) - + # TODO for debugging purposes + if os.path.exists('Listener_can_dump.log'): os.remove('Listener_can_dump.log') + self.temp_logger = open('Listener_can_dump.log', 'w') + if os.path.exists('Send_can_dump.log'): os.remove('Send_can_dump.log') + self.temp_send_logger = open('Send_can_dump.log', 'w') + # TODO for debugging purposes # try to setup can bus and exit if the can bus has not ben setup to use. try: self.bus = socketcan.SocketcanBus(channel=can_interface) @@ -544,6 +551,8 @@ message = await self.listener_buffer.get_message() if message is not None: + data = str(time.time()) + ',' + str(message) + '\r' + self.temp_logger.write(data) self.message_queue.append(message) else: # no new packets in receive buffer @@ -737,7 +746,9 @@ @param is_ack: (bool) If we're sending an ACK, False by default @return: (dict) The Denali packet. If a timeout occurs returns None """ - + data = str(time.time()) + ',' + str(built_message) + '\r' + self.temp_send_logger.write(data) + print(data) msg_sent = False msg_id = -1 Index: tests/dg_tests.py =================================================================== diff -u -r902a65965ca2f97fbb0186fdc01f9613b4f5076f -ra8cd68044f2b4fbc036f775de6828619b8729c59 --- tests/dg_tests.py (.../dg_tests.py) (revision 902a65965ca2f97fbb0186fdc01f9613b4f5076f) +++ tests/dg_tests.py (.../dg_tests.py) (revision a8cd68044f2b4fbc036f775de6828619b8729c59) @@ -52,7 +52,7 @@ from dialin.dg.ro_permeate_sample import ROPermeateDispenseMsgStatus from dialin.common.test_config_defs import DGTestConfigOptions, HDTestConfigOptions from dialin.hd.blood_leak import EmbModeCommands -from time import sleep +from time import sleep, time from datetime import datetime import sys @@ -710,12 +710,31 @@ sleep(0.1) +def test_can_messages(): + #f = open('can_messages_test.log') + try: + while True: + status = hd.alarms.cmd_alarm_state_override(7, 1) + if status == 0 or status is False: + print('Broad Failed {} {}'.format(time(), status)) + status = dg.temperatures.cmd_temperatures_value_override(0, 45) + if status == 0 or status is False: + print('Temp Override Failed {} {}'.format(time(), status)) + status = dg.temperatures.cmd_temperatures_value_override(0, 45, reset=1) + if status == 0 or status is False: + print('Temp Override Reset Failed {} {}'.format(time(), status)) + sleep(0.1) + except KeyboardInterrupt: + print("Test stopped") + if __name__ == "__main__": - dg = DG(log_level='DEBUG') + #dg = DG(log_level='DEBUG') + dg = DG() dg.cmd_log_in_to_dg() sleep(1) - hd = HD(log_level='DEBUG') + #hd = HD(log_level='DEBUG') + hd = HD() hd.cmd_log_in_to_hd() sleep(1) @@ -784,4 +803,8 @@ # sleep(0.5) #hd.test_configs.cmd_set_test_config(HDTestConfigOptions.TEST_CONFIG_SKIP_DISINFECT_AND_SERVICE_TX_BLOCKERS.value) #dg.cmd_dg_set_operation_mode(3) - hd.cmd_hd_set_operation_mode(1) + #hd.cmd_hd_set_operation_mode(1) + + test_can_messages() + #while True: + # sleep(0.1)