Looking Glass frequency list now supports muiti file loads (#3215)

This commit is contained in:
未来方舟
2026-06-08 21:22:29 +08:00
committed by GitHub
parent 5b363b79aa
commit 378b2808ba
25 changed files with 199 additions and 105 deletions
@@ -24,6 +24,7 @@
#include "ui_looking_glass_app.hpp"
#include "convert.hpp"
#include "file_reader.hpp"
#include "file.hpp"
#include "string_format.hpp"
#include "audio.hpp"
#include "file_path.hpp"
@@ -603,34 +604,39 @@ void GlassView::on_freqchg(int64_t freq) {
}
void GlassView::load_presets() {
File presets_file;
auto error = presets_file.open(looking_glass_dir / u"PRESETS.TXT");
presets_db.clear();
// Add the "Manual" entry.
presets_db.push_back({0, 0, "Manual"});
if (!error) {
auto reader = FileLineReader(presets_file);
for (const auto& line : reader) {
if (line.length() == 0 || line[0] == '#')
continue;
scan_root_files(looking_glass_dir, u"*.TXT", [this](const std::filesystem::path& path) {
if (path.empty() || path.native()[0] == u'.')
return;
auto cols = split_string(line, ',');
if (cols.size() != 3)
continue;
File presets_file;
auto error = presets_file.open(looking_glass_dir / path);
if (!error) {
auto reader = FileLineReader(presets_file);
for (const auto& line : reader) {
if (line.length() == 0 || line[0] == '#')
continue;
preset_entry entry{};
parse_int(cols[0], entry.min);
parse_int(cols[1], entry.max);
entry.label = trimr(cols[2]);
auto cols = split_string(line, ',');
if (cols.size() != 3)
continue;
if (entry.min == 0 || entry.max == 0 || entry.min >= entry.max)
continue; // Invalid line.
preset_entry entry{};
parse_int(cols[0], entry.min);
parse_int(cols[1], entry.max);
entry.label = trimr(cols[2]);
presets_db.emplace_back(std::move(entry));
if (entry.min == 0 || entry.max == 0 || entry.min >= entry.max)
continue; // Invalid line.
presets_db.emplace_back(std::move(entry));
}
}
}
});
populate_presets();
}
+6
View File
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# 433 MHz BAND
423,443,433 BAND
+6
View File
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# AUS UHF CB
476,478,AUS UHF CB
+10
View File
@@ -0,0 +1,10 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# AVIATION
108,118,AVIATION 108 NAVAIDS
118,137,AVIATION 118 VOICE
960,1215,AVIATION 960
1089,1091,ADS-B 1090
128,137,ACARS
+9
View File
@@ -0,0 +1,9 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# BROADCAST RADIO
87,108,FM BROADCAST USA
76,108,FM BROADCAST BRAZIL
76,95,FM BROADCAST JAPAN
65,74,FM OIRT EAST EU
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# CITIZENS BAND RADIO
26,28,CB RADIO
@@ -0,0 +1,8 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# COMMON PUBLIC SERVICE BANDS
150,160,PUBLIC SERVICE 155
450,470,PUBLIC SERVICE 460
769,775,PUBLIC SERVICE 770
+7
View File
@@ -0,0 +1,7 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# CubeSats
144,146,145 CubeSats
435,438,436 CubeSats
+6
View File
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# DECT
1879,1931,DECT
+6
View File
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# FRS/GMRS
462,468,FRS/GMRS
+6
View File
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# FULL
10,7250,FULL RANGE
+12
View File
@@ -0,0 +1,12 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# HAM RADIO
28,30,HAM 10-METER
50,54,HAM 6-METER
144,148,HAM 2-METER
219,225,HAM 1.25-METER
420,450,HAM 70-CM
902,928,HAM 33-CM
1240,1300,HAM 23-CM
+10
View File
@@ -0,0 +1,10 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# ITU-DEFINED BANDS
1,3,MF BAND
3,30,HF BAND
30,300,VHF BAND
300,3000,UHF BAND
3000,7250,SHF BAND
+11
View File
@@ -0,0 +1,11 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# KEYFOBS
305,325,315 MHz KEYFOBS
380,400,390 MHz KEYFOBS
423,443,433 MHz KEYFOBS
858,878,868 MHz KEYFOBS
902,929,915 MHz KEYFOBS
# 260,500,315/433 MHz KEYFOBS
+9
View File
@@ -0,0 +1,9 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# LoRa
433,435,LoRa 443EU
863,870,LoRa 868EU
902,928,LoRa 915US
779,787,LoRa 780CN
+6
View File
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# MARINE BAND
155,163,MARINE VHF
+8
View File
@@ -0,0 +1,8 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# MICS
140,380,MICS (VHF) AND MARINE
420,660,MICS (UHF)
169,172,MICS COMMON
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# MULTI-USE RADIO SERVICE - MURS
151,155,MULTI-USE RADIO SRVS
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# NOAA WEATHER RADIO
161,164,NOAA WEATHER RADIO
+11
View File
@@ -0,0 +1,11 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# PAGERS https://www.fcc.gov/wireless/bureau-divisions/mobility-division/paging
34,36,USA PAGERS 35
43,45,USA PAGERS 44
151,153,USA PAGERS 152
157,159,USA PAGERS 158
453,454,USA PAGERS 454
929,931,USA PAGERS 930
-87
View File
@@ -1,87 +0,0 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# 433 MHz BAND
423,443,433 BAND
# AVIATION
108,118,AVIATION 108 NAVAIDS
118,137,AVIATION 118 VOICE
960,1215,AVIATION 960
1089,1091,ADS-B 1090
128,137,ACARS
# BROADCAST RADIO
87,108,FM BROADCAST USA
76,108,FM BROADCAST BRAZIL
76,95,FM BROADCAST JAPAN
65,74,FM OIRT EAST EU
# CITIZENS BAND RADIO
26,28,CB RADIO
# COMMON PUBLIC SERVICE BANDS
150,160, PUBLIC SERVICE 155
450,470,PUBLIC SERVICE 460
769,775,PUBLIC SERVICE 770
# CubeSats
144,146,145 CubeSats
435,438,436 CubeSats
# DECT
1879,1931,DECT
# FRS/GMRS
462,468,FRS/GMRS
# AUS UHF CB
476,478,AUS UHF CB
# HAM RADIO
28,30,HAM 10-METER
50,54,HAM 6-METER
144,148,HAM 2-METER
219,225,HAM 1.25-METER
420,450,HAM 70-CM
902,928,HAM 33-CM
1240,1300,HAM 23-CM
# KEYFOBS
305,325,315 MHz KEYFOBS
380,400,390 MHz KEYFOBS
423,443,433 MHz KEYFOBS
858,878,868 MHz KEYFOBS
902,929,915 MHz KEYFOBS
# 260,500,315/433 MHz KEYFOBS
# LoRa
433,435,LoRa 443EU
863,870,LoRa 868EU
902,928,LoRa 915US
779,787,LoRa 780CN
# MARINE BAND
155,163,MARINE VHF
# MICS
140,380,MICS (VHF) AND MARINE
420,660,MICS (UHF)
169,172,MICS COMMON
# MULTI-USE RADIO SERVICE - MURS
151,155,MULTI-USE RADIO SRVS
# NOAA WEATHER RADIO
161,164,NOAA WEATHER RADIO
# PAGERS https://www.fcc.gov/wireless/bureau-divisions/mobility-division/paging
34,36,USA PAGERS 35
43,45,USA PAGERS 44
151,153,USA PAGERS 152
157,159,USA PAGERS 158
453,454,USA PAGERS 454
929,931,USA PAGERS 930
# RADIOSONDES
390,420,RADIOSONDES
# RAILROAD
159,162,RAILROAD
# WATER METERS
850,900,Water meters
902,928,ISM 900MHz
# WIFI
2320,2560,BL / WIFI 2.4GHz
5160,5900,WIFI 5GHz
# ITU-DEFINED BANDS
1,3,MF BAND
3,30,HF BAND
30,300,VHF BAND
300,3000,UHF BAND
3000,7250,SHF BAND
# FULL
10,7250,FULL RANGE
+6
View File
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# RADIOSONDES
390,420,RADIOSONDES
+6
View File
@@ -0,0 +1,6 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# RAILROAD
159,162,RAILROAD
+7
View File
@@ -0,0 +1,7 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# WATER METERS
850,900,Water meters
902,928,ISM 900MHz
+7
View File
@@ -0,0 +1,7 @@
# INI,END,DESCRIPTION
# (Freq range in MHz, min separation 3MHz)
# (Description up to 20 char)
# (fields comma delimiter)
# WIFI
2320,2560,BL / WIFI 2.4GHz
5160,5900,WIFI 5GHz