Thomas Kolb
e66dae48a7
connection: process beacons and send connection requests
/ build-hamnet70 (push) Failing after 17s
/ build-doc (push) Successful in 17s
/ deploy-doc (push) Has been skipped
2024-12-10 22:39:26 +01:00
Thomas Kolb
ce55b34929
Fixed all warnings
/ build-hamnet70 (push) Failing after 17s
/ build-doc (push) Successful in 16s
/ deploy-doc (push) Has been skipped
2024-12-07 20:39:16 +01:00
Thomas Kolb
1c8d652e01
layer2: Remove event callbacks
...
/ build-hamnet70 (push) Failing after 23s
/ build-doc (push) Successful in 29s
/ deploy-doc (push) Has been skipped
Instead, connection and digipeater now update a event code passed by reference
to the maintain() function. This was the only place where the callback was
called before.
Minor side effect: maintain must be called multiple times if multiple events
trigger at the same time.
2024-12-03 22:18:46 +01:00
Thomas Kolb
aa5ffee872
digipeater: remove empty packet from current connection after burst
2024-12-03 21:37:29 +01:00
Thomas Kolb
627eed7426
Remove data callbacks in connection and digipeater modules
/ build-hamnet70 (push) Failing after 31s
/ build-doc (push) Successful in 49s
/ deploy-doc (push) Has been skipped
2024-11-17 18:26:18 +01:00
Thomas Kolb
c1af786a70
WIP: handle packets from the TUN device in digipeater
...
/ build-hamnet70 (push) Failing after 18s
/ build-doc (push) Successful in 17s
/ deploy-doc (push) Has been skipped
This is only a backup commit.
2024-11-10 23:13:54 +01:00
Thomas Kolb
49fe1fff29
l2udptest_client: fix compilation
/ build-hamnet70 (push) Failing after 17s
/ build-doc (push) Successful in 17s
/ deploy-doc (push) Has been skipped
2024-11-10 21:40:07 +01:00
Thomas Kolb
93d74be000
WIP: managing multiple connections
...
/ build-hamnet70 (push) Failing after 18s
/ build-doc (push) Successful in 20s
/ deploy-doc (push) Has been skipped
Working towards handling multiple connections. A lot is still missing.
2024-11-10 17:02:14 +01:00
Thomas Kolb
03912a6185
Do all time calculations in uint64_t
...
This prevents loss of precision that occurs with double-precision floats if
timestamps become very large. Timestamps are already large if they contain a
UNIX time value (requires 60 bits; double has 53 bit resolution).
2024-11-02 16:17:52 +01:00
Thomas Kolb
4281ae4be7
l2udptest: replace by two programs: client and digipeater
...
Both are identical so far, this is just an infrastructure commit.
2024-11-02 16:07:25 +01:00
Thomas Kolb
04397c2c95
Remove empty packet from queue after burst was transmitted
/ build-hamnet70 (push) Failing after 28s
/ build-doc (push) Successful in 15s
/ deploy-doc (push) Has been skipped
2024-09-22 18:46:32 +02:00
Thomas Kolb
f0770baf31
Handle received packets
/ build-hamnet70 (push) Failing after 29s
/ build-doc (push) Successful in 16s
/ deploy-doc (push) Has been skipped
2024-09-22 15:34:50 +02:00
Thomas Kolb
0a77109ab5
l2udp: Use the new layer2 connection module
/ build-hamnet70 (push) Failing after 29s
/ build-doc (push) Successful in 16s
/ deploy-doc (push) Has been skipped
2024-09-22 15:24:20 +02:00
Thomas Kolb
85ec105d0f
Pass received packets to layer 2 processing
/ build-hamnet70 (push) Successful in 29s
/ build-doc (push) Successful in 16s
/ deploy-doc (push) Has been skipped
2024-09-22 14:45:24 +02:00
Thomas Kolb
ec6dd92444
Basic infrastructure for layer2-over-udp test
/ build-hamnet70 (push) Successful in 29s
/ build-doc (push) Successful in 17s
/ deploy-doc (push) Has been skipped
2024-09-22 14:32:49 +02:00
Thomas Kolb
2e91fd7c42
Apply free software+documentation licenses
...
All code is now licensed under GPLv3+. The documentation is licensed under
CC BY-SA 4.0.
This is now officially free software! \o/
2024-08-23 11:53:40 +02:00
Thomas Kolb
017eb221f1
Integrate the interleaver
2024-08-16 22:14:07 +02:00
Simon Ruderich
9845514a46
layer2/packet_queue: permit using full queue size
...
Previously, only PACKET_QUEUE_SIZE - 1 elements could be stored.
2024-07-23 08:41:25 +02:00
Thomas Kolb
c9916c08da
Add a simple interleaver implementation (not used yet)
2024-07-21 17:23:15 +02:00
Thomas Kolb
77b24cf591
tests: Added variant of rx_file test for layer2 debugging
2024-07-20 22:31:13 +02:00
Thomas Kolb
2348cd0c88
Implement a packet queue (incl. tests)
2024-07-11 23:23:18 +02:00
Simon Ruderich
62d81fc2cc
test_ham64: check results using assertions
2024-07-04 21:16:20 +02:00
Thomas Kolb
4bb4017623
HAM-64 address format implementation
2024-07-01 21:03:43 +02:00
Thomas Kolb
de0f3620e6
Move hexdump() function to utils
2024-06-01 16:04:17 +02:00
Thomas Kolb
f6404dd0ea
Move payload CRC to layer 2
...
Layer 1 only does decoding of the FEC, but the CRC check for data integrity is
done in layer 2 now.
2024-05-31 17:25:50 +02:00
Thomas Kolb
0e8e049e0a
Replace all perror() calls with LOG()
2024-05-30 11:02:08 +02:00
Thomas Kolb
65daa182ef
Use the new logging system everywhere
2024-05-30 10:49:43 +02:00
Thomas Kolb
d6eaef91cd
Switch to new logging system
...
The new system supports:
- time-tagging of log messages
- message priority levels with a threshold below which they are not printed
- colored output of the message priority for easy identification
- compile-time disabling of all logging per C module
So far, it is integrated in the main and rx modules which generate most
messages. Other modules will be migrated in the future.
2024-05-28 23:53:11 +02:00
Simon Ruderich
657ac4faa3
test_rx_file: add JSON logging (controllable via JSONLOGGER define)
2024-05-28 08:51:56 +02:00
Simon Ruderich
0237ea6494
tests: fix compile
2024-05-09 18:32:51 +02:00
Simon Ruderich
f689c4ec15
Fix compiler warnings
...
- implicit declaration of built-in function 'strncpy'
- control reaches end of non-void function
- assignment to 'void (*)(int, siginfo_t *, void *)' from incompatible pointer type 'void (*)(int)'
2024-05-09 14:37:39 +02:00
Thomas Kolb
a42d795002
Dump debug info from the RX via jsonlogger
2024-05-07 21:40:29 +02:00
Thomas Kolb
5bcd3a6933
jsonlogger: add test file and improve open/close behaviour
2024-05-05 18:40:50 +02:00
Simon Ruderich
a3928d0ad0
Fix compiler warnings
...
- passing argument 2 of 'crc_generate_key' discards ‘const’ qualifier;
a bit ugly but signature of crc_generate_key() is wrong
- variable 'linearized_history' set but not used
- typedef is unused
- superfluous arguments to DEBUG_LOG() and fprintf()
- implicit declaration of function 'memset'
- unused arguments
2024-04-27 12:22:33 +02:00
Simon Ruderich
2768e21849
test_rx_file: set nco frequency
2024-04-20 01:14:17 +02:00
Thomas Kolb
4f4128fbd3
test: fixed build errors
2024-03-31 18:01:00 +02:00
Thomas Kolb
bbf7bcf2f0
test/freq_est: add channel simulation
2024-03-30 22:05:02 +01:00
Thomas Kolb
d9707ac4a9
test: add test_rx_file
2024-03-30 21:56:00 +01:00
Thomas Kolb
f5a367464f
Optimized one-shot frequency synchronization
...
- Ramp-up length increased to 128 symbols (here is room for
improvement!)
- Try to detect the frequency once during ramp-up. To do so, every
second symbol is inverted (to remove the +/-1 symbol toggling) and the
phase difference between neigboring resulting symbols is checked. When
it is low enough for all symbols, the frequency is estimated and
corrected. When frequency estimation was done, it is not retried for a
number of incoming symbols in order to allow the timing estimator to
converge again.
- This approach was verified in a simulated loopback test with frequency
offset and AWGN.
2023-05-17 22:28:18 +02:00
Thomas Kolb
a7db93ab9e
Added test for frequency estimator
2023-05-17 22:26:46 +02:00
Thomas Kolb
7d5b67a257
Add layer 1 software loopback test
2023-05-12 13:46:02 +02:00
Thomas Kolb
513a399ae4
Refactoring: moved layer1-related stuff to subdirectory
2022-02-13 20:05:47 +01:00
Thomas Kolb
f2c95a125d
Use new frequency+phase estimation method for preamble
2022-02-06 18:04:31 +01:00
Thomas Kolb
9a1107ff38
Added correlator + small test program
2022-01-22 22:42:05 +01:00