added tetracontrol support
parent
2814584831
commit
f6f376f268
@ -0,0 +1,58 @@
|
||||
const Connector = require("./Connector")
|
||||
const config = require('../../config.json')
|
||||
const md5 = require('md5')
|
||||
const axios = require('axios')
|
||||
const WebSocket = require('ws')
|
||||
|
||||
class TetraControlConnector extends Connector {
|
||||
constructor (amqpConnMngr) {
|
||||
super(amqpConnMngr)
|
||||
this.name = "tetracontrol"
|
||||
this.duplexCapable = false
|
||||
}
|
||||
async transmitMessage(msg, params) {
|
||||
const UUID = this.name+':'+md5(JSON.stringify([this.name,...params]))
|
||||
if (params.length < 1) return false
|
||||
const target = params[0]
|
||||
//if (target.split('#').length !== 2) throw 'No valid DAPNET Parameter <transmitterGroup#callSign>'
|
||||
//const transmitterGroup = target.split('#')[ 0 ], callsign = target.split('#')[ 1 ]
|
||||
/*const dapnetRequest = {
|
||||
text: msg.payload,
|
||||
callSignNames: [ callsign ],
|
||||
transmitterGroupNames: [ transmitterGroup ]
|
||||
}*/
|
||||
|
||||
const token = Buffer.from(`${ config.connectors.tetracontrol.username }:${ config.connectors.tetracontrol.password }`, 'utf8').toString('base64');
|
||||
const headers = {
|
||||
Authorization: `Basic ${token}`,
|
||||
}
|
||||
const ws = new WebSocket(`ws://${ config.connectors.tetracontrol.endpoint }/live.json?MaxAlter=3600`, { headers });
|
||||
return new Promise((res, rej) => {
|
||||
ws.on('open', function open() {
|
||||
console.log('WebSocket connected');
|
||||
const jsonData = {
|
||||
text: msg.payload,
|
||||
destSSI: target + '',
|
||||
ProtocolID: 9,
|
||||
radioID: 1,
|
||||
type: "sds"
|
||||
}
|
||||
ws.send(JSON.stringify(jsonData))
|
||||
ws.close()
|
||||
})
|
||||
ws.on('close',res)
|
||||
ws.on('error',rej)
|
||||
|
||||
})
|
||||
.then(() => {
|
||||
this.connectorRegistry.reportState(msg, UUID, 'routed')
|
||||
return true
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err )
|
||||
this.connectorRegistry.reportFail(msg, UUID)
|
||||
return false
|
||||
})
|
||||
}
|
||||
}
|
||||
module.exports = TetraControlConnector
|
Loading…
Reference in New Issue