Commit graph

190 commits

Author SHA1 Message Date
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 10a869d1a2 Layer 2: send Empty Packet acknowledgements if there’s nothing else to transmit 2024-07-22 22:19:23 +02:00
Thomas Kolb 87eeb045b0 docs: define an Empty Frame and its usage 2024-07-22 21:40:54 +02:00
Thomas Kolb c9916c08da Add a simple interleaver implementation (not used yet) 2024-07-21 17:23:15 +02:00
Thomas Kolb 04f29b94bf rx: show AGC gain after preamble, header and data 2024-07-20 22:33:08 +02:00
Thomas Kolb 576cdbfac5 Added ham64.c/.h to CMakeLists.txt 2024-07-20 22:32:01 +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 38010ea672 rx-debugging: always dump symbols on packet boundaries 2024-07-20 22:30:27 +02:00
Thomas Kolb 12e727be00 packet_structs: add function to dump a packet header to the log 2024-07-20 22:29:04 +02:00
Thomas Kolb 3068db1d50 Handle retransmit timeouts 2024-07-20 01:04:03 +02:00
Thomas Kolb fe684f7a1d Fixed stack overflow in transmit() 2024-07-20 01:03:31 +02:00
Thomas Kolb db2700c0f7 layer2_decode_packet_header: fixed rx_seq_nr readout 2024-07-20 01:02:42 +02:00
Thomas Kolb bfe1cce6e3 packet_queue: wrap sequence number in packet_queue_delete() 2024-07-20 01:01:55 +02:00
Thomas Kolb ac0fb54623 layer2_tx: fixed logging 2024-07-20 01:01:35 +02:00
Thomas Kolb 3b7d6baa74 layer2_tx: fixed packet size 2024-07-20 01:01:01 +02:00
Thomas Kolb bcbcf5aeff Layer 2: Added logging for retransmit handling 2024-07-20 00:26:53 +02:00
Thomas Kolb d449e31586 logger: show module name 2024-07-20 00:04:32 +02:00
Thomas Kolb 041255e15f layer2_tx: Fixed stack-use-after-return 2024-07-19 22:26:02 +02:00
Thomas Kolb 725a0ffd21 Ignore the squelch while receiving a packet
Before this commit, samples could be dropped during packet reception, which for
sure destroys the current packet and potentially the following one. Now samples
are stored even if the squelch „closes“, and decoding will potentially fail due
to high noise, but not due to missing samples.
2024-07-19 22:11:29 +02:00
Thomas Kolb 60d7fbf373 setup_tundev: limit TX queue len to 16 2024-07-19 21:59:38 +02:00
Thomas Kolb 48f061e334 Handle sequence numbers
This should enable basic retransmission handling.
2024-07-18 23:26:57 +02:00
Thomas Kolb 93aa429f4f Fixed unused variable warning 2024-07-18 22:58:13 +02:00
Thomas Kolb 9bbac6ae95 Add new files to CMakeLists.txt 2024-07-18 22:57:22 +02:00
Thomas Kolb a6464a28b8 Layer 2 received packet handling 2024-07-18 22:56:42 +02:00
Thomas Kolb 7381c7e808 Integrate new layer2 TX packet handling 2024-07-18 22:23:24 +02:00
Thomas Kolb 5adbbca786 Added functions for basic layer 2 transmission handling 2024-07-18 21:55:05 +02:00
Thomas Kolb 2348cd0c88 Implement a packet queue (incl. tests) 2024-07-11 23:23:18 +02:00
Thomas Kolb 402e36dda5 packet_structs: check data length in layer2_decode_packet_header() 2024-07-04 21:37:05 +02:00
Simon Ruderich 153ff61dcd ham64: apply improvements suggested by rudi_s 2024-07-04 21:18:57 +02:00
Simon Ruderich 62d81fc2cc test_ham64: check results using assertions 2024-07-04 21:16:20 +02:00
Thomas Kolb 9a151e0cbb Rename layer2_structs -> packet_structs 2024-07-02 20:09:56 +02:00
Thomas Kolb f17d5649fc layer2_structs: use the new HAM-64 address structure 2024-07-01 21:25:49 +02:00
Thomas Kolb 4bb4017623 HAM-64 address format implementation 2024-07-01 21:03:43 +02:00
Thomas Kolb 546d86ffb0 Implement layer 2 header packing and unpacking 2024-07-01 21:03:43 +02:00
Thomas Kolb 27e2859090 Start defining layer2 structures 2024-07-01 21:03:43 +02:00
Thomas Kolb 090dff13d6 Tune TX back-off times
See comments in config.h for background info.
2024-07-01 21:02:53 +02:00
Thomas Kolb 55ec709001 doc: ignore generated diagrams 2024-07-01 21:02:13 +02:00
Simon Ruderich 6032cd471d Fix compiler warnings
- implicit declaration of function ‘isprint’ [-Wimplicit-function-declaration]
- comparison between ‘result_t’ and ‘enum <anonymous>’ [-Wenum-compare]
2024-06-23 07:56:53 +02:00
Simon Ruderich d54cd8a9a8 Remove unused variable debug_fd 2024-06-23 07:46:54 +02:00
Thomas Kolb 1840b3099c doc: add some message sequence charts
- Connection establishment
- Connection close
- Packet transfer
2024-06-22 01:29:29 +02:00
Thomas Kolb 95d9eda0a0 doc: add introduction + some more ideas 2024-06-08 11:49:43 +02:00
Thomas Kolb dde4e5ba7d doc: moved CRC from layer 1 to layer 2 2024-06-08 11:34:52 +02:00
Thomas Kolb c45eb4e334 doc: define connectionless frame type 2024-06-08 11:34:52 +02:00
Thomas Kolb 6fe9fdbe2b doc: minor clarifications 2024-06-08 11:34:52 +02:00
Thomas Kolb 8fb345b27c doc: automatic packet repetition algorithm 2024-06-08 11:34:52 +02:00
Thomas Kolb 6065157023 doc: added Makefile 2024-06-08 11:34:52 +02:00
Thomas Kolb 698cf74f3a doc: document data whitening procedure 2024-06-08 11:34:52 +02:00
Thomas Kolb ccc4e452ff doc: start defining the layer 2 2024-06-08 11:34:52 +02:00
Thomas Kolb fe5bcabd14 doc: document burst format 2024-06-08 11:34:52 +02:00
Thomas Kolb be0cac13c1 Starting to write the documentation with AsciiDoc 2024-06-08 11:34:52 +02:00