X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FScripting%2FNasalSys.cxx;h=936c515378a8683961f101ce8e09ad2144fc66c0;hb=3eff9a14c992a3ae29ce021040bf6a5e560a3ff1;hp=3d5bddb538b6b8a728cf4b134bdb851c286cab9c;hpb=5228053f7f39eba5ecd0de57ddeafd96097205f8;p=flightgear.git diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx index 3d5bddb53..936c51537 100644 --- a/src/Scripting/NasalSys.cxx +++ b/src/Scripting/NasalSys.cxx @@ -33,6 +33,7 @@ #include #include #include +#include #include "NasalSys.hxx" @@ -555,6 +556,27 @@ static naRef f_geodinfo(naContext c, naRef me, int argc, naRef* args) #undef HASHSET } +// Expose a radio transmission interface to Nasal. +static naRef f_radioTransmission(naContext c, naRef me, int argc, naRef* args) +{ + double lat, lon, elev, heading, pitch; + if(argc != 5) naRuntimeError(c, "radioTransmission() expects 5 arguments"); + for(int i=0; ireceiveBeacon(geod, heading, pitch); + delete radio; + return naNum(signal); +} + class AirportInfoFilter : public FGAirport::AirportFilter { @@ -768,6 +790,7 @@ static naRef f_navinfo(naContext c, naRef me, int argc, naRef* args) const_cast(nav->ident().c_str()), nav->ident().length())); HASHSET("name", 4, naStr_fromdata(naNewString(c), const_cast(nav->name().c_str()), nav->name().length())); + HASHSET("frequency", 9, naNum(nav->get_freq())); HASHSET("lat", 3, naNum(nav->get_lat())); HASHSET("lon", 3, naNum(nav->get_lon())); HASHSET("elevation", 9, naNum(nav->get_elev_ft() * SG_FEET_TO_METER)); @@ -804,6 +827,7 @@ static struct { const char* name; naCFunction func; } funcs[] = { { "geodinfo", f_geodinfo }, { "airportinfo", f_airportinfo }, { "navinfo", f_navinfo }, + { "radioTransmission", f_radioTransmission }, { 0, 0 } };