//--------------------------------------------------- // Helm Behavior file initialize DEPLOY = true initialize RETURN = false initialize STATION = false initialize LOITER = true initialize AT_HOME = true initialize REFUEL_NEEDED = false // ADDED // Hierachical Mode Declarations: // ModeSet Hierarchy: // ---------------------------------------------- // Mode-Variable=MODE // ACTIVE // STATION-KEEPING // RETURNING // LOITERING // REFUELING // INACTIVE set MODE = ACTIVE { DEPLOY = true } INACTIVE set MODE = STATION-KEEPING { MODE = ACTIVE STATION = true } set MODE = RETURNING { MODE = ACTIVE AT_HOME != true (RETURN = true) or (REFUEL_NEEDED = true) } set MODE = LOITERING { MODE = ACTIVE LOITER = true REFUEL_NEEDED != true } set MODE = REFUELING { MODE = ACTIVE AT_HOME = true REFUEL_NEEDED = true RETURN = false } //---------------------------------------------- Behavior = BHV_Timer { name = refuel condition = MODE == REFUELING duration = 60 duration_status = TIMER_REFUEL perpetual = true endflag = REFUEL_NEEDED = false } //---------------------------------------------- Behavior = BHV_Loiter { name = loiter pwt = 100 condition = MODE==LOITERING updates = UP_LOITER runflag = AT_HOME = false duration = 600 duration_idle_decay = false perpetual = true endflag = REFUEL_NEEDED = true speed = 1.3 clockwise = false radius = 8.0 nm_radius = 15.0 polygon = radial:: $(LOITER_POS), radius=20, pts=8, snap=1, label=$(VNAME)_LOITER visual_hints = nextpt_color=white, nextpt_lcolor=khaki visual_hints = edge_color=orange, vertex_color=white visual_hints = edge_size=1, vertex_size=2 } //---------------------------------------------- Behavior = BHV_Waypoint { name = waypt_return pwt = 100 updates = RETURN_UPDATES condition = MODE==RETURNING endflag = AT_HOME = true // changed endflag = RETURN = false speed = 1.3 radius = 3.0 nm_radius = 15.0 points = $(START_POS) repeat = 10 lead = 8 } //---------------------------------------------- Behavior = BHV_StationKeep { name = station-keep pwt = 100 condition = MODE==STATION-KEEPING center_activate = true inner_radius = 5 outer_radius = 10 outer_speed = 1.0 transit_speed = 1.3 swing_time = 7 visual_hints = vertex_size=0, edge_size=1, edge_color=light_blue }