@ham2k/lib-operation-data 0.1.0 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ham2k/lib-operation-data",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.js",
6
6
  "exports": {
package/src/index.js CHANGED
@@ -1 +1,2 @@
1
- export '*' from './lib/bands'
1
+ export * from './lib/bands'
2
+ export * from './lib/modes'
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 >= 1200000 && freq <= 1400000) return '23cm'
53
- else if (freq >= 2300000 && freq <= 2400000) return '13cm'
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
  }
@@ -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
+ }