1010var cfg = { } ;
1111
1212const { ipcRenderer} = require ( 'electron' )
13+ const net = require ( 'net' ) ;
1314
1415const bt_save = select ( "#save" ) ;
1516const bt_quit = select ( "#quit" ) ;
@@ -28,8 +29,23 @@ $(document).ready(function() {
2829 $ ( "#flrig_host" ) . val ( cfg . flrig_host ) ;
2930 $ ( "#flrig_port" ) . val ( cfg . flrig_port ) ;
3031 $ ( "#flrig_ena" ) . prop ( "checked" , cfg . flrig_ena ) ;
32+ $ ( "#hamlib_ena" ) . prop ( "checked" , cfg . hamlib_ena ) ;
3133 $ ( "#wavelog_pmode" ) . prop ( "checked" , cfg . wavelog_pmode ) ;
3234
35+ $ ( "#flrig_ena" ) . change ( function ( ) {
36+ if ( $ ( this ) . prop ( "checked" ) ) {
37+ $ ( "#hamlib_ena" ) . prop ( "checked" , false ) ;
38+ $ ( "#flrig_port" ) . val ( '12345' ) ;
39+ }
40+ } ) ;
41+
42+ $ ( "#hamlib_ena" ) . change ( function ( ) {
43+ if ( $ ( this ) . prop ( "checked" ) ) {
44+ $ ( "#flrig_ena" ) . prop ( "checked" , false ) ;
45+ $ ( "#flrig_port" ) . val ( '4532' ) ;
46+ }
47+ } ) ;
48+
3349 bt_save . addEventListener ( 'click' , ( ) => {
3450 cfg . wavelog_url = $ ( "#wavelog_url" ) . val ( ) . trim ( ) ;
3551 cfg . wavelog_key = $ ( "#wavelog_key" ) . val ( ) . trim ( ) ;
@@ -38,6 +54,7 @@ $(document).ready(function() {
3854 cfg . flrig_host = $ ( "#flrig_host" ) . val ( ) . trim ( ) ;
3955 cfg . flrig_port = $ ( "#flrig_port" ) . val ( ) . trim ( ) ;
4056 cfg . flrig_ena = $ ( "#flrig_ena" ) . is ( ':checked' ) ;
57+ cfg . hamlib_ena = $ ( "#hamlib_ena" ) . is ( ':checked' ) ;
4158 cfg . wavelog_pmode = $ ( "#wavelog_pmode" ) . is ( ':checked' ) ;
4259 x = ipcRenderer . sendSync ( "set_config" , cfg ) ;
4360 console . log ( x ) ;
@@ -88,6 +105,10 @@ $(document).ready(function() {
88105 getsettrx ( ) ;
89106 } ) ;
90107
108+ $ ( "#hamlib_ena" ) . on ( "click" , function ( ) {
109+ getsettrx ( ) ;
110+ } ) ;
111+
91112 setInterval ( updateUtcTime , 1000 ) ;
92113 window . onload = updateUtcTime ;
93114
@@ -151,26 +172,53 @@ async function get_trx() {
151172}
152173
153174async function getInfo ( which ) {
154- const response = await fetch (
155- "http://" + $ ( "#flrig_host" ) . val ( ) + ':' + $ ( "#flrig_port" ) . val ( ) , {
156- method : 'POST' ,
157- // mode: 'no-cors',
158- headers : {
159- 'Accept' : 'application/json, application/xml, text/plain, text/html, *.*' ,
160- 'Content-Type' : 'application/x-www-form-urlencoded; charset=utf-8'
161- } ,
162- body : '<?xml version="1.0"?><methodCall><methodName>' + which + '</methodName></methodCall>'
163- }
164- ) ;
165- const data = await response . text ( ) ;
166- var parser = new DOMParser ( ) ;
167- var xmlDoc = parser . parseFromString ( data , "text/xml" ) ;
168- var qrgplain = xmlDoc . getElementsByTagName ( "value" ) [ 0 ] . textContent ;
169- return qrgplain ;
175+ if ( cfg . flrig_ena ) {
176+ const response = await fetch (
177+ "http://" + $ ( "#flrig_host" ) . val ( ) + ':' + $ ( "#flrig_port" ) . val ( ) , {
178+ method : 'POST' ,
179+ // mode: 'no-cors',
180+ headers : {
181+ 'Accept' : 'application/json, application/xml, text/plain, text/html, *.*' ,
182+ 'Content-Type' : 'application/x-www-form-urlencoded; charset=utf-8'
183+ } ,
184+ body : '<?xml version="1.0"?><methodCall><methodName>' + which + '</methodName></methodCall>'
185+ }
186+ ) ;
187+ const data = await response . text ( ) ;
188+ var parser = new DOMParser ( ) ;
189+ var xmlDoc = parser . parseFromString ( data , "text/xml" ) ;
190+ var qrgplain = xmlDoc . getElementsByTagName ( "value" ) [ 0 ] . textContent ;
191+ return qrgplain ;
192+ }
193+ if ( cfg . hamlib_ena ) {
194+ var commands = { "rig.get_vfo" : "f" , "rig.get_mode" : "m" , "rig.get_ptt" : 0 , "rig.get_power" : 0 , "rig.get_split" : 0 , "rig.get_vfoB" : 0 , "rig.get_modeB" : 0 } ;
195+
196+ const host = $ ( "#flrig_host" ) . val ( ) ;
197+ const port = parseInt ( $ ( "#flrig_port" ) . val ( ) , 10 ) ;
198+
199+ return new Promise ( ( resolve , reject ) => {
200+ if ( commands [ which ] ) {
201+ const client = net . createConnection ( { host, port } , ( ) => client . write ( commands [ which ] ) ) ;
202+ client . on ( 'data' , ( data ) => {
203+ data = data . toString ( )
204+ if ( data . startsWith ( "RPRT" ) ) {
205+ reject ( ) ;
206+ } else {
207+ resolve ( data . split ( '\n' ) [ 0 ] ) ;
208+ }
209+ client . end ( ) ;
210+ } ) ;
211+ client . on ( 'error' , ( err ) => reject ( ) ) ;
212+ client . on ( "close" , ( ) => { } ) ;
213+ } else {
214+ resolve ( undefined ) ;
215+ }
216+ } ) ;
217+ }
170218}
171219
172220async function getsettrx ( ) {
173- if ( $ ( "#flrig_ena" ) . is ( ':checked' ) ) {
221+ if ( $ ( "#flrig_ena" ) . is ( ':checked' ) || $ ( "#hamlib_ena" ) . is ( ':checked' ) ) {
174222 x = await get_trx ( ) ;
175223 setTimeout ( ( ) => {
176224 getsettrx ( ) ;
0 commit comments