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,69 @@
2026-03-19 12:52:43.093386,SENT,"b'\xbbU\x00\x03 \x00#I'"
2026-03-19 12:52:43.094057,RECEIVED,"b'U'"
2026-03-19 12:52:43.095431,RECEIVED,"b'\x00A ""\x00\x0f\x00\x00\x00\x00\x00\x00\x9d\x0eDT\x00\x02\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf8'"
2026-03-19 12:52:43.125697,SENT,"b'\xbbU\x00\xa2h\x04\x00\x00\x00\x00\x0e\xf2'"
2026-03-19 12:52:43.126435,RECEIVED,"b'\xbb'"
2026-03-19 12:52:43.127291,RECEIVED,"b'U\x00\xe1h\x03\x01\x0e\xf2Mk'"
2026-03-19 12:52:43.130497,SENT,"b'\xbbU\x00\x9ah\x04\xff\xff\xff\xff\x02\xb0'"
2026-03-19 12:52:43.131124,RECEIVED,"b'\xbb'"
2026-03-19 12:52:43.132227,RECEIVED,"b'U\x00\xd9h\x03\x01\x02\xb0\xf7\xe1'"
2026-03-19 12:52:43.134784,SENT,"b'\xbbU\x00\xaah\x01\xff\x12\xe1'"
2026-03-19 12:52:43.135455,RECEIVED,"b'\xbb'"
2026-03-19 12:52:43.136261,RECEIVED,"b'U\x00\xe9h\x03\x01\x12\xe1H\x92'"
2026-03-19 12:52:43.141038,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:43.141343,RECEIVED,"b'\xbb'"
2026-03-19 12:52:43.142370,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:44.146667,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:44.147236,RECEIVED,"b'\xbb'"
2026-03-19 12:52:44.148315,RECEIVED,"b'\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:45.160688,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:45.161715,RECEIVED,"b'U'"
2026-03-19 12:52:46.166966,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:46.168249,RECEIVED,"b'U'"
2026-03-19 12:52:47.173747,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:47.174169,RECEIVED,"b'\xbb'"
2026-03-19 12:52:48.179130,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:48.179593,RECEIVED,"b'\xbb'"
2026-03-19 12:52:48.181462,RECEIVED,"b'\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:49.184861,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:49.185219,RECEIVED,"b'\xbb'"
2026-03-19 12:52:49.185898,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:50.188687,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:50.189324,RECEIVED,"b'\xbb'"
2026-03-19 12:52:50.189944,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:51.193924,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:51.194330,RECEIVED,"b'\xbb'"
2026-03-19 12:52:51.195135,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:52.198062,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:52.198732,RECEIVED,"b'\xbb'"
2026-03-19 12:52:52.199484,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:53.203130,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:53.203577,RECEIVED,"b'\xbb'"
2026-03-19 12:52:53.204300,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:54.207989,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:54.208469,RECEIVED,"b'\xbb'"
2026-03-19 12:52:54.209071,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:55.210958,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:55.211257,RECEIVED,"b'\xbb'"
2026-03-19 12:52:55.211822,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:56.213940,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:56.214449,RECEIVED,"b'\xbb'"
2026-03-19 12:52:56.215109,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:57.218519,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:57.219257,RECEIVED,"b'\xbb'"
2026-03-19 12:52:57.219862,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:58.226270,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:58.227078,RECEIVED,"b'\xbb'"
2026-03-19 12:52:58.227755,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:52:59.230747,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:52:59.231662,RECEIVED,"b'\xbb'"
2026-03-19 12:52:59.235276,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:53:00.234070,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:53:00.234623,RECEIVED,"b'\xbb'"
2026-03-19 12:53:00.235221,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:53:01.237701,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:53:01.238012,RECEIVED,"b'\xbb'"
2026-03-19 12:53:01.238538,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
2026-03-19 12:53:02.240233,SENT,"b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'"
2026-03-19 12:53:02.240568,RECEIVED,"b'\xbb'"
2026-03-19 12:53:02.241076,RECEIVED,"b'U\x00\xc9h\x03\x01\xf6Ep\xfe'"
1 2026-03-19 12:52:43.093386 SENT b'\xbbU\x00\x03 \x00#I'
2 2026-03-19 12:52:43.094057 RECEIVED b'U'
3 2026-03-19 12:52:43.095431 RECEIVED b'\x00A "\x00\x0f\x00\x00\x00\x00\x00\x00\x9d\x0eDT\x00\x02\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf8'
4 2026-03-19 12:52:43.125697 SENT b'\xbbU\x00\xa2h\x04\x00\x00\x00\x00\x0e\xf2'
5 2026-03-19 12:52:43.126435 RECEIVED b'\xbb'
6 2026-03-19 12:52:43.127291 RECEIVED b'U\x00\xe1h\x03\x01\x0e\xf2Mk'
7 2026-03-19 12:52:43.130497 SENT b'\xbbU\x00\x9ah\x04\xff\xff\xff\xff\x02\xb0'
8 2026-03-19 12:52:43.131124 RECEIVED b'\xbb'
9 2026-03-19 12:52:43.132227 RECEIVED b'U\x00\xd9h\x03\x01\x02\xb0\xf7\xe1'
10 2026-03-19 12:52:43.134784 SENT b'\xbbU\x00\xaah\x01\xff\x12\xe1'
11 2026-03-19 12:52:43.135455 RECEIVED b'\xbb'
12 2026-03-19 12:52:43.136261 RECEIVED b'U\x00\xe9h\x03\x01\x12\xe1H\x92'
13 2026-03-19 12:52:43.141038 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
14 2026-03-19 12:52:43.141343 RECEIVED b'\xbb'
15 2026-03-19 12:52:43.142370 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
16 2026-03-19 12:52:44.146667 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
17 2026-03-19 12:52:44.147236 RECEIVED b'\xbb'
18 2026-03-19 12:52:44.148315 RECEIVED b'\x00\xc9h\x03\x01\xf6Ep\xfe'
19 2026-03-19 12:52:45.160688 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
20 2026-03-19 12:52:45.161715 RECEIVED b'U'
21 2026-03-19 12:52:46.166966 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
22 2026-03-19 12:52:46.168249 RECEIVED b'U'
23 2026-03-19 12:52:47.173747 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
24 2026-03-19 12:52:47.174169 RECEIVED b'\xbb'
25 2026-03-19 12:52:48.179130 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
26 2026-03-19 12:52:48.179593 RECEIVED b'\xbb'
27 2026-03-19 12:52:48.181462 RECEIVED b'\x00\xc9h\x03\x01\xf6Ep\xfe'
28 2026-03-19 12:52:49.184861 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
29 2026-03-19 12:52:49.185219 RECEIVED b'\xbb'
30 2026-03-19 12:52:49.185898 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
31 2026-03-19 12:52:50.188687 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
32 2026-03-19 12:52:50.189324 RECEIVED b'\xbb'
33 2026-03-19 12:52:50.189944 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
34 2026-03-19 12:52:51.193924 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
35 2026-03-19 12:52:51.194330 RECEIVED b'\xbb'
36 2026-03-19 12:52:51.195135 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
37 2026-03-19 12:52:52.198062 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
38 2026-03-19 12:52:52.198732 RECEIVED b'\xbb'
39 2026-03-19 12:52:52.199484 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
40 2026-03-19 12:52:53.203130 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
41 2026-03-19 12:52:53.203577 RECEIVED b'\xbb'
42 2026-03-19 12:52:53.204300 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
43 2026-03-19 12:52:54.207989 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
44 2026-03-19 12:52:54.208469 RECEIVED b'\xbb'
45 2026-03-19 12:52:54.209071 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
46 2026-03-19 12:52:55.210958 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
47 2026-03-19 12:52:55.211257 RECEIVED b'\xbb'
48 2026-03-19 12:52:55.211822 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
49 2026-03-19 12:52:56.213940 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
50 2026-03-19 12:52:56.214449 RECEIVED b'\xbb'
51 2026-03-19 12:52:56.215109 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
52 2026-03-19 12:52:57.218519 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
53 2026-03-19 12:52:57.219257 RECEIVED b'\xbb'
54 2026-03-19 12:52:57.219862 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
55 2026-03-19 12:52:58.226270 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
56 2026-03-19 12:52:58.227078 RECEIVED b'\xbb'
57 2026-03-19 12:52:58.227755 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
58 2026-03-19 12:52:59.230747 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
59 2026-03-19 12:52:59.231662 RECEIVED b'\xbb'
60 2026-03-19 12:52:59.235276 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
61 2026-03-19 12:53:00.234070 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
62 2026-03-19 12:53:00.234623 RECEIVED b'\xbb'
63 2026-03-19 12:53:00.235221 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
64 2026-03-19 12:53:01.237701 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
65 2026-03-19 12:53:01.238012 RECEIVED b'\xbb'
66 2026-03-19 12:53:01.238538 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'
67 2026-03-19 12:53:02.240233 SENT b'\xbbU\x00\x8ah\x05\x00\x00\x00\x00\xff\xf6E'
68 2026-03-19 12:53:02.240568 RECEIVED b'\xbb'
69 2026-03-19 12:53:02.241076 RECEIVED b'U\x00\xc9h\x03\x01\xf6Ep\xfe'