Commit graph

231 commits

Author SHA1 Message Date
778ac7f815 doc: document connectionless frame type
All checks were successful
/ build-hamnet70 (push) Successful in 29s
/ build-doc (push) Successful in 27s
/ deploy-doc (push) Has been skipped
2024-10-25 20:36:34 +02:00
5848d78272 doc: document data frames
All checks were successful
/ build-hamnet70 (push) Successful in 28s
/ build-doc (push) Successful in 18s
/ deploy-doc (push) Successful in 11s
2024-10-25 20:12:01 +02:00
0b48995cec workflows: use latest version of asciidoctor container
All checks were successful
/ build-hamnet70 (push) Successful in 29s
/ build-doc (push) Successful in 17s
/ deploy-doc (push) Successful in 12s
2024-10-24 21:20:12 +02:00
0309c042e4 doc: describe connection reset and disconnect packets
All checks were successful
/ build-hamnet70 (push) Successful in 29s
/ build-doc (push) Successful in 23s
/ deploy-doc (push) Has been skipped
2024-10-24 21:14:30 +02:00
159c3f1518 ci/docker: add graphviz to documentation build container
All checks were successful
/ build-hamnet70 (push) Successful in 28s
/ build-doc (push) Successful in 16s
/ deploy-doc (push) Has been skipped
2024-09-22 14:31:33 +02:00
1ae421e876 doc: add state diagrams
All checks were successful
/ build-hamnet70 (push) Successful in 27s
/ build-doc (push) Successful in 16s
/ deploy-doc (push) Has been skipped
2024-09-21 00:55:25 +02:00
a455fac050 connection.h: fix comment 2024-09-20 23:38:54 +02:00
44921bd65d Decrease the AGC bandwidth during signal acquisition
All checks were successful
/ build-hamnet70 (push) Successful in 32s
/ build-doc (push) Successful in 29s
/ deploy-doc (push) Has been skipped
This prevents rapid squelch activation/deactivation if only noise is present.
The AGC bandwidth was tuned such that it still allows preambles to be detected
reliably.
2024-09-20 23:10:49 +02:00
ccd9af6664 Delay squelch activation by 2 ms
Delaying the squelch activation by 2 ms helps to avoid dropped samples if the
signal is barely above the squelch threshold.
2024-09-20 23:08:43 +02:00
4dc2c60c8b rx: reduce squelch threshold from 10 to 6 dB
All checks were successful
/ build-hamnet70 (push) Successful in 29s
/ build-doc (push) Successful in 27s
/ deploy-doc (push) Has been skipped
During tests it was determined that this is much more reliable. The theory is
that the first packet of a burst was frequently not detected because the
squelch opened too late if the channel was very noisy.

Unfortunately, the squelch now opens very often even if no signal is present.
This will be improved in the future.
2024-09-12 23:52:33 +02:00
706a1eb437 freq_est: make ramp-up delta phase check more strict
This should help with occasional jumps in the estimated carrier frequency on
receivers running frequency tracking.
2024-09-12 23:49:57 +02:00
eb802629a1 layer1/rx: calculate EVM during header and data reception 2024-09-07 00:48:11 +02:00
c61a7a7cf7 doc: start documenting the Layer 2 packets (WIP)
All checks were successful
/ build-hamnet70 (push) Successful in 26s
/ build-doc (push) Successful in 15s
/ deploy-doc (push) Has been skipped
2024-08-30 23:46:47 +02:00
3f4a50bdce doc: don't use external resources
All checks were successful
/ build-hamnet70 (push) Successful in 26s
/ build-doc (push) Successful in 15s
/ deploy-doc (push) Has been skipped
Embedding (only) parts of MathJax is a bit ugly ...
2024-08-28 13:42:33 +02:00
b46b2536e1 Add a CI workflow compiling the hamnet70 program
All checks were successful
/ build-hamnet70 (push) Successful in 25s
/ build-doc (push) Successful in 14s
/ deploy-doc (push) Has been skipped
2024-08-27 22:01:51 +02:00
1bcc8c2fea Add Dockerfile with hamnet70 build dependencies 2024-08-27 22:01:51 +02:00
c342cf656e Move documentation docker scripts to /ci/docker 2024-08-27 21:28:09 +02:00
03829e058b Run deployment only on main branch 2024-08-27 21:23:40 +02:00
f686635837 doc: automatic builds and deployment using Forgejo Actions
All checks were successful
/ build-doc (push) Successful in 14s
/ deploy-doc (push) Successful in 9s
Actions run in a custom Docker image built by the scripts in `doc/docker`.
There are two jobs that run in sequence:

- `build-doc`: builds the documentation from the AsciiDoc sources.
- `deploy-doc`: Uploads the generated files to http://0fm.de
2024-08-27 21:10:30 +02:00
10f634d144 doc: translate message sequence diagrams to mscgen
Mermaid is more beautiful, but the tool stack is really annoying. A Chrome
browser should not be necessary to generate some SVGs.
2024-08-27 18:07:12 +02:00
79c340c20d connection: add state checks 2024-08-25 23:27:22 +02:00
fc9e5c5229 Combine layer2_rx and layer2_tx in a new connection module
The new module is not used yet, but this is a preparation for the future
multi-client networking support.
2024-08-25 22:26:56 +02:00
899152a530 Remove config.h from Git; must be adapted by the user
A template for the config file is provided in src/config.h.template. It must be
copied to src/config.h and adapted for force users to set their own station
call sign.
2024-08-25 20:26:41 +02:00
303bfaec4f doc: enable stem processing for formulas 2024-08-25 01:14:38 +02:00
76f9f37b5d doc/Makefile: add clean target 2024-08-25 01:14:28 +02:00
9d86bc3c97 doc: write generated files to separate directory 2024-08-25 00:52:51 +02:00
c52d0766d7 Remove obsolete compile_flags.txt 2024-08-23 19:52:24 +02:00
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
017eb221f1 Integrate the interleaver 2024-08-16 22:14:07 +02:00
325abdbd02 packet_queue: allow max. 15 packets to be queue (transmit window)
16 is not allowed because it leads to an overflow in sequence numbers, making
them ambiguous.
2024-08-09 22:22:01 +02:00
6d9068f63d define INTERLEAVE_DISTANCE 2024-08-09 22:18:20 +02:00
2ddb8aa18c Randomize retransmit time 2024-08-09 22:16:14 +02:00
d2ef6d9741 Remove empty packets from the queue after their first transmission 2024-07-27 00:50:04 +02:00
04dcfff6fd Do not transmit an empty packet if an empty packet was received 2024-07-27 00:33:47 +02:00
9990aa5fbb main: check return value of layer2_tx_fill_packet_queue() 2024-07-24 20:20:36 +02:00
52f45cb433 layer2: check return values when adding empty packets 2024-07-24 20:20:36 +02:00
4e2815923c layer2: handle invalid message types just in case 2024-07-23 09:24:32 +02:00
fe3460a899 doc: s/should/must/ 2024-07-23 09:21:14 +02:00
766caf7e07 layer2/packet_structs: use variable to reduce duplication 2024-07-23 09:15:56 +02:00
b3a49fe0ba layer2: update comments, use constant 2024-07-23 09:15:34 +02:00
8aacbaf8c3 layer2/packet_queue: remove unused function packet_queue_can_add_packet() 2024-07-23 08:41:42 +02:00
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
10a869d1a2 Layer 2: send Empty Packet acknowledgements if there’s nothing else to transmit 2024-07-22 22:19:23 +02:00
87eeb045b0 docs: define an Empty Frame and its usage 2024-07-22 21:40:54 +02:00
c9916c08da Add a simple interleaver implementation (not used yet) 2024-07-21 17:23:15 +02:00
04f29b94bf rx: show AGC gain after preamble, header and data 2024-07-20 22:33:08 +02:00
576cdbfac5 Added ham64.c/.h to CMakeLists.txt 2024-07-20 22:32:01 +02:00
77b24cf591 tests: Added variant of rx_file test for layer2 debugging 2024-07-20 22:31:13 +02:00
38010ea672 rx-debugging: always dump symbols on packet boundaries 2024-07-20 22:30:27 +02:00
12e727be00 packet_structs: add function to dump a packet header to the log 2024-07-20 22:29:04 +02:00