Commit Graph

427 Commits

Author SHA1 Message Date
Jakob Ketterl
a36f106c72 add source "busy state" to improve background scheduling 2019-11-15 23:05:52 +01:00
Jakob Ketterl
097f8a2b82 refactor event system 2019-11-15 22:13:00 +01:00
Jakob Ketterl
bcbb911b24 restore airspy feature test 2019-11-15 19:36:07 +01:00
Jakob Ketterl
f18efb2344 use Popen for feature detection to be able to take control of the
working directory
2019-11-14 22:13:02 +01:00
Jakob Ketterl
367bf666fc listen for frequency changes in the scheduler, too 2019-11-13 19:50:00 +01:00
Jakob Ketterl
7489a3bb9d try to improve memory footprint by rebuilding map dictionary in
intervals
2019-11-13 18:01:01 +01:00
Jakob Ketterl
2a6c7863b1 improve control socket handling 2019-11-12 15:57:10 +01:00
Jakob Ketterl
6ba74a0c30 add ppm 2019-11-11 20:35:50 +01:00
Jakob Ketterl
ada94f69c3 new modificitions for owrx_connector support 2019-11-11 18:07:14 +01:00
Jakob Ketterl
95253e40bd organize timers and threads to get proper shutdown 2019-10-31 22:24:31 +01:00
Jakob Ketterl
af1a99c130 prevent deadlocks by shutting down services in correct order 2019-10-31 19:13:33 +01:00
Jakob Ketterl
a24cb3e04a shutdown services properly 2019-10-27 12:16:17 +01:00
Jakob Ketterl
c7eb5c430c perform binary decoding on the server side 2019-10-25 21:09:31 +02:00
Jakob Ketterl
eb29d0ac99 protect websocket handling from any exceptions 2019-10-21 22:08:37 +02:00
Jakob Ketterl
13d7686258 refactor all the audio stuff into classes and a separate file 2019-10-20 18:53:23 +02:00
Jakob Ketterl
0b2c457030 kill client-side early rebuffering, improving the latency 2019-10-18 21:13:48 +02:00
Jakob Ketterl
de179d070d this is not theoretical any more 2019-10-13 18:28:58 +02:00
Jakob Ketterl
f45857f79b don't use the resampler if the optimization says so 2019-10-13 18:25:32 +02:00
Jakob Ketterl
eda556ef03 prevent start-up of services if requirements are not fulfilled.
closes #4
2019-10-13 17:51:00 +02:00
Jakob Ketterl
ea67340cab display message when sdr unavailable 2019-10-13 14:17:32 +02:00
Jakob Ketterl
70d8fe82b3 send failure message to client 2019-10-12 20:46:32 +02:00
Jakob Ketterl
fce8c294d3 first work at detecting failed sdr devices 2019-10-12 20:19:34 +02:00
Jakob Ketterl
f9f50e734f improved websocket handling 2019-10-11 12:08:43 +02:00
d9394
db663fe134
Update controllers.py
fix a bug with reading template file
2019-10-06 16:05:30 +08:00
Jakob Ketterl
b80fd9c023 update profile dropdown box on changes 2019-10-04 22:01:07 +02:00
Jakob Ketterl
e9f9bbb9c0 replace receiver_qra setting with locator calculation 2019-10-03 18:10:46 +02:00
Jakob Ketterl
2025ccb366 catch more generic OSError 2019-10-03 00:58:27 +02:00
Jakob Ketterl
630a542ed6 better websocket header handling 2019-10-02 11:28:41 +02:00
Jakob Ketterl
455001a759 protect pskreporter upload loop 2019-09-28 03:06:34 +02:00
Jakob Ketterl
cc98c94b2b send bookmarks to client 2019-09-28 00:53:58 +02:00
Jakob Ketterl
00febdf255 implement all methods for consistency 2019-09-28 00:27:42 +02:00
Jakob Ketterl
cbc7b73b1d hand over message handling after initial handshake instead of delegating 2019-09-28 00:25:36 +02:00
Jakob Ketterl
42c59a3aa0 fft needs the multiprocessing send, too 2019-09-27 23:29:22 +02:00
Jakob Ketterl
5f703a043b fix ping race condition 2019-09-27 23:28:43 +02:00
Jakob Ketterl
76fe11741a add ping / pong to keep the websockets running 2019-09-26 22:57:10 +02:00
Jakob Ketterl
6cb7e65231 differentiate between None and empty return 2019-09-26 00:24:55 +01:00
Jakob Ketterl
6911ca407e code format 2019-09-25 00:47:34 +02:00
Jakob Ketterl
68fbc436f2 fix length problem 2019-09-25 00:36:40 +02:00
Jakob Ketterl
ecb754ab29 disable reporting if not set in config 2019-09-25 00:36:22 +02:00
Jakob Ketterl
41bd018191 determine locator from gps coordinates 2019-09-25 00:35:57 +02:00
Jakob Ketterl
45479b9f65 Merge branch 'develop' into pskreporter 2019-09-24 21:43:00 +02:00
Jakob Ketterl
a68ba01320 handle socket timeouts 2019-09-24 21:42:41 +02:00
Jakob Ketterl
ba03243527 fix date 2019-09-24 21:42:00 +02:00
Jakob Ketterl
22f4504629 set random to be at least 5 minutes 2019-09-24 21:41:31 +02:00
Jakob Ketterl
bf59ed34cf no more conditional 2019-09-23 23:53:22 +02:00
Jakob Ketterl
d8bc2cab2e actual upload 2019-09-23 23:47:12 +02:00
Jakob Ketterl
f8dcff788b build valid packets (hopefully) 2019-09-23 22:45:55 +02:00
Jakob Ketterl
4be34e4dc1 integrate pskreporter scheduling (no upload yet) 2019-09-23 18:33:52 +02:00
Jakob Ketterl
b1742dafc2 incomplete implementation to extend a callsign location 2019-09-23 16:51:38 +02:00
Jakob Ketterl
ae87185ad0 run the formatter once more 2019-09-23 03:15:24 +02:00
Jakob Ketterl
72f92a1c2b use events instead of simple sleep for clean shutdown 2019-09-23 03:06:51 +02:00
Jakob Ketterl
8b9121a5c1 tone down http logging 2019-09-22 20:51:33 +02:00
Jakob Ketterl
cfb4208db2 improved api 2019-09-22 13:16:24 +02:00
Jakob Ketterl
52afe3fb02 tone down wsjt logging 2019-09-22 12:57:59 +02:00
Jakob Ketterl
57975b6f96 move connection tracking to all websockets 2019-09-22 12:57:13 +02:00
Jakob Ketterl
b4ffc6e2f0 replace os pipe with multiprocessing (seems to work better) 2019-09-22 12:56:35 +02:00
Jakob Ketterl
1ed69de5b0 un-couple messaging between connections; use non-blocking io 2019-09-21 22:10:16 +02:00
Jakob Ketterl
6ec85aa349 don't start up unnecesserily 2019-09-21 15:24:06 +02:00
Jakob Ketterl
671509df3b fix variable name 2019-09-21 15:19:10 +02:00
Jakob Ketterl
2edeffb761 close websocket connections in an improved way 2019-09-21 13:49:37 +02:00
Jakob Ketterl
ecbae5af2d implement icon rotation 2019-09-19 02:25:32 +02:00
Jakob Ketterl
996422ff4b show aprs symbols in decoding list, too 2019-09-19 00:18:51 +02:00
Jakob Ketterl
3e8e0c9224 first work on custom aprs icons 2019-09-18 18:50:48 +02:00
Jakob Ketterl
c6c4012a36 add aprs symbols to http server 2019-09-18 17:22:35 +02:00
Jakob Ketterl
30512e347a fix more threading issues; add users metric 2019-09-18 15:40:23 +02:00
Jakob Ketterl
6f983ccb6b synchronize scheduler access 2019-09-18 01:46:31 +02:00
Jakob Ketterl
3814767e28 count errors 2019-09-18 01:46:09 +02:00
Jakob Ketterl
243e73064a add band information to ysf locations 2019-09-17 18:44:37 +02:00
Jakob Ketterl
8df4f9ce52 add the ability to schedule profiles to be used when sources are idle 2019-09-16 00:31:35 +02:00
Jakob Ketterl
b0b2df5422 no need for shared instances here 2019-09-15 21:10:30 +02:00
Jakob Ketterl
5b6edd110d wsjt decoding depth configuration 2019-09-15 16:37:12 +02:00
Jakob Ketterl
392c226cbe overflow metrics 2019-09-15 12:23:35 +02:00
Jakob Ketterl
7689d1a2e2 narrow bandpass specifically for wspr 2019-09-15 12:23:11 +02:00
Jakob Ketterl
98f1545fca code format 2019-09-13 23:03:05 +02:00
Jakob Ketterl
311f22f6ba flag services (avoid connecting to aprs network twice) 2019-09-13 22:28:17 +02:00
Jakob Ketterl
be05b54053 jt65 seems very prone to false decodes 2019-09-13 20:58:37 +02:00
Jakob Ketterl
6ff55e1279 queue in / out stats 2019-09-13 00:16:36 +02:00
Jakob Ketterl
338a19373c count aprs decodes, too 2019-09-12 23:23:50 +02:00
Jakob Ketterl
bc5b16b5e3 rewire the metrics; make queue length metric available 2019-09-12 22:50:29 +02:00
Jakob Ketterl
a11875145b make wsjt queue configurable 2019-09-12 15:32:54 +02:00
Jakob Ketterl
25a1d06dcb Merge branch 'develop' into packet 2019-09-11 01:03:12 +02:00
Jakob Ketterl
d87e5da75c attempt to reduce cpu usage by pre-selecting parts of the spectrum with
resamplers
2019-09-11 00:30:14 +02:00
Jakob Ketterl
aac618bfee fix for python 3.5 2019-09-02 16:20:49 +01:00
Jakob Ketterl
2dcdad3a49 fix message parsing range 2019-08-28 22:09:52 +02:00
Jakob Ketterl
db8d4cd3fe display items and objects on the map 2019-08-28 22:01:01 +02:00
Jakob Ketterl
de22169ea8 implement item and object parsing 2019-08-28 21:56:50 +02:00
Jakob Ketterl
b24e56803c avoid overriding weather dict keys 2019-08-27 23:52:51 +02:00
Jakob Ketterl
5530c96f8e fix message offsets 2019-08-27 23:32:21 +02:00
Jakob Ketterl
1d8fea891a additional types; parse messages 2019-08-27 23:13:26 +02:00
Jakob Ketterl
707fcdb1ab convert fahrenheit to celsius 2019-08-27 11:42:48 +02:00
Jakob Ketterl
1a2f6b4970 improve weather decoding 2019-08-27 11:32:50 +02:00
Jakob Ketterl
4409a369fa implement weather report parsing 2019-08-26 23:43:08 +02:00
Jakob Ketterl
272c305ec2 handle exceptions that may occur when parsing strings to numbers 2019-08-26 13:24:23 +02:00
Jakob Ketterl
a81c5f44a2 improve thirtparty header parsing 2019-08-26 11:41:22 +02:00
Jakob Ketterl
2a09462f6f first work on the thirdparty header 2019-08-26 00:10:43 +02:00
Jakob Ketterl
5cc67aba15 handle execptions during decode to avoid worker drain 2019-08-23 22:32:46 +02:00
Jakob Ketterl
fadcb9b43f handle a full queue 2019-08-22 21:24:36 +02:00
Jakob Ketterl
24d134ad6c try to avoid stressing out the cpu by using a proper queue 2019-08-22 21:16:43 +02:00
Jakob Ketterl
faaef9d9f8 let's be nice 2019-08-22 20:51:36 +02:00
Jakob Ketterl
c5cc364918 filters don't seem to work 2019-08-22 20:51:09 +02:00
Jakob Ketterl
379251d29d filter smallest possible to avoid traffic from the network 2019-08-18 21:41:26 +02:00
Jakob Ketterl
94533e277c improve config 2019-08-18 01:39:23 +02:00
Jakob Ketterl
73102053dc code formatting 2019-08-18 00:16:08 +02:00
Jakob Ketterl
5fab3e3d36 add igate functionality 2019-08-18 00:15:07 +02:00
Jakob Ketterl
7e757c005c implement aprs data extensions 2019-08-17 22:04:45 +02:00
Jakob Ketterl
82eaff5da6 get altitude from comment 2019-08-17 20:35:32 +02:00
Jakob Ketterl
1eb28d6aee optimize 2019-08-17 20:20:28 +02:00
Jakob Ketterl
bdbe45e322 recognize third party data (don't think we can parse them) 2019-08-17 20:01:12 +02:00
Jakob Ketterl
34a8311647 remove annoying debugging line 2019-08-17 20:00:57 +02:00
Jakob Ketterl
5b72728aa2 timestamps, status updates, replace faulty characters 2019-08-17 13:39:02 +02:00
Jakob Ketterl
67f3dc7430 fix conversion errors 2019-08-16 16:43:16 +02:00
Jakob Ketterl
b40af9bbdc back to utf-8 2019-08-16 07:29:31 +02:00
Jakob Ketterl
cc66ffd6f3 use generated port numbers for direwolf, allowing multiple instances 2019-08-16 01:27:03 +02:00
Jakob Ketterl
5a7ef65c56 reduce debugging output 2019-08-15 23:33:02 +02:00
Jakob Ketterl
46ac0ecc77 convert speed to metric 2019-08-15 22:10:58 +02:00
Jakob Ketterl
cc6561bdda get course and speed and extended info from mic-e frames 2019-08-15 21:46:08 +02:00
Jakob Ketterl
3022406f63 get the extra information out of compressed messages 2019-08-15 21:00:01 +02:00
Jakob Ketterl
66382eb50f add symbol information 2019-08-15 20:28:24 +02:00
Jakob Ketterl
21591ad6b8 format 2019-08-15 19:56:59 +02:00
Jakob Ketterl
88bbb76752 make sure there is actually enough data to parse 2019-08-15 19:50:47 +02:00
Jakob Ketterl
765f075576 add some type information; fix string offsets 2019-08-15 18:21:35 +02:00
Jakob Ketterl
6b93973d9b decode mic-e device and altitude data 2019-08-15 18:08:20 +02:00
Jakob Ketterl
439da266a9 prevent empty frames 2019-08-15 15:53:55 +02:00
Jakob Ketterl
0207374592 restructure the code to have the parser sit where all the parsers sit 2019-08-15 15:45:15 +02:00
Jakob Ketterl
3dbc6ffb2b make aprs available as service 2019-08-12 00:02:39 +02:00
Jakob Ketterl
bf5e2bcc84 compressed locations; other TODOS 2019-08-11 22:58:04 +02:00
Jakob Ketterl
b80e85638a implement the horrifying mic-e protocol 2019-08-11 22:08:32 +02:00
Jakob Ketterl
12c92928fa pass through comments for display on the map 2019-08-11 18:42:41 +02:00
Jakob Ketterl
e5dffc3d9f better decoding 2019-08-11 18:13:12 +02:00
Jakob Ketterl
55c8ce7cf0 send decodes to map 2019-08-11 17:39:41 +02:00
Jakob Ketterl
cbb65e8d79 decode basic aprs frames 2019-08-11 17:18:02 +02:00
Jakob Ketterl
2053e5f521 get raw packet data from KISS socket and start decoding 2019-08-11 16:37:30 +02:00
Jakob Ketterl
5fbbd897b5 Merge branch 'develop' into packet 2019-08-11 11:53:29 +02:00
Jakob Ketterl
d467d79bdf code format with black 2019-08-11 11:37:45 +02:00
Jakob Ketterl
92321a3b4e simple metrics api to interface with collectd and grafana 2019-08-04 18:36:03 +02:00
Jakob Ketterl
766300bdff use latest improvementes for fft, too 2019-08-04 17:31:50 +02:00
Jakob Ketterl
8214fdb24d looks configurable to me, at least for now 2019-08-04 15:17:03 +02:00
Jakob Ketterl
42aae4c03a save some cpu cycles by only running necessary stuff for services 2019-08-04 14:55:56 +02:00
Jakob Ketterl
d1eaab7711 delay startup of background services to increase user interface response 2019-08-03 23:44:56 +02:00
Jakob Ketterl
98c5e9e15b allow service configuration 2019-07-28 13:29:45 +02:00
Jakob Ketterl
fa08009c50 more logging improvements 2019-07-28 12:11:22 +02:00
Jakob Ketterl
ce662796e3 Merge branch 'develop' into services 2019-07-28 11:45:55 +02:00
Jakob Ketterl
accf2a34ff fix exception when outside of band 2019-07-28 11:45:28 +02:00
Jakob Ketterl
a15e625692 de-duplicate; better logging 2019-07-28 11:40:58 +02:00
Jakob Ketterl
7689e31640 increase timeout 2019-07-23 20:28:51 +01:00
Jakob Ketterl
8c2cefe304 pass the nmux port on (defaults are bad...) 2019-07-23 16:43:46 +01:00
Jakob Ketterl
9c927d9001 first iteration of background services 2019-07-21 23:39:11 +02:00
Jakob Ketterl
2d6b0f1877 try to catch a failing sdr device 2019-07-21 22:13:20 +02:00
Jakob Ketterl
6c2488f052 fix shadowing warning 2019-07-21 22:12:41 +02:00
D0han
e15dc1ce11 Reformatted with black -l 120 -t py35 . 2019-07-21 19:40:28 +02:00
Jakob Ketterl
6900810f5d modify so that it runs with python 3.5, too 2019-07-21 13:07:38 +01:00
Jakob Ketterl
25b0e86f09 add FT4 because why not 2019-07-20 13:38:25 +02:00
Jakob Ketterl
18b65f769f better timestamping and overhaul 2019-07-20 12:47:10 +02:00
Jakob Ketterl
abd5cf0795 collect dial frequencies and send to client 2019-07-19 23:55:52 +02:00
Jakob Ketterl
6e08a428d6 import frequencies; fix band errors 2019-07-19 23:15:10 +02:00
Jakob Ketterl
4493f369dd enable 64-bit frames for large amounts of data 2019-07-19 17:01:50 +02:00
Jakob Ketterl
a15341fdcf detect and pass band information to the map 2019-07-14 19:32:48 +02:00
Jakob Ketterl
7dcfead843 let's try to implement jt65 and jt9 as well 2019-07-14 17:09:34 +02:00
Jakob Ketterl
69c3a63794 link the map in wpsr messages, too 2019-07-14 14:33:30 +02:00
Jakob Ketterl
6d5c8491e4 implement wspr 2019-07-13 23:16:25 +02:00
Jakob Ketterl
935e79c9c2 use a temporary directory to avoid permission problems 2019-07-13 17:16:38 +02:00
Jakob Ketterl
efc5b936f8 clean up after use 2019-07-12 19:34:04 +02:00
Jakob Ketterl
2470c2bfa6 pass through the mode on the map 2019-07-11 23:40:09 +02:00
Jakob Ketterl
d606c85443 separate decoder files 2019-07-11 20:48:02 +02:00
Jakob Ketterl
5887522dce header for feature report 2019-07-11 16:44:33 +02:00
Jakob Ketterl
2bf2fcd685 implement header on map page (not fully functional yet) 2019-07-11 13:40:12 +02:00
Jakob Ketterl
8a8768ed1d fix ft8 audio sample rate issues with sox 2019-07-10 22:31:06 +02:00
Jakob Ketterl
cb0b950d34 protect the wave file switchover with a lock, since race conditions have
occured
2019-07-10 22:09:31 +02:00
Jakob Ketterl
561ff95436 make wsjt feature available (not used yet) 2019-07-08 20:16:29 +02:00
Jakob Ketterl
30b56c553e strip one more character; seen weird stuff at the end. 2019-07-07 20:46:31 +02:00
Jakob Ketterl
8b5dc8b3ad fade out markers on the map over time 2019-07-07 20:46:12 +02:00
Jakob Ketterl
d1f46c8f55 server-side removal of map positions 2019-07-07 15:52:24 +02:00
Jakob Ketterl
1a257064f7 add missing parser integration 2019-07-07 14:10:03 +02:00
Jakob Ketterl
182a8af57f deliver better timestamps 2019-07-07 14:09:24 +02:00
Jakob Ketterl
ceea2475a1 get rid of the extra flags at the end 2019-07-07 00:52:28 +02:00
Jakob Ketterl
48baea3304 parse locators and send to map 2019-07-06 22:21:47 +02:00
Jakob Ketterl
a6d7209a45 explicit timezone information 2019-07-06 21:29:49 +02:00
Jakob Ketterl
fa2d82ac13 ft8 message parsing 2019-07-06 20:03:17 +02:00
Jakob Ketterl
284646ee6c first stab at ft8 decoding: chop up audio, call jt9 binary to decode 2019-07-06 18:21:43 +02:00
Jakob Ketterl
089964a5eb query parameter support for the http module 2019-07-06 13:03:49 +02:00
Jakob Ketterl
823a4a35f0 implement feature and requirement details 2019-07-05 22:31:46 +02:00
Jakob Ketterl
e61c0dcc12 add some basic framework for the featurereport 2019-07-05 19:30:24 +02:00
Jakob Ketterl
3b2b51f07c display locations parsed from ysf on map 2019-07-01 21:20:53 +02:00
Jakob Ketterl
2324a2c837 add google maps 2019-07-01 19:49:58 +02:00
Jakob Ketterl
a4a306374d add some map basics 2019-07-01 16:49:39 +02:00
Jakob Ketterl
f283a1ad68 prepare for different types of connections 2019-07-01 11:47:07 +02:00
Jakob Ketterl
1f6f755d7f Merge branch 'develop' into packet 2019-06-22 18:20:01 +02:00
Jakob Ketterl
231e4e72d9 add missing property binding 2019-06-15 21:47:28 +02:00
Jakob Ketterl
4e9ef89276 use the old api for python < 3.6 2019-06-15 19:26:59 +02:00
Jakob Ketterl
efa0c060fe implement digiham version check 2019-06-15 13:29:59 +02:00
Jakob Ketterl
2053a6b16b more clean-up stuff 2019-06-09 19:12:37 +02:00
Jakob Ketterl
b6e59e9b11 allow avatar to be downloaded on its old url 2019-06-07 20:23:31 +02:00
Jakob Ketterl
e8a1a40dc0 try to handle overflowing connections 2019-06-07 20:10:03 +02:00
Jakob Ketterl
4b2100b593 Merge branch 'server_rework' into server_rework_dsd 2019-06-07 15:55:15 +02:00
Jakob Ketterl
a38872b2d0 Merge branch 'server_rework' of github.com:jketterl/openwebrx into server_rework 2019-06-07 15:49:43 +02:00
Jakob Ketterl
e422ca4d9b add airspy support (untested for now) 2019-06-07 15:44:11 +02:00
Jakob Ketterl
f49086a527 add first integration of direwolf for aprs 2019-06-07 15:11:04 +02:00
Jakob Ketterl
aa7212c642 handle OSErrors, too 2019-06-07 01:14:09 +02:00
Jakob Ketterl
4934e91e74 increase timeout (it's asynchronous, so we can wait) 2019-06-05 00:13:54 +02:00
Jakob Ketterl
546249e950 detect presence of nc 2019-06-05 00:08:56 +02:00