@@ -76,21 +76,31 @@ def _check_received_message(
76
76
if not sent_msg .is_remote_frame :
77
77
self .assertSequenceEqual (recv_msg .data , sent_msg .data )
78
78
79
- def _send_and_receive (self , msg : can .Message ) -> None :
79
+ def _send_and_receive (self , msg : can .Message , bus_clear_timeout : float = 0 ) -> None :
80
80
# Send with bus 1, receive with bus 2
81
+ print (f"Send on Bus 1: { msg } " )
81
82
self .bus1 .send (msg )
83
+
82
84
recv_msg = self .bus2 .recv (self .TIMEOUT )
85
+ print (f"Received on Bus 2: { recv_msg } " )
83
86
self ._check_received_message (recv_msg , msg )
87
+
84
88
# Some buses may receive their own messages. Remove it from the queue
85
- self .bus1 .recv (0 )
89
+ cleared_msg = self .bus1 .recv (bus_clear_timeout )
90
+ print (f"Bus 1 msg cleared: { cleared_msg } " )
86
91
87
92
# Send with bus 2, receive with bus 1
88
93
# Add 1 to arbitration ID to make it a different message
89
94
msg .arbitration_id += 1
95
+ print (f"Send on Bus 2: { msg } " )
90
96
self .bus2 .send (msg )
97
+
91
98
# Some buses may receive their own messages. Remove it from the queue
92
- self .bus2 .recv (0 )
99
+ cleared_msg = self .bus2 .recv (bus_clear_timeout )
100
+ print (f"Bus 2 msg cleared: { cleared_msg } " )
101
+
93
102
recv_msg = self .bus1 .recv (self .TIMEOUT )
103
+ print (f"Received on Bus 1: { recv_msg } " )
94
104
self ._check_received_message (recv_msg , msg )
95
105
96
106
def test_no_message (self ):
@@ -142,6 +152,10 @@ def test_dlc_less_than_eight(self):
142
152
msg = can .Message (is_extended_id = False , arbitration_id = 0x300 , data = [4 , 5 , 6 ])
143
153
self ._send_and_receive (msg )
144
154
155
+ def test_dlc_less_than_eight_with_clear_timeout (self ):
156
+ msg = can .Message (is_extended_id = False , arbitration_id = 0x300 , data = [4 , 5 , 6 ])
157
+ self ._send_and_receive (msg , bus_clear_timeout = 0.3 )
158
+
145
159
@unittest .skip (
146
160
"TODO: how shall this be treated if sending messages locally? should be done uniformly"
147
161
)
0 commit comments