Skip to content

Commit 5d330a3

Browse files
committed
Merge branch 'dev'
2 parents a23665c + 5008411 commit 5d330a3

File tree

6 files changed

+175
-29
lines changed

6 files changed

+175
-29
lines changed

.github/workflows/electron.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# name of your github action
2+
name: BuildnPub_WLGate
3+
# this will help you specify where to run
4+
on:
5+
push:
6+
branches:
7+
# this will run on the electron branch
8+
- master
9+
workflow_dispatch:
10+
11+
jobs:
12+
build_on_linux:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v2
16+
- uses: actions/setup-node@master
17+
with:
18+
node-version: 21
19+
- name: install dependencies
20+
run: npm install
21+
- name: build
22+
run: npm run make -- --platform linux --arch=x64
23+
- name: publish
24+
env:
25+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26+
run: npm run publish
27+
28+
build_on_mac:
29+
runs-on: macos-latest
30+
steps:
31+
- uses: actions/checkout@v2
32+
- uses: actions/setup-node@master
33+
with:
34+
node-version: 21
35+
- name: setup python
36+
uses: actions/setup-python@v5
37+
with:
38+
python-version: 3.12
39+
- name: setup appdmg
40+
run: |
41+
python3 -m pip install setuptools
42+
npm install -g appdmg@0.6.6
43+
- name: install dependencies
44+
run: npm install
45+
- name: build
46+
run: npm run make --arch=universal
47+
- name: publish
48+
env:
49+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50+
run: npm run publish
51+
52+
53+
build_on_win:
54+
runs-on: windows-latest
55+
steps:
56+
- uses: actions/checkout@v2
57+
- uses: actions/setup-node@master
58+
with:
59+
node-version: 21
60+
- name: install dependencies
61+
run: npm install
62+
- name: build
63+
run: npm run make
64+
- name: publish
65+
env:
66+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
67+
run: npm run publish
-82.8 MB
Binary file not shown.

bin/WLGate_macOs-1.0.13.zip

-82.2 MB
Binary file not shown.

forge.config.js

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,43 @@
11
module.exports = {
2-
packagerConfig: {
3-
asar: true,
4-
},
5-
rebuildConfig: {},
6-
makers: [
7-
{
8-
name: '@electron-forge/maker-squirrel',
9-
config: { loadingGif: "loading.gif", name: "SW2CL_DJ7NT" },
10-
},
11-
{
12-
name: '@electron-forge/maker-zip',
13-
platforms: ['darwin'],
14-
},
15-
{
16-
name: '@electron-forge/maker-deb',
17-
config: {},
18-
},
19-
],
20-
plugins: [
21-
{
22-
name: '@electron-forge/plugin-auto-unpack-natives',
23-
config: {},
24-
},
25-
],
2+
packagerConfig: {
3+
// set config executableName
4+
executableName: "wlgate",
5+
icon: './favicon.ico',
6+
asar: true,
7+
},
8+
publishers: [
9+
{
10+
name: '@electron-forge/publisher-github',
11+
config: {
12+
repository: {
13+
owner: 'wavelog',
14+
name: 'WaveLogGate'
15+
},
16+
prerelease: false
17+
}
18+
}
19+
],
20+
rebuildConfig: {},
21+
makers: [
22+
{
23+
name: '@electron-forge/maker-squirrel',
24+
config: { icon: "./favicon.ico", maintainer: 'DJ7NT', loadingGif: "loading.gif", name: "WLGate_by_DJ7NT" },
25+
},
26+
{
27+
name: '@electron-forge/maker-dmg',
28+
config: { format: 'ULFO' },
29+
platforms: ['darwin'],
30+
},
31+
{
32+
name: '@electron-forge/maker-deb',
33+
config: { "bin":"wlgate" },
34+
arch: ['x86']
35+
},
36+
],
37+
plugins: [
38+
{
39+
name: '@electron-forge/plugin-auto-unpack-natives',
40+
config: {},
41+
},
42+
],
2643
};

main.js

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const {app, BrowserWindow, globalShortcut } = require('electron/main');
22
const path = require('node:path');
33
const {ipcMain} = require('electron')
44
const http = require('http');
5+
const xml = require("xml2js");
56

67
let s_mainWindow;
78
let msgbacklog=[];
@@ -139,6 +140,13 @@ function parseADIF(adifdata) {
139140
return adiReader.toObject();
140141
}
141142

143+
function writeADIF(adifObject) {
144+
const { ADIF } = require("tcadif");
145+
var adiWriter = new ADIF(adifObject);
146+
// console.log(adiWriter);
147+
return adiWriter;
148+
}
149+
142150
function send2wavelog(o_cfg,adif, dryrun = false) {
143151
let clpayload={};
144152
clpayload.key=o_cfg.wavelog_key.trim();
@@ -213,12 +221,49 @@ WServer.on('error', function(err) {
213221
});
214222

215223
WServer.on('message',async function(msg,info){
216-
adobject=parseADIF(msg.toString());
224+
parsedXML={};
225+
adobject={};
226+
if (msg.toString().includes("xml")) { // detect if incoming String is XML
227+
try {
228+
xml.parseString(msg.toString(), function (err,dat) {
229+
parsedXML=dat;
230+
});
231+
let qsodatum = new Date(Date.parse(parsedXML.contactinfo.timestamp[0]));
232+
qsodat=fmt(qsodatum);
233+
if (parsedXML.contactinfo.mode[0] == 'USB' || parsedXML.contactinfo.mode[0] == 'LSB') { // TCADIF lib is not capable of using USB/LSB
234+
parsedXML.contactinfo.mode[0]='SSB';
235+
}
236+
adobject = { qsos: [
237+
{
238+
CALL: parsedXML.contactinfo.call[0],
239+
MODE: parsedXML.contactinfo.mode[0],
240+
QSO_DATE_OFF: qsodat.d,
241+
QSO_DATE: qsodat.d,
242+
TIME_OFF: qsodat.t,
243+
TIME_ON: qsodat.t,
244+
RST_RCVD: parsedXML.contactinfo.rcv[0],
245+
RST_SENT: parsedXML.contactinfo.snt[0],
246+
FREQ: ((1*parseInt(parsedXML.contactinfo.txfreq[0]))/100000).toString(),
247+
FREQ_RX: ((1*parseInt(parsedXML.contactinfo.rxfreq[0]))/100000).toString(),
248+
OPERATOR: parsedXML.contactinfo.operator[0],
249+
COMMENT: parsedXML.contactinfo.comment[0],
250+
POWER: parsedXML.contactinfo.power[0],
251+
STX: parsedXML.contactinfo.sntnr[0],
252+
RTX: parsedXML.contactinfo.rcvnr[0],
253+
MYCALL: parsedXML.contactinfo.mycall[0],
254+
GRIDSQUARE: parsedXML.contactinfo.gridsquare[0],
255+
STATION_CALLSIGN: parsedXML.contactinfo.mycall[0]
256+
} ]};
257+
} catch (e) {}
258+
} else {
259+
adobject=parseADIF(msg.toString());
260+
}
217261
var plainret='';
218262
if (adobject.qsos.length>0) {
219263
let x={};
220264
try {
221-
plainret=await send2wavelog(defaultcfg,msg.toString());
265+
outadif=writeADIF(adobject);
266+
plainret=await send2wavelog(defaultcfg,outadif.stringify());
222267
x.state=plainret.statusCode;
223268
x.payload = JSON.parse(plainret.resString);
224269
} catch(e) {
@@ -340,4 +385,17 @@ function httpPost(url,options,postData) {
340385
});
341386
}
342387

388+
function fmt(spotDate) {
389+
retstr={};
390+
d=spotDate.getUTCDate().toString();
391+
y=spotDate.getUTCFullYear().toString();
392+
m=(1+spotDate.getUTCMonth()).toString();
393+
h=spotDate.getUTCHours().toString();
394+
i=spotDate.getUTCMinutes().toString();
395+
s=spotDate.getUTCSeconds().toString();
396+
retstr.d=y.padStart(4,'0')+m.padStart(2,'0')+d.padStart(2,'0');
397+
retstr.t=h.padStart(2,'0')+i.padStart(2,'0')+s.padStart(2,'0');
398+
return retstr;
399+
}
400+
343401
startserver();

package.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
11
{
2-
"name": "WaveLog-Gate by DJ7NT",
2+
"name": "WaveLog_Gate_by_DJ7NT",
33
"productName": "WLGate by DJ7NT",
44
"description": "Gateway for connecting WSJT-* and FLRig to Wavelog",
55
"keywords": [],
66
"main": "./main.js",
7-
"version": "1.0.13",
7+
"version": "1.0.15",
88
"author": "DJ7NT",
99
"scripts": {
1010
"start": "electron-forge start",
1111
"rebuild-xml": "electron-rebuild -f -w xml2js",
12+
"publish": "electron-forge publish",
1213
"package": "electron-forge package",
1314
"make": "electron-forge make"
1415
},
1516
"dependencies": {
17+
"@electron-forge/maker-dmg": "^7.4.0",
1618
"bootstrap": "^4.1.3",
1719
"dgram": "^1.0.1",
1820
"electron-json-config": "^2.0.0-beta",
1921
"electron-json-storage": "^4.6.0",
2022
"electron-squirrel-startup": "^1.0.0",
2123
"jquery": "^3.6.0",
2224
"popper.js": "^1.14.4",
23-
"tcadif": "^2.1.0"
25+
"tcadif": "^2.2.0",
26+
"xml2js": "^0.6.2"
2427
},
2528
"devDependencies": {
2629
"@electron-forge/cli": "^7.2.0",
@@ -29,6 +32,7 @@
2932
"@electron-forge/maker-squirrel": "^7.2.0",
3033
"@electron-forge/maker-zip": "^7.2.0",
3134
"@electron-forge/plugin-auto-unpack-natives": "^7.2.0",
35+
"@electron-forge/publisher-github": "^7.4.0",
3236
"electron": "16.0.2",
3337
"electron-rebuild": "^3.2.5"
3438
}

0 commit comments

Comments
 (0)