Initial: ContinuousTransponder wrapper for Kogger USBL

High-level Python wrapper around the upstream cosma-tech/kogger_acousticAntenna
driver. Configures a Kogger acoustic antenna as a permanent slave transponder
in a single start() call: address filter, echo filter, optional TDMA sync slot,
permanent response window, and Python callbacks for each ping received.

No modification to the upstream driver — only composes existing public methods
in the right order. Snapshot of upstream driver included read-only under driver/
for reference.

Includes:
- transponder_continu.py (302 lines): the wrapper class + CLI
- examples/auv_slave.py (79 lines): usage example with logging
- README.md: design rationale, usage, multi-AUV TDMA, watchdog, hardware wiring
- driver/: snapshot of cosma-tech/kogger_acousticAntenna at commit 1b539f9
  ('Add index slot for multi pinger', 2025-03-11)

Built for Cosma context (USV master + N AUVs slaves) following the design
conversation in Discord #ping-pong-ping (2026-04-27). See poulpe/ping-pong-ping
on Gitea for the interactive demo of the protocol.
This commit is contained in:
2026-04-27 22:08:44 +00:00
commit 9a158f5c5f
53 changed files with 7894 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
2026-03-20 14:56:47.958726,SENT,"b'\xbbU\x00\x03 \x00#I'"
2026-03-20 14:56:47.959041,RECEIVED,"b'\xbb'"
2026-03-20 14:56:47.959643,RECEIVED,"b'U\x00A ""\x00\x0f\x00\x00\x00\x00\x00\x00B\x04\x81(\x00\x02\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xac'"
2026-03-20 14:56:47.970747,SENT,"b'\xbbU\x00\xa2h\x04\x00\x00\x00\x00\x0e\xf2'"
2026-03-20 14:56:47.971035,RECEIVED,"b'\xbb'"
2026-03-20 14:56:47.971533,RECEIVED,"b'U\x00\xe1h\x03\x01\x0e\xf2Mk'"
2026-03-20 14:56:47.972554,SENT,"b'\xbbU\x00\x9ah\x04\xff\xff\xff\xff\x02\xb0'"
2026-03-20 14:56:47.972819,RECEIVED,"b'\xbb'"
2026-03-20 14:56:47.973294,RECEIVED,"b'U\x00\xd9h\x03\x01\x02\xb0\xf7\xe1'"
2026-03-20 14:56:47.974430,SENT,"b'\xbbU\x00\xaah\x01\xff\x12\xe1'"
2026-03-20 14:56:47.974962,RECEIVED,"b'\xbb'"
2026-03-20 14:56:47.975475,RECEIVED,"b'U\x00\xe9h\x03\x01\x12\xe1H\x92'"
2026-03-20 14:56:47.977297,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-20 14:56:47.977574,RECEIVED,"b'\xbb'"
2026-03-20 14:56:47.978049,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-20 14:56:48.980709,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-20 14:56:48.981293,RECEIVED,"b'\xbb'"
2026-03-20 14:56:48.981809,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-20 14:56:49.983206,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-20 14:56:49.983633,RECEIVED,"b'\xbb'"
2026-03-20 14:56:49.984310,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-20 14:56:50.985612,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:50.986198,RECEIVED,"b'\xbb'"
2026-03-20 14:56:50.986747,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:56:51.988174,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:51.988630,RECEIVED,"b'\xbb'"
2026-03-20 14:56:51.989155,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:56:52.991411,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:52.991927,RECEIVED,"b'\xbb'"
2026-03-20 14:56:52.992391,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:56:53.993851,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:53.994366,RECEIVED,"b'\xbb'"
2026-03-20 14:56:53.994896,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:56:54.996209,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:54.996536,RECEIVED,"b'\xbb'"
2026-03-20 14:56:54.997075,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:56:55.998790,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:55.999053,RECEIVED,"b'\xbb'"
2026-03-20 14:56:55.999548,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:56:57.001186,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:57.001702,RECEIVED,"b'\xbb'"
2026-03-20 14:56:57.002202,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:56:58.003753,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:58.004379,RECEIVED,"b'\xbb'"
2026-03-20 14:56:58.004967,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:56:59.006241,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:56:59.006573,RECEIVED,"b'\xbb'"
2026-03-20 14:56:59.007106,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:57:00.008571,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:57:00.009919,RECEIVED,"b'\xbb'"
2026-03-20 14:57:00.011049,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:57:01.011479,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:57:01.012009,RECEIVED,"b'\xbb'"
2026-03-20 14:57:01.012508,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
2026-03-20 14:57:02.013783,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'"
2026-03-20 14:57:02.014309,RECEIVED,"b'\xbb'"
2026-03-20 14:57:02.014832,RECEIVED,"b'U\x00\xc9h\x03\x01\xf9Hv\x07'"
1 2026-03-20 14:56:47.958726 SENT b'\xbbU\x00\x03 \x00#I'
2 2026-03-20 14:56:47.959041 RECEIVED b'\xbb'
3 2026-03-20 14:56:47.959643 RECEIVED b'U\x00A "\x00\x0f\x00\x00\x00\x00\x00\x00B\x04\x81(\x00\x02\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xac'
4 2026-03-20 14:56:47.970747 SENT b'\xbbU\x00\xa2h\x04\x00\x00\x00\x00\x0e\xf2'
5 2026-03-20 14:56:47.971035 RECEIVED b'\xbb'
6 2026-03-20 14:56:47.971533 RECEIVED b'U\x00\xe1h\x03\x01\x0e\xf2Mk'
7 2026-03-20 14:56:47.972554 SENT b'\xbbU\x00\x9ah\x04\xff\xff\xff\xff\x02\xb0'
8 2026-03-20 14:56:47.972819 RECEIVED b'\xbb'
9 2026-03-20 14:56:47.973294 RECEIVED b'U\x00\xd9h\x03\x01\x02\xb0\xf7\xe1'
10 2026-03-20 14:56:47.974430 SENT b'\xbbU\x00\xaah\x01\xff\x12\xe1'
11 2026-03-20 14:56:47.974962 RECEIVED b'\xbb'
12 2026-03-20 14:56:47.975475 RECEIVED b'U\x00\xe9h\x03\x01\x12\xe1H\x92'
13 2026-03-20 14:56:47.977297 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
14 2026-03-20 14:56:47.977574 RECEIVED b'\xbb'
15 2026-03-20 14:56:47.978049 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
16 2026-03-20 14:56:48.980709 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
17 2026-03-20 14:56:48.981293 RECEIVED b'\xbb'
18 2026-03-20 14:56:48.981809 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
19 2026-03-20 14:56:49.983206 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
20 2026-03-20 14:56:49.983633 RECEIVED b'\xbb'
21 2026-03-20 14:56:49.984310 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
22 2026-03-20 14:56:50.985612 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
23 2026-03-20 14:56:50.986198 RECEIVED b'\xbb'
24 2026-03-20 14:56:50.986747 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
25 2026-03-20 14:56:51.988174 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
26 2026-03-20 14:56:51.988630 RECEIVED b'\xbb'
27 2026-03-20 14:56:51.989155 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
28 2026-03-20 14:56:52.991411 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
29 2026-03-20 14:56:52.991927 RECEIVED b'\xbb'
30 2026-03-20 14:56:52.992391 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
31 2026-03-20 14:56:53.993851 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
32 2026-03-20 14:56:53.994366 RECEIVED b'\xbb'
33 2026-03-20 14:56:53.994896 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
34 2026-03-20 14:56:54.996209 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
35 2026-03-20 14:56:54.996536 RECEIVED b'\xbb'
36 2026-03-20 14:56:54.997075 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
37 2026-03-20 14:56:55.998790 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
38 2026-03-20 14:56:55.999053 RECEIVED b'\xbb'
39 2026-03-20 14:56:55.999548 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
40 2026-03-20 14:56:57.001186 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
41 2026-03-20 14:56:57.001702 RECEIVED b'\xbb'
42 2026-03-20 14:56:57.002202 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
43 2026-03-20 14:56:58.003753 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
44 2026-03-20 14:56:58.004379 RECEIVED b'\xbb'
45 2026-03-20 14:56:58.004967 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
46 2026-03-20 14:56:59.006241 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
47 2026-03-20 14:56:59.006573 RECEIVED b'\xbb'
48 2026-03-20 14:56:59.007106 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
49 2026-03-20 14:57:00.008571 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
50 2026-03-20 14:57:00.009919 RECEIVED b'\xbb'
51 2026-03-20 14:57:00.011049 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
52 2026-03-20 14:57:01.011479 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
53 2026-03-20 14:57:01.012009 RECEIVED b'\xbb'
54 2026-03-20 14:57:01.012508 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'
55 2026-03-20 14:57:02.013783 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\x02\xf9H'
56 2026-03-20 14:57:02.014309 RECEIVED b'\xbb'
57 2026-03-20 14:57:02.014832 RECEIVED b'U\x00\xc9h\x03\x01\xf9Hv\x07'