
scenarioTWO.plans.RelsP Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bushfire-tutorial Show documentation
Show all versions of bushfire-tutorial Show documentation
Application using JACK-MATSim integration
The newest version!
/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
This code is generated by JAC version 5.6 by
Agent Oriented Software. http://www.agent-software.com.au
DO NOT ALTER THIS CODE AND DO NOT REMOVE THIS COMMENT
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
package scenarioTWO.plans;
import aos.jack.jak.plan.Plan;
import aos.jack.jak.plan.PlanFSM;
import aos.jack.jak.plan.ExMap;
import aos.jack.jak.agent.NameSpace;
import aos.jack.jak.event.Event;
import aos.jack.jak.task.Task;
import aos.jack.jak.core.Generator;
import aos.jack.jak.logic.Signature;
import scenarioTWO.events.RelsG;
import scenarioTWO.agents.EvacResident;
import io.github.agentsoz.abmjack.env.GenericActGoal;
import io.github.agentsoz.bushfiretute.shared.ActionID;
import aos.jack.jak.cursor.Cursor;
import aos.jack.jak.fsm.FSM;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Random;
import aos.jack.jak.core.Jak;
public class RelsP extends aos.jack.jak.plan.Plan {
final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("");
public scenarioTWO.events.RelsG relsg_h;
public scenarioTWO.agents.EvacResident res;
public io.github.agentsoz.abmjack.env.GenericActGoal genericactgoal_p;
private static aos.jack.jak.plan.ExMap[] __exMap_body;
private static java.lang.String[] __tt__body = {
"scenarioTWO/plans/RelsP.plan",
"body",
"50",
"51",
"53",
"54",
"56",
"58",
"60",
"61",
"62",
"67",
"68",
"69",
"70",
"48"};
private final static java.lang.String[] __planVariableNames = {
"logger",
"relsg_h",
"res",
"genericactgoal_p"};
private final static java.lang.String[] __planVariableTypes = {
"Logger",
"RelsG",
"scenarioTWO.agents.EvacResident",
"io.github.agentsoz.abmjack.env.GenericActGoal"};
private final static java.lang.String[] __reasoningMethods = {
"body"};
private final static java.lang.String[] __fsmVariableNames_body = {
"relCoords",
"pickuptime",
"params",
"gag",
"startTime",
"endTime",
"tripTime"};
private final static java.lang.String[] __fsmTypes_body = {
"double[]",
"int",
"Object[]",
"GenericActGoal",
"long",
"long",
"long"};
private final static java.lang.String[] __fsmLocalNames_body = {
"__local__6_0",
"__local__6_1",
"__local__6_2",
"__local__6_3",
"__local__6_4",
"__local__6_5",
"__local__6_6"};
private double[] getRandomCoordinate()
{
java.util.Random random = new java.util.Random();
double[] coordinates = new double[2];
int distance = random.nextInt(res.bdiConnector.getMaxDistanceToRelatives());
logger.trace(" | Max distance to relatives: " + res.bdiConnector.getMaxDistanceToRelatives());
double angle = random.nextDouble() * 2 * java.lang.Math.PI;
// Calculating destination's X coordinate
coordinates[0] = res.startLocation[0] + distance * java.lang.Math.cos(angle);
// Calculating destination's Y coordinate
coordinates[1] = res.startLocation[1] + distance * java.lang.Math.sin(angle);
return coordinates;
}
public RelsP()
{
}
private RelsP(aos.jack.jak.task.Task __t, scenarioTWO.plans.RelsP __env)
{
__agent = __env.__agent;
__ns = __env.__ns;
__planTask = __t;
__logic = __t.logic;
relsg_h = __env.relsg_h;
res = (scenarioTWO.agents.EvacResident) __ns.getIF(scenarioTWO.agents.EvacResident.class);
genericactgoal_p = __env.genericactgoal_p;
}
public boolean init_sentinel(aos.jack.jak.agent.NameSpace __a)
{
relsg_h = (scenarioTWO.events.RelsG) __a.findEvent("scenarioTWO.events.RelsG");
if (relsg_h == null) {
warning("RelsG relsg_h: is not found in the capability/agent this plan comes from");
return false;
}
genericactgoal_p = (io.github.agentsoz.abmjack.env.GenericActGoal) __a.findEvent("io.github.agentsoz.abmjack.env.GenericActGoal");
if (genericactgoal_p == null) {
warning("GenericActGoal genericactgoal_p: is not found in the capability/agent this plan comes from");
return false;
}
return true;
}
public aos.jack.jak.plan.Plan freeze()
{
return this;
}
public aos.jack.jak.plan.Plan unfreeze()
{
return this;
}
public java.lang.Object genObject(int __index)
{
switch (__index) {
}
aos.jack.jak.core.Jak.error("illegal Object Construction");
return null;
}
public aos.jack.jak.cursor.Cursor genCursor(int __index)
throws java.lang.Exception
{
switch (__index) {
}
aos.jack.jak.core.Jak.error("illegal Cursor Construction");
return null;
}
public aos.jack.jak.fsm.FSM genFSM(int __index)
throws java.lang.Exception
{
switch (__index) {
}
aos.jack.jak.core.Jak.error("illegal FSM Construction");
return null;
}
public boolean testCondition(int __index)
throws java.lang.Exception
{
switch (__index) {
}
aos.jack.jak.core.Jak.error("illegal test Construction");
return false;
}
public aos.jack.jak.plan.PlanFSM body()
{
return new scenarioTWO.plans.RelsP.__bodyFSM();
}
private RelsP(scenarioTWO.events.RelsG __ev, aos.jack.jak.task.Task __t, scenarioTWO.plans.RelsP __env)
{
this(__t,__env);
this.relsg_h = __ev;
}
protected aos.jack.jak.logic.Signature eventSignature(int __log)
{
return relsg_h.getSignature(__log);
}
public java.lang.String handledEvent()
{
return "scenarioTWO.events.RelsG";
}
public boolean __relevant(aos.jack.jak.event.Event __e)
{
return __ns.isEnabled();
}
public aos.jack.jak.plan.Plan createPlan(aos.jack.jak.event.Event __e, aos.jack.jak.task.Task __t)
{
if (!(__e instanceof scenarioTWO.events.RelsG))
return null;
scenarioTWO.events.RelsG __e1 = (scenarioTWO.events.RelsG) __e;
return new scenarioTWO.plans.RelsP(__e1,__t,this);
}
public java.lang.String[] variableNames()
{
return __planVariableNames;
}
public java.lang.String[] variableTypes()
{
return __planVariableTypes;
}
public java.lang.Object getVariable(int n)
{
switch (n) {
case 0:
{
return aos.util.ToObject.box(logger);
}
case 1:
{
return aos.util.ToObject.box(relsg_h);
}
case 2:
{
return aos.util.ToObject.box(res);
}
case 3:
{
return aos.util.ToObject.box(genericactgoal_p);
}
default:
{
throw new java.lang.IndexOutOfBoundsException("Plan " + this + " does not have variable number " + n);
}
}
}
public java.lang.String[] reasoningMethods()
{
return mergeReasoningMethods(__reasoningMethods,super.reasoningMethods());
}
public aos.jack.jak.cursor.Cursor context()
{
try {
return (((true)?aos.jack.jak.cursor.Cursor.trueCursor:aos.jack.jak.cursor.Cursor.falseCursor));
}
catch (java.lang.Exception e) {
e.printStackTrace();
return aos.jack.jak.cursor.Cursor.falseCursor;
}
}
class __bodyFSM extends aos.jack.jak.plan.PlanFSM implements aos.jack.jak.core.Generator {
double[] __local__6_0;
int __local__6_1;
java.lang.Object[] __local__6_2;
io.github.agentsoz.abmjack.env.GenericActGoal __local__6_3;
long __local__6_4;
long __local__6_5;
long __local__6_6;
private int __breakLevel = 0;
public int run(int __status)
throws java.lang.Throwable
{
do {
try {
if (__tothrow != null)
throw __tothrow;
if ((aos.jack.jak.core.Jak.debugging & aos.jack.jak.core.Jak.LOG_PLANS) != 0)
aos.util.logging.LogMsg.log(this,aos.jack.jak.core.Jak.LOG_PLANS,__task + "-RelsP.body:" + java.lang.Integer.toString(__state));
if (__task.nsteps > 0) {
__task.nsteps-- ;
if (__task.nsteps == 0)
agent.changeFocus();
}
if (__state < 10) {
__status = super.stdrun(scenarioTWO.plans.RelsP.this,__status);
if (__status != CONTINUE || agent.changing_focus)
return __status;
continue;
}
__curstate = __state;
switch (__state) {
default:
{
aos.jack.jak.core.Jak.error("RelsP.body: Illegal state");
return FAILED_STATE;
}
//* (50) double[] relCoords = getRandomCoordinate(); // 1. get a destination
case 10:
{
__breakLevel = 0;
__local__6_0 = getRandomCoordinate();
__state = 11;
break;
}
//* (51) int pickuptime = res.bdiConnector.getPickupTime() * 60; // 2. get a random pickup time in minutes and convert it to seconds
case 11:
{
__local__6_1 = res.bdiConnector.getPickupTime() * 60;
__state = 12;
break;
}
//* (53) res.initiatedAction=ActionID.DRIVETO_AND_PICKUP;
case 12:
{
__state = 13;
// 2. get a random pickup time in minutes and convert it to seconds
res.initiatedAction = io.github.agentsoz.bushfiretute.shared.ActionID.DRIVETO_AND_PICKUP;
break;
}
//* (54) res.targetDestination="Relatives";
case 13:
{
__state = 14;
res.targetDestination = "Relatives";
break;
}
//* (56) Object[] params = new Object[] { (Object)ActionID.DRIVETO_AND_PICKUP , relCoords, res.targetDestination, pickuptime};
case 14:
{
__local__6_2 = new java.lang.Object[]{
(java.lang.Object) io.github.agentsoz.bushfiretute.shared.ActionID.DRIVETO_AND_PICKUP,
__local__6_0,
res.targetDestination,
__local__6_1};
__state = 15;
break;
}
//* (58) res.log("picking up relatives; action "+ActionID.DRIVETO_AND_PICKUP + "; relatives are at " + relCoords[0] +","+ relCoords[1] + "; pickup-time is "+ pickuptime );
case 15:
{
__state = 16;
res.log("picking up relatives; action " + io.github.agentsoz.bushfiretute.shared.ActionID.DRIVETO_AND_PICKUP + "; relatives are at " + __local__6_0[0] + "," + __local__6_0[1] + "; pickup-time is " + __local__6_1);
break;
}
//* (60) GenericActGoal gag = genericactgoal_p.act(res.getActionManager(), ActionID.DRIVETO_AND_PICKUP, params );
case 16:
{
__local__6_3 = genericactgoal_p.act(res.getActionManager(),io.github.agentsoz.bushfiretute.shared.ActionID.DRIVETO_AND_PICKUP,__local__6_2);
__state = 17;
break;
}
//* (61) long startTime = res.getCurrentTime();
case 17:
{
__local__6_4 = res.getCurrentTime();
__state = 18;
break;
}
//* (62) @subtask( gag );
case 18:
{
__task.push(__local__6_3);
__state = -__state;
__subtask_pass = 19;
__subtask_fail = 4;
return SUBTASK;
}
//* (67) long endTime = res.getCurrentTime();
case 19:
{
__local__6_5 = res.getCurrentTime();
__state = 20;
break;
}
//* (68) long tripTime = (endTime - pickuptime) - startTime;
case 20:
{
__local__6_6 = (__local__6_5 - __local__6_1) - __local__6_4;
__state = 21;
break;
}
//* (69) res.addToTravelTime(tripTime);
case 21:
{
__state = 22;
res.addToTravelTime(__local__6_6);
break;
}
//* (70) res.log("picked up relatives at time " + endTime);
case 22:
{
__state = 23;
res.log("picked up relatives at time " + __local__6_5);
break;
}
//* (48) body()
case 23:
{
if (__pending == null)
__state = PASSED_STATE;
__tothrow = __pending;
break;
}
}
}
catch (java.lang.Throwable e) {
handleException(e,__exMap_body);
}
}
while (!agent.changing_focus);
return CONTINUE;
}
public java.lang.String methodName()
{
return "body";
}
__bodyFSM()
{
}
public java.lang.String stateInfo()
{
int n = __curstate;
java.lang.String file = __tt__body[0];
java.lang.String method = __tt__body[1];
if (n < 0)
n = -n;
n -= (10 - 2);
java.lang.String line = (n < 2)?"??":__tt__body[n];
return file + ":" + line + " " + method + " [" + __curstate + "]";
}
public java.lang.Object genObject(int __index)
{
switch (__index) {
}
aos.jack.jak.core.Jak.error("illegal Object Construction");
return null;
}
public aos.jack.jak.cursor.Cursor genCursor(int __index)
throws java.lang.Exception
{
switch (__index) {
}
aos.jack.jak.core.Jak.error("illegal Cursor Construction");
return null;
}
public aos.jack.jak.fsm.FSM genFSM(int __index)
throws java.lang.Exception
{
switch (__index) {
}
aos.jack.jak.core.Jak.error("illegal FSM Construction");
return null;
}
public boolean testCondition(int __index)
throws java.lang.Exception
{
switch (__index) {
}
aos.jack.jak.core.Jak.error("illegal test Construction");
return false;
}
public aos.jack.jak.plan.Plan getPlan()
{
return scenarioTWO.plans.RelsP.this;
}
protected aos.jack.jak.fsm.FSM fail()
{
return getPlan().fail();
}
protected aos.jack.jak.fsm.FSM pass()
{
return getPlan().pass();
}
public void enter()
{
__trace = agent.trace("scenarioTWO.plans.RelsP.body");
}
public java.lang.Object getVariable(int n)
{
switch (n) {
case 0:
{
return aos.util.ToObject.box(__local__6_0);
}
case 1:
{
return aos.util.ToObject.box(__local__6_1);
}
case 2:
{
return aos.util.ToObject.box(__local__6_2);
}
case 3:
{
return aos.util.ToObject.box(__local__6_3);
}
case 4:
{
return aos.util.ToObject.box(__local__6_4);
}
case 5:
{
return aos.util.ToObject.box(__local__6_5);
}
case 6:
{
return aos.util.ToObject.box(__local__6_6);
}
default:
{
throw new java.lang.IndexOutOfBoundsException("Reasoning Method " + methodName() + " does not have variable number " + n);
}
}
}
public java.lang.String[] variableNames()
{
return __fsmVariableNames_body;
}
public java.lang.String[] variableTypes()
{
return __fsmTypes_body;
}
public java.lang.String[] variableLocalNames()
{
return __fsmLocalNames_body;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy