run 3 and 4 and 5

This commit is contained in:
Aiden
2026-05-13 16:15:22 +10:00
parent 659ad33c48
commit 7f0ec19798
12 changed files with 2102 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
Button test on COM5 at 38400 8N1
Listening for 30.0s; respond_to_cam_power=False, respond_to_call=True
16:12:27.373 RX 030 bytes 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA
16:12:27.373 DETECT heartbeat x5
16:12:27.469 RX 001 bytes 00
16:12:27.500 RX 005 bytes 00 00 00 80 DA
16:12:28.171 RX 006 bytes 00 00 00 00 80 DA
16:12:28.171 DETECT heartbeat x1
16:12:28.264 RX 006 bytes 00 00 15 80 00 CF
16:12:28.264 DETECT call-on x1
16:12:28.314 TX cam-power response frame 006 00 00 15 80 00 CF
16:12:28.314 TX cam-power response frame 006 00 00 15 00 00 4F
16:12:28.348 RX 006 bytes 07 80 45 20 D0 68
16:12:28.958 RX 001 bytes 00
16:12:28.989 RX 005 bytes 00 00 00 80 DA
16:12:29.232 RX 006 bytes 00 00 00 00 80 DA
16:12:29.232 DETECT heartbeat x1
16:12:29.475 RX 006 bytes 00 00 00 00 80 DA
16:12:29.475 DETECT heartbeat x1
16:12:29.718 RX 001 bytes 00
16:12:29.748 RX 005 bytes 00 00 00 80 DA
16:12:29.962 RX 001 bytes 00
16:12:29.992 RX 005 bytes 00 00 00 80 DA
16:12:30.235 RX 006 bytes 00 00 00 00 80 DA
16:12:30.235 DETECT heartbeat x1
16:12:30.387 RX 001 bytes 00
16:12:30.417 RX 005 bytes 00 15 00 00 4F
16:12:30.754 RX 006 bytes 00 00 15 80 00 CF
16:12:30.754 DETECT call-on x1
16:12:31.363 RX 001 bytes 00
16:12:31.394 RX 005 bytes 00 00 00 80 DA
16:12:32.064 RX 001 bytes 00
16:12:32.095 RX 005 bytes 00 00 00 80 DA
16:12:32.400 RX 001 bytes 00
16:12:32.431 RX 005 bytes 00 15 00 00 4F
16:12:32.978 RX 006 bytes 00 00 15 80 00 CF
16:12:32.978 DETECT call-on x1
16:12:33.100 RX 001 bytes 00
16:12:33.131 RX 005 bytes 00 15 00 00 4F
16:12:33.414 RX 006 bytes 00 00 15 80 00 CF
16:12:33.414 DETECT call-on x1
16:12:33.536 RX 001 bytes 00
16:12:33.567 RX 005 bytes 00 15 00 00 4F
16:12:33.719 RX 006 bytes 00 00 15 80 00 CF
16:12:33.719 DETECT call-on x1
16:12:33.842 RX 001 bytes 00
16:12:33.872 RX 005 bytes 00 15 00 00 4F
16:12:33.995 RX 006 bytes 00 00 15 80 00 CF
16:12:33.995 DETECT call-on x1
16:12:34.147 RX 001 bytes 00
16:12:34.178 RX 005 bytes 00 15 00 00 4F
16:12:34.300 RX 006 bytes 00 00 15 80 00 CF
16:12:34.300 DETECT call-on x1
16:12:34.454 RX 001 bytes 00
16:12:34.485 RX 005 bytes 00 15 00 00 4F
16:12:34.607 RX 006 bytes 00 00 15 80 00 CF
16:12:34.607 DETECT call-on x1
16:12:34.728 RX 001 bytes 00
16:12:34.758 RX 005 bytes 00 15 00 00 4F
16:12:34.850 RX 006 bytes 00 00 15 80 00 CF
16:12:34.850 DETECT call-on x1
16:12:34.942 RX 001 bytes 00
16:12:34.972 RX 005 bytes 00 15 00 00 4F
16:12:35.095 RX 006 bytes 00 00 15 80 00 CF
16:12:35.095 DETECT call-on x1
16:12:35.217 RX 006 bytes 00 00 15 00 00 4F
16:12:35.217 DETECT call-off x1
16:12:35.885 RX 006 bytes 00 00 00 00 80 DA
16:12:35.885 DETECT heartbeat x1
Stopped.

View File

@@ -0,0 +1,34 @@
Button test on COM5 at 38400 8N1
Listening for 30.0s; respond_to_cam_power=False, respond_to_call=True
16:12:54.078 RX 031 bytes 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00
16:12:54.078 DETECT heartbeat x5
16:12:54.443 RX 006 bytes 00 00 00 00 80 DA
16:12:54.443 DETECT heartbeat x1
16:12:55.112 RX 006 bytes 00 00 15 80 00 CF
16:12:55.112 DETECT call-on x1
16:12:55.163 TX cam-power response frame 006 00 00 15 00 80 CF
16:12:55.742 RX 006 bytes 00 00 00 00 80 DA
16:12:55.742 DETECT heartbeat x1
16:12:55.992 RX 006 bytes 00 00 00 00 80 DA
16:12:55.992 DETECT heartbeat x1
16:12:56.236 RX 001 bytes 00
16:12:56.267 RX 005 bytes 00 00 00 80 DA
16:12:56.480 RX 001 bytes 00
16:12:56.511 RX 005 bytes 00 00 00 80 DA
16:12:56.755 RX 006 bytes 00 00 00 00 80 DA
16:12:56.755 DETECT heartbeat x1
16:12:56.999 RX 006 bytes 00 00 00 00 80 DA
16:12:56.999 DETECT heartbeat x1
16:12:57.489 RX 006 bytes 00 00 15 80 00 CF
16:12:57.489 DETECT call-on x1
16:12:58.130 RX 001 bytes 00
16:12:58.161 RX 005 bytes 00 00 00 80 DA
16:12:58.192 RX 001 bytes 00
16:12:58.222 RX 005 bytes 00 15 00 00 4F
16:12:58.832 RX 001 bytes 00
16:12:58.862 RX 005 bytes 00 00 00 80 DA
16:12:59.533 RX 001 bytes 00
16:12:59.564 RX 005 bytes 00 00 00 80 DA
16:13:00.234 RX 001 bytes 00
16:13:00.265 RX 005 bytes 00 00 00 80 DA
Stopped.

View File

@@ -0,0 +1,36 @@
Button test on COM5 at 38400 8N1
Listening for 30.0s; respond_to_cam_power=True
16:08:03.444 RX 018 bytes 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA
16:08:03.444 DETECT heartbeat x3
16:08:03.781 RX 001 bytes 00
16:08:03.812 RX 005 bytes 00 00 00 80 DA
16:08:04.483 RX 001 bytes 00
16:08:04.514 RX 005 bytes 00 00 00 80 DA
16:08:05.184 RX 001 bytes 00
16:08:05.214 RX 005 bytes 00 00 00 80 DA
16:08:05.429 RX 006 bytes 00 00 07 80 00 DD
16:08:05.429 DETECT cam-power x1
16:08:05.479 TX cam-power response frame 006 00 00 07 80 00 DD
16:08:06.089 RX 006 bytes 00 00 00 00 80 DA
16:08:06.089 DETECT heartbeat x1
16:08:06.331 RX 001 bytes 00
16:08:06.362 RX 005 bytes 00 00 00 80 DA
16:08:06.576 RX 001 bytes 00
16:08:06.607 RX 005 bytes 00 00 00 80 DA
16:08:06.852 RX 006 bytes 00 00 00 00 80 DA
16:08:06.852 DETECT heartbeat x1
16:08:07.094 RX 006 bytes 00 00 00 00 80 DA
16:08:07.094 DETECT heartbeat x1
16:08:07.337 RX 001 bytes 00
16:08:07.367 RX 005 bytes 00 00 00 80 DA
16:08:07.672 RX 006 bytes 00 00 07 80 00 DD
16:08:07.672 DETECT cam-power x1
16:08:08.285 RX 001 bytes 00
16:08:08.315 RX 005 bytes 00 00 00 80 DA
16:08:08.987 RX 001 bytes 00
16:08:09.017 RX 005 bytes 00 00 00 80 DA
16:08:09.686 RX 001 bytes 00
16:08:09.717 RX 005 bytes 00 00 00 80 DA
16:08:10.386 RX 001 bytes 00
16:08:10.417 RX 005 bytes 00 00 00 80 DA
Stopped.

View File

@@ -0,0 +1,32 @@
Button test on COM5 at 38400 8N1
Listening for 30.0s; respond_to_cam_power=True
16:08:44.938 RX 024 bytes 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA
16:08:44.938 DETECT heartbeat x4
16:08:45.640 RX 006 bytes 00 00 00 00 80 DA
16:08:45.640 DETECT heartbeat x1
16:08:46.126 RX 006 bytes 00 00 07 80 00 DD
16:08:46.126 DETECT cam-power x1
16:08:46.177 TX cam-power response frame 006 00 00 07 00 80 DD
16:08:46.725 RX 001 bytes 00
16:08:46.756 RX 005 bytes 00 00 00 80 DA
16:08:47.001 RX 006 bytes 00 00 00 00 80 DA
16:08:47.001 DETECT heartbeat x1
16:08:47.245 RX 006 bytes 00 00 00 00 80 DA
16:08:47.245 DETECT heartbeat x1
16:08:47.488 RX 001 bytes 00
16:08:47.519 RX 005 bytes 00 00 00 80 DA
16:08:47.731 RX 001 bytes 00
16:08:47.762 RX 005 bytes 00 00 00 80 DA
16:08:48.005 RX 006 bytes 00 00 00 00 80 DA
16:08:48.005 DETECT heartbeat x1
16:08:48.645 RX 006 bytes 00 00 00 00 80 DA
16:08:48.645 DETECT heartbeat x1
16:08:49.345 RX 006 bytes 00 00 00 00 80 DA
16:08:49.345 DETECT heartbeat x1
16:08:50.045 RX 006 bytes 00 00 00 00 80 DA
16:08:50.045 DETECT heartbeat x1
16:08:50.749 RX 006 bytes 00 00 00 00 80 DA
16:08:50.749 DETECT heartbeat x1
16:08:51.447 RX 006 bytes 00 00 00 00 80 DA
16:08:51.447 DETECT heartbeat x1
Stopped.

View File

@@ -0,0 +1,57 @@
Button test on COM5 at 38400 8N1
16:06:55.861 TX latch primer frame 006 00 00 00 00 80 DA
LATCH PRIMER RX 18 bytes; heartbeat=3
16:06:56.871 TX latch query frame 006 00 00 B5 00 80 6F
LATCH QUERY RX 30 bytes; no known complete frames
Listening for 30.0s; respond_to_cam_power=False
16:07:02.667 RX 054 bytes 07 80 6D 20 D8 48 07 80 6D 20 D8 48 07 80 6D 20 D8 48 07 80 6D 20 D8 48 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA
16:07:02.667 DETECT heartbeat x5
16:07:02.941 RX 001 bytes 00
16:07:02.971 RX 005 bytes 00 00 00 80 DA
16:07:03.399 RX 006 bytes 00 00 15 80 00 CF
16:07:03.399 DETECT call-on x1
16:07:04.040 RX 001 bytes 00
16:07:04.070 RX 005 bytes 00 00 00 80 DA
16:07:04.101 RX 001 bytes 00
16:07:04.131 RX 005 bytes 00 15 00 00 4F
16:07:04.527 RX 006 bytes 00 00 15 80 00 CF
16:07:04.527 DETECT call-on x1
16:07:05.139 RX 001 bytes 00
16:07:05.169 RX 005 bytes 00 00 00 80 DA
16:07:05.291 RX 006 bytes 00 00 15 00 00 4F
16:07:05.291 DETECT call-off x1
16:07:05.932 RX 001 bytes 00
16:07:05.963 RX 005 bytes 00 00 00 80 DA
16:07:06.147 RX 006 bytes 00 00 15 80 00 CF
16:07:06.147 DETECT call-on x1
16:07:06.541 RX 001 bytes 00
16:07:06.571 RX 005 bytes 00 15 00 00 4F
16:07:06.784 RX 006 bytes 00 00 15 80 00 CF
16:07:06.784 DETECT call-on x1
16:07:06.907 RX 006 bytes 00 00 15 00 00 4F
16:07:06.907 DETECT call-off x1
16:07:07.030 RX 006 bytes 00 00 15 80 00 CF
16:07:07.030 DETECT call-on x1
16:07:07.213 RX 006 bytes 00 00 15 00 00 4F
16:07:07.213 DETECT call-off x1
16:07:07.854 RX 006 bytes 00 00 00 00 80 DA
16:07:07.854 DETECT heartbeat x1
16:07:08.556 RX 006 bytes 00 00 00 00 80 DA
16:07:08.556 DETECT heartbeat x1
16:07:09.256 RX 006 bytes 00 00 00 00 80 DA
16:07:09.256 DETECT heartbeat x1
16:07:09.287 RX 006 bytes 00 00 07 80 00 DD
16:07:09.287 DETECT cam-power x1
16:07:09.957 RX 006 bytes 00 00 00 00 80 DA
16:07:09.957 DETECT heartbeat x1
16:07:09.987 RX 006 bytes 00 00 07 80 00 DD
16:07:09.987 DETECT cam-power x1
16:07:10.414 RX 006 bytes 00 00 07 80 00 DD
16:07:10.414 DETECT cam-power x1
16:07:11.053 RX 006 bytes 00 00 00 00 80 DA
16:07:11.053 DETECT heartbeat x1
16:07:11.754 RX 006 bytes 00 00 00 00 80 DA
16:07:11.754 DETECT heartbeat x1
16:07:12.454 RX 006 bytes 00 00 00 00 80 DA
16:07:12.454 DETECT heartbeat x1
Stopped.

View File

@@ -0,0 +1,36 @@
Button test on COM5 at 38400 8N1
16:13:12.931 TX latch primer frame 006 00 00 00 00 80 DA
LATCH PRIMER RX 18 bytes; heartbeat=2
16:13:13.939 TX latch query frame 006 00 00 B5 00 80 6F
LATCH QUERY RX 24 bytes; heartbeat=4
Listening for 30.0s; respond_to_cam_power=False, respond_to_call=True
16:13:17.863 RX 042 bytes 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA
16:13:17.863 DETECT heartbeat x7
16:13:18.106 RX 006 bytes 00 00 15 80 00 CF
16:13:18.106 DETECT call-on x1
16:13:18.158 TX cam-power response frame 006 00 00 15 00 80 CF
16:13:18.769 RX 006 bytes 00 00 15 00 00 4F
16:13:18.769 DETECT call-off x1
16:13:19.014 RX 006 bytes 00 00 15 00 00 4F
16:13:19.014 DETECT call-off x1
16:13:19.258 RX 001 bytes 00
16:13:19.289 RX 005 bytes 00 15 00 00 4F
16:13:19.503 RX 001 bytes 00
16:13:19.533 RX 005 bytes 00 15 00 00 4F
16:13:19.776 RX 006 bytes 00 00 15 00 00 4F
16:13:19.776 DETECT call-off x1
16:13:20.021 RX 006 bytes 00 00 15 00 00 4F
16:13:20.021 DETECT call-off x1
16:13:20.539 RX 006 bytes 00 00 15 80 00 CF
16:13:20.539 DETECT call-on x1
16:13:20.723 RX 006 bytes 00 00 15 00 00 4F
16:13:20.723 DETECT call-off x1
16:13:20.846 RX 006 bytes 00 00 15 80 00 CF
16:13:20.846 DETECT call-on x1
16:13:20.967 RX 001 bytes 00
16:13:20.997 RX 005 bytes 00 15 00 00 4F
16:13:21.670 RX 001 bytes 00
16:13:21.700 RX 005 bytes 00 00 00 80 DA
16:13:22.374 RX 001 bytes 00
16:13:22.404 RX 005 bytes 00 00 00 80 DA
Stopped.

View File

@@ -0,0 +1,59 @@
Button test on COM5 at 38400 8N1
Listening for 30.0s; respond_to_cam_power=False
16:06:14.829 RX 060 bytes 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA 00 00 00 00 80 DA
16:06:14.829 DETECT heartbeat x10
16:06:15.349 RX 006 bytes 00 00 00 00 80 DA
16:06:15.349 DETECT heartbeat x1
16:06:15.502 RX 006 bytes 00 00 15 80 00 CF
16:06:15.502 DETECT call-on x1
16:06:15.776 RX 001 bytes 00
16:06:15.806 RX 005 bytes 00 15 00 00 4F
16:06:16.141 RX 006 bytes 00 00 15 80 00 CF
16:06:16.141 DETECT call-on x1
16:06:16.603 RX 001 bytes 00
16:06:16.633 RX 005 bytes 00 15 00 00 4F
16:06:17.183 RX 006 bytes 00 00 15 80 00 CF
16:06:17.183 DETECT call-on x1
16:06:17.703 RX 006 bytes 00 00 15 00 00 4F
16:06:17.703 DETECT call-off x1
16:06:18.130 RX 006 bytes 00 00 15 80 00 CF
16:06:18.130 DETECT call-on x1
16:06:18.832 RX 001 bytes 00
16:06:18.863 RX 005 bytes 00 00 00 80 DA
16:06:19.534 RX 001 bytes 00
16:06:19.565 RX 005 bytes 00 00 00 80 DA
16:06:20.236 RX 001 bytes 00
16:06:20.267 RX 005 bytes 00 00 00 80 DA
16:06:20.726 RX 006 bytes 00 00 15 00 00 4F
16:06:20.726 DETECT call-off x1
16:06:21.337 RX 001 bytes 00
16:06:21.368 RX 005 bytes 00 00 00 80 DA
16:06:22.040 RX 006 bytes 00 00 00 00 80 DA
16:06:22.040 DETECT heartbeat x1
16:06:22.742 RX 006 bytes 00 00 00 00 80 DA
16:06:22.742 DETECT heartbeat x1
16:06:22.896 RX 006 bytes 00 00 07 80 00 DD
16:06:22.896 DETECT cam-power x1
16:06:23.538 RX 006 bytes 00 00 00 00 80 DA
16:06:23.538 DETECT heartbeat x1
16:06:24.240 RX 006 bytes 00 00 00 00 80 DA
16:06:24.240 DETECT heartbeat x1
16:06:24.944 RX 006 bytes 00 00 00 00 80 DA
16:06:24.944 DETECT heartbeat x1
16:06:25.433 RX 006 bytes 00 00 07 80 00 DD
16:06:25.433 DETECT cam-power x1
16:06:26.045 RX 006 bytes 00 00 00 00 80 DA
16:06:26.045 DETECT heartbeat x1
16:06:26.747 RX 006 bytes 00 00 00 00 80 DA
16:06:26.747 DETECT heartbeat x1
16:06:26.870 RX 006 bytes 00 00 07 80 00 DD
16:06:26.870 DETECT cam-power x1
16:06:27.539 RX 006 bytes 00 00 00 00 80 DA
16:06:27.539 DETECT heartbeat x1
16:06:28.240 RX 006 bytes 00 00 00 00 80 DA
16:06:28.240 DETECT heartbeat x1
16:06:28.942 RX 006 bytes 00 00 00 00 80 DA
16:06:28.942 DETECT heartbeat x1
16:06:29.641 RX 006 bytes 00 00 00 00 80 DA
16:06:29.641 DETECT heartbeat x1
Stopped.

View File

@@ -0,0 +1,280 @@
Unlatch sweep: latch 00 00 00 00 80 DA -> 00 00 A0 00 80 7A, verify 00 00 00 00 80 DA -> 00 00 A0 00 80 7A, 23 candidates on COM5 at 38400 8N1
CANDIDATE 0x00 BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:40:16.557 TX latch primer frame 006 00 00 00 00 80 DA
15:40:16.557 LATCH PRIMER RX heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
15:40:17.380 TX latch query frame 006 00 00 A0 00 80 7A
15:40:17.380 LATCH QUERY RX ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00
15:40:17.380 LATCH QUERY RX raw 07 80 68 40 30 C5 07 80 68 40 30 C5 07 80 68 40 30 C5 07 80 68 40 30 C5
15:40:18.207 TX candidate 0x00 frame 006 00 00 00 00 80 DA
15:40:18.207 CANDIDATE 0X00 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:40:26.394 SCREEN candidate=0x00 CONNECT NOT ACT
15:40:26.394 TX verify primer frame 006 00 00 00 00 80 DA
15:40:26.394 VERIFY PRIMER RX heartbeat-compatible RX: 84 bytes, offset 0, 14 frames + 0 bytes
15:40:27.214 TX verify query frame 006 00 00 A0 00 80 7A
15:40:27.214 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 1/23
CANDIDATE 0x01 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:40:31.751 TX latch primer frame 006 00 00 00 00 80 DA
15:40:31.751 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:40:32.576 TX latch query frame 006 00 00 A0 00 80 7A
15:40:32.576 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:40:33.399 TX candidate 0x01 frame 006 00 00 01 00 80 DB
15:40:33.399 CANDIDATE 0X01 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:40:42.143 TX verify primer frame 006 00 00 00 00 80 DA
15:40:42.143 VERIFY PRIMER RX heartbeat-compatible RX: 84 bytes, offset 0, 14 frames + 0 bytes
15:40:42.967 TX verify query frame 006 00 00 A0 00 80 7A
15:40:42.967 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 2/23
CANDIDATE 0x0F BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:40:47.504 TX latch primer frame 006 00 00 00 00 80 DA
15:40:47.504 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:40:48.328 TX latch query frame 006 00 00 A0 00 80 7A
15:40:48.328 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:40:49.150 TX candidate 0x0F frame 006 00 00 0F 00 80 D5
15:40:49.150 CANDIDATE 0X0F RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:40:53.165 TX verify primer frame 006 00 00 00 00 80 DA
15:40:53.165 VERIFY PRIMER RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:40:53.989 TX verify query frame 006 00 00 A0 00 80 7A
15:40:53.989 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 3/23
CANDIDATE 0x10 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:40:58.496 TX latch primer frame 006 00 00 00 00 80 DA
15:40:58.496 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:40:59.319 TX latch query frame 006 00 00 A0 00 80 7A
15:40:59.319 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:41:00.144 TX candidate 0x10 frame 006 00 00 10 00 80 CA
15:41:00.144 CANDIDATE 0X10 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:41:09.497 TX verify primer frame 006 00 00 00 00 80 DA
15:41:09.497 VERIFY PRIMER RX heartbeat-compatible RX: 96 bytes, offset 0, 16 frames + 0 bytes
15:41:10.319 TX verify query frame 006 00 00 A0 00 80 7A
15:41:10.319 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 4/23
CANDIDATE 0x1A BASELINE heartbeat-compatible RX: 35 bytes, offset 1, 5 frames + 5 bytes
15:41:14.840 TX latch primer frame 006 00 00 00 00 80 DA
15:41:14.840 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:41:15.663 TX latch query frame 006 00 00 A0 00 80 7A
15:41:15.663 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:41:16.487 TX candidate 0x1A frame 006 00 00 1A 00 80 C0
15:41:16.487 CANDIDATE 0X1A RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:41:19.803 TX verify primer frame 006 00 00 00 00 80 DA
15:41:19.803 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:41:20.627 TX verify query frame 006 00 00 A0 00 80 7A
15:41:20.627 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 5/23
CANDIDATE 0x1B BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:41:25.146 TX latch primer frame 006 00 00 00 00 80 DA
15:41:25.146 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:41:25.971 TX latch query frame 006 00 00 A0 00 80 7A
15:41:25.971 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:41:26.794 TX candidate 0x1B frame 006 00 00 1B 00 80 C1
15:41:26.794 CANDIDATE 0X1B RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:41:28.825 TX verify primer frame 006 00 00 00 00 80 DA
15:41:28.825 VERIFY PRIMER RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:41:29.648 TX verify query frame 006 00 00 A0 00 80 7A
15:41:29.648 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 6/23
CANDIDATE 0x40 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:41:34.187 TX latch primer frame 006 00 00 00 00 80 DA
15:41:34.187 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:41:35.013 TX latch query frame 006 00 00 A0 00 80 7A
15:41:35.013 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:41:35.838 TX candidate 0x40 frame 006 00 00 40 00 80 9A
15:41:35.838 CANDIDATE 0X40 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:41:40.188 TX verify primer frame 006 00 00 00 00 80 DA
15:41:40.188 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:41:41.012 TX verify query frame 006 00 00 A0 00 80 7A
15:41:41.012 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 7/23
CANDIDATE 0x4F BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:41:45.534 TX latch primer frame 006 00 00 00 00 80 DA
15:41:45.534 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:41:46.359 TX latch query frame 006 00 00 A0 00 80 7A
15:41:46.359 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:41:47.184 TX candidate 0x4F frame 006 00 00 4F 00 80 95
15:41:47.184 CANDIDATE 0X4F RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:41:56.052 TX verify primer frame 006 00 00 00 00 80 DA
15:41:56.052 VERIFY PRIMER RX heartbeat-compatible RX: 85 bytes, offset 0, 14 frames + 1 bytes
15:41:56.875 TX verify query frame 006 00 00 A0 00 80 7A
15:41:56.875 VERIFY QUERY RX heartbeat-compatible RX: 41 bytes, offset 1, 6 frames + 5 bytes
Completed candidate 8/23
CANDIDATE 0x68 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:42:01.384 TX latch primer frame 006 00 00 00 00 80 DA
15:42:01.384 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:42:02.203 TX latch query frame 006 00 00 A0 00 80 7A
15:42:02.203 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:42:03.025 TX candidate 0x68 frame 006 00 00 68 00 80 B2
15:42:03.025 CANDIDATE 0X68 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:42:08.000 TX verify primer frame 006 00 00 00 00 80 DA
15:42:08.000 VERIFY PRIMER RX heartbeat-compatible RX: 60 bytes, offset 0, 10 frames + 0 bytes
15:42:08.828 TX verify query frame 006 00 00 A0 00 80 7A
15:42:08.828 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 9/23
CANDIDATE 0x6C BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:42:13.334 TX latch primer frame 006 00 00 00 00 80 DA
15:42:13.334 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:42:14.157 TX latch query frame 006 00 00 A0 00 80 7A
15:42:14.157 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:42:14.981 TX candidate 0x6C frame 006 00 00 6C 00 80 B6
15:42:14.981 CANDIDATE 0X6C RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:42:22.738 TX verify primer frame 006 00 00 00 00 80 DA
15:42:22.738 VERIFY PRIMER RX heartbeat-compatible RX: 84 bytes, offset 0, 14 frames + 0 bytes
15:42:23.562 TX verify query frame 006 00 00 A0 00 80 7A
15:42:23.562 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 10/23
CANDIDATE 0x80 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:42:28.074 TX latch primer frame 006 00 00 00 00 80 DA
15:42:28.074 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:42:28.898 TX latch query frame 006 00 00 A0 00 80 7A
15:42:28.898 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:42:29.719 TX candidate 0x80 frame 006 00 00 80 00 80 5A
15:42:29.719 CANDIDATE 0X80 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:42:40.789 TX verify primer frame 006 00 00 00 00 80 DA
15:42:40.789 VERIFY PRIMER RX heartbeat-compatible RX: 108 bytes, offset 0, 18 frames + 0 bytes
15:42:41.615 TX verify query frame 006 00 00 A0 00 80 7A
15:42:41.615 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 11/23
CANDIDATE 0x8F BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:42:46.121 TX latch primer frame 006 00 00 00 00 80 DA
15:42:46.121 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:42:46.943 TX latch query frame 006 00 00 A0 00 80 7A
15:42:46.943 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:42:47.764 TX candidate 0x8F frame 006 00 00 8F 00 80 55
15:42:47.764 CANDIDATE 0X8F RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:42:50.933 TX verify primer frame 006 00 00 00 00 80 DA
15:42:50.933 VERIFY PRIMER RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:42:51.755 TX verify query frame 006 00 00 A0 00 80 7A
15:42:51.755 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 12/23
CANDIDATE 0x90 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:42:56.261 TX latch primer frame 006 00 00 00 00 80 DA
15:42:56.261 LATCH PRIMER RX heartbeat-compatible RX: 19 bytes, offset 0, 3 frames + 1 bytes
15:42:57.084 TX latch query frame 006 00 00 A0 00 80 7A
15:42:57.084 LATCH QUERY RX heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:42:57.908 TX candidate 0x90 frame 006 00 00 90 00 80 4A
15:42:57.908 CANDIDATE 0X90 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:43:09.837 TX verify primer frame 006 00 00 00 00 80 DA
15:43:09.837 VERIFY PRIMER RX heartbeat-compatible RX: 120 bytes, offset 0, 20 frames + 0 bytes
15:43:10.662 TX verify query frame 006 00 00 A0 00 80 7A
15:43:10.662 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 13/23
CANDIDATE 0x9F BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:43:15.171 TX latch primer frame 006 00 00 00 00 80 DA
15:43:15.171 LATCH PRIMER RX heartbeat-compatible RX: 19 bytes, offset 0, 3 frames + 1 bytes
15:43:15.991 TX latch query frame 006 00 00 A0 00 80 7A
15:43:15.991 LATCH QUERY RX heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:43:16.813 TX candidate 0x9F frame 006 00 00 9F 00 80 45
15:43:16.813 CANDIDATE 0X9F RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:43:21.532 TX verify primer frame 006 00 00 00 00 80 DA
15:43:21.532 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:43:22.356 TX verify query frame 006 00 00 A0 00 80 7A
15:43:22.356 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 14/23
CANDIDATE 0xA0 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:43:26.867 TX latch primer frame 006 00 00 00 00 80 DA
15:43:26.867 LATCH PRIMER RX heartbeat-compatible RX: 19 bytes, offset 0, 3 frames + 1 bytes
15:43:27.690 TX latch query frame 006 00 00 A0 00 80 7A
15:43:27.690 LATCH QUERY RX heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:43:28.514 TX candidate 0xA0 frame 006 00 00 A0 00 80 7A
15:43:28.514 CANDIDATE 0XA0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:43:36.116 TX verify primer frame 006 00 00 00 00 80 DA
15:43:36.116 VERIFY PRIMER RX heartbeat-compatible RX: 78 bytes, offset 0, 13 frames + 0 bytes
15:43:36.940 TX verify query frame 006 00 00 A0 00 80 7A
15:43:36.940 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 15/23
CANDIDATE 0xB0 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:43:41.451 TX latch primer frame 006 00 00 00 00 80 DA
15:43:41.451 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:43:42.275 TX latch query frame 006 00 00 A0 00 80 7A
15:43:42.275 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:43:43.097 TX candidate 0xB0 frame 006 00 00 B0 00 80 6A
15:43:43.097 CANDIDATE 0XB0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:43:48.375 TX verify primer frame 006 00 00 00 00 80 DA
15:43:48.375 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:43:49.199 TX verify query frame 006 00 00 A0 00 80 7A
15:43:49.199 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 16/23
CANDIDATE 0xB8 BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:43:53.740 TX latch primer frame 006 00 00 00 00 80 DA
15:43:53.740 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:43:54.565 TX latch query frame 006 00 00 A0 00 80 7A
15:43:54.565 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:43:55.387 TX candidate 0xB8 frame 006 00 00 B8 00 80 62
15:43:55.387 CANDIDATE 0XB8 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:44:08.829 TX verify primer frame 006 00 00 00 00 80 DA
15:44:08.829 VERIFY PRIMER RX heartbeat-compatible RX: 132 bytes, offset 0, 22 frames + 0 bytes
15:44:09.652 TX verify query frame 006 00 00 A0 00 80 7A
15:44:09.652 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 17/23
CANDIDATE 0xBC BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:44:14.195 TX latch primer frame 006 00 00 00 00 80 DA
15:44:14.195 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:44:15.016 TX latch query frame 006 00 00 A0 00 80 7A
15:44:15.016 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:44:15.839 TX candidate 0xBC frame 006 00 00 BC 00 80 66
15:44:15.839 CANDIDATE 0XBC RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:44:24.624 TX verify primer frame 006 00 00 00 00 80 DA
15:44:24.624 VERIFY PRIMER RX heartbeat-compatible RX: 84 bytes, offset 0, 14 frames + 0 bytes
15:44:25.448 TX verify query frame 006 00 00 A0 00 80 7A
15:44:25.448 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 18/23
CANDIDATE 0xC0 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:44:29.984 TX latch primer frame 006 00 00 00 00 80 DA
15:44:29.984 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:44:30.807 TX latch query frame 006 00 00 A0 00 80 7A
15:44:30.807 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:44:31.629 TX candidate 0xC0 frame 006 00 00 C0 00 80 1A
15:44:31.629 CANDIDATE 0XC0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:44:34.817 TX verify primer frame 006 00 00 00 00 80 DA
15:44:34.817 VERIFY PRIMER RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:44:35.637 TX verify query frame 006 00 00 A0 00 80 7A
15:44:35.637 VERIFY QUERY RX heartbeat-compatible RX: 37 bytes, offset 0, 6 frames + 1 bytes
Completed candidate 19/23
CANDIDATE 0xCF BASELINE heartbeat-compatible RX: 30 bytes, offset 1, 5 frames + 0 bytes
15:44:40.151 TX latch primer frame 006 00 00 00 00 80 DA
15:44:40.151 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:44:40.971 TX latch query frame 006 00 00 A0 00 80 7A
15:44:40.971 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:44:41.797 TX candidate 0xCF frame 006 00 00 CF 00 80 15
15:44:41.797 CANDIDATE 0XCF RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:44:44.310 TX verify primer frame 006 00 00 00 00 80 DA
15:44:44.310 VERIFY PRIMER RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:44:45.135 TX verify query frame 006 00 00 A0 00 80 7A
15:44:45.135 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 20/23
CANDIDATE 0xE0 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:44:49.674 TX latch primer frame 006 00 00 00 00 80 DA
15:44:49.674 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:44:50.499 TX latch query frame 006 00 00 A0 00 80 7A
15:44:50.499 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:44:51.324 TX candidate 0xE0 frame 006 00 00 E0 00 80 3A
15:44:51.324 CANDIDATE 0XE0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:44:54.866 TX verify primer frame 006 00 00 00 00 80 DA
15:44:54.866 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:44:55.692 TX verify query frame 006 00 00 A0 00 80 7A
15:44:55.692 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 21/23
CANDIDATE 0xEF BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:45:00.200 TX latch primer frame 006 00 00 00 00 80 DA
15:45:00.200 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:45:01.024 TX latch query frame 006 00 00 A0 00 80 7A
15:45:01.024 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:45:01.845 TX candidate 0xEF frame 006 00 00 EF 00 80 35
15:45:01.845 CANDIDATE 0XEF RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:45:06.227 TX verify primer frame 006 00 00 00 00 80 DA
15:45:06.227 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:45:07.051 TX verify query frame 006 00 00 A0 00 80 7A
15:45:07.051 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 22/23
CANDIDATE 0xFF BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:45:11.564 TX latch primer frame 006 00 00 00 00 80 DA
15:45:11.564 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:45:12.387 TX latch query frame 006 00 00 A0 00 80 7A
15:45:12.387 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:45:13.212 TX candidate 0xFF frame 006 00 00 FF 00 80 25
15:45:13.212 CANDIDATE 0XFF RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:45:16.013 TX verify primer frame 006 00 00 00 00 80 DA
15:45:16.013 VERIFY PRIMER RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:45:16.836 TX verify query frame 006 00 00 A0 00 80 7A
15:45:16.836 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 23/23
Verify responses: 0

View File

@@ -0,0 +1,594 @@
Unlatch sweep: latch 00 00 00 00 80 DA -> 00 00 B5 00 80 6F, verify 00 00 00 00 80 DA -> 00 00 B5 00 80 6F, 49 candidates on COM5 at 38400 8N1
CANDIDATE 0x00 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:29:27.553 TX latch primer frame 006 00 00 00 00 80 DA
15:29:27.553 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:29:28.375 TX latch query frame 006 00 00 B5 00 80 6F
15:29:28.375 LATCH QUERY RX ANOMALY 30 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00
15:29:28.375 LATCH QUERY RX raw 07 80 6D 20 D8 48 07 80 6D 20 D8 48 07 80 6D 20 D8 48 07 80 6D 20 D8 48 07 80 6D 20 D8 48
15:29:29.200 TX candidate 0x00 frame 006 00 00 00 00 80 DA
15:29:29.200 CANDIDATE 0X00 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:29:37.453 SCREEN candidate=0x00 CONNECT NOT ACT
15:29:37.453 TX verify primer frame 006 00 00 00 00 80 DA
15:29:37.453 VERIFY PRIMER RX heartbeat-compatible RX: 84 bytes, offset 0, 14 frames + 0 bytes
15:29:38.275 TX verify query frame 006 00 00 B5 00 80 6F
15:29:38.275 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 1/49
CANDIDATE 0x01 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:29:42.791 TX latch primer frame 006 00 00 00 00 80 DA
15:29:42.791 LATCH PRIMER RX heartbeat-compatible RX: 19 bytes, offset 0, 3 frames + 1 bytes
15:29:43.615 TX latch query frame 006 00 00 B5 00 80 6F
15:29:43.615 LATCH QUERY RX heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:29:44.438 TX candidate 0x01 frame 006 00 00 01 00 80 DB
15:29:44.438 CANDIDATE 0X01 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:29:54.059 TX verify primer frame 006 00 00 00 00 80 DA
15:29:54.059 VERIFY PRIMER RX heartbeat-compatible RX: 96 bytes, offset 0, 16 frames + 0 bytes
15:29:54.885 TX verify query frame 006 00 00 B5 00 80 6F
15:29:54.885 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 2/49
CANDIDATE 0x03 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:29:59.398 TX latch primer frame 006 00 00 00 00 80 DA
15:29:59.398 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:30:00.222 TX latch query frame 006 00 00 B5 00 80 6F
15:30:00.222 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:30:01.044 TX candidate 0x03 frame 006 00 00 03 00 80 D9
15:30:01.044 CANDIDATE 0X03 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:30:04.582 TX verify primer frame 006 00 00 00 00 80 DA
15:30:04.582 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:30:05.404 TX verify query frame 006 00 00 B5 00 80 6F
15:30:05.404 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 3/49
CANDIDATE 0x07 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:30:09.918 TX latch primer frame 006 00 00 00 00 80 DA
15:30:09.918 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:30:10.740 TX latch query frame 006 00 00 B5 00 80 6F
15:30:10.740 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:30:11.561 TX candidate 0x07 frame 006 00 00 07 00 80 DD
15:30:11.561 CANDIDATE 0X07 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:30:15.068 TX verify primer frame 006 00 00 00 00 80 DA
15:30:15.068 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:30:15.891 TX verify query frame 006 00 00 B5 00 80 6F
15:30:15.891 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 4/49
CANDIDATE 0x0A BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:30:20.401 TX latch primer frame 006 00 00 00 00 80 DA
15:30:20.401 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:30:21.226 TX latch query frame 006 00 00 B5 00 80 6F
15:30:21.226 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:30:22.054 TX candidate 0x0A frame 006 00 00 0A 00 80 D0
15:30:22.054 CANDIDATE 0X0A RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:30:44.371 TX verify primer frame 006 00 00 00 00 80 DA
15:30:44.371 VERIFY PRIMER RX heartbeat-compatible RX: 204 bytes, offset 0, 34 frames + 0 bytes
15:30:45.194 TX verify query frame 006 00 00 B5 00 80 6F
15:30:45.194 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 5/49
CANDIDATE 0x0C BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:30:49.708 TX latch primer frame 006 00 00 00 00 80 DA
15:30:49.708 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:30:50.530 TX latch query frame 006 00 00 B5 00 80 6F
15:30:50.530 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:30:51.351 TX candidate 0x0C frame 006 00 00 0C 00 80 D6
15:30:51.351 CANDIDATE 0X0C RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:30:58.630 TX verify primer frame 006 00 00 00 00 80 DA
15:30:58.630 VERIFY PRIMER RX heartbeat-compatible RX: 84 bytes, offset 0, 14 frames + 0 bytes
15:30:59.451 TX verify query frame 006 00 00 B5 00 80 6F
15:30:59.451 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 6/49
CANDIDATE 0x0D BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:31:03.963 TX latch primer frame 006 00 00 00 00 80 DA
15:31:03.963 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:31:04.784 TX latch query frame 006 00 00 B5 00 80 6F
15:31:04.784 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:31:05.606 TX candidate 0x0D frame 006 00 00 0D 00 80 D7
15:31:05.606 CANDIDATE 0X0D RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:31:09.654 TX verify primer frame 006 00 00 00 00 80 DA
15:31:09.654 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:31:10.477 TX verify query frame 006 00 00 B5 00 80 6F
15:31:10.477 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 7/49
CANDIDATE 0x0E BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:31:14.988 TX latch primer frame 006 00 00 00 00 80 DA
15:31:14.988 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:31:15.813 TX latch query frame 006 00 00 B5 00 80 6F
15:31:15.813 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:31:16.633 TX candidate 0x0E frame 006 00 00 0E 00 80 D4
15:31:16.633 CANDIDATE 0X0E RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:31:20.254 TX verify primer frame 006 00 00 00 00 80 DA
15:31:20.254 VERIFY PRIMER RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:31:21.077 TX verify query frame 006 00 00 B5 00 80 6F
15:31:21.077 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 8/49
CANDIDATE 0x0F BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:31:25.586 TX latch primer frame 006 00 00 00 00 80 DA
15:31:25.586 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:31:26.409 TX latch query frame 006 00 00 B5 00 80 6F
15:31:26.409 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:31:27.233 TX candidate 0x0F frame 006 00 00 0F 00 80 D5
15:31:27.233 CANDIDATE 0X0F RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:31:33.055 TX verify primer frame 006 00 00 00 00 80 DA
15:31:33.055 VERIFY PRIMER RX heartbeat-compatible RX: 60 bytes, offset 0, 10 frames + 0 bytes
15:31:33.876 TX verify query frame 006 00 00 B5 00 80 6F
15:31:33.876 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 9/49
CANDIDATE 0x10 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:31:38.361 TX latch primer frame 006 00 00 00 00 80 DA
15:31:38.361 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:31:39.185 TX latch query frame 006 00 00 B5 00 80 6F
15:31:39.185 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:31:40.008 TX candidate 0x10 frame 006 00 00 10 00 80 CA
15:31:40.008 CANDIDATE 0X10 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:31:43.567 TX verify primer frame 006 00 00 00 00 80 DA
15:31:43.567 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:31:44.390 TX verify query frame 006 00 00 B5 00 80 6F
15:31:44.390 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 10/49
CANDIDATE 0x1A BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:31:48.901 TX latch primer frame 006 00 00 00 00 80 DA
15:31:48.901 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:31:49.723 TX latch query frame 006 00 00 B5 00 80 6F
15:31:49.723 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:31:50.544 TX candidate 0x1A frame 006 00 00 1A 00 80 C0
15:31:50.544 CANDIDATE 0X1A RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:31:58.754 TX verify primer frame 006 00 00 00 00 80 DA
15:31:58.754 VERIFY PRIMER RX heartbeat-compatible RX: 84 bytes, offset 0, 14 frames + 0 bytes
15:31:59.577 TX verify query frame 006 00 00 B5 00 80 6F
15:31:59.577 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 11/49
CANDIDATE 0x1B BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:32:04.088 TX latch primer frame 006 00 00 00 00 80 DA
15:32:04.088 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:32:04.910 TX latch query frame 006 00 00 B5 00 80 6F
15:32:04.910 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:05.734 TX candidate 0x1B frame 006 00 00 1B 00 80 C1
15:32:05.734 CANDIDATE 0X1B RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:32:08.697 TX verify primer frame 006 00 00 00 00 80 DA
15:32:08.697 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:32:09.521 TX verify query frame 006 00 00 B5 00 80 6F
15:32:09.521 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 12/49
CANDIDATE 0x1C BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:32:14.031 TX latch primer frame 006 00 00 00 00 80 DA
15:32:14.031 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:14.854 TX latch query frame 006 00 00 B5 00 80 6F
15:32:14.854 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:15.676 TX candidate 0x1C frame 006 00 00 1C 00 80 C6
15:32:15.676 CANDIDATE 0X1C RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:32:19.274 TX verify primer frame 006 00 00 00 00 80 DA
15:32:19.274 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:32:20.098 TX verify query frame 006 00 00 B5 00 80 6F
15:32:20.098 VERIFY QUERY RX heartbeat-compatible RX: 37 bytes, offset 0, 6 frames + 1 bytes
Completed candidate 13/49
CANDIDATE 0x20 BASELINE heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:32:24.638 TX latch primer frame 006 00 00 00 00 80 DA
15:32:24.638 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:25.460 TX latch query frame 006 00 00 B5 00 80 6F
15:32:25.460 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:26.281 TX candidate 0x20 frame 006 00 00 20 00 80 FA
15:32:26.281 CANDIDATE 0X20 RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:29.960 TX verify primer frame 006 00 00 00 00 80 DA
15:32:29.960 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:32:30.782 TX verify query frame 006 00 00 B5 00 80 6F
15:32:30.782 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 14/49
CANDIDATE 0x30 BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:32:35.285 TX latch primer frame 006 00 00 00 00 80 DA
15:32:35.285 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:32:36.108 TX latch query frame 006 00 00 B5 00 80 6F
15:32:36.108 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:36.931 TX candidate 0x30 frame 006 00 00 30 00 80 EA
15:32:36.931 CANDIDATE 0X30 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:32:41.863 TX verify primer frame 006 00 00 00 00 80 DA
15:32:41.863 VERIFY PRIMER RX heartbeat-compatible RX: 55 bytes, offset 0, 9 frames + 1 bytes
15:32:42.686 TX verify query frame 006 00 00 B5 00 80 6F
15:32:42.686 VERIFY QUERY RX heartbeat-compatible RX: 41 bytes, offset 1, 6 frames + 5 bytes
Completed candidate 15/49
CANDIDATE 0x36 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:32:47.193 TX latch primer frame 006 00 00 00 00 80 DA
15:32:47.193 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:32:48.014 TX latch query frame 006 00 00 B5 00 80 6F
15:32:48.014 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:48.835 TX candidate 0x36 frame 006 00 00 36 00 80 EC
15:32:48.835 CANDIDATE 0X36 RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:32:56.086 TX verify primer frame 006 00 00 00 00 80 DA
15:32:56.086 VERIFY PRIMER RX heartbeat-compatible RX: 60 bytes, offset 0, 10 frames + 0 bytes
15:32:56.908 TX verify query frame 006 00 00 B5 00 80 6F
15:32:56.908 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 16/49
CANDIDATE 0x38 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:01.393 TX latch primer frame 006 00 00 00 00 80 DA
15:33:01.393 LATCH PRIMER RX heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
15:33:02.217 TX latch query frame 006 00 00 B5 00 80 6F
15:33:02.217 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:33:03.038 TX candidate 0x38 frame 006 00 00 38 00 80 E2
15:33:03.038 CANDIDATE 0X38 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:08.322 TX verify primer frame 006 00 00 00 00 80 DA
15:33:08.322 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:33:09.146 TX verify query frame 006 00 00 B5 00 80 6F
15:33:09.146 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 17/49
CANDIDATE 0x39 BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:33:13.681 TX latch primer frame 006 00 00 00 00 80 DA
15:33:13.681 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:33:14.503 TX latch query frame 006 00 00 B5 00 80 6F
15:33:14.503 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:33:15.325 TX candidate 0x39 frame 006 00 00 39 00 80 E3
15:33:15.325 CANDIDATE 0X39 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:18.767 TX verify primer frame 006 00 00 00 00 80 DA
15:33:18.767 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:33:19.590 TX verify query frame 006 00 00 B5 00 80 6F
15:33:19.590 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 18/49
CANDIDATE 0x40 BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:33:24.097 TX latch primer frame 006 00 00 00 00 80 DA
15:33:24.097 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:33:24.923 TX latch query frame 006 00 00 B5 00 80 6F
15:33:24.923 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:33:25.749 TX candidate 0x40 frame 006 00 00 40 00 80 9A
15:33:25.749 CANDIDATE 0X40 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:28.190 TX verify primer frame 006 00 00 00 00 80 DA
15:33:28.190 VERIFY PRIMER RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:29.013 TX verify query frame 006 00 00 B5 00 80 6F
15:33:29.013 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 19/49
CANDIDATE 0x4F BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:33.519 TX latch primer frame 006 00 00 00 00 80 DA
15:33:33.519 LATCH PRIMER RX heartbeat-compatible RX: 19 bytes, offset 0, 3 frames + 1 bytes
15:33:34.346 TX latch query frame 006 00 00 B5 00 80 6F
15:33:34.346 LATCH QUERY RX heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:33:35.167 TX candidate 0x4F frame 006 00 00 4F 00 80 95
15:33:35.167 CANDIDATE 0X4F RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:38.496 TX verify primer frame 006 00 00 00 00 80 DA
15:33:38.496 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:33:39.320 TX verify query frame 006 00 00 B5 00 80 6F
15:33:39.320 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 20/49
CANDIDATE 0x50 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:43.832 TX latch primer frame 006 00 00 00 00 80 DA
15:33:43.832 LATCH PRIMER RX heartbeat-compatible RX: 19 bytes, offset 0, 3 frames + 1 bytes
15:33:44.654 TX latch query frame 006 00 00 B5 00 80 6F
15:33:44.654 LATCH QUERY RX heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:33:45.477 TX candidate 0x50 frame 006 00 00 50 00 80 8A
15:33:45.477 CANDIDATE 0X50 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:49.053 TX verify primer frame 006 00 00 00 00 80 DA
15:33:49.053 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:33:49.876 TX verify query frame 006 00 00 B5 00 80 6F
15:33:49.876 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 21/49
CANDIDATE 0x5B BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:33:54.385 TX latch primer frame 006 00 00 00 00 80 DA
15:33:54.385 LATCH PRIMER RX heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
15:33:55.204 TX latch query frame 006 00 00 B5 00 80 6F
15:33:55.204 LATCH QUERY RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:33:56.027 TX candidate 0x5B frame 006 00 00 5B 00 80 81
15:33:56.027 CANDIDATE 0X5B RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:34:04.152 TX verify primer frame 006 00 00 00 00 80 DA
15:34:04.152 VERIFY PRIMER RX heartbeat-compatible RX: 78 bytes, offset 0, 13 frames + 0 bytes
15:34:04.974 TX verify query frame 006 00 00 B5 00 80 6F
15:34:04.974 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 22/49
CANDIDATE 0x68 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:34:09.511 TX latch primer frame 006 00 00 00 00 80 DA
15:34:09.511 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:34:10.336 TX latch query frame 006 00 00 B5 00 80 6F
15:34:10.336 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:34:11.159 TX candidate 0x68 frame 006 00 00 68 00 80 B2
15:34:11.159 CANDIDATE 0X68 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:34:18.641 TX verify primer frame 006 00 00 00 00 80 DA
15:34:18.641 VERIFY PRIMER RX heartbeat-compatible RX: 78 bytes, offset 0, 13 frames + 0 bytes
15:34:19.467 TX verify query frame 006 00 00 B5 00 80 6F
15:34:19.467 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 23/49
CANDIDATE 0x6C BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:34:23.977 TX latch primer frame 006 00 00 00 00 80 DA
15:34:23.977 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:34:24.797 TX latch query frame 006 00 00 B5 00 80 6F
15:34:24.797 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:34:25.620 TX candidate 0x6C frame 006 00 00 6C 00 80 B6
15:34:25.620 CANDIDATE 0X6C RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:34:35.137 TX verify primer frame 006 00 00 00 00 80 DA
15:34:35.137 VERIFY PRIMER RX heartbeat-compatible RX: 90 bytes, offset 0, 15 frames + 0 bytes
15:34:35.963 TX verify query frame 006 00 00 B5 00 80 6F
15:34:35.963 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 24/49
CANDIDATE 0x6D BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:34:40.476 TX latch primer frame 006 00 00 00 00 80 DA
15:34:40.476 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:34:41.301 TX latch query frame 006 00 00 B5 00 80 6F
15:34:41.301 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:34:42.128 TX candidate 0x6D frame 006 00 00 6D 00 80 B7
15:34:42.128 CANDIDATE 0X6D RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:34:46.447 TX verify primer frame 006 00 00 00 00 80 DA
15:34:46.447 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:34:47.272 TX verify query frame 006 00 00 B5 00 80 6F
15:34:47.272 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 25/49
CANDIDATE 0x6E BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:34:51.810 TX latch primer frame 006 00 00 00 00 80 DA
15:34:51.810 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:34:52.633 TX latch query frame 006 00 00 B5 00 80 6F
15:34:52.633 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:34:53.456 TX candidate 0x6E frame 006 00 00 6E 00 80 B4
15:34:53.456 CANDIDATE 0X6E RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:34:57.788 TX verify primer frame 006 00 00 00 00 80 DA
15:34:57.788 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:34:58.614 TX verify query frame 006 00 00 B5 00 80 6F
15:34:58.614 VERIFY QUERY RX heartbeat-compatible RX: 37 bytes, offset 0, 6 frames + 1 bytes
Completed candidate 26/49
CANDIDATE 0x6F BASELINE heartbeat-compatible RX: 35 bytes, offset 1, 5 frames + 5 bytes
15:35:03.155 TX latch primer frame 006 00 00 00 00 80 DA
15:35:03.155 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:35:03.979 TX latch query frame 006 00 00 B5 00 80 6F
15:35:03.979 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:35:04.804 TX candidate 0x6F frame 006 00 00 6F 00 80 B5
15:35:04.804 CANDIDATE 0X6F RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:35:07.396 TX verify primer frame 006 00 00 00 00 80 DA
15:35:07.396 VERIFY PRIMER RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:35:08.219 TX verify query frame 006 00 00 B5 00 80 6F
15:35:08.219 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 27/49
CANDIDATE 0x70 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:35:12.731 TX latch primer frame 006 00 00 00 00 80 DA
15:35:12.731 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:35:13.556 TX latch query frame 006 00 00 B5 00 80 6F
15:35:13.556 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:35:14.379 TX candidate 0x70 frame 006 00 00 70 00 80 AA
15:35:14.379 CANDIDATE 0X70 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:35:17.635 TX verify primer frame 006 00 00 00 00 80 DA
15:35:17.635 VERIFY PRIMER RX heartbeat-compatible RX: 37 bytes, offset 0, 6 frames + 1 bytes
15:35:18.460 TX verify query frame 006 00 00 B5 00 80 6F
15:35:18.460 VERIFY QUERY RX heartbeat-compatible RX: 41 bytes, offset 1, 6 frames + 5 bytes
Completed candidate 28/49
CANDIDATE 0x7F BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:35:22.998 TX latch primer frame 006 00 00 00 00 80 DA
15:35:22.998 LATCH PRIMER RX heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
15:35:23.821 TX latch query frame 006 00 00 B5 00 80 6F
15:35:23.821 LATCH QUERY RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:35:24.643 TX candidate 0x7F frame 006 00 00 7F 00 80 A5
15:35:24.643 CANDIDATE 0X7F RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:35:30.169 TX verify primer frame 006 00 00 00 00 80 DA
15:35:30.169 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:35:30.992 TX verify query frame 006 00 00 B5 00 80 6F
15:35:30.992 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 29/49
CANDIDATE 0x80 BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:35:35.505 TX latch primer frame 006 00 00 00 00 80 DA
15:35:35.505 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:35:36.331 TX latch query frame 006 00 00 B5 00 80 6F
15:35:36.331 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:35:37.153 TX candidate 0x80 frame 006 00 00 80 00 80 5A
15:35:37.153 CANDIDATE 0X80 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:35:41.711 TX verify primer frame 006 00 00 00 00 80 DA
15:35:41.711 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:35:42.536 TX verify query frame 006 00 00 B5 00 80 6F
15:35:42.536 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 30/49
CANDIDATE 0x8F BASELINE heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:35:47.074 TX latch primer frame 006 00 00 00 00 80 DA
15:35:47.074 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:35:47.898 TX latch query frame 006 00 00 B5 00 80 6F
15:35:47.898 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:35:48.724 TX candidate 0x8F frame 006 00 00 8F 00 80 55
15:35:48.724 CANDIDATE 0X8F RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:35:52.398 TX verify primer frame 006 00 00 00 00 80 DA
15:35:52.398 VERIFY PRIMER RX heartbeat-compatible RX: 48 bytes, offset 0, 8 frames + 0 bytes
15:35:53.222 TX verify query frame 006 00 00 B5 00 80 6F
15:35:53.222 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 31/49
CANDIDATE 0x90 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:35:57.732 TX latch primer frame 006 00 00 00 00 80 DA
15:35:57.732 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:35:58.553 TX latch query frame 006 00 00 B5 00 80 6F
15:35:58.553 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:35:59.380 TX candidate 0x90 frame 006 00 00 90 00 80 4A
15:35:59.380 CANDIDATE 0X90 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:04.188 TX verify primer frame 006 00 00 00 00 80 DA
15:36:04.188 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:36:05.014 TX verify query frame 006 00 00 B5 00 80 6F
15:36:05.014 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 32/49
CANDIDATE 0x9F BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:36:09.512 TX latch primer frame 006 00 00 00 00 80 DA
15:36:09.512 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:36:10.339 TX latch query frame 006 00 00 B5 00 80 6F
15:36:10.339 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:11.167 TX candidate 0x9F frame 006 00 00 9F 00 80 45
15:36:11.167 CANDIDATE 0X9F RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:14.200 TX verify primer frame 006 00 00 00 00 80 DA
15:36:14.200 VERIFY PRIMER RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:36:15.029 TX verify query frame 006 00 00 B5 00 80 6F
15:36:15.029 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 33/49
CANDIDATE 0xA0 BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:36:19.523 TX latch primer frame 006 00 00 00 00 80 DA
15:36:19.523 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:36:20.348 TX latch query frame 006 00 00 B5 00 80 6F
15:36:20.348 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:21.174 TX candidate 0xA0 frame 006 00 00 A0 00 80 7A
15:36:21.174 CANDIDATE 0XA0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:23.718 TX verify primer frame 006 00 00 00 00 80 DA
15:36:23.718 VERIFY PRIMER RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:24.541 TX verify query frame 006 00 00 B5 00 80 6F
15:36:24.541 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 34/49
CANDIDATE 0xAF BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:29.078 TX latch primer frame 006 00 00 00 00 80 DA
15:36:29.078 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:29.900 TX latch query frame 006 00 00 B5 00 80 6F
15:36:29.900 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:30.724 TX candidate 0xAF frame 006 00 00 AF 00 80 75
15:36:30.724 CANDIDATE 0XAF RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:35.037 TX verify primer frame 006 00 00 00 00 80 DA
15:36:35.037 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:36:35.860 TX verify query frame 006 00 00 B5 00 80 6F
15:36:35.860 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 35/49
CANDIDATE 0xB0 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:40.371 TX latch primer frame 006 00 00 00 00 80 DA
15:36:40.371 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:41.193 TX latch query frame 006 00 00 B5 00 80 6F
15:36:41.193 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:42.018 TX candidate 0xB0 frame 006 00 00 B0 00 80 6A
15:36:42.018 CANDIDATE 0XB0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:46.267 TX verify primer frame 006 00 00 00 00 80 DA
15:36:46.267 VERIFY PRIMER RX heartbeat-compatible RX: 54 bytes, offset 0, 9 frames + 0 bytes
15:36:47.090 TX verify query frame 006 00 00 B5 00 80 6F
15:36:47.090 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 36/49
CANDIDATE 0xB5 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:51.596 TX latch primer frame 006 00 00 00 00 80 DA
15:36:51.596 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:52.422 TX latch query frame 006 00 00 B5 00 80 6F
15:36:52.422 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:36:53.249 TX candidate 0xB5 frame 006 00 00 B5 00 80 6F
15:36:53.249 CANDIDATE 0XB5 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:36:58.280 TX verify primer frame 006 00 00 00 00 80 DA
15:36:58.280 VERIFY PRIMER RX heartbeat-compatible RX: 60 bytes, offset 0, 10 frames + 0 bytes
15:36:59.104 TX verify query frame 006 00 00 B5 00 80 6F
15:36:59.104 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 37/49
CANDIDATE 0xB8 BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:37:03.622 TX latch primer frame 006 00 00 00 00 80 DA
15:37:03.622 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:37:04.443 TX latch query frame 006 00 00 B5 00 80 6F
15:37:04.443 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:05.267 TX candidate 0xB8 frame 006 00 00 B8 00 80 62
15:37:05.267 CANDIDATE 0XB8 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:37:09.215 TX verify primer frame 006 00 00 00 00 80 DA
15:37:09.215 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:37:10.038 TX verify query frame 006 00 00 B5 00 80 6F
15:37:10.038 VERIFY QUERY RX heartbeat-compatible RX: 37 bytes, offset 0, 6 frames + 1 bytes
Completed candidate 38/49
CANDIDATE 0xBC BASELINE heartbeat-compatible RX: 35 bytes, offset 1, 5 frames + 5 bytes
15:37:14.552 TX latch primer frame 006 00 00 00 00 80 DA
15:37:14.552 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:37:15.375 TX latch query frame 006 00 00 B5 00 80 6F
15:37:15.375 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:16.197 TX candidate 0xBC frame 006 00 00 BC 00 80 66
15:37:16.197 CANDIDATE 0XBC RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:37:19.523 TX verify primer frame 006 00 00 00 00 80 DA
15:37:19.523 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:37:20.346 TX verify query frame 006 00 00 B5 00 80 6F
15:37:20.346 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 39/49
CANDIDATE 0xBE BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:37:24.859 TX latch primer frame 006 00 00 00 00 80 DA
15:37:24.859 LATCH PRIMER RX heartbeat-compatible RX: 19 bytes, offset 0, 3 frames + 1 bytes
15:37:25.679 TX latch query frame 006 00 00 B5 00 80 6F
15:37:25.679 LATCH QUERY RX heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:37:26.500 TX candidate 0xBE frame 006 00 00 BE 00 80 64
15:37:26.500 CANDIDATE 0XBE RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:29.625 TX verify primer frame 006 00 00 00 00 80 DA
15:37:29.625 VERIFY PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:30.446 TX verify query frame 006 00 00 B5 00 80 6F
15:37:30.446 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 40/49
CANDIDATE 0xBF BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:37:34.962 TX latch primer frame 006 00 00 00 00 80 DA
15:37:34.962 LATCH PRIMER RX heartbeat-compatible RX: 19 bytes, offset 0, 3 frames + 1 bytes
15:37:35.785 TX latch query frame 006 00 00 B5 00 80 6F
15:37:35.785 LATCH QUERY RX heartbeat-compatible RX: 29 bytes, offset 1, 4 frames + 5 bytes
15:37:36.604 TX candidate 0xBF frame 006 00 00 BF 00 80 65
15:37:36.604 CANDIDATE 0XBF RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:39.548 TX verify primer frame 006 00 00 00 00 80 DA
15:37:39.548 VERIFY PRIMER RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:37:40.371 TX verify query frame 006 00 00 B5 00 80 6F
15:37:40.371 VERIFY QUERY RX ANOMALY 8 RX bytes; first mismatch at byte 0: got 00, heartbeat offset 4 expected 80
15:37:40.371 VERIFY QUERY RX raw 00 00 00 00 00 00 80 DA
VERIFY RESPONSE after candidate 0xBF
Completed candidate 41/49
CANDIDATE 0xC0 BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:44.887 TX latch primer frame 006 00 00 00 00 80 DA
15:37:44.887 LATCH PRIMER RX heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
15:37:45.709 TX latch query frame 006 00 00 B5 00 80 6F
15:37:45.709 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:46.528 TX candidate 0xC0 frame 006 00 00 C0 00 80 1A
15:37:46.528 CANDIDATE 0XC0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:37:51.855 TX verify primer frame 006 00 00 00 00 80 DA
15:37:51.855 VERIFY PRIMER RX heartbeat-compatible RX: 55 bytes, offset 0, 9 frames + 1 bytes
15:37:52.678 TX verify query frame 006 00 00 B5 00 80 6F
15:37:52.678 VERIFY QUERY RX heartbeat-compatible RX: 41 bytes, offset 1, 6 frames + 5 bytes
Completed candidate 42/49
CANDIDATE 0xCF BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:37:57.195 TX latch primer frame 006 00 00 00 00 80 DA
15:37:57.195 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:58.017 TX latch query frame 006 00 00 B5 00 80 6F
15:37:58.017 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:37:58.840 TX candidate 0xCF frame 006 00 00 CF 00 80 15
15:37:58.840 CANDIDATE 0XCF RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:38:06.795 TX verify primer frame 006 00 00 00 00 80 DA
15:38:06.795 VERIFY PRIMER RX heartbeat-compatible RX: 90 bytes, offset 0, 15 frames + 0 bytes
15:38:07.618 TX verify query frame 006 00 00 B5 00 80 6F
15:38:07.618 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 43/49
CANDIDATE 0xD0 BASELINE heartbeat-compatible RX: 31 bytes, offset 0, 5 frames + 1 bytes
15:38:12.130 TX latch primer frame 006 00 00 00 00 80 DA
15:38:12.130 LATCH PRIMER RX heartbeat-compatible RX: 11 bytes, offset 1, 1 frames + 5 bytes
15:38:12.953 TX latch query frame 006 00 00 B5 00 80 6F
15:38:12.953 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:38:13.776 TX candidate 0xD0 frame 006 00 00 D0 00 80 0A
15:38:13.776 CANDIDATE 0XD0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:38:16.694 TX verify primer frame 006 00 00 00 00 80 DA
15:38:16.694 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:38:17.514 TX verify query frame 006 00 00 B5 00 80 6F
15:38:17.514 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 44/49
CANDIDATE 0xDF BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:38:22.045 TX latch primer frame 006 00 00 00 00 80 DA
15:38:22.045 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:38:22.868 TX latch query frame 006 00 00 B5 00 80 6F
15:38:22.868 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:38:23.691 TX candidate 0xDF frame 006 00 00 DF 00 80 05
15:38:23.691 CANDIDATE 0XDF RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:38:26.707 TX verify primer frame 006 00 00 00 00 80 DA
15:38:26.707 VERIFY PRIMER RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:38:27.532 TX verify query frame 006 00 00 B5 00 80 6F
15:38:27.532 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 45/49
CANDIDATE 0xE0 BASELINE heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
15:38:32.044 TX latch primer frame 006 00 00 00 00 80 DA
15:38:32.044 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:38:32.867 TX latch query frame 006 00 00 B5 00 80 6F
15:38:32.867 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:38:33.692 TX candidate 0xE0 frame 006 00 00 E0 00 80 3A
15:38:33.692 CANDIDATE 0XE0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:38:38.728 TX verify primer frame 006 00 00 00 00 80 DA
15:38:38.728 VERIFY PRIMER RX heartbeat-compatible RX: 60 bytes, offset 0, 10 frames + 0 bytes
15:38:39.553 TX verify query frame 006 00 00 B5 00 80 6F
15:38:39.553 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 46/49
CANDIDATE 0xEF BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:38:44.095 TX latch primer frame 006 00 00 00 00 80 DA
15:38:44.095 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:38:44.919 TX latch query frame 006 00 00 B5 00 80 6F
15:38:44.919 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:38:45.747 TX candidate 0xEF frame 006 00 00 EF 00 80 35
15:38:45.747 CANDIDATE 0XEF RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:38:58.256 TX verify primer frame 006 00 00 00 00 80 DA
15:38:58.256 VERIFY PRIMER RX heartbeat-compatible RX: 120 bytes, offset 0, 20 frames + 0 bytes
15:38:59.078 TX verify query frame 006 00 00 B5 00 80 6F
15:38:59.078 VERIFY QUERY RX heartbeat-compatible RX: 36 bytes, offset 0, 6 frames + 0 bytes
Completed candidate 47/49
CANDIDATE 0xF0 BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:39:03.590 TX latch primer frame 006 00 00 00 00 80 DA
15:39:03.590 LATCH PRIMER RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:39:04.415 TX latch query frame 006 00 00 B5 00 80 6F
15:39:04.415 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:39:05.234 TX candidate 0xF0 frame 006 00 00 F0 00 80 2A
15:39:05.234 CANDIDATE 0XF0 RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:39:09.120 TX verify primer frame 006 00 00 00 00 80 DA
15:39:09.120 VERIFY PRIMER RX heartbeat-compatible RX: 42 bytes, offset 0, 7 frames + 0 bytes
15:39:09.944 TX verify query frame 006 00 00 B5 00 80 6F
15:39:09.944 VERIFY QUERY RX heartbeat-compatible RX: 37 bytes, offset 0, 6 frames + 1 bytes
Completed candidate 48/49
CANDIDATE 0xFF BASELINE heartbeat-compatible RX: 35 bytes, offset 1, 5 frames + 5 bytes
15:39:14.459 TX latch primer frame 006 00 00 00 00 80 DA
15:39:14.459 LATCH PRIMER RX heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
15:39:15.283 TX latch query frame 006 00 00 B5 00 80 6F
15:39:15.283 LATCH QUERY RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:39:16.103 TX candidate 0xFF frame 006 00 00 FF 00 80 25
15:39:16.103 CANDIDATE 0XFF RX heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
15:39:19.340 TX verify primer frame 006 00 00 00 00 80 DA
15:39:19.340 VERIFY PRIMER RX heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
15:39:20.165 TX verify query frame 006 00 00 B5 00 80 6F
15:39:20.165 VERIFY QUERY RX heartbeat-compatible RX: 37 bytes, offset 0, 6 frames + 1 bytes
Completed candidate 49/49
Verify responses: 1

View File

@@ -2391,3 +2391,343 @@ Next useful tests:
`B8 -> B9`, `BC -> BD`, and `BD -> BE`. `B8 -> B9`, `BC -> BD`, and `BD -> BE`.
3. Sweep the `D0-DF` region with the same primer-pair method to see whether the 3. Sweep the `D0-DF` region with the same primer-pair method to see whether the
structured discovery table continues after `CF`. structured discovery table continues after `CF`.
## Unlatch / State-Advance Sweep
Goal: intentionally put the RCP into the known one-response latched state, send
a wide set of possible reset/ack/state-advance commands, then verify whether a
known query can respond again without a power cycle.
Use `scripts/serial_unlatch_sweep.py`. For each candidate it performs:
```text
latch primer -> latch query -> candidate unlatch command -> verify primer -> verify query
```
Default latch and verify sequence:
```text
00 -> B5 produces known response: 07 80 6D 20 D8 48
candidate possible unlatch / state advance command
00 -> B5 verify whether the known response can happen again
```
Interpretation:
- If the verify query returns heartbeat only, the candidate did not unlatch the
one-response state.
- If the verify query returns `07 80 6D 20 D8 48` again, the candidate likely
cleared or advanced the latch.
- If the candidate itself changes the LCD or produces a new serial response,
log it as a possible state-advance command even if the verify query does not
respond.
First wide assortment, focused on known response command families, boundaries,
and current no-response gaps:
```powershell
python scripts/serial_unlatch_sweep.py --port COM5 --candidates "0x00 0x01 0x03 0x07 0x0A 0x0C 0x0D 0x0E 0x0F 0x10 0x1A 0x1B 0x1C 0x20 0x30 0x36 0x38 0x39 0x40 0x4F 0x50 0x5B 0x68 0x6C 0x6D 0x6E 0x6F 0x70 0x7F 0x80 0x8F 0x90 0x9F 0xA0 0xAF 0xB0 0xB5 0xB8 0xBC 0xBE 0xBF 0xC0 0xCF 0xD0 0xDF 0xE0 0xEF 0xF0 0xFF" --expected-verify-response "07 80 6D 20 D8 48" --prompt-power-cycle --prompt-screen --log captures/rcp-unlatch-wide-after-b5.txt
```
Power-cycle before each prompt. For the screen prompt:
- Press Enter if the screen stayed the same.
- Type the exact screen text if it changes.
- Type `q` to stop.
If this finds no verify responses, try the same idea after a different latch
query page:
```powershell
python scripts/serial_unlatch_sweep.py --port COM5 --latch-query-command 0xA0 --verify-query-command 0xA0 --candidates "0x00 0x01 0x0F 0x10 0x1A 0x1B 0x40 0x4F 0x68 0x6C 0x80 0x8F 0x90 0x9F 0xA0 0xB0 0xB8 0xBC 0xC0 0xCF 0xE0 0xEF 0xFF" --expected-verify-response "07 80 68 40 30 C5" --prompt-power-cycle --prompt-screen --log captures/rcp-unlatch-wide-after-a0.txt
```
For a fast dry run without touching the serial port:
```powershell
python scripts/serial_unlatch_sweep.py --port COM5 --candidates "0x00 0x01 0x90" --dry-run
```
### 2026-05-13 Unlatch Sweep Result
Captures:
- `captures/rcp-unlatch-wide-after-b5.txt`
- `captures/rcp-unlatch-wide-after-a0.txt`
User observation:
- No visible RCP state change was seen during the tests.
- The only screen note recorded in the logs was `CONNECT NOT ACT` after
candidate `0x00`, which matches the already-known non-active connected state.
Serial result:
| Latch/verify query | Candidates tested | Expected verify response | Result |
| --- | ---: | --- | --- |
| `B5` | 49 | `07 80 6D 20 D8 48` | no confirmed unlatch |
| `A0` | 23 | `07 80 68 40 30 C5` | no confirmed unlatch |
Notes:
- Candidate `0xBF` in the `B5` unlatch sweep produced a verify-query anomaly,
but the raw bytes were `00 00 00 00 00 00 80 DA`, not the expected
`07 80 6D 20 D8 48`. Treat this as a heartbeat/chunking/classifier artifact,
not a successful unlatch.
- No candidate-stage serial response clearly indicated a state advance.
- The broad command-byte assortment did not find a reset/ack/unlatch command in
the tested six-byte frame shape.
Tooling update:
- `scripts/serial_unlatch_sweep.py` now accepts `--expected-verify-response`.
- Future unlatch sweeps should use this option so only the desired repeated
query response counts as a hit.
## PT2/PT7 Compatibility Clue
Manual-derived note from a newer Sony RCP:
- A newer Sony RCP has a mode switch with `PT2` and `PT7` positions.
- `PT2` is documented for controlling the same camera line that the RCP-TX7 is
associated with.
Working implication:
- The TX7 may be a fixed/PT2-era protocol personality rather than a generic
Sony RCP protocol endpoint.
- If the CCU/RCP protocol family later split into PT2 and PT7 modes, then our
current frame shape may be electrically correct but still missing a
personality/mode/session assumption.
- The command bytes that look like "page selectors" may be table reads within
the PT2 personality rather than an activation handshake.
Next direction from this clue:
1. Treat PT2 compatibility as the default target for TX7 restoration tests.
2. Search newer-RCP manuals for whether PT2/PT7 is only a physical switch or
whether either mode has visible initialization, connect, or model-detect
behavior.
3. Prefer tests that emulate a CCU already speaking the TX7/PT2 personality,
rather than trying PT7-style/high-range activation guesses.
## Button Behavior While Latched
Open questions:
1. Does the one-response latched state suppress the RCP-origin button frames
that are known to appear while disconnected?
2. If the RCP sends `CAM POWER`, does an immediate host-side response using the
same or a similar command shape change the RCP state?
Known RCP-origin button frames:
| Button/action | RCP frame |
| --- | --- |
| Idle heartbeat | `00 00 00 00 80 DA` |
| `CAM POWER` | `00 00 07 80 00 DD` |
| `CALL` on/state high | `00 00 15 80 00 CF` |
| `CALL` off/state low | `00 00 15 00 00 4F` |
Use `scripts/serial_button_response_test.py` for these tests. It keeps RX and
TX in the same serial session, so it works around Windows COM-port exclusivity.
### Test BTN1: Offline Button Control
Purpose: establish a fresh control capture where the RCP is not intentionally
latched. During the listen window, press `CAM POWER` a few times and press/release
`CALL`.
```powershell
python scripts/serial_button_response_test.py --port COM5 --duration 30 --prompt --log captures/rcp-buttons-offline-control.txt
```
Expected:
- `CAM POWER` should produce `00 00 07 80 00 DD`.
- `CALL` should produce one or both `00 00 15 80 00 CF` and
`00 00 15 00 00 4F`.
### Test BTN2: Latched Button Emission
Purpose: put the RCP into the known `00 -> B5` latched state, then see whether
`CAM POWER` and `CALL` still produce RCP-origin frames. During the listen
window, press the same buttons as BTN1.
```powershell
python scripts/serial_button_response_test.py --port COM5 --latch --latch-query-command 0xB5 --duration 30 --prompt --log captures/rcp-buttons-latched-after-b5.txt
```
Interpretation:
- If `CAM POWER`/`CALL` frames still appear, the latch suppresses selected query
responses but does not suppress basic panel-origin button events.
- If button frames disappear, the latch may be closer to a protocol/session
hold state that blocks some panel event transmission.
### Test BTN3: Respond to `CAM POWER` With Exact Echo
Purpose: when the RCP sends the `CAM POWER` frame, immediately send the same
six-byte frame back on the host-to-RCP line. Watch the screen for any visible
change.
```powershell
python scripts/serial_button_response_test.py --port COM5 --duration 30 --prompt --respond-to-cam-power --respond-once --response-frame "00 00 07 80 00 DD" --log captures/rcp-buttons-cam-power-exact-echo.txt
```
At the prompt, press `CAM POWER` once. If the screen changes, note the exact
display text after the run.
### Test BTN4: Respond to `CAM POWER` With Host-Shaped Variant
Purpose: test a related command-shaped host frame where command `0x07` is kept
but the `0x80` bit is in the value field, matching the host-query shape used in
many discovery tests.
```powershell
python scripts/serial_button_response_test.py --port COM5 --duration 30 --prompt --respond-to-cam-power --respond-once --response-frame "00 00 07 00 80 DD" --log captures/rcp-buttons-cam-power-host-shaped.txt
```
Interpretation:
- If exact echo changes nothing but the host-shaped variant changes the screen
or serial stream, the RCP may expect host responses in the same command class
but with host-side state/value layout.
- If neither changes anything, `CAM POWER` may be an outbound event requiring a
larger CCU state/session response rather than a direct ACK.
Optional latched version of BTN3:
```powershell
python scripts/serial_button_response_test.py --port COM5 --latch --latch-query-command 0xB5 --duration 30 --prompt --respond-to-cam-power --respond-once --response-frame "00 00 07 80 00 DD" --log captures/rcp-buttons-latched-cam-power-exact-echo.txt
```
### 2026-05-13 Button Test Result
Captures:
- `captures/rcp-buttons-offline-control.txt`
- `captures/rcp-buttons-latched-after-b5.txt`
- `captures/rcp-buttons-cam-power-exact-echo.txt`
- `captures/rcp-buttons-cam-power-host-shaped.txt`
Offline control:
- `CALL` produced `00 00 15 80 00 CF` and `00 00 15 00 00 4F`.
- `CAM POWER` produced `00 00 07 80 00 DD`.
- This matches the original offline button observations.
Latched after `00 -> B5`:
- The latch setup produced the known `B5` response
`07 80 6D 20 D8 48`.
- While in this state, `CALL` still produced both known call frames.
- While in this state, `CAM POWER` still produced `00 00 07 80 00 DD`.
Interpretation:
- The one-response latch suppresses additional selected-query responses, but it
does not suppress basic RCP-origin button/event frames.
- The panel is still actively reporting front-panel events after the discovery
response/latch state.
`CAM POWER` response tests:
| Test | Host response sent after `CAM POWER` | Screen result | Serial result |
| --- | --- | --- | --- |
| BTN3 exact echo | `00 00 07 80 00 DD` | `CONNECT NOT ACT` | heartbeat/button-event only |
| BTN4 host-shaped | `00 00 07 00 80 DD` | `CONNECT NOT ACT` | heartbeat only after response |
Interpretation:
- Both `CAM POWER` response shapes are recognized enough to produce the familiar
`CONNECT NOT ACT` display state.
- Neither response advanced the RCP into an active state or caused a new serial
status stream.
- `CAM POWER` is likely an outbound event that requires broader CCU/session
context, not a simple one-frame ACK.
Next useful button-side tests:
1. Repeat BTN3/BTN4 while already latched after `00 -> B5`; this checks whether
the same `CAM POWER` response has different meaning after the RCP has already
returned a discovery block.
2. Try responding to `CALL` with exact echo and host-shaped command `0x15`
variants, since earlier `0x15` matrix tests changed the screen but did not
activate the panel.
3. If a future session/keepalive candidate is found, rerun BTN1/BTN2 to see
whether more front-panel controls begin emitting serial events in an active
context.
### CALL Echo / Response Tests
Goal: test whether the RCP treats `CALL` differently from `CAM POWER` when the
host immediately echoes or acknowledges the outbound button event.
Known RCP-origin `CALL` frames:
```text
CALL high/on: 00 00 15 80 00 CF
CALL low/off: 00 00 15 00 00 4F
```
Test BTN5: exact echo of both known `CALL` shapes.
```powershell
python scripts/serial_button_response_test.py --port COM5 --duration 30 --prompt --respond-to-call --respond-once --response-frame "00 00 15 80 00 CF" --response-frame "00 00 15 00 00 4F" --log captures/rcp-buttons-call-exact-echo.txt
```
Test BTN6: host-shaped `CALL` response, with command `0x15` and value `0x80`.
```powershell
python scripts/serial_button_response_test.py --port COM5 --duration 30 --prompt --respond-to-call --respond-once --response-frame "00 00 15 00 80 CF" --log captures/rcp-buttons-call-host-shaped.txt
```
Test BTN7: host-shaped `CALL` response after the known `00 -> B5` latch.
```powershell
python scripts/serial_button_response_test.py --port COM5 --latch --latch-query-command 0xB5 --duration 30 --prompt --respond-to-call --respond-once --response-frame "00 00 15 00 80 CF" --log captures/rcp-buttons-latched-call-host-shaped.txt
```
During each test, press and release `CALL` once or twice. Record any screen
change after the run.
### 2026-05-13 CALL Echo Result
Captures:
- `captures/rcp-buttons-call-exact-echo.txt`
- `captures/rcp-buttons-call-host-shaped.txt`
- `captures/rcp-buttons-latched-call-host-shaped.txt`
User observation:
- All three CALL response tests ended with the RCP screen at `CONNECT NOT ACT`.
Serial result:
| Test | Host response after `CALL` | Serial result |
| --- | --- | --- |
| BTN5 exact echo | `00 00 15 80 00 CF` then `00 00 15 00 00 4F` | RCP sent `07 80 45 20 D0 68` once, then returned to heartbeat/CALL events |
| BTN6 host-shaped | `00 00 15 00 80 CF` | heartbeat/CALL events only |
| BTN7 latched host-shaped | `00 00 15 00 80 CF` after latch setup | heartbeat/CALL events only |
Interpretation:
- Exact CALL echo is more interesting than CAM POWER echo: it produced a new
checksum-valid RCP response frame, `07 80 45 20 D0 68`.
- The new frame did not visibly activate the RCP; the panel still ended at
`CONNECT NOT ACT`.
- The host-shaped `CALL` response did not reproduce the new frame, either
offline or after the `B5` latch setup.
- This suggests the RCP has at least one event-response path for CALL exact
echo, but that response is still not the missing active-session handshake.
Next CALL-focused checks:
1. Retest exact CALL echo three times with clean power cycles to see whether
`07 80 45 20 D0 68` is repeatable.
2. Test echoing only `CALL high/on` and only `CALL low/off` separately to see
which of the two echoed frames causes `07 80 45 20 D0 68`.
3. Try using `07 80 45 20 D0 68` as a follow-up host frame after CALL exact
echo, only after confirming repeatability.

View File

@@ -0,0 +1,260 @@
#!/usr/bin/env python3
"""Button-focused RCP-TX7 serial tests.
This helper can:
1. Optionally put the RCP into a latched state with a known primer/query.
2. Listen for the button frames that are known to appear while disconnected.
3. Optionally transmit response frames when CAM POWER or CALL is observed.
Known RCP-origin button frames:
CAM POWER: 00 00 07 80 00 DD
CALL on: 00 00 15 80 00 CF
CALL off: 00 00 15 00 00 4F
"""
from __future__ import annotations
import argparse
import datetime as dt
import sys
import time
try:
import serial
except ImportError:
print(
"Missing dependency: pyserial\n"
"Install it with: python -m pip install pyserial",
file=sys.stderr,
)
raise SystemExit(2)
HEARTBEAT = bytes.fromhex("00 00 00 00 80 DA")
CAM_POWER = bytes.fromhex("00 00 07 80 00 DD")
CALL_ON = bytes.fromhex("00 00 15 80 00 CF")
CALL_OFF = bytes.fromhex("00 00 15 00 00 4F")
KNOWN_PATTERNS = {
"heartbeat": HEARTBEAT,
"cam-power": CAM_POWER,
"call-on": CALL_ON,
"call-off": CALL_OFF,
}
def parse_byte(text: str) -> int:
value = int(text, 0)
if not 0 <= value <= 0xFF:
raise argparse.ArgumentTypeError(f"must be a byte: {text}")
return value
def parse_hex_bytes(text: str) -> bytes:
normalized = text.replace(",", " ").replace("0x", "").replace("0X", "")
parts = normalized.split()
if not parts:
raise argparse.ArgumentTypeError("hex frame cannot be empty")
try:
values = [int(part, 16) for part in parts]
except ValueError as exc:
raise argparse.ArgumentTypeError(f"invalid hex byte list: {text}") from exc
if any(value < 0 or value > 0xFF for value in values):
raise argparse.ArgumentTypeError("hex values must be bytes")
return bytes(values)
def build_frame(prefix1: int, prefix2: int, command: int, state: int, value: int) -> bytes:
body = bytes([prefix1, prefix2, command, state, value])
checksum = 0x5A
for byte in body:
checksum ^= byte
return body + bytes([checksum])
def hex_preview(data: bytes) -> str:
return " ".join(f"{byte:02X}" for byte in data)
def ascii_preview(data: bytes) -> str:
return "".join(chr(byte) if 32 <= byte <= 126 else "." for byte in data)
def make_logger(path: str | None):
log_file = open(path, "a", encoding="utf-8") if path else None
def emit(line: str) -> None:
print(line)
if log_file:
log_file.write(line + "\n")
log_file.flush()
return emit, log_file
def read_window(ser: serial.Serial, duration: float) -> bytes:
stop_at = time.monotonic() + duration
data = bytearray()
while time.monotonic() < stop_at:
chunk = ser.read(128)
if chunk:
data.extend(chunk)
return bytes(data)
def send_frame(ser: serial.Serial, emit, label: str, frame: bytes) -> None:
stamp = dt.datetime.now().strftime("%H:%M:%S.%f")[:-3]
emit(f"{stamp} TX {label} frame {len(frame):03d} {hex_preview(frame)}")
ser.write(frame)
ser.flush()
def emit_known_counts(emit, label: str, data: bytes) -> None:
if not data:
emit(f"{label} no RX bytes")
return
counts = {
name: data.count(pattern)
for name, pattern in KNOWN_PATTERNS.items()
if data.count(pattern)
}
count_text = ", ".join(f"{name}={count}" for name, count in counts.items()) or "no known complete frames"
emit(f"{label} RX {len(data)} bytes; {count_text}")
if counts.get("cam-power") or counts.get("call-on") or counts.get("call-off"):
emit(f"{label} raw {hex_preview(data)}")
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(
description="Listen for CAM POWER/CALL frames and optionally respond to CAM POWER."
)
parser.add_argument("--port", required=True, help="serial port, for example COM5")
parser.add_argument("--baud", type=int, default=38400)
parser.add_argument("--timeout", type=float, default=0.03)
parser.add_argument("--duration", type=float, default=30.0)
parser.add_argument("--chunk-size", type=int, default=128)
parser.add_argument("--log", help="append capture/transmit log to this file")
parser.add_argument("--ascii", action="store_true")
parser.add_argument("--latch", action="store_true", help="send latch primer/query before listening")
parser.add_argument("--latch-primer-command", type=parse_byte, default=0x00)
parser.add_argument("--latch-query-command", type=parse_byte, default=0xB5)
parser.add_argument("--state", type=parse_byte, default=0x00)
parser.add_argument("--value", type=parse_byte, default=0x80)
parser.add_argument("--after-latch", type=float, default=1.0)
parser.add_argument("--respond-to-cam-power", action="store_true")
parser.add_argument("--respond-to-call", action="store_true")
parser.add_argument(
"--response-frame",
type=parse_hex_bytes,
action="append",
help="hex frame to send when CAM POWER is seen; can be repeated",
)
parser.add_argument("--response-delay", type=float, default=0.05)
parser.add_argument("--response-repeat", type=int, default=1)
parser.add_argument("--response-interval", type=float, default=0.2)
parser.add_argument(
"--respond-once",
action="store_true",
help="only transmit the response on the first matched button frame",
)
parser.add_argument("--prompt", action="store_true", help="pause before listen so you can prepare button presses")
return parser.parse_args()
def main() -> int:
args = parse_args()
emit, log_file = make_logger(args.log)
response_frames = args.response_frame or [CAM_POWER]
primer = build_frame(0x00, 0x00, args.latch_primer_command, args.state, args.value)
query = build_frame(0x00, 0x00, args.latch_query_command, args.state, args.value)
responded = False
totals = {name: 0 for name in KNOWN_PATTERNS}
try:
with serial.Serial(
port=args.port,
baudrate=args.baud,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
timeout=args.timeout,
write_timeout=1.0,
rtscts=False,
dsrdtr=False,
xonxoff=False,
) as ser:
ser.reset_input_buffer()
emit(f"Button test on {ser.port} at {ser.baudrate} 8N1")
if args.latch:
send_frame(ser, emit, "latch primer", primer)
emit_known_counts(emit, "LATCH PRIMER", read_window(ser, args.after_latch))
send_frame(ser, emit, "latch query", query)
emit_known_counts(emit, "LATCH QUERY", read_window(ser, args.after_latch))
if args.prompt:
input("Ready to listen. Press Enter, then press CAM POWER/CALL on the RCP: ")
emit(
f"Listening for {args.duration:.1f}s; "
f"respond_to_cam_power={args.respond_to_cam_power}, "
f"respond_to_call={args.respond_to_call}"
)
stop_at = time.monotonic() + args.duration
buffer = bytearray()
while time.monotonic() < stop_at:
data = ser.read(args.chunk_size)
if not data:
continue
stamp = dt.datetime.now().strftime("%H:%M:%S.%f")[:-3]
emit(f"{stamp} RX {len(data):03d} bytes {hex_preview(data)}")
if args.ascii:
emit(f"{'':14} ASCII {ascii_preview(data)}")
buffer.extend(data)
for name, pattern in KNOWN_PATTERNS.items():
count = data.count(pattern)
if count:
totals[name] += count
emit(f"{stamp} DETECT {name} x{count}")
should_respond = (
(
(args.respond_to_cam_power and CAM_POWER in buffer)
or (args.respond_to_call and (CALL_ON in buffer or CALL_OFF in buffer))
)
and not (args.respond_once and responded)
)
if should_respond:
responded = True
time.sleep(args.response_delay)
for _ in range(args.response_repeat):
for response in response_frames:
send_frame(ser, emit, "button response", response)
if args.response_repeat > 1:
time.sleep(args.response_interval)
buffer.clear()
elif len(buffer) > 256:
del buffer[:-64]
emit(
"Totals: "
+ ", ".join(f"{name}={count}" for name, count in totals.items())
)
except KeyboardInterrupt:
emit("Stopped.")
return 0
except serial.SerialException as exc:
print(f"Serial error: {exc}", file=sys.stderr)
return 1
finally:
if log_file:
log_file.close()
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,304 @@
#!/usr/bin/env python3
"""Sweep candidate commands that may unlatch the RCP-TX7 response state.
Each candidate test performs:
latch primer -> latch query -> candidate -> verify primer -> verify query
The verify query checks whether the RCP will answer again without a power cycle.
Use --prompt-power-cycle for clean bench testing.
"""
from __future__ import annotations
import argparse
import datetime as dt
import sys
import time
try:
import serial
except ImportError:
print(
"Missing dependency: pyserial\n"
"Install it with: python -m pip install pyserial",
file=sys.stderr,
)
raise SystemExit(2)
HEARTBEAT = bytes.fromhex("00 00 00 00 80 DA")
def parse_byte(text: str) -> int:
value = int(text, 0)
if not 0 <= value <= 0xFF:
raise argparse.ArgumentTypeError(f"must be a byte: {text}")
return value
def parse_byte_set(text: str) -> list[int]:
values: list[int] = []
for part in text.replace(",", " ").split():
if "-" in part:
start_text, end_text = part.split("-", 1)
start = parse_byte(start_text)
end = parse_byte(end_text)
if end < start:
raise argparse.ArgumentTypeError(f"bad range: {part}")
values.extend(range(start, end + 1))
else:
values.append(parse_byte(part))
if not values:
raise argparse.ArgumentTypeError("empty byte set")
return values
def parse_frame(text: str) -> bytes:
values = parse_byte_set(text)
if len(values) < 1:
raise argparse.ArgumentTypeError("empty frame")
return bytes(values)
def build_frame(prefix1: int, prefix2: int, command: int, state: int, value: int) -> bytes:
body = bytes([prefix1, prefix2, command, state, value])
checksum = 0x5A
for byte in body:
checksum ^= byte
return body + bytes([checksum])
def hex_preview(data: bytes) -> str:
return " ".join(f"{byte:02X}" for byte in data)
def make_logger(path: str | None):
log_file = open(path, "a", encoding="utf-8") if path else None
def emit(line: str) -> None:
print(line)
if log_file:
log_file.write(line + "\n")
log_file.flush()
return emit, log_file
def heartbeat_offset(data: bytes) -> int | None:
if not data:
return 0
for offset in range(len(HEARTBEAT)):
if all(byte == HEARTBEAT[(offset + index) % len(HEARTBEAT)] for index, byte in enumerate(data)):
return offset
return None
def first_mismatch(data: bytes, offset: int) -> tuple[int, int, int] | None:
for index, byte in enumerate(data):
expected = HEARTBEAT[(offset + index) % len(HEARTBEAT)]
if byte != expected:
return index, byte, expected
return None
def classify_rx(data: bytes) -> tuple[bool, str]:
if not data:
return False, "no RX bytes"
offset = heartbeat_offset(data)
if offset is not None:
full = len(data) // len(HEARTBEAT)
extra = len(data) % len(HEARTBEAT)
return False, f"heartbeat-compatible RX: {len(data)} bytes, offset {offset}, {full} frames + {extra} bytes"
best_offset = min(
range(len(HEARTBEAT)),
key=lambda candidate: sum(
byte != HEARTBEAT[(candidate + index) % len(HEARTBEAT)]
for index, byte in enumerate(data)
),
)
mismatch = first_mismatch(data, best_offset)
if mismatch is None:
return False, "heartbeat-compatible RX"
index, byte, expected = mismatch
return (
True,
f"ANOMALY {len(data)} RX bytes; first mismatch at byte {index}: "
f"got {byte:02X}, heartbeat offset {best_offset} expected {expected:02X}",
)
def read_window(ser: serial.Serial, duration: float) -> bytes:
stop_at = time.monotonic() + duration
data = bytearray()
while time.monotonic() < stop_at:
chunk = ser.read(128)
if chunk:
data.extend(chunk)
return bytes(data)
def emit_rx(emit, label: str, data: bytes) -> bool:
is_anomaly, note = classify_rx(data)
emit(f"{label} {note}")
if is_anomaly:
emit(f"{label} raw {hex_preview(data)}")
return is_anomaly
def contains_frame(data: bytes, expected: bytes) -> bool:
return bool(expected) and expected in data
def send_and_read(ser: serial.Serial, emit, label: str, frame: bytes, duration: float) -> tuple[bool, bytes]:
stamp = dt.datetime.now().strftime("%H:%M:%S.%f")[:-3]
emit(f"{stamp} TX {label} frame {len(frame):03d} {hex_preview(frame)}")
ser.write(frame)
ser.flush()
data = read_window(ser, duration)
is_anomaly = emit_rx(emit, f"{stamp} {label.upper()} RX", data)
return is_anomaly, data
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(
description="Sweep candidate unlatch commands and verify whether a second query responds."
)
parser.add_argument("--port", required=True, help="serial port, for example COM5")
parser.add_argument("--baud", type=int, default=38400)
parser.add_argument("--prefix1", type=parse_byte, default=0x00)
parser.add_argument("--prefix2", type=parse_byte, default=0x00)
parser.add_argument("--latch-primer-command", type=parse_byte, default=0x00)
parser.add_argument("--latch-query-command", type=parse_byte, default=0xB5)
parser.add_argument("--verify-primer-command", type=parse_byte, default=0x00)
parser.add_argument("--verify-query-command", type=parse_byte, default=0xB5)
parser.add_argument("--state", type=parse_byte, default=0x00)
parser.add_argument("--value", type=parse_byte, default=0x80)
parser.add_argument("--candidates", type=parse_byte_set, required=True)
parser.add_argument("--settle", type=float, default=3.0)
parser.add_argument("--between", type=float, default=0.8)
parser.add_argument("--after-candidate", type=float, default=1.2)
parser.add_argument("--after-verify", type=float, default=1.5)
parser.add_argument("--timeout", type=float, default=0.03)
parser.add_argument("--log", help="append sweep log to this file")
parser.add_argument("--dry-run", action="store_true")
parser.add_argument("--prompt-power-cycle", action="store_true")
parser.add_argument("--prompt-screen", action="store_true")
parser.add_argument(
"--expected-verify-response",
type=parse_frame,
help="only count a verify hit when these bytes appear in verify-query RX",
)
parser.add_argument("--stop-on-verify-response", action="store_true")
return parser.parse_args()
def main() -> int:
args = parse_args()
latch_primer = build_frame(args.prefix1, args.prefix2, args.latch_primer_command, args.state, args.value)
latch_query = build_frame(args.prefix1, args.prefix2, args.latch_query_command, args.state, args.value)
verify_primer = build_frame(args.prefix1, args.prefix2, args.verify_primer_command, args.state, args.value)
verify_query = build_frame(args.prefix1, args.prefix2, args.verify_query_command, args.state, args.value)
candidates = [
(command, build_frame(args.prefix1, args.prefix2, command, args.state, args.value))
for command in args.candidates
]
if args.dry_run:
print(f"latch primer 0x{args.latch_primer_command:02X}: {hex_preview(latch_primer)}")
print(f"latch query 0x{args.latch_query_command:02X}: {hex_preview(latch_query)}")
print(f"verify primer 0x{args.verify_primer_command:02X}: {hex_preview(verify_primer)}")
print(f"verify query 0x{args.verify_query_command:02X}: {hex_preview(verify_query)}")
for command, frame in candidates:
print(f"candidate 0x{command:02X}: {hex_preview(frame)}")
return 0
emit, log_file = make_logger(args.log)
verify_hits = 0
try:
with serial.Serial(
port=args.port,
baudrate=args.baud,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
timeout=args.timeout,
write_timeout=1.0,
rtscts=False,
dsrdtr=False,
xonxoff=False,
) as ser:
emit(
f"Unlatch sweep: latch {hex_preview(latch_primer)} -> {hex_preview(latch_query)}, "
f"verify {hex_preview(verify_primer)} -> {hex_preview(verify_query)}, "
f"{len(candidates)} candidates on {ser.port} at {ser.baudrate} 8N1"
)
if args.expected_verify_response:
emit(f"Expected verify response: {hex_preview(args.expected_verify_response)}")
for index, (command, candidate) in enumerate(candidates, start=1):
if args.prompt_power_cycle:
answer = input(
f"Power-cycle RCP for unlatch candidate 0x{command:02X}, "
"wait for heartbeat, then press Enter (q then Enter to stop): "
).strip()
if answer.lower() in {"q", "quit", "stop"}:
emit("Stopped before next candidate.")
break
ser.reset_input_buffer()
emit_rx(emit, f"CANDIDATE 0x{command:02X} BASELINE", read_window(ser, args.settle))
send_and_read(ser, emit, "latch primer", latch_primer, args.between)
send_and_read(ser, emit, "latch query", latch_query, args.between)
send_and_read(ser, emit, f"candidate 0x{command:02X}", candidate, args.after_candidate)
if args.prompt_screen:
screen = input(
f"Screen after candidate 0x{command:02X} "
"(blank = no change, q = stop): "
).strip()
if screen:
stamp = dt.datetime.now().strftime("%H:%M:%S.%f")[:-3]
emit(f"{stamp} SCREEN candidate=0x{command:02X} {screen}")
if screen.lower() in {"q", "quit", "stop"}:
break
send_and_read(ser, emit, "verify primer", verify_primer, args.between)
verify_anomaly, verify_data = send_and_read(ser, emit, "verify query", verify_query, args.after_verify)
if args.expected_verify_response:
verify_hit = contains_frame(verify_data, args.expected_verify_response)
if verify_anomaly and not verify_hit:
emit(
f"VERIFY anomaly did not contain expected response "
f"{hex_preview(args.expected_verify_response)}"
)
else:
verify_hit = verify_anomaly
if verify_hit:
verify_hits += 1
emit(f"VERIFY RESPONSE after candidate 0x{command:02X}")
if args.stop_on_verify_response:
emit("Stopping after verify response.")
break
emit(f"Completed candidate {index}/{len(candidates)}")
emit(f"Verify responses: {verify_hits}")
except KeyboardInterrupt:
emit("Stopped.")
return 0
except serial.SerialException as exc:
print(f"Serial error: {exc}", file=sys.stderr)
return 1
finally:
if log_file:
log_file.close()
return 0
if __name__ == "__main__":
raise SystemExit(main())