New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scanner enhancements (#986) #999
Conversation
The current Scanner app does not allow scrolling through the frequency list using the rotary encoder. I'm changing the PAUSE/RESUME button to allow manual scrolling through frequencies (via the encoder) when focus is on this button. Frequency scrolling will be supported regardless whether or not in PAUSE mode (for forcing a skip to the next frequency before the Wait timer elapses). The current Wait timer forces a Skip to the next frequency when the timer elapses and a value of 0 means "never lock to a frequency" (which is not useful); I've changed the meaning of "0" to lock on the frequency forever (or until the signal is lost). Add a second configurable timer setting to maintain lock on a frequency for a specified number of seconds following signal loss. This makes it easier to listen to a conversation on HAM radio (someone will often reply a second or two later) without having to press PAUSE. I propose to call these two timer fields "Wsa" (wait while signal active) and "Wsl" (wait after signal lost), versus the current "WAIT" field which is more ambiguous. I propose that the above "Timer" settings will be in 1-second units. (The RECON app uses 1-ms units for two similar timers but I don't think it's necessary nor is there room on the screen) When a Freq file with a "Range" is read using the "LOAD" button, I propose to populate the Manual Start/End Search Range fields, versus trying to add up to 115 individual frequencies to the Freq List in memory (often overflowing this list meaning the whole range doesn't get searched). I propose to support Freq files which contain both Range and Single frequencies (but only a single Range in the file due to the change above). Single frequencies will be added to the Freq List, and Range will be loaded into the Start/End Search fields. Note that the current "ADD FQ" button already adds Single frequencies to a file with a Range in it. When loading from a Freq file, the default Modulation and Step and BW values shall be picked up from the file, if specified, versus leaving the settings on "AM, 9kHz step, 16kHz bw". CAVEAT: At this time I am not (yet) planning to support a separate Modulation type for each frequency in the in-memory Freq List; the first valid value found is used. Support all BW and Step values in FreqMan (and use the table from FreqMan versus having separate tables in the Scanner code). Change the "Manual Scan" button to toggle between "SCAN Freq List" & "Sequential Range SEARCH" modes without having to re-LOAD the Freq file. Keep Freq List in memory unless purposely cleared, and allow adding to this in-memory list while performing the Sequential Range Search. Add a CLEAR button to clear the Freq List in memory without having to load an empty Freq file. Fixed "FREQ DEL" button to handle removal of frequencies above 4gHz (was incorrectly passing freq in a U32). Support SQUELCH when scanning is paused, to reduce unnecessary white noise. Fixed unintentional FWD/REV direction change when switching between scanning Frequency List and performing a Range Search. Display "REVERSE" or "FORWARD" on the "FWD<>REV" button, indicating which mode will become active if the button is pressed.
The current Scanner app does not allow scrolling through the frequency list using the rotary encoder. I'm changing the PAUSE/RESUME button to allow manual scrolling through frequencies (via the encoder) when focus is on this button. Frequency scrolling will be supported regardless whether or not in PAUSE mode (for forcing a skip to the next frequency before the Wait timer elapses). The current Wait timer forces a Skip to the next frequency when the timer elapses and a value of 0 means "never lock to a frequency" (which is not useful); I've changed the meaning of "0" to lock on the frequency forever (or until the signal is lost). Add a second configurable timer setting to maintain lock on a frequency for a specified number of seconds following signal loss. This makes it easier to listen to a conversation on HAM radio (someone will often reply a second or two later) without having to press PAUSE. I propose to call these two timer fields "Wsa" (wait while signal active) and "Wsl" (wait after signal lost), versus the current "WAIT" field which is more ambiguous. I propose that the above "Timer" settings will be in 1-second units. (The RECON app uses 1-ms units for two similar timers but I don't think it's necessary nor is there room on the screen) When a Freq file with a "Range" is read using the "LOAD" button, I propose to populate the Manual Start/End Search Range fields, versus trying to add up to 115 individual frequencies to the Freq List in memory (often overflowing this list meaning the whole range doesn't get searched). I propose to support Freq files which contain both Range and Single frequencies (but only a single Range in the file due to the change above). Single frequencies will be added to the Freq List, and Range will be loaded into the Start/End Search fields. Note that the current "ADD FQ" button already adds Single frequencies to a file with a Range in it. When loading from a Freq file, the default Modulation and Step and BW values shall be picked up from the file, if specified, versus leaving the settings on "AM, 9kHz step, 16kHz bw". CAVEAT: At this time I am not (yet) planning to support a separate Modulation type for each frequency in the in-memory Freq List; the first valid value found is used. Support all BW and Step values in FreqMan (and use the table from FreqMan versus having separate tables in the Scanner code). Change the "Manual Scan" button to toggle between "SCAN Freq List" & "Sequential Range SEARCH" modes without having to re-LOAD the Freq file. Keep Freq List in memory unless purposely cleared, and allow adding to this in-memory list while performing the Sequential Range Search. Add a CLEAR button to clear the Freq List in memory without having to load an empty Freq file. Fixed "FREQ DEL" button to handle removal of frequencies above 4gHz (was incorrectly passing freq in a U32). Support SQUELCH when scanning is paused, to reduce unnecessary white noise. Fixed unintentional FWD/REV direction change when switching between scanning Frequency List and performing a Range Search. Display "REVERSE" or "FORWARD" on the "FWD<>REV" button, indicating which mode will become active if the button is pressed.
The current Scanner app does not allow scrolling through the frequency list using the rotary encoder. I'm changing the PAUSE/RESUME button to allow manual scrolling through frequencies (via the encoder) when focus is on this button. Frequency scrolling will be supported regardless whether or not in PAUSE mode (for forcing a skip to the next frequency before the Wait timer elapses). The current Wait timer forces a Skip to the next frequency when the timer elapses and a value of 0 means "never lock to a frequency" (which is not useful); I've changed the meaning of "0" to lock on the frequency forever (or until the signal is lost). Add a second configurable timer setting to maintain lock on a frequency for a specified number of seconds following signal loss. This makes it easier to listen to a conversation on HAM radio (someone will often reply a second or two later) without having to press PAUSE. I propose to call these two timer fields "Wsa" (wait while signal active) and "Wsl" (wait after signal lost), versus the current "WAIT" field which is more ambiguous. I propose that the above "Timer" settings will be in 1-second units. (The RECON app uses 1-ms units for two similar timers but I don't think it's necessary nor is there room on the screen) When a Freq file with a "Range" is read using the "LOAD" button, I propose to populate the Manual Start/End Search Range fields, versus trying to add up to 115 individual frequencies to the Freq List in memory (often overflowing this list meaning the whole range doesn't get searched). I propose to support Freq files which contain both Range and Single frequencies (but only a single Range in the file due to the change above). Single frequencies will be added to the Freq List, and Range will be loaded into the Start/End Search fields. Note that the current "ADD FQ" button already adds Single frequencies to a file with a Range in it. When loading from a Freq file, the default Modulation and Step and BW values shall be picked up from the file, if specified, versus leaving the settings on "AM, 9kHz step, 16kHz bw". CAVEAT: At this time I am not (yet) planning to support a separate Modulation type for each frequency in the in-memory Freq List; the first valid value found is used. Support all BW and Step values in FreqMan (and use the table from FreqMan versus having separate tables in the Scanner code). Change the "Manual Scan" button to toggle between "SCAN Freq List" & "Sequential Range SEARCH" modes without having to re-LOAD the Freq file. Keep Freq List in memory unless purposely cleared, and allow adding to this in-memory list while performing the Sequential Range Search. Add a CLEAR button to clear the Freq List in memory without having to load an empty Freq file. Fixed "FREQ DEL" button to handle removal of frequencies above 4gHz (was incorrectly passing freq in a U32). Support SQUELCH when scanning is paused, to reduce unnecessary white noise. Fixed unintentional FWD/REV direction change when switching between scanning Frequency List and performing a Range Search. Display "REVERSE" or "FORWARD" on the "FWD<>REV" button, indicating which mode will become active if the button is pressed.
The current Scanner app does not allow scrolling through the frequency list using the rotary encoder. I'm changing the PAUSE/RESUME button to allow manual scrolling through frequencies (via the encoder) when focus is on this button. Frequency scrolling will be supported regardless whether or not in PAUSE mode (for forcing a skip to the next frequency before the Wait timer elapses). The current Wait timer forces a Skip to the next frequency when the timer elapses and a value of 0 means "never lock to a frequency" (which is not useful); I've changed the meaning of "0" to lock on the frequency forever (or until the signal is lost). Add a second configurable timer setting to maintain lock on a frequency for a specified number of seconds following signal loss. This makes it easier to listen to a conversation on HAM radio (someone will often reply a second or two later) without having to press PAUSE. I propose to call these two timer fields "Wsa" (wait while signal active) and "Wsl" (wait after signal lost), versus the current "WAIT" field which is more ambiguous. I propose that the above "Timer" settings will be in 1-second units. (The RECON app uses 1-ms units for two similar timers but I don't think it's necessary nor is there room on the screen) When a Freq file with a "Range" is read using the "LOAD" button, I propose to populate the Manual Start/End Search Range fields, versus trying to add up to 115 individual frequencies to the Freq List in memory (often overflowing this list meaning the whole range doesn't get searched). I propose to support Freq files which contain both Range and Single frequencies (but only a single Range in the file due to the change above). Single frequencies will be added to the Freq List, and Range will be loaded into the Start/End Search fields. Note that the current "ADD FQ" button already adds Single frequencies to a file with a Range in it. When loading from a Freq file, the default Modulation and Step and BW values shall be picked up from the file, if specified, versus leaving the settings on "AM, 9kHz step, 16kHz bw". CAVEAT: At this time I am not (yet) planning to support a separate Modulation type for each frequency in the in-memory Freq List; the first valid value found is used. Support all BW and Step values in FreqMan (and use the table from FreqMan versus having separate tables in the Scanner code). Change the "Manual Scan" button to toggle between "SCAN Freq List" & "Sequential Range SEARCH" modes without having to re-LOAD the Freq file. Keep Freq List in memory unless purposely cleared, and allow adding to this in-memory list while performing the Sequential Range Search. Add a CLEAR button to clear the Freq List in memory without having to load an empty Freq file. Fixed "FREQ DEL" button to handle removal of frequencies above 4gHz (was incorrectly passing freq in a U32). Support SQUELCH when scanning is paused, to reduce unnecessary white noise. Fixed unintentional FWD/REV direction change when switching between scanning Frequency List and performing a Range Search. Display "REVERSE" or "FORWARD" on the "FWD<>REV" button, indicating which mode will become active if the button is pressed.
Previous Scanner app ignored HAM radio repeater types in the frequency file. Changed to add both receive & transmit to the Scan frequency list. Also added some comments.
Well. To be honest with you I, personally, don't know what to do with that PR. |
And I also encourage you to come on discord, dev/general and discuss the firmware size issue with us :-) |
Thank you for your detailed message. It helps to know some of the history. I think there must be some reason why people still like and want to keep improving the old Scanner app. Probaby it's that "glorious" frequency display, the app name Scanner, perhaps because it's on the home screen, or it seems simpler to use. The Scanner app could obviously use even more enhancements as you mention, but I focused on the things that were bugging me the most, only to discover later that many of those things had already been addressed in Recon. At this time, I would recommend against deprecating the Scanner app. Regarding code space, please note that my pull request only increases the binary size by 256 bytes, and I'm certain that I could optimize it such that it's even smaller than the original Scanner app if necessary (but there will be even more code changes to review :-). I'm certain that I could help with code size optimization and other enhancements, as long as this team finds my contributions useful. Though still learning git and C++, I am an engineer with 40 years programming experience (mostly standard C), a HAM, and have some time to help. I'll take a look at the code space conversation on discord. |
Okay. Let's merge since it's little, but you have to update the Scanner wiki page to reflect your changes, it's a deal. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did review it, but forgot to click on send.
It's good to go of course.
Thank you! I have updated the Wiki pages for Scanner, and also for my earlier TPMS & ERT changes. |
* Adding 2 WFM filters more to current Audio App ( bw 180Khz and 40 khz to support rx for weather NOAA APT) (#961) * First part new filter 40k for NOAA in Audio App * Adding a third WFM filter 180Khz general pursose * Add "Auto" mode to FrequencyField (#959) * Add "Auto" mode to FrequencyField * Use exponential function instead of hyperbolic * Fix tabs * Back to hyperbolic, better feel * Update Looking Glass PRESETS.TXT to add yet more bands (#964) Added FM RADIO, AVIATION, AMATEUR RADIO (HAM), and ITU-defined FREQ BANDS. (we do realize that 902-928MHz is also used for ISM, and that FM list is having two nearly identical bands.) * Update PRESETS.TXT (#962) LoRa bands added * Wfm freqm options (#966) * added WFM 180K and 40K options in freqman * Make audio app use freqman funcs to load modulations bandwidths * Fixing units KHz => kHz (#967) Co-authored-by: GullCode <gullradriel@hotmail.com> * Record button remove (#968) * removed unused debug and record buttons * added log checkbox * changed ignore and log to false at app start for pocsag * fixed warning: suggest parentheses around arithmetic in operand of '^' proc signal * ui comsetic fix * Fileman copy/paste support (#970) * Add copy/paste UI instead of file save * specific directory for screens and logs (#971) * Changed to LOGS directory, creating if not existing. Adjusted to upper case. * Changed to SCREENSHOTS directory, creating if not existing * Revert "specific directory for screens and logs (#971)" (#972) This reverts commit bc1ad55. * All logs to LOGS directory (#973) * Added #define LOG_ROOT_DIR * using LOG_ROOT_DIR as root path of log * Recon skip fix (#974) * definitely fixed, tested, documented bad consecutive match skip problem * stability fix for config when no list * fixed boundaries * replaced 1000000 by #define OneMHz 1000000 * Adding the 3 x WFM BW filters to Mic App (#976) adding the 3 x WFM BW filters to Mic App and other minor msg correction and adding comments to code * Fileman icon toolbar (#975) * Add cut/copy/paste menu with icons * Add icons, file limit to fileman * Minor fileman bug fixes (#977) -sets max file count to 100, fixes partner rename and delete in subfolders. * save load settings / thread timer fix (#979) * fixing bad parameter in save and load settings, as well as default settings. Tuned thread timers a bit * uniformisation of default values * indentation * fix resume recon after lock * Two minor patches - freqman file processing & NumberField "can_loop" option (#981) -Enhanced frequency file reading: Correctly read freq files that contain a mix of SINGLE and RANGE or HAM_RADIO types (strstr in file processing was ignoring EOL and was therefore finding the f= on the next line). Also changed to simply ignore blank or unrecognized lines versus adding them as SIMPLE entries to freq table. This allow comments and white line in freqman files. -Fixed "can_loop" option in NumberField: When NumberField range.first was non-zero, and can_loop was true, turning the encoder dial in the downward direction did not result in numbers looping back to range.second as was expected. This fix allows looping in downward direction in the case where range.first is non-zero. * Add example signal and correct FM radio stations (#980) -fixed RADIO_FM_NO.txt and RADIO_FM_PL.txt -added aurora rgb led command samples * Logging Updates (#978) * log_file ensures directory exists * Fix audio timestamp path * Fix auto inc, add subfolder for recordings * Fix auto inc and support subfolder * fixing indent (#982) resolving conversations in #968 * Freqman 40k fix (#987) * removing space which would prevent correct reading of 'bw=40k,' in freqman files * setting correct 4 char long size in WFM bandwidth options --------- Co-authored-by: GullCode <gullradriel@hotmail.com> * Fixed FREQMAN "Range" files to use kHz vs KHz, added 2 HAM freq files, and use valid BW settings for WFM (#985) * Added HAM 2M & 70CM band file * Update BW to a valid value Valid WFM BW values are 40k,180k,or 200k * Use 11k for HAM bandwidth (typically 12.5k but not an option currently) * Changes FM_STANDARD step value to 100kHz per ITU 1984 200kHz is best here in the USA, but I understand that 100kHz is better in the EU * Recon event nothread (#984) * deleted unreliable Thread system and use exclusively the statistics events instead * reducing used variables, reducing number of functions, revamped main drawing and locking system * max speed is fixed at a maximum of 10 scans/secs due to statistics not coming quicker than that * New app: Spectrum Painter (#988) * added spectrum painter app * fixed crash when BtnGridView has more than one page (#993) * fixed crash when BtnGridView has more than one page * removed empty buttons from view * Added clang formatting spec and PR validation (#992) * Update .clang-format * Support frequency files that don't have a C/R at the end of the last line (#997) * Support FREQ files that don't have 0x0A at end of last line * fixing PR comments (#991) * cleanings, factorisation, indentation. * Minor change to the Mic App UI , (adding colour warning indication, based on RF settings GAIN , AMP) (#1001) * Add colour Power_tx UI warning to Mic App * Cleaning compile warnings * Scanner enhancements (#986) (#999) * Scanner enhancements (issue #986) * Extending Power Colour Warning in 3 Tx App's (#1005) Extended color scheme for transmit fields * removing keyfob app (#1006) * removing icon * disabling keyfob app * icon file rebuild * Formatted code (#1007) * Updated style * Updated files * fixed new line * Updated spacing * File fix WIP * Updated to clang 13 * updated comment style * Removed old comment code * Removed push check (#1012) * simple 1 pixel error correction (#1014) No risk and already validated. just deleting incorrect -1 pixel vertical in Y . * Updated icao24.db, improved python scripts. (#1013) updated icao24.db improved icao24.db generation speed ( a few second, instead of an hour) small fixes * Looking glass final cut (#1015) * Painter validation on single,fast and slow scan, fixes, comments, organisation * autoindent * Add Notepad app (#1010) * easier 'now', start adding text editor * Adding scrolling to notepad * Better scrolling * Better scrolling, off-by-1 bugs * MVP fit and finish * Add tiny font and use in Notepad * Font tweaking, tiny font cursor * Fix warning * Format changed files --------- Co-authored-by: kallanreed <kallanreed@outlook.com> * Adding Frequency Correction menu and effect (#1016) * Adding Frequency Correction and entry menu in Settings * Updated script (#1019) * Updated flashing folder layout (#1020) * Updated layout * Moved normal hackRF flashing to utils as should not normally be needed * Adds firmware to cd card files (#1021) * Adds firmware to cd card files * Create deleteme.txt * Delete deleteme.txt * Creates the FIRMWARE dir * Updated firmware file name * Automatically add world map to SD card files (#1022) * Testing * Updated scripts * Updated removed testing file * fixed bad copy paste from #1016, thanks @NotherNgineer (#1023) fixed bad copy paste from #1016 * fixing bad range for lock field (#1024) * fixing bad range for lock field * Fixing colorisation of wait/lockwait fields (#1026) * Fixing colorisation of wait/lockwait field * Settings directory fix in Level and Recon (#1028) * removed unneeded sdcard check and directory creation * changed settings so they use SETTINGS and a better name. Code beautication * added first unit test (#1027) * added first unit test * improved unit test names * freq correct unit fix (#1029) * fix units for frequency offset. It was planned to be a uint32_t since a uint16_t is obviously too short * took the uint32_t limitation for frequency offset in account * Fixed debounce code to handle noisy switch transitions #989 (#1030) * Fix debounce to handle noisy switch transitions * Fix debounce to handle noisy switch transitions * Fix debounce to handle noisy switch transitions * Removed inline comment to see if Clang checker will be happy * Test fix for supposed Clang formatting issue * Move tests, add applicaiton tests. (#1031) Co-authored-by: kallanreed <kallanreed@outlook.com> * Update dfu_hackrf_one.bat (#1032) * fix CONFIG not working if nothing changed and got less flickering by separating text output (#1034) -fix CONFIG dysfunction if nothing had changed: this was a reminiscence of the nothread conversion -addressed screen flickering: reduced it by separating two text output -variables: took out unneeded userpause (reminiscence of the nothread conversion) -solved problem with manual range not updating description on consecutive clicks -solved problem with direction changing on 'UNLOCK/SKIPLCK' * cleanup (#1036) * 1.7.1 (#1037) * Update past_version.txt * Update version.txt --------- Co-authored-by: Brumi-2021 <86470699+Brumi-2021@users.noreply.github.com> Co-authored-by: Kyle Reed <kareed@kallanreed.com> Co-authored-by: Mark Thompson <129641948+NotherNgineer@users.noreply.github.com> Co-authored-by: wifwucite <74489218+wifwucite@users.noreply.github.com> Co-authored-by: gullradriel <3157857+gullradriel@users.noreply.github.com> Co-authored-by: GullCode <gullradriel@hotmail.com> Co-authored-by: ittercho <125788694+nnesetto@users.noreply.github.com> Co-authored-by: Bernd Herzog <bernd@nachregenkommtsonne.de> Co-authored-by: ArjanOnwezen <44684169+ArjanOnwezen@users.noreply.github.com> Co-authored-by: kallanreed <kallanreed@outlook.com> Co-authored-by: Erwin Ried <1091420+eried@users.noreply.github.com>
Please accept my apologies for changing so many code lines at once (next time I'll know [before editing] that the preference is multiple smaller changes for easier reviewing). All Scanner improvements mentioned in #986 (pasted below) have been addressed in these 2 files. Please try out this updated scanner app and send me any questions or feedback. Hopefully the number of review comments won't exceed the number of modified code lines. :-) Some screen-shots with these changes implemented are attached below.