Commit graph

239 commits

Author SHA1 Message Date
dj2ls 0e8e3d1b67 fixed file transfer for 24bit crc 2022-05-01 11:19:59 +02:00
dj2ls ffff256623 arq disconnect improvement
this should fix and closes #173
2022-04-30 13:03:24 +02:00
Paul Kronenwetter e4b901adad Adding callsign for ID after stop transmission. 2022-04-24 18:43:50 -04:00
Paul Kronenwetter aefee60bad Initial attempt to fix issue #179. 2022-04-24 13:30:43 -04:00
dj2ls 107daa1b47 increased disconnect bursts
lets see if this improves
#173
2022-04-24 16:11:36 +02:00
dj2ls 57e4af83af first test with 24bit crc
moved from 16bit crc to 24bit crc...First test for ping and file transfer seems to be working... This has been too easy... 🤔
2022-04-19 11:09:11 +02:00
dj2ls a90abb122f enable/disable cq response
Enable and disable CQ response via GUI. Also moved settings to settings modal - with a small redesign. Auto updater still WIP
2022-04-18 17:17:53 +02:00
dj2ls 88149830df first test with 6bit gridsquare encoding
same for grid as call - we should think about saving the callsign and gridsquare as string and not as bytes. Also increased disconnect burst number where a toggle loop occured...
2022-04-17 22:30:15 +02:00
dj2ls 53af74f757 first test with 6bit callsign encoding
seems to work, but we have to redesign the way how we handle callsigns. This is really confusing...
2022-04-17 22:16:13 +02:00
dj2ls 2daafd183a removed some info lines 2022-04-16 16:28:04 +02:00
Paul Kronenwetter 62b939fbc9 Replaced sleep with helpers.wait in transmit_qrv. 2022-04-15 19:59:12 -04:00
Paul Kronenwetter 9f9b5e98e2 Remove errant inclusion of NOCALL ping logging. 2022-04-15 15:24:12 -04:00
Paul Kronenwetter 82935dcaae Proof of concept automatic response to CQ.
Uses new QRV frame rather than new BREPLY frame. Also changes CQ
behavior to send only one frame instead of 3.
NOTE: This implementation will respond *three* times to previous release
software (v0.3.3-alpha.3 and earlier).
2022-04-15 15:17:14 -04:00
Paul Kronenwetter 08faa53f26 WIP: Proof of concept using BEACON and new BREPLY frames. 2022-04-15 14:41:20 -04:00
Paul Kronenwetter 195310dda1 Removing unneeded code.
Bytearray fills with zero upon allocation.
2022-04-15 11:26:53 -04:00
Paul Kronenwetter 802185b31a Removing commented frequency_offset code. 2022-04-15 11:03:14 -04:00
Paul Kronenwetter 02bc780dce Remove frequency_offset from received_ping. 2022-04-15 09:01:33 -04:00
DJ2LS faefd84ae5 Revert "black code formatting"
This reverts commit 92cfa367f3.
2022-04-11 11:10:32 +02:00
dj2ls 92cfa367f3 black code formatting 2022-04-11 11:03:54 +02:00
Paul Kronenwetter 8e8a2c8432
Merge branch 'DJ2LS:main' into correct_typos 2022-04-10 17:32:50 -04:00
Paul Kronenwetter ec490376a6 Additional corrections. 2022-04-10 17:31:49 -04:00
Paul Kronenwetter cdefbb841f Better handle check_callsign changes. 2022-04-10 16:45:05 -04:00
Paul Kronenwetter 4358dd9c8a Correcting some typos. 2022-04-10 13:20:58 -04:00
dj2ls c89e4beebf fixed audio device list
audio device list not complete when init after multiprocessing init. #153
2022-04-08 11:35:13 +02:00
dj2ls 500c657099 extended status message
now we are able viewing a unique transmission status within chat messages. One step closer to a better way of handling status
2022-04-07 11:19:29 +02:00
dj2ls a2552be843 repeat frame ack and fixed repeat transmission from gui 2022-04-06 10:15:14 +02:00
dj2ls 47aff1a9f6 fix file transfer issue
closes #151
2022-04-05 11:29:20 +02:00
dj2ls 8f3f046655 improved logging and chat 2022-04-02 18:40:12 +02:00
dj2ls 04f6c49ac5 audio tuning and chat optimisation
closes #117
2022-04-02 14:54:43 +02:00
dj2ls 3f35a01b94 adjust volume level on TX 2022-03-31 21:13:30 +02:00
dj2ls d3ee911186 enable/disable fsk mode 2022-03-31 12:45:44 +02:00
dj2ls 15217b2521 moved to sounddevice
changed audio library, changed ssid behavior, minor chat changed
2022-03-24 20:49:13 +01:00
dj2ls 4b296a48df added tuning range selector 2022-03-19 12:42:10 +01:00
dj2ls fed075451a first release of chat
several bug fixes
2022-03-14 20:21:15 +01:00
dj2ls f5f7060672 different changes
network fixes, chat fixes, gui fixes...
2022-03-12 15:06:49 +01:00
dj2ls 52a7714fd3 hotfix for data handler
forgot numpy import...Ooops
2022-03-11 21:52:44 +01:00
dj2ls f190afa94a additional arq session state information 2022-03-11 20:38:28 +01:00
dj2ls 52310ffd4e moved beacon into own thread
this should avoid blocking states caused by the beacon
2022-03-10 20:46:34 +01:00
dj2ls 7134361267 improved rigctld network integration 2022-03-06 17:23:04 +01:00
dj2ls 1519c22358 connection mode, documentation, ...
changes in all areas
2022-03-04 16:50:32 +01:00
dj2ls a358560c9f updated build action
new day ...
2022-02-25 09:28:42 +01:00
dj2ls 326391ccd8 moved to native bootstrap-icon usage
also introduced a speed level field for tnc_state
2022-02-22 21:05:48 +01:00
dj2ls 25392303e4 increased callsign length and added ssid
this now more compatible to VARA to avoid confusion. Callsign length now 7 char + 1 ssid
2022-02-21 12:20:36 +01:00
dj2ls 34cf0a4b05 cleanup 2022-02-19 20:45:57 +01:00
dj2ls 879ba00137 search for chunk from end
according to the last commit we are now searching for data chunks from the end of the existing data. If a data chunk exists twice or more in our already received data, only the last one will be replaced
2022-02-18 10:04:00 +01:00
dj2ls 6e0796f5a0 protocol adjustment
if we are loosing a burst ACK because of fading signals or bad conditions or just because - combined with a changing speed level -  theres now a good chance we are not loosing the entire data frame because of a corrupted CRC, anymore. We are now searching in already received data, if our new (smaller) data chunk already exists. If so, we are stripping the entire data to this position and adding our new data chunk. If not, it seems we received new data the regulary way. However, this could cause problems if we have a too small data entropie. We might also check if we have an increased NACK counter or if a data chunk exists, twice or more -  in a further step
2022-02-18 09:58:49 +01:00
dj2ls a8d1d576ad sending twice before lowering speed-level
possible this helps avoiding a problem with lost burst ACK
2022-02-17 12:30:38 +01:00
dj2ls 7a93f0a824 fixed callsign detection and default config 2022-02-17 08:32:19 +01:00
dj2ls 30bbf75521 fixed unclean closing
closing application now by signals closes #133
2022-02-16 09:11:32 +01:00
dj2ls 35d95bbb14 500hz mode, protocol improvements....
...and a lot of different changes. Also deactivated single mode transmission. This needs to be optimised another day...Time is the missing ressource...
2022-02-08 15:27:34 +01:00
dj2ls 8384bf8d12 protocol/network/gui/..
changed protocol so IRS is now the speed-level master / send ptt state via network / introduced no rig mode / disable scatter and waterfall in gui and tnc/ increased network chunk size / ...
2022-02-02 21:12:16 +01:00
dj2ls 3835e19c4a updated command stack
also fixed a problem with receiving data within GUI #129
2022-01-30 14:16:08 +01:00
dj2ls 459e39daea updated socket commands and changed rx buffer behavior
..and some other changes to the gui so its compatible again with the latest socket commands. The rx buffer has now a unique id, and new structure. Also all messages and files will be saved to the same buffer. All commands which will be sent to the tnc or dameon are now written in lowercase
2022-01-28 20:07:39 +01:00
dj2ls 1e109da2e4 rigctld port fix and stuck in re opening data channel
data channel stuck in opening process when opening datachannel failed
2022-01-24 23:29:34 +01:00
dj2ls 43aa469633 hotfix for rigctld
fixing wrong ip and improved error handling so rigctld is hopefully not crashing for the early testers out there
2022-01-24 22:01:01 +01:00
dj2ls 5bdd6c569e increased CRC
increased crc for callsigns to CRC16 and for data to CRC32
2022-01-24 19:42:59 +01:00
dj2ls 2c57923c11 new daemon
non blocking and multi client support also attempt of fixing #129
2022-01-22 20:39:37 +01:00
dj2ls 19cbaa0f11 buffer overflow counter
count while an ongoing file transfer #106
2022-01-15 20:17:19 +01:00
dj2ls a4eeea8a03 decode only if needed
this should reduce cpu load when in idle state and reduce it also when sending in specific mode. This is not yet working for AUTO mode selection. #106
2022-01-15 19:23:28 +01:00
dj2ls cc3145fc1d fix stop transmission 2022-01-10 18:11:21 +01:00
dj2ls 53aefc0f80 send end of transmission frame
closes #113
2022-01-10 18:09:38 +01:00
dj2ls 0baa544bf0 handle data sent twice
if the ACK frame doesnt receive its destination and data will be resent, we can handle this now.
2022-01-10 17:01:33 +01:00
dj2ls ec83c16856 increase speed level on burst ack
also stay longer in slow modes
2022-01-10 12:14:40 +01:00
dj2ls 4ea42d5dba introduced speed levels
speed level will increase/decrease stepwise by  a %2 check of retries per burst closes #112
2022-01-10 08:46:45 +01:00
dj2ls bc1b01c340 fixed message transfer 2022-01-07 18:26:01 +01:00
dj2ls e81795b45b waiting while transmission 2022-01-07 12:55:03 +01:00
dj2ls 64922fee9e arq fixes 2022-01-07 11:44:35 +01:00
dj2ls 92087da49f arq class and fifo queue processing
moved to a much more clear app design. Huge change, so problems and bugs are no surprise.
2022-01-07 11:25:28 +01:00
dj2ls fcc5bec25a colored progressbar
closes #100
2022-01-05 13:03:29 +01:00
dj2ls 3a072a63a6 removed buffer management for N>1 frames per burst
I decided removing this from the code and keeping everything simple for N=1 frames per burst. N>1 frames per burst need a completely rethinking of buffer management.
2022-01-05 11:38:39 +01:00
dj2ls 6a4fe14377 more debugging and buffer changes
fixed a buffer allocation which could cause problems somewhen later for N>1 frames per burst.
2022-01-05 10:59:09 +01:00
dj2ls d0d1011745 switched from Bytes to kBytes
we can save 1Byte in data channel opener. Now enough space for big data...
2022-01-05 10:04:54 +01:00
dj2ls f93415d0b8 test and ARQ improvements
preparation for possible N>1 frames per burst
2022-01-04 23:02:29 +01:00
dj2ls 013b494279 fixed ctest for arq 2022-01-04 16:34:20 +01:00
dj2ls 16deb1df6d improved logging 2022-01-04 14:45:30 +01:00
dj2ls 6bcbfaf6ed auto mode optimization
first working....
2022-01-04 14:30:51 +01:00
dj2ls ea89a9e22b auto mode optimization
...in other words...gear shifting...
2022-01-04 14:16:50 +01:00
dj2ls eed50a6f0c fixed ack frame 2022-01-04 13:12:31 +01:00
dj2ls 8ea5c0de3f preparing for mode gear shifting 2022-01-04 13:09:15 +01:00
dj2ls 5895fc1a8e send a frame NACK
if crc fails we send a frame NACK and TX is going into idle state
2022-01-04 12:11:21 +01:00
dj2ls 2bf2f8b3ff cleanup, stopping transmission, modem timing...
I changed some parts which are R&D as well
2022-01-04 11:55:55 +01:00
dj2ls ff668ee2b9 smaller fixes and tooltip update 2022-01-03 00:41:32 +01:00
dj2ls 1f6c53ecf0 improved rx stats 2022-01-03 00:27:05 +01:00
dj2ls 891e9c1a8e updated rx stats 2022-01-02 23:42:56 +01:00
dj2ls 991a7e3ed0 first test with rx stats 2022-01-02 12:35:00 +01:00
dj2ls 8620a6e04b changed BOF and EOF 2022-01-02 10:39:49 +01:00
dj2ls 84faef84e0 fixed timeouts 2022-01-02 10:35:30 +01:00
dj2ls 94d251c162 type definition for functions 2022-01-02 09:51:37 +01:00
dj2ls a6816f8597 moved byte calculation before compression 2022-01-02 09:45:34 +01:00
dj2ls 0f5f5fe719 added compression
lets see how it performs
2021-12-30 12:41:41 +01:00
dj2ls 442d2f3a51 first version ARQv2 2021-12-29 20:54:54 +01:00
dj2ls b7c0d657ef Revert "first version ARQv2"
This reverts commit cc0475d8ad.
2021-12-29 20:53:11 +01:00
dj2ls cc0475d8ad first version ARQv2 2021-12-29 20:42:27 +01:00
dj2ls 3501b4f952 waiting for buffer
it seems we need to wait a little bit for our modulation data. There are some moments where audio output is stuck a little bit. Maybe python is sometimes faster than the buffer allocation or its a threading problem
2021-12-26 18:41:43 +01:00
dj2ls 88a0628b53 removed compression, incread callsign set time
okay, this needs to be tested some more...
2021-12-26 17:52:05 +01:00
dj2ls f35ad7e591 added data compression
reduced data size about 30%
2021-12-26 17:27:40 +01:00
dj2ls b0448ee7ce decreased data frame header size
reduced header size 10%
2021-12-26 17:04:59 +01:00
dj2ls d741778306 data channel speed improvements
and some code cleanup as well
2021-12-26 16:16:25 +01:00
dj2ls a408a561cb tests with repeating a frame
we have problems here...
2021-12-26 10:06:07 +01:00
dj2ls 6e6e403617 removed channel_state
it seems we don't need this. Lets simplify everythin a little bit
2021-12-25 18:17:02 +01:00
dj2ls 4b73f9c19f start of modem rewriting 2021-12-25 17:05:38 +01:00
dj2ls f99daf6800 updated tnc modem code for testing TX and RX in same callback 2021-12-22 12:48:49 +01:00
dj2ls 72b653b188 preparation for ARQ test
added a directory 003_highsnr_stdio_arq for working on ARQ tests
2021-12-19 19:45:08 +01:00
dj2ls 5c4667d97d beacon mode
a first working beacon mode so we can use it for first real hf tests....
2021-12-06 20:16:14 +01:00
dj2ls 82ddb6a297 modem tests
updated the modem and codec2 integration. However, this is the old modem. Maybe we need to stay at this point. Lets see how this version performs...hmpf...
2021-12-05 20:11:38 +01:00
DJ2LS 9dcf98e229 datachannel attempt fix 2021-11-19 17:47:25 +01:00
DJ2LS 5218eb3909 chat message test 2021-11-19 17:30:17 +01:00
DJ2LS 279fe7929f logging improvements
..and also a sample rate conversion test...
2021-11-19 14:52:58 +01:00
DJ2LS f8cc8c58c8 new logging
still not finished....
2021-11-18 19:40:22 +01:00
DJ2LS f015aaaca5 audio optimization and cleanup 2021-11-07 20:31:26 +01:00
DJ2LS 7f45f2e558 fixed timeout for RPT frames closes #77 2021-10-26 17:10:19 +02:00
DJ2LS df38ee01ba gui & tnc improvements
displaying now frequency offset and frequency in heard stations. Decreased size of receiving audio buffer, which seems to optimize RX
2021-10-24 14:44:55 +02:00
DJ2LS 5bfd745747 data_handler ready for chat messages
data handler is now ready for chat messages. I updated the data frame with an additional information -datatype- so we can determine if we received a file or a message. Each datatype will be saved into an own buffer. The gui has been updated as well, so we can forward data directly to a future chat module...
2021-10-17 16:59:15 +02:00
DJ2LS 655d333af2 freq offset handling #81
first attempt just with pings. Station A sends a ping to Station B. Station B is detecting RX offset, adds it to the ping acknowledge frame and sends it back to Station A. Station A will then adjust the frequency
2021-10-13 19:39:46 +02:00
DJ2LS 82f307cf1f introduced info toasts #80
first attempt with info toasts which seems to work fine. Next step will be adding more detailed information to them like a progress bar and specific closing
2021-10-07 21:04:23 +02:00
DJ2LS 2d18767fe6 bug fix closes #78 and network optimization 2021-10-05 21:03:15 +02:00
DJ2LS 1bbd2692db improved ARQ closes #66, closes #74
improved transfer rate calculation and cleanup. improved speed of ARQ by sending early frame ACK instead of burst ACK and then FRAME ACK
2021-10-05 19:59:32 +02:00
DJ2LS 0b115bd00c smaller changes
added DATAC0 to send data via bad path. Fixed stop transmission for receiving. Fixed a possible error in main.py
2021-10-02 11:46:29 +02:00
DJ2LS 8b08cc6e6b stop transmission
first attempt with stopping a transmission after the processing the current burst. Logging is a little bit ugly at this point, because it looks like a frame got lost. However, the transmission stops. CLI output is only visible for people interested in debugging...
2021-10-02 11:29:08 +02:00
DJ2LS c8ee5e2ff2 scatter point reduction
one step towards less network data
2021-09-30 21:49:22 +02:00
DJ2LS 9035a6e6f4 small arq bug fix 2021-09-30 21:03:26 +02:00
DJ2LS 794f8b221a code cleanup
gute code clean up with much less global variables now. ARQ beahvior has also been cut down. There can be done even more...
2021-09-27 17:33:59 +02:00
DJ2LS e435e6e835 redesign of arq handler 2021-09-26 17:51:11 +02:00
DJ2LS f52d0ea452
updated transfer calculation 2021-09-11 09:21:22 +02:00
DJ2LS efc6bc8ea5
small improvements 2021-09-08 18:04:21 +02:00
DJ2LS 5be3ecb4b8
updated arq percent calculation 2021-08-23 18:28:58 +02:00
DJ2LS 43c3f0c626
preparing for rx buffer 2021-08-16 19:41:20 +02:00
DJ2LS 32bba9845f
update for RX BUFFER 2021-08-15 17:54:35 +02:00
DJ2LS 9e9d00f848
wait before sending frame ack 2021-08-15 12:44:32 +02:00
DJ2LS 2dc9f4fa18
optimized calculation 2021-08-15 12:39:06 +02:00
DJ2LS 5a478d6010
timing and calculation improvements 2021-08-15 12:34:28 +02:00
DJ2LS d3bd9e9230
send signalling frames once or more 2021-08-14 20:59:12 +02:00
DJ2LS 5efe491881
transmission progress 2021-08-14 20:00:32 +02:00
DJ2LS 588d3ecbaa
delay between TX and RX
necessary so we are not sending until other station is in RX mode
2021-08-11 22:05:28 +02:00
DJ2LS dfb2e367ee
SNR fix for heard station 2021-08-06 22:25:14 +02:00
DJ2LS c0ec0c1853
scatter plott support 2021-08-06 22:09:16 +02:00
DJ2LS 29345a7797
added SNR to heard stations 2021-07-28 18:43:41 +02:00
DJ2LS b4f822ea6f
attempt to run socket commands as threats
asyncio seems to be blocking
2021-07-19 21:00:46 +02:00
DJ2LS 641e8b8a77
Rename data_handler.py to tnc/data_handler.py 2021-07-17 09:01:53 +02:00
Renamed from data_handler.py (Browse further)