new receiver code to go with basesttion updates
parent
d1f2d52be5
commit
82e0ce3f9f
|
|
@ -0,0 +1,75 @@
|
|||
const dgram = require("dgram");
|
||||
const cellularChunking = require("./cellularChunking");
|
||||
|
||||
let message_id = 0
|
||||
|
||||
const socket = dgram.createSocket("udp4");
|
||||
|
||||
function handleMessage(message, rinfo) {
|
||||
try {
|
||||
str_msg = message.toString('utf8')
|
||||
console.log('str_msg: ', str_msg)
|
||||
console.log("parsed message: ", JSON.parse(str_msg))
|
||||
} catch (e) {
|
||||
console.log('some error parsing message: ', e)
|
||||
}
|
||||
try {
|
||||
str_msg = message.toString('utf8')
|
||||
msg = JSON.parse(JSON.parse(str_msg)) // WHAT THE HELL?
|
||||
message_id = message_id + 1
|
||||
theMsg = {
|
||||
'data': {
|
||||
'mi': 360,
|
||||
'mo': 0,
|
||||
'wl': 4
|
||||
},
|
||||
'target': msg['source'],
|
||||
'msg_type': 'settings'
|
||||
}
|
||||
console.log('to reply: ', theMsg)
|
||||
const theRespChunks = cellularChunking.chunk_message(JSON.stringify(theMsg), message_id);
|
||||
thisSend(theRespChunks, socket, rinfo)
|
||||
} catch (e) {
|
||||
console.log('some error sending reply message: ', e)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function thisSend(theChunks, socket, rinfo, thisFilePath, fileList) {
|
||||
console.log("Send response")
|
||||
socket.send(theChunks[0], rinfo.port, rinfo.address, (err) => {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
} else {
|
||||
console.log("send chunk");
|
||||
if (theChunks.length > 1) {
|
||||
setTimeout(
|
||||
thisSend,
|
||||
1000,
|
||||
theChunks.slice(1),
|
||||
socket,
|
||||
rinfo,
|
||||
thisFilePath,
|
||||
fileList,
|
||||
);
|
||||
}/* else if (fileList.length > 1) {
|
||||
sendFile(socket, rinfo, thisFilePath, fileList.slice(1));
|
||||
}*/
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
socket.on("listening", () => {
|
||||
let addr = socket.address();
|
||||
console.log(`Listening for UDP packets at ${addr.address}:${addr.port}`);
|
||||
});
|
||||
|
||||
socket.on("error", (err) => {
|
||||
console.error(`UDP error: ${err.stack}`);
|
||||
});
|
||||
|
||||
socket.on("message", function(msg, rinfo) {
|
||||
console.log("string message: \n", Buffer.from(msg, 'hex').toString('utf8').trim())
|
||||
cellularChunking.receive_chunk(Buffer.from(msg, 'hex').toString('utf8').trim(), handleMessage, rinfo);
|
||||
});
|
||||
socket.bind(52321);
|
||||
Loading…
Reference in New Issue