@ham2k/lib-operation-data 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/index.js +1 -0
- package/src/lib/bands.js +109 -2
- package/src/lib/modes.js +131 -0
package/package.json
CHANGED
package/src/index.js
CHANGED
package/src/lib/bands.js
CHANGED
|
@@ -19,10 +19,24 @@ export const BANDS = [
|
|
|
19
19
|
'33cm',
|
|
20
20
|
'23cm',
|
|
21
21
|
'13cm',
|
|
22
|
+
'9cm',
|
|
23
|
+
'6cm',
|
|
24
|
+
'3cm',
|
|
25
|
+
'12mm',
|
|
26
|
+
'6mm',
|
|
27
|
+
'4mm',
|
|
28
|
+
'2.5mm',
|
|
29
|
+
'2mm',
|
|
30
|
+
'1mm',
|
|
22
31
|
'other'
|
|
23
32
|
]
|
|
24
33
|
|
|
25
34
|
export const HF_BANDS = ['160m', '80m', '60m', '40m', '30m', '20m', '17m', '15m', '12m', '10m']
|
|
35
|
+
export const VHF_BANDS = ['6m', '4m', '2m', '125cm']
|
|
36
|
+
export const UHF_BANDS = ['70cm', '33cm', '23cm', '13cm']
|
|
37
|
+
export const SHF_BANDS = ['9cm', '6cm', '3cm', '12mm']
|
|
38
|
+
export const EHF_BANDS = ['6mm', '4mm', '2mm', '2.5mm', '1mm']
|
|
39
|
+
|
|
26
40
|
export const COMMON_BANDS = ['160m', '80m', '60m', '40m', '30m', '20m', '17m', '15m', '12m', '10m', '6m', '2m', '70cm']
|
|
27
41
|
export const CONTEST_BANDS = ['160m', '80m', '40m', '20m', '15m', '10m']
|
|
28
42
|
|
|
@@ -49,7 +63,100 @@ function bandForExactFrequencyInMHz (freq) {
|
|
|
49
63
|
else if (freq >= 219000 && freq <= 230000) return '125cm'
|
|
50
64
|
else if (freq >= 400000 && freq <= 460000) return '70cm'
|
|
51
65
|
else if (freq >= 900000 && freq <= 930000) return '33cm'
|
|
52
|
-
else if (freq >=
|
|
53
|
-
else if (freq >= 2300000 && freq <=
|
|
66
|
+
else if (freq >= 1180000 && freq <= 1420000) return '23cm'
|
|
67
|
+
else if (freq >= 2300000 && freq <= 2450000) return '13cm'
|
|
68
|
+
else if (freq >= 3290000 && freq <= 3510000) return '9cm'
|
|
69
|
+
else if (freq >= 5640000 && freq <= 5926000) return '6cm'
|
|
70
|
+
else if (freq >= 10000000 && freq <= 10500000) return '3cm'
|
|
71
|
+
else if (freq >= 24000000 && freq <= 24250000) return '12mm'
|
|
72
|
+
else if (freq >= 47000000 && freq <= 47200000) return '6mm'
|
|
73
|
+
else if (freq >= 75000000 && freq <= 81000000) return '4mm'
|
|
74
|
+
else if (freq >= 122250000 && freq <= 123000000) return '2.5mm'
|
|
75
|
+
else if (freq >= 134000000 && freq <= 141000000) return '2mm'
|
|
76
|
+
else if (freq >= 241000000 && freq <= 250000000) return '1mm'
|
|
77
|
+
else return undefined
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function frequencyForBand(band, mode) {
|
|
81
|
+
if (band === '2200m') return 135.7
|
|
82
|
+
else if (band === '630m') return 472
|
|
83
|
+
else if (band === '160m') {
|
|
84
|
+
if (mode === 'FT8' || mode === 'FT4') return 1840
|
|
85
|
+
else return 1800
|
|
86
|
+
}
|
|
87
|
+
else if (band === '80m') {
|
|
88
|
+
if (mode === 'SSB' || mode === 'LSB') return 3800
|
|
89
|
+
else if (mode === 'FT8') return 3573
|
|
90
|
+
else if (mode === 'FT4') return 3575
|
|
91
|
+
else return 3000
|
|
92
|
+
}
|
|
93
|
+
else if (band === '60m') {
|
|
94
|
+
if (mode === 'FT8') return 5357
|
|
95
|
+
else return 5330
|
|
96
|
+
}
|
|
97
|
+
else if (band === '40m') {
|
|
98
|
+
if (mode === 'SSB' || mode === 'LSB') return 7175
|
|
99
|
+
else if (mode === 'FT8') return 7074
|
|
100
|
+
else if (mode === 'FT4') return 7047.5
|
|
101
|
+
else return 7000
|
|
102
|
+
}
|
|
103
|
+
else if (band === '30m') {
|
|
104
|
+
if (mode === 'FT8') return 10136
|
|
105
|
+
else if (mode === 'FT4') return 10140
|
|
106
|
+
else return 10100
|
|
107
|
+
}
|
|
108
|
+
else if (band === '20m') {
|
|
109
|
+
if (mode === 'SSB' || mode === 'USB') return 14225
|
|
110
|
+
else if (mode === 'FT8') return 14074
|
|
111
|
+
else if (mode === 'FT4') return 14080
|
|
112
|
+
else return 14000
|
|
113
|
+
}
|
|
114
|
+
else if (band === '17m') {
|
|
115
|
+
if (mode === 'SSB' || mode === 'USB') return 18110
|
|
116
|
+
else if (mode === 'FT8') return 18100
|
|
117
|
+
else if (mode === 'FT4') return 18104
|
|
118
|
+
else return 18068
|
|
119
|
+
}
|
|
120
|
+
else if (band === '15m') {
|
|
121
|
+
if (mode === 'SSB' || mode === 'USB') return 21275
|
|
122
|
+
else if (mode === 'FT8') return 21074
|
|
123
|
+
else if (mode === 'FT4') return 21140
|
|
124
|
+
else return 21000
|
|
125
|
+
}
|
|
126
|
+
else if (band === '12m') {
|
|
127
|
+
if (mode === 'SSB' || mode === 'USB') return 24930
|
|
128
|
+
else if (mode === 'FT8') return 24915
|
|
129
|
+
else if (mode === 'FT4') return 24919
|
|
130
|
+
else return 24890
|
|
131
|
+
}
|
|
132
|
+
else if (band === '10m') {
|
|
133
|
+
if (mode === 'SSB' || mode === 'USB') return 28300
|
|
134
|
+
else if (mode === 'FM' || mode === 'AM') return 28500
|
|
135
|
+
else if (mode === 'FT8') return 28074
|
|
136
|
+
else if (mode === 'FT4') return 28180
|
|
137
|
+
else return 28000
|
|
138
|
+
}
|
|
139
|
+
else if (band === '6m') {
|
|
140
|
+
if (mode === 'SSB' || mode === 'USB') return 50125
|
|
141
|
+
else if (mode === 'FT8') return 50313
|
|
142
|
+
else if (mode === 'FT4') return 50318
|
|
143
|
+
else return 50000
|
|
144
|
+
}
|
|
145
|
+
else if (band === '4m') return 70090
|
|
146
|
+
else if (band === '2m') return 145400
|
|
147
|
+
else if (band === '125cm') return 222000
|
|
148
|
+
else if (band === '70cm') return 420000
|
|
149
|
+
else if (band === '33cm') return 902000
|
|
150
|
+
else if (band === '23cm') return 1240000
|
|
151
|
+
else if (band === '13cm') return 2300000
|
|
152
|
+
else if (band === '9cm') return 3300000
|
|
153
|
+
else if (band === '6cm') return 5650000
|
|
154
|
+
else if (band === '3cm') return 10000000
|
|
155
|
+
else if (band === '12mm') return 24000000
|
|
156
|
+
else if (band === '6mm') return 47000000
|
|
157
|
+
else if (band === '4mm') return 75500000
|
|
158
|
+
else if (band === '2.5mm') return 122500000
|
|
159
|
+
else if (band === '2mm') return 134000000
|
|
160
|
+
else if (band === '1mm') return 241000000
|
|
54
161
|
else return undefined
|
|
55
162
|
}
|
package/src/lib/modes.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
export const SUPER_MODES = [
|
|
2
|
+
'CW',
|
|
3
|
+
'PHONE',
|
|
4
|
+
'DATA'
|
|
5
|
+
]
|
|
6
|
+
|
|
7
|
+
export const MAIN_MODES = [
|
|
8
|
+
'CW',
|
|
9
|
+
'SSB',
|
|
10
|
+
'AM',
|
|
11
|
+
'FM',
|
|
12
|
+
'FT8',
|
|
13
|
+
'FT4',
|
|
14
|
+
'RTTY'
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
export const POPULAR_MODES = [
|
|
18
|
+
'AM',
|
|
19
|
+
'CW',
|
|
20
|
+
'C4FM',
|
|
21
|
+
'DIGITALVOICE',
|
|
22
|
+
'DMR',
|
|
23
|
+
'DSTAR',
|
|
24
|
+
'DYNAMIC'
|
|
25
|
+
'FM',
|
|
26
|
+
'FREEDV',
|
|
27
|
+
'FT4',
|
|
28
|
+
'FT8',
|
|
29
|
+
'HELL'
|
|
30
|
+
'JT9',
|
|
31
|
+
'LSB',
|
|
32
|
+
'M17',
|
|
33
|
+
'MFSK',
|
|
34
|
+
'MSK144',
|
|
35
|
+
'OLIVIA',
|
|
36
|
+
'PKT',
|
|
37
|
+
'PSK',
|
|
38
|
+
'SSB',
|
|
39
|
+
'SSTV',
|
|
40
|
+
'USB',
|
|
41
|
+
'WSPR',
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
export const ADIF_MODES = [
|
|
45
|
+
'AM',
|
|
46
|
+
'ARDOP',
|
|
47
|
+
'ATV',
|
|
48
|
+
'CHIP',
|
|
49
|
+
'CLO',
|
|
50
|
+
'CONTESTI',
|
|
51
|
+
'CW',
|
|
52
|
+
'DIGITALVOICE',
|
|
53
|
+
'DOMINO',
|
|
54
|
+
'DYNAMIC',
|
|
55
|
+
'FAX',
|
|
56
|
+
'FM',
|
|
57
|
+
'FSK441',
|
|
58
|
+
'FT8',
|
|
59
|
+
'HELL',
|
|
60
|
+
'ISCAT',
|
|
61
|
+
'JT4',
|
|
62
|
+
'JT6M',
|
|
63
|
+
'JT9',
|
|
64
|
+
'JT44',
|
|
65
|
+
'JT65',
|
|
66
|
+
'MFSK',
|
|
67
|
+
'MSK144',
|
|
68
|
+
'MT63',
|
|
69
|
+
'OLIVIA',
|
|
70
|
+
'OPERA',
|
|
71
|
+
'PAC',
|
|
72
|
+
'PAX',
|
|
73
|
+
'PKT',
|
|
74
|
+
'PSK',
|
|
75
|
+
'PSK2K',
|
|
76
|
+
'Q15',
|
|
77
|
+
'QRA64',
|
|
78
|
+
'ROS',
|
|
79
|
+
'RTTY',
|
|
80
|
+
'RTTYM',
|
|
81
|
+
'SSB',
|
|
82
|
+
'SSTV',
|
|
83
|
+
'T10',
|
|
84
|
+
'THOR',
|
|
85
|
+
'THRB',
|
|
86
|
+
'TOR',
|
|
87
|
+
'V4',
|
|
88
|
+
'VOI',
|
|
89
|
+
'WINMOR',
|
|
90
|
+
'WSPR'
|
|
91
|
+
]
|
|
92
|
+
|
|
93
|
+
export const ADIF_SUBMODES = {
|
|
94
|
+
'CHIP': ['CHIP64', 'CHIP128'],
|
|
95
|
+
'DIGITALVOICE': ['C4FM', 'DMR', 'DSTAR', 'FREEDV', 'M17'],
|
|
96
|
+
'DOMINO': ['DOM-M', 'DOM4', 'DOM5', 'DOM8', 'DOM11', 'DOM16', 'DOM22', 'DOM44', 'DOM88', 'DOMINOEX', 'DOMINOF'],
|
|
97
|
+
'DYNAMIC': ['VARA HF', 'VARA SATELLITE', 'VARA FM 1200', 'VARA FM 9600'],
|
|
98
|
+
'HELL': ['FMHELL', 'FSKHELL', 'HELL80', 'HELLX5', 'HELLX9', 'HFSK', 'PSKHELL', 'SLOWHELL'],
|
|
99
|
+
'ISCAT': ['ISCAT-A', 'ISCAT-B'],
|
|
100
|
+
'JT4': ['JT4A', 'JT4B', 'JT4C', 'JT4D', 'JT4E', 'JT4F', 'JT4G'],
|
|
101
|
+
'JT9': ['JT9-1', 'JT9', 'JT9-2', 'JT9-5', 'JT9-10', 'JT9-30', 'JT9A', 'JT9B', 'JT9C', 'JT9D', 'JT9E', 'JT9E FAST', 'JT9F', 'JT9F FAST', 'JT9G', 'JT9G FAST', 'JT9H', 'JT9H FAST'],
|
|
102
|
+
'JT65': ['JT65A', 'JT65B', 'JT65B2', 'JT65C', 'JT65C2'],
|
|
103
|
+
'MFSK': ['FSQCALL', 'FST4', 'FST4W', 'FT4', 'JS8', 'JTMS', 'MFSK4', 'MFSK8', 'MFSK11', 'MFSK16', 'MFSK22', 'MFSK31', 'MFSK32', 'MFSK64', 'MFSK64L', 'MFSK128 MFSK128L', 'Q65'],
|
|
104
|
+
'OLIVIA': ['OLIVIA 4/125', 'OLIVIA 4/250', 'OLIVIA 8/250', 'OLIVIA 8/500', 'OLIVIA 16/500', 'OLIVIA 16/1000', 'OLIVIA 32/1000'],
|
|
105
|
+
'OPERA': ['OPERA-BEACON', 'OPERA-QSO'],
|
|
106
|
+
'PAC': ['PAC2', 'PAC3', 'PAC4'],
|
|
107
|
+
'PAX': ['PAX2']
|
|
108
|
+
'PSK': ['8PSK125', '8PSK125F', '8PSK125FL', '8PSK250', '8PSK250F', '8PSK250FL', '8PSK500', '8PSK500F', '8PSK1000', '8PSK1000F', '8PSK1200F', 'FSK31', 'PSK10', 'PSK31', 'PSK63', 'PSK63F', 'PSK63RC4', 'PSK63RC5', 'PSK63RC10', 'PSK63RC20', 'PSK63RC32', 'PSK125', 'PSK125C12', 'PSK125R', 'PSK125RC10', 'PSK125RC12', 'PSK125RC16', 'PSK125RC4', 'PSK125RC5', 'PSK250', 'PSK250C6', 'PSK250R', 'PSK250RC2', 'PSK250RC3', 'PSK250RC5', 'PSK250RC6', 'PSK250RC7', 'PSK500', 'PSK500C2', 'PSK500C4', 'PSK500R', 'PSK500RC2', 'PSK500RC3', 'PSK500RC4', 'PSK800C2', 'PSK800RC2', 'PSK1000', 'PSK1000C2', 'PSK1000R', 'PSK1000RC2', 'PSKAM10', 'PSKAM31', 'PSKAM50', 'PSKFEC31', 'QPSK31', 'QPSK63', 'QPSK125', 'QPSK250', 'QPSK500', 'SIM31'],
|
|
109
|
+
'QRA64': ['QRA64A', 'QRA64B', 'QRA64C', 'QRA64D', 'QRA64E'],
|
|
110
|
+
'ROS': ['ROS-EME', 'ROS-HF', 'ROS-MF'],
|
|
111
|
+
'RTTY': ['ASCI'],
|
|
112
|
+
'SSB': ['LSB', 'USB'],
|
|
113
|
+
'THOR': ['THOR-M', 'THOR4', 'THOR5', 'THOR8', 'THOR11', 'THOR16', 'THOR22', 'THOR25X4', 'THOR50X1', 'THOR50X2', 'THOR100'],
|
|
114
|
+
'THRB': ['THRBX', 'THRBX1', 'THRBX2', 'THRBX4', 'THROB1', 'THROB2', 'THROB4'],
|
|
115
|
+
'TOR': ['AMTORFEC', 'GTOR', 'NAVTEX', 'SITORB']
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export const ADIF_MODE_FOR_SUBMODE = {}
|
|
119
|
+
Object.keys(ADIF_SUBMODES).forEach(mode => {
|
|
120
|
+
ADIF_SUBMODES[mode].forEach(submode => {
|
|
121
|
+
ADIF_MODE_FOR_SUBMODE[submode] = mode
|
|
122
|
+
})
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
export function adifModeAndSubmodeForMode(mode) {
|
|
126
|
+
if (ADIF_MODE_FOR_SUBMODE[mode]) {
|
|
127
|
+
return [ADIF_MODE_FOR_SUBMODE[mode], mode]
|
|
128
|
+
} else {
|
|
129
|
+
return [mode]
|
|
130
|
+
}
|
|
131
|
+
}
|