first working message exchange

message will not saved to database yet
This commit is contained in:
DJ2LS 2021-11-19 18:49:36 +01:00
parent 9dcf98e229
commit a952b49ce6
5 changed files with 102 additions and 13 deletions

View file

@ -122,7 +122,7 @@ function createWindow() {
})
chat.loadFile('src/chat-module.html')
chat.setMenuBarVisibility(false)
// Emitted when the window is closed.

View file

@ -2,8 +2,6 @@ const path = require('path')
const {
ipcRenderer
} = require('electron')
const sock = require('./sock.js');
// https://stackoverflow.com/a/26227660
var appDataFolder = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Application Support' : process.env.HOME + "/.config")
@ -18,13 +16,15 @@ var chatDB = path.join(configFolder, 'chatDB.json')
window.addEventListener('DOMContentLoaded', () => {
// SEND MSG
document.getElementById("sendMessage").addEventListener("click", () => {
dxcallsign = document.getElementById('chatModuledxCall').value
dxcallsign = document.getElementById('chatModuleDxCall').value
message = document.getElementById('chatModuleMessage').value
let Data = {
command: "sendMessage",
dxcallsign : dxcallsign.toUpperCase(),
mode : 10,
frames : 1,
data : 'hallo welt',
data : message,
checksum : '123'
};
ipcRenderer.send('run-tnc-command', Data);
@ -33,9 +33,56 @@ window.addEventListener('DOMContentLoaded', () => {
})
ipcRenderer.on('action-update-rx-buffer', (event, arg) => {
ipcRenderer.on('action-update-rx-msg-buffer', (event, arg) => {
alert(arg)
var data = arg.data
console.log(arg.data)
var tbl = document.getElementById("rx-msg-data");
document.getElementById("rx-msg-data").innerHTML = ''
for (i = 0; i < arg.data.length; i++) {
// now we update the received files list
var row = document.createElement("tr");
//https://stackoverflow.com/q/51421470
//https://stackoverflow.com/a/847196
timestampRaw = arg.data[i]['TIMESTAMP']
var date = new Date(timestampRaw * 1000);
var hours = date.getHours();
var minutes = "0" + date.getMinutes();
var seconds = "0" + date.getSeconds();
var datetime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
var timestamp = document.createElement("td");
var timestampText = document.createElement('span');
timestampText.innerText = datetime
timestamp.appendChild(timestampText);
var dxCall = document.createElement("td");
var dxCallText = document.createElement('span');
dxCallText.innerText = arg.data[i]['DXCALLSIGN']
dxCall.appendChild(dxCallText);
var message = document.createElement("td");
var messageText = document.createElement('span');
var messageString = arg.data[i]['RXDATA'][0]['data']
messageText.innerText = messageString
message.appendChild(messageText);
row.appendChild(timestamp);
row.appendChild(dxCall);
row.appendChild(message);
tbl.appendChild(row);
}
ipcRenderer.send('run-tnc-command', {"command" : "delRxMsgBuffer"});
})

View file

@ -22,7 +22,7 @@ const config = require(configPath);
setInterval(daemon.getDaemonState, 1000)
setInterval(sock.getTncState, 150)
setInterval(sock.getRxBuffer, 1000)
setInterval(sock.getMsgRxBuffer, 1000)
// UPDATE FFT DEMO
/*
updateFFT = function(fft) {
@ -1196,4 +1196,7 @@ ipcRenderer.on('run-tnc-command', (event, arg) => {
if (arg.command == 'stopTransmission') {
sock.stopTransmission()
}
if (arg.command == 'delRxMsgBuffer') {
sock.delRxMsgBuffer()
}
});

View file

@ -127,7 +127,7 @@ client.on('data', function(data) {
// set length of RX Buffer to global variable
rxBufferLengthTnc = data['RX_BUFFER_LENGTH']
rxMsgBufferLengthTnc = data['RX_MSG_BUFFER_LENGTH']
let Data = {
toe: Date.now() - data['TIMESTAMP'], // time of execution
ptt_state: data['PTT_STATE'],
@ -166,7 +166,7 @@ client.on('data', function(data) {
let Data = {
data: data['DATA-ARRAY'],
};
console.log(Data)
ipcRenderer.send('request-update-rx-buffer', Data);
}
@ -176,7 +176,7 @@ client.on('data', function(data) {
let Data = {
data: data['DATA-ARRAY'],
};
//console.log(Data)
ipcRenderer.send('request-update-rx-msg-buffer', Data);
}
// check if EOF ...
@ -271,3 +271,15 @@ exports.getMsgRxBuffer = function() {
writeTncCommand(command)
}
}
// DELETE RX MSG BUffer
exports.delRxMsgBuffer = function() {
command = '{"type" : "SET", "command" : "DEL_RX_MSG_BUFFER", "timestamp" : ' + Date.now() + '}'
// call command only if new data arrived
if (rxMsgBufferLengthGui != rxMsgBufferLengthTnc) {
writeTncCommand(command)
}
}

View file

@ -18,9 +18,36 @@
<script src="../node_modules/chart.js/dist/chart.min.js"></script>
<script src="../node_modules/chartjs-plugin-annotation/dist/chartjs-plugin-annotation.min.js"></script>
<input id="chatModuledxCall"></input>
<div class="input-group m-1">
<input class="form-control" maxlength="6" style="max-width: 6rem; text-transform:uppercase" id="chatModuleDxCall" placeholder="DX CALL"></input>
<input class="form-control" id="chatModuleMessage" placeholder="Message"></input>
<button class="btn btn-sm btn-primary me-2" id="sendMessage" type="button">SEND MSG</button>
</div>
<table class="table">
<thead>
<tr>
<th scope="col">Time</th>
<th scope="col">DXCall</th>
<!--<th scope="col">DXGrid</th>
<th scope="col">Distance</th>-->
<th scope="col">Message</th>
<!--<th scope="col">SNR</th>-->
</tr>
</thead>
<tbody id="rx-msg-data">
<!--
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
-->
</tbody>
</table>
</body>
</html>