Skip to content

Commit

Permalink
Auto-Update shared Files
Browse files Browse the repository at this point in the history
damage null->1.4.3 (aircraft/f-14b/Nasal/damage.nas)
damage null->1.4.3 (aircraft/F-15/Nasal/damage.nas)
armament-notification null->1.1.0 (aircraft/f-14b/Nasal/ArmamentNotification.nas)
armament-notification null->1.1.0 (aircraft/F-15/Nasal/ArmamentNotification.nas)
rcs-mand null->1.1.3 (aircraft/f-14b/Nasal/Radar/rcs_mand.nas)
station-manager null->1.1.0 (aircraft/f-14b/Nasal/station-manager.nas)
station-manager null->1.1.0 (aircraft/F-15/Nasal/station-manager.nas)
radar-system null->2.0.3
datalink null->1.1.0 (aircraft/f-14b/Nasal/datalink.nas)
datalink null->1.1.0 (aircraft/F-15/Nasal/datalink.nas)
vector null->2.0.3 (aircraft/f-14b/Nasal/vector.nas)
vector null->2.0.3 (aircraft/F-15/Nasal/vector.nas)
geo-bridged-transmitter null->1.0.1 (aircraft/f-14b/Nasal/GeoBridgedTransmitter.nas)
geo-bridged-transmitter null->1.0.1 (aircraft/F-15/Nasal/GeoBridgedTransmitter.nas)
hud-math null->1.0.0
iff null->1.1.0 (aircraft/f-14b/Nasal/iff.nas)
iff null->1.1.0 (aircraft/F-15/Nasal/iff.nas)
radar-system-database null->1.1.9
missile-code null->1.1.2 (aircraft/f-14b/Nasal/fox2.nas)
missile-code null->1.1.2 (aircraft/F-15/Nasal/fox2.nas)
  • Loading branch information
NikolaiVChr authored and github-actions[bot] committed Nov 29, 2023
1 parent 9d693f1 commit a4638df
Show file tree
Hide file tree
Showing 21 changed files with 2,476 additions and 1,257 deletions.
44 changes: 43 additions & 1 deletion aircraft/F-15/Nasal/ArmamentNotification.nas
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,48 @@ var ArmamentInFlightNotification =
new_class.Flags = 0; # 8 bits for whatever.
new_class.UniqueIdentity = _unique;

new_class.isValid = func {
var valid = "";
var limitMin = -124;
var limitMax = 123;
# 1 byte integer
if (int(me.Kind) > limitMax or int(me.Kind) < limitMin) {
valid ~= "|ArmamentInFlight.Kind is "~me.Kind;
}
# 1 byte integer
if (int(me.SecondaryKind) > limitMax or int(me.SecondaryKind) < limitMin) {
valid ~= "|ArmamentInFlight.SecondaryKind is "~me.SecondaryKind;
}
# 1 byte float
if (int((me.u_fps-3348)*0.03703) > limitMax or int((me.u_fps-3348)*0.03703) < limitMin) {
valid ~= "|ArmamentInFlight.u_fps is "~me.u_fps;
}
# 1 byte float
if (int(me.Pitch*1.38) > limitMax or int(me.Pitch*1.38) < limitMin) {
valid ~= "|ArmamentInFlight.Pitch is "~me.Pitch;
}
# 1 byte float
if (int(geo.normdeg180(me.Heading)/1.54) > limitMax or int(geo.normdeg180(me.Heading)/1.54) < limitMin) {
valid ~= "|ArmamentInFlight.Heading is "~me.Heading;
}
# 1 byte integer
if (int(me.Flags) > limitMax or int(me.Flags) < limitMin) {
valid ~= "|ArmamentInFlight.Flags is "~me.Flags;
}
# 1 byte integer
if (int(me.UniqueIdentity) > limitMax or int(me.UniqueIdentity) < limitMin) {
valid ~= "|ArmamentInFlight.UniqueIdentity is "~me.UniqueIdentity;
}
# 7 byte string
if (size(me.RemoteCallsign) > 7) {
valid ~= "|ArmamentInFlight.RemoteCallsign is "~me.RemoteCallsign;
}
if (valid != "") {
print("\nEMESARY ENCODING WILL FAIL:");
print(" "~valid);
}
};

new_class.GetBridgeMessageNotificationTypeKey = func {
return new_class.NotificationType~"."~new_class.Ident~"."~new_class.UniqueIndex;
};
Expand Down Expand Up @@ -257,4 +299,4 @@ var ObjectInFlightNotification =
};
return new_class;
},
};
};
38 changes: 34 additions & 4 deletions aircraft/F-15/Nasal/GeoBridgedTransmitter.nas
Original file line number Diff line number Diff line change
Expand Up @@ -27,27 +27,57 @@
#i.e. change to [notifications.ArmamentInFlightNotification.new(nil), notifications.ArmamentNotification.new(nil)];
var geoRoutedNotifications = [notifications.ArmamentInFlightNotification.new()];
var geoBridgedTransmitter = emesary.Transmitter.new("geoOutgoingBridge");
var geooutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("f15mp.geo",geoRoutedNotifications, 18, "", geoBridgedTransmitter);
var geooutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("mp.geo",geoRoutedNotifications, 18, "", geoBridgedTransmitter);

# bridge should be tuned to be around 90% of the packet size full.
geooutgoingBridge.TransmitFrequencySeconds = 0.75;
geooutgoingBridge.MPStringMaxLen = 150;
geooutgoingBridge.MPStringMaxLen = 175; # each is 34 bytes
emesary_mp_bridge.IncomingMPBridge.startMPBridge(geoRoutedNotifications, 18, emesary.GlobalTransmitter);


#----- bridge hit (armament) notifications
var hitRoutedNotifications = [notifications.ArmamentNotification.new(),notifications.StaticNotification.new()];
var hitBridgedTransmitter = emesary.Transmitter.new("armamentNotificationBridge");
var hitoutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("f15mp.hit",hitRoutedNotifications, 19, "", hitBridgedTransmitter);
var hitoutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("mp.hit",hitRoutedNotifications, 19, "", hitBridgedTransmitter);
hitoutgoingBridge.TransmitFrequencySeconds = 1.5;
hitoutgoingBridge.MPStringMaxLen = 120;
emesary_mp_bridge.IncomingMPBridge.startMPBridge(hitRoutedNotifications, 19, emesary.GlobalTransmitter);

#----- bridge object notifications
var objectRoutedNotifications = [notifications.ObjectInFlightNotification.new()];
var objectBridgedTransmitter = emesary.Transmitter.new("objectNotificationBridge");
var objectoutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("f15mp.object",objectRoutedNotifications, 17, "", objectBridgedTransmitter);
var objectoutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("mp.object",objectRoutedNotifications, 17, "", objectBridgedTransmitter);
objectoutgoingBridge.TransmitFrequencySeconds = 0.2;
objectoutgoingBridge.MessageLifeTime = 1;
objectoutgoingBridge.MPStringMaxLen = 150;
emesary_mp_bridge.IncomingMPBridge.startMPBridge(objectRoutedNotifications, 17, emesary.GlobalTransmitter);

#
# debug all messages - this can be removed when testing isn't required.
var debugRecipient = emesary.Recipient.new("Debug");
debugRecipient.Receive = func(notification)
{
if (notification.NotificationType != "FrameNotification") {
print ("recv(0): type=",notification.NotificationType, " fromIncoming=",notification.FromIncomingBridge);

if (notification.NotificationType == "ArmamentInFlightNotification") {
print("recv(1): ",notification.NotificationType, " ", notification.Ident);
debug.dump(notification);

} else if (notification.NotificationType == "ArmamentNotification") {
if (notification.FromIncomingBridge) {
print("recv(2): ",notification.NotificationType, " ", notification.Ident,
" Kind=",notification.Kind,
" SecondaryKind=",notification.SecondaryKind,
" RelativeAltitude=",notification.RelativeAltitude,
" Distance=",notification.Distance,
" Bearing=",notification.Bearing,
" RemoteCallsign=",notification.RemoteCallsign);
debug.dump(notification);
}
}
}
return emesary.Transmitter.ReceiptStatus_NotProcessed; # we're not processing it, just looking
}
# uncomment next line to activate debug recipient.
#emesary.GlobalTransmitter.Register(debugRecipient);
Loading

0 comments on commit a4638df

Please sign in to comment.