Ok guys, I need to convert a JavaScript to XoJo code !
I have to do it somehow.
LET’S GO.
I have this JavaScript (it run by Node.js) that it work very fine (100% tested):
const PORT = 49000;
const HOST = '127.0.0.1';
const FREQ = 1;
const dgram = require('dgram');
const client = dgram.createSocket('udp4');
const createMessage = (dref, idx, freq) => {
const message = Buffer.alloc(413);
message.write('RREF\0');
message.writeInt8(freq, 5);
message.writeInt8(idx, 9);
message.write(dref, 13);
return message;
};
const messages = [
createMessage('sim/flightmodel/position/latitude', 1, FREQ),
createMessage('sim/flightmodel/position/longitude', 1, FREQ),
createMessage('sim/flightmodel/position/mag_psi', 1, FREQ),
];
client.on('listening', () => {
const address = client.address();
});
client.on('message', (message, remote) => {
const label = message.toString('utf8', 0, 4);
if (label == 'RREF') {
let offset = 9;
let messages = [];
while (offset < message.length) {
const value = message.readFloatLE(offset);
messages.push(value);
offset += 8;
}
var fs = require("fs");
var data = new Buffer.from(messages[0] + "@" + messages[1]);
fs.writeFile(process.env.APPDATA + "/MYDIR/OUT.txt", data, (err) => {
});
//console.log("Saved.");
}
});
for (let i = 0; i < messages.length; i++) {
client.send(messages[i], 0, messages[i].length, PORT, HOST, (err, bytes) => { });
}
OK. NOW I CONVERT TO XOJO:
- I have a “UDPSocket” (namedUDPSocket1) in Window1
- I have the event “DataAvaiable” in UDPSocket1
- In a PushButton.Action I have a code
Code in PushButton.Action:
Var mb As New MemoryBlock(413)
mb.StringValue(0,5) = "RREF"
mb.Int8Value(5) = 1
mb.Int8Value(9) = 1
mb.StringValue(13,400) = "sim/flightmodel/position/latitude"
Window1.UDPSocket1.Port = 49000
Window1.UDPSocket1.Connect
If UDPSocket1.IsConnected Then MessageBox("Is Connected")
Window1.UdPSocket1.Write("127.0.0.1", mb.StringValue(0,413) ) //Send the message to XPlane11 from 49000 port
Code in “DataAvaiable” event in UDPSocket1
Dim data As Datagram = Me.Read
Label1.Text = data.Data
But I not received the correct data struct.
I received this:
instead of
0@43.80808639526367
Considerations ?
What could I be wrong?
Regards.