diff --git a/README.md b/README.md index f5e928c2..ffb15db1 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,21 @@ ## FreeDV- Just Another TNC Experiment My first attempt to learn more about FreeDV and how to create a TNC which gets data from a TCP/IP socket +## ToDo -## Credits - -David Rowe and the FreeDV team for developing the modem and libraries -FreeDV Codec 2 : https://github.com/drowe67/codec2 - - -This software has been heavily inspired by https://github.com/xssfox/freedv-tnc/ - - - - +- [x] ARQ: Stop-And-Wait +- [x] ARQ: Go-Back-N +- [x] ARQ: Selective repeating of lost arq frames +- [x] ARQ: Dynamic number of frames per burst +- [ ] ARQ: Set frames per burst automatically by channel quality +- [ ] SOCKET: Run commands via TCP/IP socket +- [ ] TRX: Control radio via hamlib +- [ ] MODE: Beacon +- [ ] MODE: Broadcast +- [ ] MODE: ARQ AX25 +- [ ] MODE: Gear shifting ARQ +- [ ] TNC: CLI GUI for basic settings +- [ ] TNC: Multicore support ## Setup Install FreeDV-Socket-TNC directly to home folder and compile codec2 automatically @@ -26,26 +29,73 @@ chmod +x ~/install_socket_tnc.sh ## Usage main program ``` -./main.py --port 3000 --tx 1 --rx 1 +./main.py --port 3000 --tx 1 --rx 1 --mode 12 ``` -## Usage testclient +## Usage TCP/IP socket client ``` -./socketclient.py --port 3000 --data "BC: hello" +python3 readfromsocket.py --port 3000 --data "GET:RX_BUFFER:0 ``` - ## Socket Commands -Send a simple broadcast +#### SOCKETTEST +Message for testing purposes which repeats: ``` -BC: +SOCKETTEST ``` -Send an ARQ like frame which will ask the receiver for acknowledgement +"WELL DONE! YOU ARE ABLE TO COMMUNICATE WITH THE TNC" + + +#### TRANSMIT ARQ MESSAGE 'HELLO!' ``` -ACK: +ARQ:HELLO! ``` +#### SET NEW CALLSIGN +``` +SET:MYCALLSIGN:AA1AA +``` + +#### GET CALLSIGN +``` +GET:MYCALLSIGN +``` + +#### GET CALLSIGN CRC8 +``` +GET:MYCALLSIGN_CRC8 +``` + +#### GET DX CALLSIGN +``` +GET:DXCALLSIGN +``` + +#### GET ARQ STATE +``` +GET:ARQ_STATE +``` + +#### GET RX BUFFER LENGTH / SIZE +``` +GET:RX_BUFFER_LENGTH +``` + +#### GET RX BUFFER +``` +GET:RX_BUFFER:POSITION +``` +Position = 0 --> Latest Data +Position 1-N --> Buffer positions + +#### DELETE RX BUFFER +``` +DEL:RX_BUFFER +``` + + + ## Other stuff @@ -63,3 +113,12 @@ sudo modprobe snd-aloop index=1,2 enable=1,1 pcm_substreams=1,1 id=CHAT1,CHAT2 ./main.py --port 3001 --tx 2 --rx 2 ``` + +## Credits + +David Rowe and the FreeDV team for developing the modem and libraries +FreeDV Codec 2 : https://github.com/drowe67/codec2 + + +This software has been inspired by https://github.com/xssfox/freedv-tnc/ +