added distance to network message

This commit is contained in:
2023-03-28 00:54:18 +02:00
parent 409c4fb411
commit f7c320c123
5 changed files with 25 additions and 20 deletions

View File

@@ -1,5 +1,6 @@
package kernel.peripherals;
import kernel.log.Log;
import kernel.net.Package;
import kernel.net.INetworkInterface;
@@ -7,9 +8,9 @@ using tink.CoreApi;
class Modem implements INetworkInterface implements IPeripheral {
public final addr:String;
public var onMessage(default, null):Signal<Package>;
public var onMessage(default, null):Signal<{pack:Package,dist:Null<Float>}>;
private final onMessageTrigger:SignalTrigger<Package> = Signal.trigger();
private final onMessageTrigger:SignalTrigger<{pack:Package,dist:Null<Float>}> = Signal.trigger();
private final native:cc.periphs.Modem.Modem;
@:allow(kernel.peripherals)
@@ -19,17 +20,21 @@ class Modem implements INetworkInterface implements IPeripheral {
this.addr = addr;
KernelEvents.instance.onModemMessage.handle(params ->{
if (params.addr == this.addr){
var pack:Package = {
fromID: params.message.fromID,
toID: params.message.toID,
msgID: params.message.msgID,
type: params.message.type,
data: params.message.data,
ttl: params.message.ttl,
};
try{
if (params.addr == this.addr){
var pack:Package = {
fromID: params.message.fromID,
toID: params.message.toID,
msgID: params.message.msgID,
type: params.message.type,
data: params.message.data,
ttl: params.message.ttl,
};
this.onMessageTrigger.trigger(pack);
this.onMessageTrigger.trigger({pack: pack, dist: params.distance});
}
}catch(e:Dynamic){
Log.error("Error while parsing modem message");
}
});
}