init
This commit is contained in:
94
processors/ripr_agents/aiai/behavior_default-flight.txt
Normal file
94
processors/ripr_agents/aiai/behavior_default-flight.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
# ****************************************************************************
|
||||
# CUI
|
||||
#
|
||||
# The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
|
||||
#
|
||||
# The use, dissemination or disclosure of data in this file is subject to
|
||||
# limitation or restriction. See accompanying README and LICENSE for details.
|
||||
# ****************************************************************************
|
||||
|
||||
|
||||
|
||||
behavior default-flight
|
||||
|
||||
script_debug_writes off
|
||||
|
||||
script_variables
|
||||
bool mDrawRoute = false;
|
||||
WsfDraw mDraw = WsfDraw();
|
||||
bool mResumeDefaultRoute = true;
|
||||
double cDEFAULT_SPEED = 450.0 * MATH.MPS_PER_NMPH();
|
||||
double cDEFAULT_ACCEL = 7.5 * Earth.ACCEL_OF_GRAVITY(); // 7.5 G (m/s^2)
|
||||
double cLARGE_UPDATE_INTERVAL = 3.0; // update once every 3 seconds
|
||||
end_script_variables
|
||||
|
||||
script void DrawRoute()
|
||||
WsfRoute currRoute = PLATFORM.Route();
|
||||
if (currRoute.IsValid())
|
||||
{
|
||||
//PLATFORM.Comment("draw current route");
|
||||
mDraw.SetLayer("behavior default=flight");
|
||||
mDraw.Erase(PLATFORM.Name());
|
||||
mDraw.SetId(PLATFORM.Name());
|
||||
mDraw.SetColor(0,1,1);
|
||||
mDraw.SetLineSize(2);
|
||||
mDraw.SetLineStyle("dash_dot2");
|
||||
mDraw.BeginPolyline();
|
||||
for (int i=0; i<currRoute.Size(); i=i+1)
|
||||
{
|
||||
mDraw.Vertex(currRoute.Waypoint(i).Location());
|
||||
}
|
||||
mDraw.End();
|
||||
}
|
||||
end_script
|
||||
|
||||
|
||||
precondition
|
||||
writeln_d("precondition default-flight");
|
||||
return true;
|
||||
end_precondition
|
||||
|
||||
|
||||
execute
|
||||
writeln_d(PLATFORM.Name(), " executing default-flight, T=", TIME_NOW);
|
||||
//PLATFORM.Comment("default-flight");
|
||||
|
||||
if (mResumeDefaultRoute)
|
||||
{
|
||||
bool success = false;
|
||||
//go at default speed; this gets overwritten if route waypoint has defined a speed
|
||||
success = PLATFORM.GoToSpeed(cDEFAULT_SPEED, cDEFAULT_ACCEL, true);
|
||||
//return to route, at the last target route point as re-entry
|
||||
#success = success && PLATFORM.ReturnToRoute();
|
||||
#extern bool ReEnterRoute(WsfPlatform);
|
||||
success = success && ReEnterRoute(PLATFORM);
|
||||
|
||||
if (!success)
|
||||
{
|
||||
string msg = "ERROR: transition to default flight, could not return to route!";
|
||||
PLATFORM.Comment(msg);
|
||||
writeln_d(" T=", TIME_NOW, " ", PLATFORM.Name(), " ", msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
string msg = write_str("returning to route: ", PLATFORM.Route().Name());
|
||||
//PLATFORM.Comment(msg);
|
||||
writeln_d(" T=", TIME_NOW, " ", PLATFORM.Name(), " ", msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
extern double cDEFAULT_ALTITUDE;
|
||||
#extern bool FlyHold (WsfPlatform, double, double, double);
|
||||
FlyHold( PLATFORM, PLATFORM.Heading(), cDEFAULT_ALTITUDE, cDEFAULT_SPEED);
|
||||
}
|
||||
|
||||
#PROCESSOR.SetUpdateInterval(cLARGE_UPDATE_INTERVAL);
|
||||
|
||||
if (mDrawRoute)
|
||||
{
|
||||
DrawRoute();
|
||||
}
|
||||
end_execute
|
||||
|
||||
end_behavior
|
||||
Reference in New Issue
Block a user