/* * Copyright (c) 2024 Felix Ingrand, CNRS/LAAS * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * This Behavior Tree FIACRE model has been automatically generated by bt2f 1.0b0. * DO NOT EDIT. */ /* * This Behavior Tree FIACRE model is for the HIPPO engine. */ type ret_status is union // regular returned status success | failure | running | halt_me | no_ret_status end type node_status is union // regular node status ns_idle | ns_ticked | ns_tick_passed | ns_success | ns_failure | ns_halt | ns_halted | ns_running end type btnode_caller is union None | caller_ParallelAll5_btn2 | caller_fail_btn8 | caller_Fallback13_btn6 | caller_fail_btn12 | caller_Fallback21_btn10 | caller_Sequence37_btn18 | caller_Parallel33_btn16 | caller_Sequence29_btn14 | caller_ReactiveSequence11_btn5 | caller_Sequence3_btn1 | caller_BehaviorTree1_drone end type btnode_record is record // record to hold the shared information on a btnode caller : btnode_caller, // who called it ArgIndex : nat, // its functional level arguments in rstatus : ret_status // its last returned status end const start_drone_btn3: 0..0 is 0 const start_camera_btn4: 1..1 is 1 const ParallelAll5_btn2: 2..2 is 2 const battery_ok_btn7: 3..3 is 3 const land_btn9: 4..4 is 4 const fail_btn8: 5..5 is 5 const Fallback13_btn6: 6..6 is 6 const localization_ok_btn11: 7..7 is 7 const land_btn13: 8..8 is 8 const fail_btn12: 9..9 is 9 const Fallback21_btn10: 10..10 is 10 const takeoff_btn15: 11..11 is 11 const camera_tracking_btn17: 12..12 is 12 const goto_waypoint_btn19: 13..13 is 13 const goto_waypoint_btn20: 14..14 is 14 const goto_waypoint_btn21: 15..15 is 15 const goto_waypoint_btn22: 16..16 is 16 const goto_waypoint_btn23: 17..17 is 17 const goto_waypoint_btn24: 18..18 is 18 const Sequence37_btn18: 19..19 is 19 const Parallel33_btn16: 20..20 is 20 const goto_waypoint_btn25: 21..21 is 21 const land_btn26: 22..22 is 22 const shutdown_drone_btn27: 23..23 is 23 const Sequence29_btn14: 24..24 is 24 const ReactiveSequence11_btn5: 25..25 is 25 const Sequence3_btn1: 26..26 is 26 const BehaviorTree1_drone: 27..27 is 27 type btnode_array is array 28 of btnode_record // Global extern functions extern fiacre_c_print_trace(nat) : nat is print_trace_c extern fiacre_c_print_user_print(nat) : nat is print_user_print_c extern fiacre_graphic_trace(nat,node_status) : nat is graphic_trace_c /* state variable integer types*/ /* state variable FSM types*/ /* Process automata controlling the proper transition of resources/SV */ // Hippo tasks for all basic btnodes. task Fiacre_Action_start_drone_task (btnode_record) : ret_status is Fiacre_Action_start_drone_c extern Fiacre_Action_start_drone_halt (btnode_record) : bool is Fiacre_Action_start_drone_halt_c task Fiacre_Action_start_camera_task (btnode_record) : ret_status is Fiacre_Action_start_camera_c extern Fiacre_Action_start_camera_halt (btnode_record) : bool is Fiacre_Action_start_camera_halt_c extern Fiacre_Condition_battery_ok_ext (btnode_record) : ret_status is Fiacre_Condition_battery_ok_c task Fiacre_Action_land_task (btnode_record) : ret_status is Fiacre_Action_land_c extern Fiacre_Action_land_halt (btnode_record) : bool is Fiacre_Action_land_halt_c extern Fiacre_Condition_localization_ok_ext (btnode_record) : ret_status is Fiacre_Condition_localization_ok_c task Fiacre_Action_takeoff_task (btnode_record) : ret_status is Fiacre_Action_takeoff_c extern Fiacre_Action_takeoff_halt (btnode_record) : bool is Fiacre_Action_takeoff_halt_c task Fiacre_Action_camera_tracking_task (btnode_record) : ret_status is Fiacre_Action_camera_tracking_c extern Fiacre_Action_camera_tracking_halt (btnode_record) : bool is Fiacre_Action_camera_tracking_halt_c task Fiacre_Action_goto_waypoint_task (btnode_record) : ret_status is Fiacre_Action_goto_waypoint_c extern Fiacre_Action_goto_waypoint_halt (btnode_record) : bool is Fiacre_Action_goto_waypoint_halt_c task Fiacre_Action_shutdown_drone_task (btnode_record) : ret_status is Fiacre_Action_shutdown_drone_c extern Fiacre_Action_shutdown_drone_halt (btnode_record) : bool is Fiacre_Action_shutdown_drone_halt_c process btnode_start_drone_btn3 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_start_drone, dispatch, Action_start_drone_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[start_drone_btn3].caller <> None); report_halted := false; if (btnode[start_drone_btn3].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 0, trace level: 3 // Btnode Action 'start_drone_btn3' has been called ignorep := fiacre_c_print_trace(0); btnode[start_drone_btn3].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 1, trace level: 3 // Btnode Action 'start_drone_btn3' is being halted ignorep := fiacre_c_print_trace(1); ignorep := fiacre_graphic_trace(5,ns_halt); ignoreb := Fiacre_Action_start_drone_halt (btnode[start_drone_btn3]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(5,ns_ticked); to Action_start_drone from Action_start_drone // Trace index: 2, trace level: 3 // Btnode Action 'start_drone_btn3' calling its action (start task) ignorep := fiacre_c_print_trace(2); start Fiacre_Action_start_drone_task (btnode[start_drone_btn3]); to Action_start_drone_sync from Action_start_drone_sync sync Fiacre_Action_start_drone_task ret_val; // Trace index: 3, trace level: 3 // Btnode Action 'start_drone_btn3' returned (sync task) ignorep := fiacre_c_print_trace(3); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 4, trace level: 2 // Btnode Action 'start_drone_btn3' returns success. ignorep := fiacre_c_print_trace(4); btnode[start_drone_btn3].rstatus := success; ignorep := fiacre_graphic_trace(5,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 5, trace level: 2 // Btnode Action 'start_drone_btn3' returns halted failure. ignorep := fiacre_c_print_trace(5); ignorep := fiacre_graphic_trace(5,ns_halted); null else // Trace index: 6, trace level: 2 // Btnode Action 'start_drone_btn3' returns failure. ignorep := fiacre_c_print_trace(6); ignorep := fiacre_graphic_trace(5,ns_failure); null end; btnode[start_drone_btn3].rstatus := failure; to done from halted wait [0,0]; // Trace index: 7, trace level: 2 // Btnode Action 'start_drone_btn3' has been halted. ignorep := fiacre_c_print_trace(7); report_halted := true; to failure from running wait [0,0]; // Trace index: 8, trace level: 3 // Btnode Action 'start_drone_btn3' returns running. ignorep := fiacre_c_print_trace(8); ignorep := fiacre_graphic_trace(5,ns_running); btnode[start_drone_btn3].rstatus := running; to done from done wait [0,0]; // Trace index: 9, trace level: 3 // Btnode Action 'start_drone_btn3' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(9); btnode[start_drone_btn3].caller := None; to ether from ether wait [0,0]; to start_ process btnode_start_camera_btn4 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_start_camera, dispatch, Action_start_camera_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[start_camera_btn4].caller <> None); report_halted := false; if (btnode[start_camera_btn4].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 10, trace level: 3 // Btnode Action 'start_camera_btn4' has been called ignorep := fiacre_c_print_trace(10); btnode[start_camera_btn4].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 11, trace level: 3 // Btnode Action 'start_camera_btn4' is being halted ignorep := fiacre_c_print_trace(11); ignorep := fiacre_graphic_trace(6,ns_halt); ignoreb := Fiacre_Action_start_camera_halt (btnode[start_camera_btn4]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(6,ns_ticked); to Action_start_camera from Action_start_camera // Trace index: 12, trace level: 3 // Btnode Action 'start_camera_btn4' calling its action (start task) ignorep := fiacre_c_print_trace(12); start Fiacre_Action_start_camera_task (btnode[start_camera_btn4]); to Action_start_camera_sync from Action_start_camera_sync sync Fiacre_Action_start_camera_task ret_val; // Trace index: 13, trace level: 3 // Btnode Action 'start_camera_btn4' returned (sync task) ignorep := fiacre_c_print_trace(13); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 14, trace level: 2 // Btnode Action 'start_camera_btn4' returns success. ignorep := fiacre_c_print_trace(14); btnode[start_camera_btn4].rstatus := success; ignorep := fiacre_graphic_trace(6,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 15, trace level: 2 // Btnode Action 'start_camera_btn4' returns halted failure. ignorep := fiacre_c_print_trace(15); ignorep := fiacre_graphic_trace(6,ns_halted); null else // Trace index: 16, trace level: 2 // Btnode Action 'start_camera_btn4' returns failure. ignorep := fiacre_c_print_trace(16); ignorep := fiacre_graphic_trace(6,ns_failure); null end; btnode[start_camera_btn4].rstatus := failure; to done from halted wait [0,0]; // Trace index: 17, trace level: 2 // Btnode Action 'start_camera_btn4' has been halted. ignorep := fiacre_c_print_trace(17); report_halted := true; to failure from running wait [0,0]; // Trace index: 18, trace level: 3 // Btnode Action 'start_camera_btn4' returns running. ignorep := fiacre_c_print_trace(18); ignorep := fiacre_graphic_trace(6,ns_running); btnode[start_camera_btn4].rstatus := running; to done from done wait [0,0]; // Trace index: 19, trace level: 3 // Btnode Action 'start_camera_btn4' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(19); btnode[start_camera_btn4].caller := None; to ether from ether wait [0,0]; to start_ process btnode_ParallelAll5_btn2 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, ParallelAll5_btn2_par, ParallelAll5_btn2_par_done, failure_wait, failure_wait2, done, ether var ignorep: nat, ignoreb: bool, runningb:bool := false, halt_called_by_me:bool := false, force_success:bool := false, report_halted:bool := false from start_ wait [0,0]; on (btnode[ParallelAll5_btn2].caller <> None); report_halted := false; if (btnode[ParallelAll5_btn2].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 20, trace level: 3 // Btnode ParallelAll 'ParallelAll5_btn2' has been called ignorep := fiacre_c_print_trace(20); btnode[ParallelAll5_btn2].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 21, trace level: 3 // Btnode ParallelAll 'ParallelAll5_btn2' is being halted ignorep := fiacre_c_print_trace(21); ignorep := fiacre_graphic_trace(4,ns_halt); if (btnode[start_drone_btn3].rstatus = running) then // Trace index: 22, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' halting Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(22); btnode[start_drone_btn3].rstatus := halt_me; btnode[start_drone_btn3].caller := caller_ParallelAll5_btn2 end; if (btnode[start_camera_btn4].rstatus = running) then // Trace index: 23, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' halting Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(23); btnode[start_camera_btn4].rstatus := halt_me; btnode[start_camera_btn4].caller := caller_ParallelAll5_btn2 end; to halt_wait from halt_wait on ( (btnode[start_drone_btn3].caller = None) and (btnode[start_camera_btn4].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(4,ns_ticked); to ParallelAll5_btn2_par from ParallelAll5_btn2_par wait [0,0]; if (runningb) then if (btnode[start_drone_btn3].rstatus = running) then // Trace index: 24, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' calling again Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(24); btnode[start_drone_btn3].caller := caller_ParallelAll5_btn2 end; if (btnode[start_camera_btn4].rstatus = running) then // Trace index: 25, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' calling again Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(25); btnode[start_camera_btn4].caller := caller_ParallelAll5_btn2 end; null else // Trace index: 26, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' calling Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(26); btnode[start_drone_btn3].caller := caller_ParallelAll5_btn2; // Trace index: 27, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' calling Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(27); btnode[start_camera_btn4].caller := caller_ParallelAll5_btn2; null end; ignorep := fiacre_graphic_trace(4,ns_tick_passed); to ParallelAll5_btn2_par_done from ParallelAll5_btn2_par_done wait [0,0]; on ( (btnode[start_drone_btn3].caller = None) and (btnode[start_camera_btn4].caller = None) and true); ignorep := fiacre_graphic_trace(4,ns_ticked); // Trace index: 28, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' getting control back from Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(28); // Trace index: 29, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' getting control back from Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(29); if ( (btnode[start_drone_btn3].rstatus = success) and (btnode[start_camera_btn4].rstatus = success) and true) then runningb := false; to success elsif ( (btnode[start_drone_btn3].rstatus = failure) or (btnode[start_camera_btn4].rstatus = failure) or false) then runningb := false; to failure_wait else runningb := true; to running end from failure_wait wait [0,0]; if (btnode[start_drone_btn3].rstatus = running) then // Trace index: 30, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' failed but calling again to wait running Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(30); btnode[start_drone_btn3].caller := caller_ParallelAll5_btn2 end; if (btnode[start_camera_btn4].rstatus = running) then // Trace index: 31, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' failed but calling again to wait running Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(31); btnode[start_camera_btn4].caller := caller_ParallelAll5_btn2 end; ignorep := fiacre_graphic_trace(4,ns_tick_passed); to failure_wait2 from failure_wait2 wait [0,0]; on ( (btnode[start_drone_btn3].caller = None) and (btnode[start_camera_btn4].caller = None) and true); ignorep := fiacre_graphic_trace(4,ns_ticked); if ( (btnode[start_drone_btn3].rstatus = running) or (btnode[start_camera_btn4].rstatus = running) or false) then to failure_wait else to failure end from success wait [0,0]; // Trace index: 32, trace level: 2 // Btnode ParallelAll 'ParallelAll5_btn2' returns success. ignorep := fiacre_c_print_trace(32); btnode[ParallelAll5_btn2].rstatus := success; ignorep := fiacre_graphic_trace(4,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 33, trace level: 2 // Btnode ParallelAll 'ParallelAll5_btn2' returns halted failure. ignorep := fiacre_c_print_trace(33); ignorep := fiacre_graphic_trace(4,ns_halted); null else // Trace index: 34, trace level: 2 // Btnode ParallelAll 'ParallelAll5_btn2' returns failure. ignorep := fiacre_c_print_trace(34); ignorep := fiacre_graphic_trace(4,ns_failure); null end; btnode[ParallelAll5_btn2].rstatus := failure; to done from halted wait [0,0]; // Trace index: 35, trace level: 2 // Btnode ParallelAll 'ParallelAll5_btn2' has been halted. ignorep := fiacre_c_print_trace(35); if (halt_called_by_me) then if (force_success) then to success else to failure end else report_halted := true; to failure end from running wait [0,0]; // Trace index: 36, trace level: 3 // Btnode ParallelAll 'ParallelAll5_btn2' returns running. ignorep := fiacre_c_print_trace(36); ignorep := fiacre_graphic_trace(4,ns_running); btnode[ParallelAll5_btn2].rstatus := running; to done from done wait [0,0]; halt_called_by_me := false; force_success := false; // Trace index: 37, trace level: 3 // Btnode ParallelAll 'ParallelAll5_btn2' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(37); btnode[ParallelAll5_btn2].caller := None; to ether from ether wait [0,0]; to start_ process btnode_battery_ok_btn7 (&btnode: btnode_array) is states start_, tick_node, success, failure, error, Condition_battery_ok, dispatch, done, ether var ignorep: nat, ignoreb: bool, ret_val: ret_status from start_ wait [0,0]; on (btnode[battery_ok_btn7].caller <> None); // Trace index: 38, trace level: 3 // Btnode Condition 'battery_ok_btn7' has been called ignorep := fiacre_c_print_trace(38); btnode[battery_ok_btn7].rstatus := no_ret_status; to tick_node from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(9,ns_ticked); to Condition_battery_ok from Condition_battery_ok // Trace index: 39, trace level: 3 // Btnode Condition 'battery_ok_btn7' calling its condition external ignorep := fiacre_c_print_trace(39); ret_val := Fiacre_Condition_battery_ok_ext (btnode[battery_ok_btn7]); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure else to error // a priori unreachable end from success wait [0,0]; // Trace index: 40, trace level: 2 // Btnode Condition 'battery_ok_btn7' returns success. ignorep := fiacre_c_print_trace(40); btnode[battery_ok_btn7].rstatus := success; ignorep := fiacre_graphic_trace(9,ns_success); to done from failure wait [0,0]; // Trace index: 41, trace level: 2 // Btnode Condition 'battery_ok_btn7' returns failure. ignorep := fiacre_c_print_trace(41); ignorep := fiacre_graphic_trace(9,ns_failure); btnode[battery_ok_btn7].rstatus := failure; to done from done wait [0,0]; // Trace index: 42, trace level: 3 // Btnode Condition 'battery_ok_btn7' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(42); btnode[battery_ok_btn7].caller := None; to ether from ether wait [0,0]; to start_ process btnode_land_btn9 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_land, dispatch, Action_land_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[land_btn9].caller <> None); report_halted := false; if (btnode[land_btn9].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 43, trace level: 3 // Btnode Action 'land_btn9' has been called ignorep := fiacre_c_print_trace(43); btnode[land_btn9].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 44, trace level: 3 // Btnode Action 'land_btn9' is being halted ignorep := fiacre_c_print_trace(44); ignorep := fiacre_graphic_trace(11,ns_halt); ignoreb := Fiacre_Action_land_halt (btnode[land_btn9]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(11,ns_ticked); to Action_land from Action_land // Trace index: 45, trace level: 3 // Btnode Action 'land_btn9' calling its action (start task) ignorep := fiacre_c_print_trace(45); start Fiacre_Action_land_task (btnode[land_btn9]); to Action_land_sync from Action_land_sync sync Fiacre_Action_land_task ret_val; // Trace index: 46, trace level: 3 // Btnode Action 'land_btn9' returned (sync task) ignorep := fiacre_c_print_trace(46); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 47, trace level: 2 // Btnode Action 'land_btn9' returns success. ignorep := fiacre_c_print_trace(47); btnode[land_btn9].rstatus := success; ignorep := fiacre_graphic_trace(11,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 48, trace level: 2 // Btnode Action 'land_btn9' returns halted failure. ignorep := fiacre_c_print_trace(48); ignorep := fiacre_graphic_trace(11,ns_halted); null else // Trace index: 49, trace level: 2 // Btnode Action 'land_btn9' returns failure. ignorep := fiacre_c_print_trace(49); ignorep := fiacre_graphic_trace(11,ns_failure); null end; btnode[land_btn9].rstatus := failure; to done from halted wait [0,0]; // Trace index: 50, trace level: 2 // Btnode Action 'land_btn9' has been halted. ignorep := fiacre_c_print_trace(50); report_halted := true; to failure from running wait [0,0]; // Trace index: 51, trace level: 3 // Btnode Action 'land_btn9' returns running. ignorep := fiacre_c_print_trace(51); ignorep := fiacre_graphic_trace(11,ns_running); btnode[land_btn9].rstatus := running; to done from done wait [0,0]; // Trace index: 52, trace level: 3 // Btnode Action 'land_btn9' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(52); btnode[land_btn9].caller := None; to ether from ether wait [0,0]; to start_ process btnode_fail_btn8 (&btnode: btnode_array) is states start_, tick_node, failure, halt, halted, halt_wait, running, error, land_btn9, land_btn9_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[fail_btn8].caller <> None); report_halted := false; if (btnode[fail_btn8].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 53, trace level: 3 // Btnode ForceFailure 'fail_btn8' has been called ignorep := fiacre_c_print_trace(53); btnode[fail_btn8].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 54, trace level: 3 // Btnode ForceFailure 'fail_btn8' is being halted ignorep := fiacre_c_print_trace(54); ignorep := fiacre_graphic_trace(10,ns_halt); if (btnode[land_btn9].rstatus = running) then // Trace index: 55, trace level: 4 // Btnode ForceFailure 'fail_btn8' halting Action 'land_btn9' ignorep := fiacre_c_print_trace(55); btnode[land_btn9].rstatus := halt_me; btnode[land_btn9].caller := caller_fail_btn8; to halt_wait end; to halted from halt_wait on (btnode[land_btn9].caller = None); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(10,ns_ticked); to land_btn9 from land_btn9 wait [0,0]; // Trace index: 56, trace level: 4 // Btnode ForceFailure 'fail_btn8' calling Action 'land_btn9' ignorep := fiacre_c_print_trace(56); btnode[land_btn9].caller := caller_fail_btn8; ignorep := fiacre_graphic_trace(10,ns_tick_passed); to land_btn9_done from land_btn9_done wait [0,0]; on (btnode[land_btn9].caller = None); // Trace index: 57, trace level: 4 // Btnode ForceFailure 'fail_btn8' getting control back from Action 'land_btn9' ignorep := fiacre_c_print_trace(57); if (btnode[land_btn9].rstatus = success) then to failure elsif (btnode[land_btn9].rstatus = failure) then to failure elsif (btnode[land_btn9].rstatus = running) then to running else to error end from failure wait [0,0]; if (report_halted) then // Trace index: 58, trace level: 2 // Btnode ForceFailure 'fail_btn8' returns halted failure. ignorep := fiacre_c_print_trace(58); ignorep := fiacre_graphic_trace(10,ns_halted); null else // Trace index: 59, trace level: 2 // Btnode ForceFailure 'fail_btn8' returns failure. ignorep := fiacre_c_print_trace(59); ignorep := fiacre_graphic_trace(10,ns_failure); null end; btnode[fail_btn8].rstatus := failure; to done from halted wait [0,0]; // Trace index: 60, trace level: 2 // Btnode ForceFailure 'fail_btn8' has been halted. ignorep := fiacre_c_print_trace(60); report_halted := true; to failure from running wait [0,0]; // Trace index: 61, trace level: 3 // Btnode ForceFailure 'fail_btn8' returns running. ignorep := fiacre_c_print_trace(61); ignorep := fiacre_graphic_trace(10,ns_running); btnode[fail_btn8].rstatus := running; to done from done wait [0,0]; // Trace index: 62, trace level: 3 // Btnode ForceFailure 'fail_btn8' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(62); btnode[fail_btn8].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Fallback13_btn6 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, battery_ok_btn7, battery_ok_btn7_done, fail_btn8, fail_btn8_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_fb: 1..2 := 1 from start_ wait [0,0]; on (btnode[Fallback13_btn6].caller <> None); report_halted := false; if (btnode[Fallback13_btn6].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 63, trace level: 3 // Btnode Fallback 'Fallback13_btn6' has been called ignorep := fiacre_c_print_trace(63); btnode[Fallback13_btn6].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 64, trace level: 3 // Btnode Fallback 'Fallback13_btn6' is being halted ignorep := fiacre_c_print_trace(64); ignorep := fiacre_graphic_trace(8,ns_halt); if (btnode[battery_ok_btn7].rstatus = running) then // Trace index: 65, trace level: 4 // Btnode Fallback 'Fallback13_btn6' halting Condition 'battery_ok_btn7' ignorep := fiacre_c_print_trace(65); btnode[battery_ok_btn7].rstatus := halt_me; btnode[battery_ok_btn7].caller := caller_Fallback13_btn6; to halt_wait end; if (btnode[fail_btn8].rstatus = running) then // Trace index: 66, trace level: 4 // Btnode Fallback 'Fallback13_btn6' halting ForceFailure 'fail_btn8' ignorep := fiacre_c_print_trace(66); btnode[fail_btn8].rstatus := halt_me; btnode[fail_btn8].caller := caller_Fallback13_btn6; to halt_wait end; to halted from halt_wait on ( (btnode[battery_ok_btn7].caller = None) and (btnode[fail_btn8].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(8,ns_ticked); if (next_fb = 1) then to battery_ok_btn7 end; if (next_fb = 2) then to fail_btn8 end; to error from battery_ok_btn7 wait [0,0]; // Trace index: 67, trace level: 4 // Btnode Fallback 'Fallback13_btn6' calling Condition 'battery_ok_btn7' ignorep := fiacre_c_print_trace(67); btnode[battery_ok_btn7].caller := caller_Fallback13_btn6; ignorep := fiacre_graphic_trace(8,ns_tick_passed); to battery_ok_btn7_done from battery_ok_btn7_done wait [0,0]; on (btnode[battery_ok_btn7].caller = None); ignorep := fiacre_graphic_trace(8,ns_ticked); // Trace index: 68, trace level: 4 // Btnode Fallback 'Fallback13_btn6' getting control back from Condition 'battery_ok_btn7' ignorep := fiacre_c_print_trace(68); if (btnode[battery_ok_btn7].rstatus = success) then next_fb := 1; to success elsif (btnode[battery_ok_btn7].rstatus = failure) then to fail_btn8 elsif (btnode[battery_ok_btn7].rstatus = running) then next_fb := 1; to running else to error end from fail_btn8 wait [0,0]; // Trace index: 69, trace level: 4 // Btnode Fallback 'Fallback13_btn6' calling ForceFailure 'fail_btn8' ignorep := fiacre_c_print_trace(69); btnode[fail_btn8].caller := caller_Fallback13_btn6; ignorep := fiacre_graphic_trace(8,ns_tick_passed); to fail_btn8_done from fail_btn8_done wait [0,0]; on (btnode[fail_btn8].caller = None); ignorep := fiacre_graphic_trace(8,ns_ticked); // Trace index: 70, trace level: 4 // Btnode Fallback 'Fallback13_btn6' getting control back from ForceFailure 'fail_btn8' ignorep := fiacre_c_print_trace(70); if (btnode[fail_btn8].rstatus = success) then next_fb := 1; to success elsif (btnode[fail_btn8].rstatus = failure) then next_fb := 1; to failure elsif (btnode[fail_btn8].rstatus = running) then next_fb := 2; to running else to error end from success wait [0,0]; // Trace index: 71, trace level: 2 // Btnode Fallback 'Fallback13_btn6' returns success. ignorep := fiacre_c_print_trace(71); btnode[Fallback13_btn6].rstatus := success; ignorep := fiacre_graphic_trace(8,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 72, trace level: 2 // Btnode Fallback 'Fallback13_btn6' returns halted failure. ignorep := fiacre_c_print_trace(72); ignorep := fiacre_graphic_trace(8,ns_halted); null else // Trace index: 73, trace level: 2 // Btnode Fallback 'Fallback13_btn6' returns failure. ignorep := fiacre_c_print_trace(73); ignorep := fiacre_graphic_trace(8,ns_failure); null end; btnode[Fallback13_btn6].rstatus := failure; to done from halted wait [0,0]; // Trace index: 74, trace level: 2 // Btnode Fallback 'Fallback13_btn6' has been halted. ignorep := fiacre_c_print_trace(74); next_fb := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 75, trace level: 3 // Btnode Fallback 'Fallback13_btn6' returns running. ignorep := fiacre_c_print_trace(75); ignorep := fiacre_graphic_trace(8,ns_running); btnode[Fallback13_btn6].rstatus := running; to done from done wait [0,0]; // Trace index: 76, trace level: 3 // Btnode Fallback 'Fallback13_btn6' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(76); btnode[Fallback13_btn6].caller := None; to ether from ether wait [0,0]; to start_ process btnode_localization_ok_btn11 (&btnode: btnode_array) is states start_, tick_node, success, failure, error, Condition_localization_ok, dispatch, done, ether var ignorep: nat, ignoreb: bool, ret_val: ret_status from start_ wait [0,0]; on (btnode[localization_ok_btn11].caller <> None); // Trace index: 77, trace level: 3 // Btnode Condition 'localization_ok_btn11' has been called ignorep := fiacre_c_print_trace(77); btnode[localization_ok_btn11].rstatus := no_ret_status; to tick_node from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(13,ns_ticked); to Condition_localization_ok from Condition_localization_ok // Trace index: 78, trace level: 3 // Btnode Condition 'localization_ok_btn11' calling its condition external ignorep := fiacre_c_print_trace(78); ret_val := Fiacre_Condition_localization_ok_ext (btnode[localization_ok_btn11]); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure else to error // a priori unreachable end from success wait [0,0]; // Trace index: 79, trace level: 2 // Btnode Condition 'localization_ok_btn11' returns success. ignorep := fiacre_c_print_trace(79); btnode[localization_ok_btn11].rstatus := success; ignorep := fiacre_graphic_trace(13,ns_success); to done from failure wait [0,0]; // Trace index: 80, trace level: 2 // Btnode Condition 'localization_ok_btn11' returns failure. ignorep := fiacre_c_print_trace(80); ignorep := fiacre_graphic_trace(13,ns_failure); btnode[localization_ok_btn11].rstatus := failure; to done from done wait [0,0]; // Trace index: 81, trace level: 3 // Btnode Condition 'localization_ok_btn11' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(81); btnode[localization_ok_btn11].caller := None; to ether from ether wait [0,0]; to start_ process btnode_land_btn13 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_land, dispatch, Action_land_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[land_btn13].caller <> None); report_halted := false; if (btnode[land_btn13].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 82, trace level: 3 // Btnode Action 'land_btn13' has been called ignorep := fiacre_c_print_trace(82); btnode[land_btn13].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 83, trace level: 3 // Btnode Action 'land_btn13' is being halted ignorep := fiacre_c_print_trace(83); ignorep := fiacre_graphic_trace(15,ns_halt); ignoreb := Fiacre_Action_land_halt (btnode[land_btn13]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(15,ns_ticked); to Action_land from Action_land // Trace index: 84, trace level: 3 // Btnode Action 'land_btn13' calling its action (start task) ignorep := fiacre_c_print_trace(84); start Fiacre_Action_land_task (btnode[land_btn13]); to Action_land_sync from Action_land_sync sync Fiacre_Action_land_task ret_val; // Trace index: 85, trace level: 3 // Btnode Action 'land_btn13' returned (sync task) ignorep := fiacre_c_print_trace(85); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 86, trace level: 2 // Btnode Action 'land_btn13' returns success. ignorep := fiacre_c_print_trace(86); btnode[land_btn13].rstatus := success; ignorep := fiacre_graphic_trace(15,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 87, trace level: 2 // Btnode Action 'land_btn13' returns halted failure. ignorep := fiacre_c_print_trace(87); ignorep := fiacre_graphic_trace(15,ns_halted); null else // Trace index: 88, trace level: 2 // Btnode Action 'land_btn13' returns failure. ignorep := fiacre_c_print_trace(88); ignorep := fiacre_graphic_trace(15,ns_failure); null end; btnode[land_btn13].rstatus := failure; to done from halted wait [0,0]; // Trace index: 89, trace level: 2 // Btnode Action 'land_btn13' has been halted. ignorep := fiacre_c_print_trace(89); report_halted := true; to failure from running wait [0,0]; // Trace index: 90, trace level: 3 // Btnode Action 'land_btn13' returns running. ignorep := fiacre_c_print_trace(90); ignorep := fiacre_graphic_trace(15,ns_running); btnode[land_btn13].rstatus := running; to done from done wait [0,0]; // Trace index: 91, trace level: 3 // Btnode Action 'land_btn13' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(91); btnode[land_btn13].caller := None; to ether from ether wait [0,0]; to start_ process btnode_fail_btn12 (&btnode: btnode_array) is states start_, tick_node, failure, halt, halted, halt_wait, running, error, land_btn13, land_btn13_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[fail_btn12].caller <> None); report_halted := false; if (btnode[fail_btn12].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 92, trace level: 3 // Btnode ForceFailure 'fail_btn12' has been called ignorep := fiacre_c_print_trace(92); btnode[fail_btn12].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 93, trace level: 3 // Btnode ForceFailure 'fail_btn12' is being halted ignorep := fiacre_c_print_trace(93); ignorep := fiacre_graphic_trace(14,ns_halt); if (btnode[land_btn13].rstatus = running) then // Trace index: 94, trace level: 4 // Btnode ForceFailure 'fail_btn12' halting Action 'land_btn13' ignorep := fiacre_c_print_trace(94); btnode[land_btn13].rstatus := halt_me; btnode[land_btn13].caller := caller_fail_btn12; to halt_wait end; to halted from halt_wait on (btnode[land_btn13].caller = None); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(14,ns_ticked); to land_btn13 from land_btn13 wait [0,0]; // Trace index: 95, trace level: 4 // Btnode ForceFailure 'fail_btn12' calling Action 'land_btn13' ignorep := fiacre_c_print_trace(95); btnode[land_btn13].caller := caller_fail_btn12; ignorep := fiacre_graphic_trace(14,ns_tick_passed); to land_btn13_done from land_btn13_done wait [0,0]; on (btnode[land_btn13].caller = None); // Trace index: 96, trace level: 4 // Btnode ForceFailure 'fail_btn12' getting control back from Action 'land_btn13' ignorep := fiacre_c_print_trace(96); if (btnode[land_btn13].rstatus = success) then to failure elsif (btnode[land_btn13].rstatus = failure) then to failure elsif (btnode[land_btn13].rstatus = running) then to running else to error end from failure wait [0,0]; if (report_halted) then // Trace index: 97, trace level: 2 // Btnode ForceFailure 'fail_btn12' returns halted failure. ignorep := fiacre_c_print_trace(97); ignorep := fiacre_graphic_trace(14,ns_halted); null else // Trace index: 98, trace level: 2 // Btnode ForceFailure 'fail_btn12' returns failure. ignorep := fiacre_c_print_trace(98); ignorep := fiacre_graphic_trace(14,ns_failure); null end; btnode[fail_btn12].rstatus := failure; to done from halted wait [0,0]; // Trace index: 99, trace level: 2 // Btnode ForceFailure 'fail_btn12' has been halted. ignorep := fiacre_c_print_trace(99); report_halted := true; to failure from running wait [0,0]; // Trace index: 100, trace level: 3 // Btnode ForceFailure 'fail_btn12' returns running. ignorep := fiacre_c_print_trace(100); ignorep := fiacre_graphic_trace(14,ns_running); btnode[fail_btn12].rstatus := running; to done from done wait [0,0]; // Trace index: 101, trace level: 3 // Btnode ForceFailure 'fail_btn12' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(101); btnode[fail_btn12].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Fallback21_btn10 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, localization_ok_btn11, localization_ok_btn11_done, fail_btn12, fail_btn12_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_fb: 1..2 := 1 from start_ wait [0,0]; on (btnode[Fallback21_btn10].caller <> None); report_halted := false; if (btnode[Fallback21_btn10].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 102, trace level: 3 // Btnode Fallback 'Fallback21_btn10' has been called ignorep := fiacre_c_print_trace(102); btnode[Fallback21_btn10].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 103, trace level: 3 // Btnode Fallback 'Fallback21_btn10' is being halted ignorep := fiacre_c_print_trace(103); ignorep := fiacre_graphic_trace(12,ns_halt); if (btnode[localization_ok_btn11].rstatus = running) then // Trace index: 104, trace level: 4 // Btnode Fallback 'Fallback21_btn10' halting Condition 'localization_ok_btn11' ignorep := fiacre_c_print_trace(104); btnode[localization_ok_btn11].rstatus := halt_me; btnode[localization_ok_btn11].caller := caller_Fallback21_btn10; to halt_wait end; if (btnode[fail_btn12].rstatus = running) then // Trace index: 105, trace level: 4 // Btnode Fallback 'Fallback21_btn10' halting ForceFailure 'fail_btn12' ignorep := fiacre_c_print_trace(105); btnode[fail_btn12].rstatus := halt_me; btnode[fail_btn12].caller := caller_Fallback21_btn10; to halt_wait end; to halted from halt_wait on ( (btnode[localization_ok_btn11].caller = None) and (btnode[fail_btn12].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(12,ns_ticked); if (next_fb = 1) then to localization_ok_btn11 end; if (next_fb = 2) then to fail_btn12 end; to error from localization_ok_btn11 wait [0,0]; // Trace index: 106, trace level: 4 // Btnode Fallback 'Fallback21_btn10' calling Condition 'localization_ok_btn11' ignorep := fiacre_c_print_trace(106); btnode[localization_ok_btn11].caller := caller_Fallback21_btn10; ignorep := fiacre_graphic_trace(12,ns_tick_passed); to localization_ok_btn11_done from localization_ok_btn11_done wait [0,0]; on (btnode[localization_ok_btn11].caller = None); ignorep := fiacre_graphic_trace(12,ns_ticked); // Trace index: 107, trace level: 4 // Btnode Fallback 'Fallback21_btn10' getting control back from Condition 'localization_ok_btn11' ignorep := fiacre_c_print_trace(107); if (btnode[localization_ok_btn11].rstatus = success) then next_fb := 1; to success elsif (btnode[localization_ok_btn11].rstatus = failure) then to fail_btn12 elsif (btnode[localization_ok_btn11].rstatus = running) then next_fb := 1; to running else to error end from fail_btn12 wait [0,0]; // Trace index: 108, trace level: 4 // Btnode Fallback 'Fallback21_btn10' calling ForceFailure 'fail_btn12' ignorep := fiacre_c_print_trace(108); btnode[fail_btn12].caller := caller_Fallback21_btn10; ignorep := fiacre_graphic_trace(12,ns_tick_passed); to fail_btn12_done from fail_btn12_done wait [0,0]; on (btnode[fail_btn12].caller = None); ignorep := fiacre_graphic_trace(12,ns_ticked); // Trace index: 109, trace level: 4 // Btnode Fallback 'Fallback21_btn10' getting control back from ForceFailure 'fail_btn12' ignorep := fiacre_c_print_trace(109); if (btnode[fail_btn12].rstatus = success) then next_fb := 1; to success elsif (btnode[fail_btn12].rstatus = failure) then next_fb := 1; to failure elsif (btnode[fail_btn12].rstatus = running) then next_fb := 2; to running else to error end from success wait [0,0]; // Trace index: 110, trace level: 2 // Btnode Fallback 'Fallback21_btn10' returns success. ignorep := fiacre_c_print_trace(110); btnode[Fallback21_btn10].rstatus := success; ignorep := fiacre_graphic_trace(12,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 111, trace level: 2 // Btnode Fallback 'Fallback21_btn10' returns halted failure. ignorep := fiacre_c_print_trace(111); ignorep := fiacre_graphic_trace(12,ns_halted); null else // Trace index: 112, trace level: 2 // Btnode Fallback 'Fallback21_btn10' returns failure. ignorep := fiacre_c_print_trace(112); ignorep := fiacre_graphic_trace(12,ns_failure); null end; btnode[Fallback21_btn10].rstatus := failure; to done from halted wait [0,0]; // Trace index: 113, trace level: 2 // Btnode Fallback 'Fallback21_btn10' has been halted. ignorep := fiacre_c_print_trace(113); next_fb := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 114, trace level: 3 // Btnode Fallback 'Fallback21_btn10' returns running. ignorep := fiacre_c_print_trace(114); ignorep := fiacre_graphic_trace(12,ns_running); btnode[Fallback21_btn10].rstatus := running; to done from done wait [0,0]; // Trace index: 115, trace level: 3 // Btnode Fallback 'Fallback21_btn10' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(115); btnode[Fallback21_btn10].caller := None; to ether from ether wait [0,0]; to start_ process btnode_takeoff_btn15 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_takeoff, dispatch, Action_takeoff_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[takeoff_btn15].caller <> None); report_halted := false; if (btnode[takeoff_btn15].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 116, trace level: 3 // Btnode Action 'takeoff_btn15' has been called (:height 1.000000 :duration 0 ) ignorep := fiacre_c_print_trace(116); btnode[takeoff_btn15].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 117, trace level: 3 // Btnode Action 'takeoff_btn15' is being halted (:height 1.000000 :duration 0 ) ignorep := fiacre_c_print_trace(117); ignorep := fiacre_graphic_trace(17,ns_halt); ignoreb := Fiacre_Action_takeoff_halt (btnode[takeoff_btn15]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(17,ns_ticked); to Action_takeoff from Action_takeoff // synthesized action arg index 1 btnode[takeoff_btn15].ArgIndex := 1; // Trace index: 118, trace level: 3 // Btnode Action 'takeoff_btn15' calling its action (start task) ignorep := fiacre_c_print_trace(118); start Fiacre_Action_takeoff_task (btnode[takeoff_btn15]); to Action_takeoff_sync from Action_takeoff_sync sync Fiacre_Action_takeoff_task ret_val; // Trace index: 119, trace level: 3 // Btnode Action 'takeoff_btn15' returned (sync task) ignorep := fiacre_c_print_trace(119); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 120, trace level: 2 // Btnode Action 'takeoff_btn15' (:height 1.000000 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(120); btnode[takeoff_btn15].rstatus := success; ignorep := fiacre_graphic_trace(17,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 121, trace level: 2 // Btnode Action 'takeoff_btn15' (:height 1.000000 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(121); ignorep := fiacre_graphic_trace(17,ns_halted); null else // Trace index: 122, trace level: 2 // Btnode Action 'takeoff_btn15' (:height 1.000000 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(122); ignorep := fiacre_graphic_trace(17,ns_failure); null end; btnode[takeoff_btn15].rstatus := failure; to done from halted wait [0,0]; // Trace index: 123, trace level: 2 // Btnode Action 'takeoff_btn15' (:height 1.000000 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(123); report_halted := true; to failure from running wait [0,0]; // Trace index: 124, trace level: 3 // Btnode Action 'takeoff_btn15' (:height 1.000000 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(124); ignorep := fiacre_graphic_trace(17,ns_running); btnode[takeoff_btn15].rstatus := running; to done from done wait [0,0]; // Trace index: 125, trace level: 3 // Btnode Action 'takeoff_btn15' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(125); btnode[takeoff_btn15].caller := None; to ether from ether wait [0,0]; to start_ process btnode_camera_tracking_btn17 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_camera_tracking, dispatch, Action_camera_tracking_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[camera_tracking_btn17].caller <> None); report_halted := false; if (btnode[camera_tracking_btn17].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 126, trace level: 3 // Btnode Action 'camera_tracking_btn17' has been called ignorep := fiacre_c_print_trace(126); btnode[camera_tracking_btn17].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 127, trace level: 3 // Btnode Action 'camera_tracking_btn17' is being halted ignorep := fiacre_c_print_trace(127); ignorep := fiacre_graphic_trace(19,ns_halt); ignoreb := Fiacre_Action_camera_tracking_halt (btnode[camera_tracking_btn17]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(19,ns_ticked); to Action_camera_tracking from Action_camera_tracking // Trace index: 128, trace level: 3 // Btnode Action 'camera_tracking_btn17' calling its action (start task) ignorep := fiacre_c_print_trace(128); start Fiacre_Action_camera_tracking_task (btnode[camera_tracking_btn17]); to Action_camera_tracking_sync from Action_camera_tracking_sync sync Fiacre_Action_camera_tracking_task ret_val; // Trace index: 129, trace level: 3 // Btnode Action 'camera_tracking_btn17' returned (sync task) ignorep := fiacre_c_print_trace(129); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 130, trace level: 2 // Btnode Action 'camera_tracking_btn17' returns success. ignorep := fiacre_c_print_trace(130); btnode[camera_tracking_btn17].rstatus := success; ignorep := fiacre_graphic_trace(19,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 131, trace level: 2 // Btnode Action 'camera_tracking_btn17' returns halted failure. ignorep := fiacre_c_print_trace(131); ignorep := fiacre_graphic_trace(19,ns_halted); null else // Trace index: 132, trace level: 2 // Btnode Action 'camera_tracking_btn17' returns failure. ignorep := fiacre_c_print_trace(132); ignorep := fiacre_graphic_trace(19,ns_failure); null end; btnode[camera_tracking_btn17].rstatus := failure; to done from halted wait [0,0]; // Trace index: 133, trace level: 2 // Btnode Action 'camera_tracking_btn17' has been halted. ignorep := fiacre_c_print_trace(133); report_halted := true; to failure from running wait [0,0]; // Trace index: 134, trace level: 3 // Btnode Action 'camera_tracking_btn17' returns running. ignorep := fiacre_c_print_trace(134); ignorep := fiacre_graphic_trace(19,ns_running); btnode[camera_tracking_btn17].rstatus := running; to done from done wait [0,0]; // Trace index: 135, trace level: 3 // Btnode Action 'camera_tracking_btn17' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(135); btnode[camera_tracking_btn17].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn19 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_goto_waypoint, dispatch, Action_goto_waypoint_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[goto_waypoint_btn19].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn19].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 136, trace level: 3 // Btnode Action 'goto_waypoint_btn19' has been called (:x -3 :y -3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(136); btnode[goto_waypoint_btn19].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 137, trace level: 3 // Btnode Action 'goto_waypoint_btn19' is being halted (:x -3 :y -3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(137); ignorep := fiacre_graphic_trace(21,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn19]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(21,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 2 btnode[goto_waypoint_btn19].ArgIndex := 2; // Trace index: 138, trace level: 3 // Btnode Action 'goto_waypoint_btn19' calling its action (start task) ignorep := fiacre_c_print_trace(138); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn19]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 139, trace level: 3 // Btnode Action 'goto_waypoint_btn19' returned (sync task) ignorep := fiacre_c_print_trace(139); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 140, trace level: 2 // Btnode Action 'goto_waypoint_btn19' (:x -3 :y -3 :z 5 :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(140); btnode[goto_waypoint_btn19].rstatus := success; ignorep := fiacre_graphic_trace(21,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 141, trace level: 2 // Btnode Action 'goto_waypoint_btn19' (:x -3 :y -3 :z 5 :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(141); ignorep := fiacre_graphic_trace(21,ns_halted); null else // Trace index: 142, trace level: 2 // Btnode Action 'goto_waypoint_btn19' (:x -3 :y -3 :z 5 :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(142); ignorep := fiacre_graphic_trace(21,ns_failure); null end; btnode[goto_waypoint_btn19].rstatus := failure; to done from halted wait [0,0]; // Trace index: 143, trace level: 2 // Btnode Action 'goto_waypoint_btn19' (:x -3 :y -3 :z 5 :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(143); report_halted := true; to failure from running wait [0,0]; // Trace index: 144, trace level: 3 // Btnode Action 'goto_waypoint_btn19' (:x -3 :y -3 :z 5 :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(144); ignorep := fiacre_graphic_trace(21,ns_running); btnode[goto_waypoint_btn19].rstatus := running; to done from done wait [0,0]; // Trace index: 145, trace level: 3 // Btnode Action 'goto_waypoint_btn19' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(145); btnode[goto_waypoint_btn19].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn20 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_goto_waypoint, dispatch, Action_goto_waypoint_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[goto_waypoint_btn20].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn20].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 146, trace level: 3 // Btnode Action 'goto_waypoint_btn20' has been called (:x -1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(146); btnode[goto_waypoint_btn20].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 147, trace level: 3 // Btnode Action 'goto_waypoint_btn20' is being halted (:x -1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(147); ignorep := fiacre_graphic_trace(22,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn20]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(22,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 3 btnode[goto_waypoint_btn20].ArgIndex := 3; // Trace index: 148, trace level: 3 // Btnode Action 'goto_waypoint_btn20' calling its action (start task) ignorep := fiacre_c_print_trace(148); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn20]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 149, trace level: 3 // Btnode Action 'goto_waypoint_btn20' returned (sync task) ignorep := fiacre_c_print_trace(149); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 150, trace level: 2 // Btnode Action 'goto_waypoint_btn20' (:x -1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(150); btnode[goto_waypoint_btn20].rstatus := success; ignorep := fiacre_graphic_trace(22,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 151, trace level: 2 // Btnode Action 'goto_waypoint_btn20' (:x -1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(151); ignorep := fiacre_graphic_trace(22,ns_halted); null else // Trace index: 152, trace level: 2 // Btnode Action 'goto_waypoint_btn20' (:x -1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(152); ignorep := fiacre_graphic_trace(22,ns_failure); null end; btnode[goto_waypoint_btn20].rstatus := failure; to done from halted wait [0,0]; // Trace index: 153, trace level: 2 // Btnode Action 'goto_waypoint_btn20' (:x -1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(153); report_halted := true; to failure from running wait [0,0]; // Trace index: 154, trace level: 3 // Btnode Action 'goto_waypoint_btn20' (:x -1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(154); ignorep := fiacre_graphic_trace(22,ns_running); btnode[goto_waypoint_btn20].rstatus := running; to done from done wait [0,0]; // Trace index: 155, trace level: 3 // Btnode Action 'goto_waypoint_btn20' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(155); btnode[goto_waypoint_btn20].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn21 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_goto_waypoint, dispatch, Action_goto_waypoint_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[goto_waypoint_btn21].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn21].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 156, trace level: 3 // Btnode Action 'goto_waypoint_btn21' has been called (:x 0 :y -3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(156); btnode[goto_waypoint_btn21].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 157, trace level: 3 // Btnode Action 'goto_waypoint_btn21' is being halted (:x 0 :y -3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(157); ignorep := fiacre_graphic_trace(23,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn21]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(23,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 4 btnode[goto_waypoint_btn21].ArgIndex := 4; // Trace index: 158, trace level: 3 // Btnode Action 'goto_waypoint_btn21' calling its action (start task) ignorep := fiacre_c_print_trace(158); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn21]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 159, trace level: 3 // Btnode Action 'goto_waypoint_btn21' returned (sync task) ignorep := fiacre_c_print_trace(159); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 160, trace level: 2 // Btnode Action 'goto_waypoint_btn21' (:x 0 :y -3 :z 5 :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(160); btnode[goto_waypoint_btn21].rstatus := success; ignorep := fiacre_graphic_trace(23,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 161, trace level: 2 // Btnode Action 'goto_waypoint_btn21' (:x 0 :y -3 :z 5 :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(161); ignorep := fiacre_graphic_trace(23,ns_halted); null else // Trace index: 162, trace level: 2 // Btnode Action 'goto_waypoint_btn21' (:x 0 :y -3 :z 5 :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(162); ignorep := fiacre_graphic_trace(23,ns_failure); null end; btnode[goto_waypoint_btn21].rstatus := failure; to done from halted wait [0,0]; // Trace index: 163, trace level: 2 // Btnode Action 'goto_waypoint_btn21' (:x 0 :y -3 :z 5 :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(163); report_halted := true; to failure from running wait [0,0]; // Trace index: 164, trace level: 3 // Btnode Action 'goto_waypoint_btn21' (:x 0 :y -3 :z 5 :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(164); ignorep := fiacre_graphic_trace(23,ns_running); btnode[goto_waypoint_btn21].rstatus := running; to done from done wait [0,0]; // Trace index: 165, trace level: 3 // Btnode Action 'goto_waypoint_btn21' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(165); btnode[goto_waypoint_btn21].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn22 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_goto_waypoint, dispatch, Action_goto_waypoint_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[goto_waypoint_btn22].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn22].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 166, trace level: 3 // Btnode Action 'goto_waypoint_btn22' has been called (:x 1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(166); btnode[goto_waypoint_btn22].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 167, trace level: 3 // Btnode Action 'goto_waypoint_btn22' is being halted (:x 1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(167); ignorep := fiacre_graphic_trace(24,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn22]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(24,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 5 btnode[goto_waypoint_btn22].ArgIndex := 5; // Trace index: 168, trace level: 3 // Btnode Action 'goto_waypoint_btn22' calling its action (start task) ignorep := fiacre_c_print_trace(168); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn22]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 169, trace level: 3 // Btnode Action 'goto_waypoint_btn22' returned (sync task) ignorep := fiacre_c_print_trace(169); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 170, trace level: 2 // Btnode Action 'goto_waypoint_btn22' (:x 1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(170); btnode[goto_waypoint_btn22].rstatus := success; ignorep := fiacre_graphic_trace(24,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 171, trace level: 2 // Btnode Action 'goto_waypoint_btn22' (:x 1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(171); ignorep := fiacre_graphic_trace(24,ns_halted); null else // Trace index: 172, trace level: 2 // Btnode Action 'goto_waypoint_btn22' (:x 1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(172); ignorep := fiacre_graphic_trace(24,ns_failure); null end; btnode[goto_waypoint_btn22].rstatus := failure; to done from halted wait [0,0]; // Trace index: 173, trace level: 2 // Btnode Action 'goto_waypoint_btn22' (:x 1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(173); report_halted := true; to failure from running wait [0,0]; // Trace index: 174, trace level: 3 // Btnode Action 'goto_waypoint_btn22' (:x 1.500000 :y 3 :z 5 :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(174); ignorep := fiacre_graphic_trace(24,ns_running); btnode[goto_waypoint_btn22].rstatus := running; to done from done wait [0,0]; // Trace index: 175, trace level: 3 // Btnode Action 'goto_waypoint_btn22' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(175); btnode[goto_waypoint_btn22].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn23 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_goto_waypoint, dispatch, Action_goto_waypoint_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[goto_waypoint_btn23].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn23].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 176, trace level: 3 // Btnode Action 'goto_waypoint_btn23' has been called (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(176); btnode[goto_waypoint_btn23].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 177, trace level: 3 // Btnode Action 'goto_waypoint_btn23' is being halted (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(177); ignorep := fiacre_graphic_trace(25,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn23]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(25,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 6 btnode[goto_waypoint_btn23].ArgIndex := 6; // Trace index: 178, trace level: 3 // Btnode Action 'goto_waypoint_btn23' calling its action (start task) ignorep := fiacre_c_print_trace(178); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn23]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 179, trace level: 3 // Btnode Action 'goto_waypoint_btn23' returned (sync task) ignorep := fiacre_c_print_trace(179); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 180, trace level: 2 // Btnode Action 'goto_waypoint_btn23' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(180); btnode[goto_waypoint_btn23].rstatus := success; ignorep := fiacre_graphic_trace(25,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 181, trace level: 2 // Btnode Action 'goto_waypoint_btn23' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(181); ignorep := fiacre_graphic_trace(25,ns_halted); null else // Trace index: 182, trace level: 2 // Btnode Action 'goto_waypoint_btn23' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(182); ignorep := fiacre_graphic_trace(25,ns_failure); null end; btnode[goto_waypoint_btn23].rstatus := failure; to done from halted wait [0,0]; // Trace index: 183, trace level: 2 // Btnode Action 'goto_waypoint_btn23' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(183); report_halted := true; to failure from running wait [0,0]; // Trace index: 184, trace level: 3 // Btnode Action 'goto_waypoint_btn23' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(184); ignorep := fiacre_graphic_trace(25,ns_running); btnode[goto_waypoint_btn23].rstatus := running; to done from done wait [0,0]; // Trace index: 185, trace level: 3 // Btnode Action 'goto_waypoint_btn23' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(185); btnode[goto_waypoint_btn23].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn24 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_goto_waypoint, dispatch, Action_goto_waypoint_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[goto_waypoint_btn24].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn24].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 186, trace level: 3 // Btnode Action 'goto_waypoint_btn24' has been called (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(186); btnode[goto_waypoint_btn24].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 187, trace level: 3 // Btnode Action 'goto_waypoint_btn24' is being halted (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(187); ignorep := fiacre_graphic_trace(26,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn24]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(26,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 7 btnode[goto_waypoint_btn24].ArgIndex := 7; // Trace index: 188, trace level: 3 // Btnode Action 'goto_waypoint_btn24' calling its action (start task) ignorep := fiacre_c_print_trace(188); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn24]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 189, trace level: 3 // Btnode Action 'goto_waypoint_btn24' returned (sync task) ignorep := fiacre_c_print_trace(189); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 190, trace level: 2 // Btnode Action 'goto_waypoint_btn24' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(190); btnode[goto_waypoint_btn24].rstatus := success; ignorep := fiacre_graphic_trace(26,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 191, trace level: 2 // Btnode Action 'goto_waypoint_btn24' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(191); ignorep := fiacre_graphic_trace(26,ns_halted); null else // Trace index: 192, trace level: 2 // Btnode Action 'goto_waypoint_btn24' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(192); ignorep := fiacre_graphic_trace(26,ns_failure); null end; btnode[goto_waypoint_btn24].rstatus := failure; to done from halted wait [0,0]; // Trace index: 193, trace level: 2 // Btnode Action 'goto_waypoint_btn24' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(193); report_halted := true; to failure from running wait [0,0]; // Trace index: 194, trace level: 3 // Btnode Action 'goto_waypoint_btn24' (:x 3 :y -3 :z 5 :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(194); ignorep := fiacre_graphic_trace(26,ns_running); btnode[goto_waypoint_btn24].rstatus := running; to done from done wait [0,0]; // Trace index: 195, trace level: 3 // Btnode Action 'goto_waypoint_btn24' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(195); btnode[goto_waypoint_btn24].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Sequence37_btn18 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, goto_waypoint_btn19, goto_waypoint_btn19_done, goto_waypoint_btn20, goto_waypoint_btn20_done, goto_waypoint_btn21, goto_waypoint_btn21_done, goto_waypoint_btn22, goto_waypoint_btn22_done, goto_waypoint_btn23, goto_waypoint_btn23_done, goto_waypoint_btn24, goto_waypoint_btn24_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_seq: 1..7 := 1 from start_ wait [0,0]; on (btnode[Sequence37_btn18].caller <> None); report_halted := false; if (btnode[Sequence37_btn18].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 196, trace level: 3 // Btnode Sequence 'Sequence37_btn18' has been called ignorep := fiacre_c_print_trace(196); btnode[Sequence37_btn18].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 197, trace level: 3 // Btnode Sequence 'Sequence37_btn18' is being halted ignorep := fiacre_c_print_trace(197); ignorep := fiacre_graphic_trace(20,ns_halt); if (btnode[goto_waypoint_btn19].rstatus = running) then // Trace index: 198, trace level: 4 // Btnode Sequence 'Sequence37_btn18' halting Action 'goto_waypoint_btn19' ignorep := fiacre_c_print_trace(198); btnode[goto_waypoint_btn19].rstatus := halt_me; btnode[goto_waypoint_btn19].caller := caller_Sequence37_btn18; to halt_wait end; if (btnode[goto_waypoint_btn20].rstatus = running) then // Trace index: 199, trace level: 4 // Btnode Sequence 'Sequence37_btn18' halting Action 'goto_waypoint_btn20' ignorep := fiacre_c_print_trace(199); btnode[goto_waypoint_btn20].rstatus := halt_me; btnode[goto_waypoint_btn20].caller := caller_Sequence37_btn18; to halt_wait end; if (btnode[goto_waypoint_btn21].rstatus = running) then // Trace index: 200, trace level: 4 // Btnode Sequence 'Sequence37_btn18' halting Action 'goto_waypoint_btn21' ignorep := fiacre_c_print_trace(200); btnode[goto_waypoint_btn21].rstatus := halt_me; btnode[goto_waypoint_btn21].caller := caller_Sequence37_btn18; to halt_wait end; if (btnode[goto_waypoint_btn22].rstatus = running) then // Trace index: 201, trace level: 4 // Btnode Sequence 'Sequence37_btn18' halting Action 'goto_waypoint_btn22' ignorep := fiacre_c_print_trace(201); btnode[goto_waypoint_btn22].rstatus := halt_me; btnode[goto_waypoint_btn22].caller := caller_Sequence37_btn18; to halt_wait end; if (btnode[goto_waypoint_btn23].rstatus = running) then // Trace index: 202, trace level: 4 // Btnode Sequence 'Sequence37_btn18' halting Action 'goto_waypoint_btn23' ignorep := fiacre_c_print_trace(202); btnode[goto_waypoint_btn23].rstatus := halt_me; btnode[goto_waypoint_btn23].caller := caller_Sequence37_btn18; to halt_wait end; if (btnode[goto_waypoint_btn24].rstatus = running) then // Trace index: 203, trace level: 4 // Btnode Sequence 'Sequence37_btn18' halting Action 'goto_waypoint_btn24' ignorep := fiacre_c_print_trace(203); btnode[goto_waypoint_btn24].rstatus := halt_me; btnode[goto_waypoint_btn24].caller := caller_Sequence37_btn18; to halt_wait end; to halted from halt_wait on ( (btnode[goto_waypoint_btn19].caller = None) and (btnode[goto_waypoint_btn20].caller = None) and (btnode[goto_waypoint_btn21].caller = None) and (btnode[goto_waypoint_btn22].caller = None) and (btnode[goto_waypoint_btn23].caller = None) and (btnode[goto_waypoint_btn24].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(20,ns_ticked); if (next_seq = 1) then to goto_waypoint_btn19 end; if (next_seq = 2) then to goto_waypoint_btn20 end; if (next_seq = 3) then to goto_waypoint_btn21 end; if (next_seq = 4) then to goto_waypoint_btn22 end; if (next_seq = 5) then to goto_waypoint_btn23 end; if (next_seq = 6) then to goto_waypoint_btn24 end; to error from goto_waypoint_btn19 wait [0,0]; // Trace index: 204, trace level: 4 // Btnode Sequence 'Sequence37_btn18' calling Action 'goto_waypoint_btn19' ignorep := fiacre_c_print_trace(204); btnode[goto_waypoint_btn19].caller := caller_Sequence37_btn18; ignorep := fiacre_graphic_trace(20,ns_tick_passed); to goto_waypoint_btn19_done from goto_waypoint_btn19_done wait [0,0]; on (btnode[goto_waypoint_btn19].caller = None); ignorep := fiacre_graphic_trace(20,ns_ticked); // Trace index: 205, trace level: 4 // Btnode Sequence 'Sequence37_btn18' getting control back from Action 'goto_waypoint_btn19' ignorep := fiacre_c_print_trace(205); if (btnode[goto_waypoint_btn19].rstatus = success) then to goto_waypoint_btn20 elsif (btnode[goto_waypoint_btn19].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn19].rstatus = running) then next_seq := 1; to running else to error end from goto_waypoint_btn20 wait [0,0]; // Trace index: 206, trace level: 4 // Btnode Sequence 'Sequence37_btn18' calling Action 'goto_waypoint_btn20' ignorep := fiacre_c_print_trace(206); btnode[goto_waypoint_btn20].caller := caller_Sequence37_btn18; ignorep := fiacre_graphic_trace(20,ns_tick_passed); to goto_waypoint_btn20_done from goto_waypoint_btn20_done wait [0,0]; on (btnode[goto_waypoint_btn20].caller = None); ignorep := fiacre_graphic_trace(20,ns_ticked); // Trace index: 207, trace level: 4 // Btnode Sequence 'Sequence37_btn18' getting control back from Action 'goto_waypoint_btn20' ignorep := fiacre_c_print_trace(207); if (btnode[goto_waypoint_btn20].rstatus = success) then to goto_waypoint_btn21 elsif (btnode[goto_waypoint_btn20].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn20].rstatus = running) then next_seq := 2; to running else to error end from goto_waypoint_btn21 wait [0,0]; // Trace index: 208, trace level: 4 // Btnode Sequence 'Sequence37_btn18' calling Action 'goto_waypoint_btn21' ignorep := fiacre_c_print_trace(208); btnode[goto_waypoint_btn21].caller := caller_Sequence37_btn18; ignorep := fiacre_graphic_trace(20,ns_tick_passed); to goto_waypoint_btn21_done from goto_waypoint_btn21_done wait [0,0]; on (btnode[goto_waypoint_btn21].caller = None); ignorep := fiacre_graphic_trace(20,ns_ticked); // Trace index: 209, trace level: 4 // Btnode Sequence 'Sequence37_btn18' getting control back from Action 'goto_waypoint_btn21' ignorep := fiacre_c_print_trace(209); if (btnode[goto_waypoint_btn21].rstatus = success) then to goto_waypoint_btn22 elsif (btnode[goto_waypoint_btn21].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn21].rstatus = running) then next_seq := 3; to running else to error end from goto_waypoint_btn22 wait [0,0]; // Trace index: 210, trace level: 4 // Btnode Sequence 'Sequence37_btn18' calling Action 'goto_waypoint_btn22' ignorep := fiacre_c_print_trace(210); btnode[goto_waypoint_btn22].caller := caller_Sequence37_btn18; ignorep := fiacre_graphic_trace(20,ns_tick_passed); to goto_waypoint_btn22_done from goto_waypoint_btn22_done wait [0,0]; on (btnode[goto_waypoint_btn22].caller = None); ignorep := fiacre_graphic_trace(20,ns_ticked); // Trace index: 211, trace level: 4 // Btnode Sequence 'Sequence37_btn18' getting control back from Action 'goto_waypoint_btn22' ignorep := fiacre_c_print_trace(211); if (btnode[goto_waypoint_btn22].rstatus = success) then to goto_waypoint_btn23 elsif (btnode[goto_waypoint_btn22].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn22].rstatus = running) then next_seq := 4; to running else to error end from goto_waypoint_btn23 wait [0,0]; // Trace index: 212, trace level: 4 // Btnode Sequence 'Sequence37_btn18' calling Action 'goto_waypoint_btn23' ignorep := fiacre_c_print_trace(212); btnode[goto_waypoint_btn23].caller := caller_Sequence37_btn18; ignorep := fiacre_graphic_trace(20,ns_tick_passed); to goto_waypoint_btn23_done from goto_waypoint_btn23_done wait [0,0]; on (btnode[goto_waypoint_btn23].caller = None); ignorep := fiacre_graphic_trace(20,ns_ticked); // Trace index: 213, trace level: 4 // Btnode Sequence 'Sequence37_btn18' getting control back from Action 'goto_waypoint_btn23' ignorep := fiacre_c_print_trace(213); if (btnode[goto_waypoint_btn23].rstatus = success) then to goto_waypoint_btn24 elsif (btnode[goto_waypoint_btn23].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn23].rstatus = running) then next_seq := 5; to running else to error end from goto_waypoint_btn24 wait [0,0]; // Trace index: 214, trace level: 4 // Btnode Sequence 'Sequence37_btn18' calling Action 'goto_waypoint_btn24' ignorep := fiacre_c_print_trace(214); btnode[goto_waypoint_btn24].caller := caller_Sequence37_btn18; ignorep := fiacre_graphic_trace(20,ns_tick_passed); to goto_waypoint_btn24_done from goto_waypoint_btn24_done wait [0,0]; on (btnode[goto_waypoint_btn24].caller = None); ignorep := fiacre_graphic_trace(20,ns_ticked); // Trace index: 215, trace level: 4 // Btnode Sequence 'Sequence37_btn18' getting control back from Action 'goto_waypoint_btn24' ignorep := fiacre_c_print_trace(215); if (btnode[goto_waypoint_btn24].rstatus = success) then next_seq := 1; to success elsif (btnode[goto_waypoint_btn24].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn24].rstatus = running) then next_seq := 6; to running else to error end from success wait [0,0]; // Trace index: 216, trace level: 2 // Btnode Sequence 'Sequence37_btn18' returns success. ignorep := fiacre_c_print_trace(216); btnode[Sequence37_btn18].rstatus := success; ignorep := fiacre_graphic_trace(20,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 217, trace level: 2 // Btnode Sequence 'Sequence37_btn18' returns halted failure. ignorep := fiacre_c_print_trace(217); ignorep := fiacre_graphic_trace(20,ns_halted); null else // Trace index: 218, trace level: 2 // Btnode Sequence 'Sequence37_btn18' returns failure. ignorep := fiacre_c_print_trace(218); ignorep := fiacre_graphic_trace(20,ns_failure); null end; btnode[Sequence37_btn18].rstatus := failure; to done from halted wait [0,0]; // Trace index: 219, trace level: 2 // Btnode Sequence 'Sequence37_btn18' has been halted. ignorep := fiacre_c_print_trace(219); next_seq := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 220, trace level: 3 // Btnode Sequence 'Sequence37_btn18' returns running. ignorep := fiacre_c_print_trace(220); ignorep := fiacre_graphic_trace(20,ns_running); btnode[Sequence37_btn18].rstatus := running; to done from done wait [0,0]; // Trace index: 221, trace level: 3 // Btnode Sequence 'Sequence37_btn18' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(221); btnode[Sequence37_btn18].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Parallel33_btn16 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, Parallel33_btn16_par, Parallel33_btn16_par_done, done, ether var ignorep: nat, ignoreb: bool, success_so_far: 0..2 := 0, failed_so_far: 0..2 := 0, runningb:bool := false, halt_called_by_me:bool := false, force_success:bool := false, report_halted:bool := false from start_ wait [0,0]; on (btnode[Parallel33_btn16].caller <> None); report_halted := false; if (btnode[Parallel33_btn16].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 222, trace level: 3 // Btnode Parallel 'Parallel33_btn16' has been called ignorep := fiacre_c_print_trace(222); btnode[Parallel33_btn16].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 223, trace level: 3 // Btnode Parallel 'Parallel33_btn16' is being halted ignorep := fiacre_c_print_trace(223); ignorep := fiacre_graphic_trace(18,ns_halt); if (btnode[camera_tracking_btn17].rstatus = running) then // Trace index: 224, trace level: 4 // Btnode Parallel 'Parallel33_btn16' halting Action 'camera_tracking_btn17' ignorep := fiacre_c_print_trace(224); btnode[camera_tracking_btn17].rstatus := halt_me; btnode[camera_tracking_btn17].caller := caller_Parallel33_btn16 end; if (btnode[Sequence37_btn18].rstatus = running) then // Trace index: 225, trace level: 4 // Btnode Parallel 'Parallel33_btn16' halting Sequence 'Sequence37_btn18' ignorep := fiacre_c_print_trace(225); btnode[Sequence37_btn18].rstatus := halt_me; btnode[Sequence37_btn18].caller := caller_Parallel33_btn16 end; to halt_wait from halt_wait on ( (btnode[camera_tracking_btn17].caller = None) and (btnode[Sequence37_btn18].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(18,ns_ticked); to Parallel33_btn16_par from Parallel33_btn16_par wait [0,0]; if (runningb) then if (btnode[camera_tracking_btn17].rstatus = running) then // Trace index: 226, trace level: 4 // Btnode Parallel 'Parallel33_btn16' calling again Action 'camera_tracking_btn17' ignorep := fiacre_c_print_trace(226); btnode[camera_tracking_btn17].caller := caller_Parallel33_btn16 end; if (btnode[Sequence37_btn18].rstatus = running) then // Trace index: 227, trace level: 4 // Btnode Parallel 'Parallel33_btn16' calling again Sequence 'Sequence37_btn18' ignorep := fiacre_c_print_trace(227); btnode[Sequence37_btn18].caller := caller_Parallel33_btn16 end; null else // Trace index: 228, trace level: 4 // Btnode Parallel 'Parallel33_btn16' calling Action 'camera_tracking_btn17' ignorep := fiacre_c_print_trace(228); btnode[camera_tracking_btn17].caller := caller_Parallel33_btn16; // Trace index: 229, trace level: 4 // Btnode Parallel 'Parallel33_btn16' calling Sequence 'Sequence37_btn18' ignorep := fiacre_c_print_trace(229); btnode[Sequence37_btn18].caller := caller_Parallel33_btn16; null end; ignorep := fiacre_graphic_trace(18,ns_tick_passed); to Parallel33_btn16_par_done from Parallel33_btn16_par_done wait [0,0]; on ( (btnode[camera_tracking_btn17].caller = None) and (btnode[Sequence37_btn18].caller = None) and true); ignorep := fiacre_graphic_trace(18,ns_ticked); // Trace index: 230, trace level: 4 // Btnode Parallel 'Parallel33_btn16' getting control back from Action 'camera_tracking_btn17' ignorep := fiacre_c_print_trace(230); // Trace index: 231, trace level: 4 // Btnode Parallel 'Parallel33_btn16' getting control back from Sequence 'Sequence37_btn18' ignorep := fiacre_c_print_trace(231); success_so_far := 0; failed_so_far := 0; if (btnode[camera_tracking_btn17].rstatus = success) then success_so_far := success_so_far + 1 elsif (btnode[camera_tracking_btn17].rstatus = failure) then failed_so_far := failed_so_far + 1 end; if (btnode[Sequence37_btn18].rstatus = success) then success_so_far := success_so_far + 1 elsif (btnode[Sequence37_btn18].rstatus = failure) then failed_so_far := failed_so_far + 1 end; if (success_so_far >= 1) then // Trace index: 232, trace level: 3 // Btnode Parallel 'Parallel33_btn16' has enough success: >= 1 ignorep := fiacre_c_print_trace(232); halt_called_by_me := true; force_success := true; to halt elsif (failed_so_far > 1) then // Trace index: 233, trace level: 3 // Btnode Parallel 'Parallel33_btn16' has too many failure(s): > 1 ignorep := fiacre_c_print_trace(233); to failure else runningb := true; to running end from success wait [0,0]; // Trace index: 234, trace level: 2 // Btnode Parallel 'Parallel33_btn16' returns success. ignorep := fiacre_c_print_trace(234); btnode[Parallel33_btn16].rstatus := success; ignorep := fiacre_graphic_trace(18,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 235, trace level: 2 // Btnode Parallel 'Parallel33_btn16' returns halted failure. ignorep := fiacre_c_print_trace(235); ignorep := fiacre_graphic_trace(18,ns_halted); null else // Trace index: 236, trace level: 2 // Btnode Parallel 'Parallel33_btn16' returns failure. ignorep := fiacre_c_print_trace(236); ignorep := fiacre_graphic_trace(18,ns_failure); null end; btnode[Parallel33_btn16].rstatus := failure; to done from halted wait [0,0]; // Trace index: 237, trace level: 2 // Btnode Parallel 'Parallel33_btn16' has been halted. ignorep := fiacre_c_print_trace(237); if (halt_called_by_me) then if (force_success) then to success else to failure end else report_halted := true; to failure end from running wait [0,0]; // Trace index: 238, trace level: 3 // Btnode Parallel 'Parallel33_btn16' returns running. ignorep := fiacre_c_print_trace(238); ignorep := fiacre_graphic_trace(18,ns_running); btnode[Parallel33_btn16].rstatus := running; to done from done wait [0,0]; halt_called_by_me := false; force_success := false; // Trace index: 239, trace level: 3 // Btnode Parallel 'Parallel33_btn16' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(239); btnode[Parallel33_btn16].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn25 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_goto_waypoint, dispatch, Action_goto_waypoint_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[goto_waypoint_btn25].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn25].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 240, trace level: 3 // Btnode Action 'goto_waypoint_btn25' has been called (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) ignorep := fiacre_c_print_trace(240); btnode[goto_waypoint_btn25].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 241, trace level: 3 // Btnode Action 'goto_waypoint_btn25' is being halted (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) ignorep := fiacre_c_print_trace(241); ignorep := fiacre_graphic_trace(27,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn25]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(27,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 8 btnode[goto_waypoint_btn25].ArgIndex := 8; // Trace index: 242, trace level: 3 // Btnode Action 'goto_waypoint_btn25' calling its action (start task) ignorep := fiacre_c_print_trace(242); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn25]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 243, trace level: 3 // Btnode Action 'goto_waypoint_btn25' returned (sync task) ignorep := fiacre_c_print_trace(243); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 244, trace level: 2 // Btnode Action 'goto_waypoint_btn25' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(244); btnode[goto_waypoint_btn25].rstatus := success; ignorep := fiacre_graphic_trace(27,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 245, trace level: 2 // Btnode Action 'goto_waypoint_btn25' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(245); ignorep := fiacre_graphic_trace(27,ns_halted); null else // Trace index: 246, trace level: 2 // Btnode Action 'goto_waypoint_btn25' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(246); ignorep := fiacre_graphic_trace(27,ns_failure); null end; btnode[goto_waypoint_btn25].rstatus := failure; to done from halted wait [0,0]; // Trace index: 247, trace level: 2 // Btnode Action 'goto_waypoint_btn25' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(247); report_halted := true; to failure from running wait [0,0]; // Trace index: 248, trace level: 3 // Btnode Action 'goto_waypoint_btn25' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(248); ignorep := fiacre_graphic_trace(27,ns_running); btnode[goto_waypoint_btn25].rstatus := running; to done from done wait [0,0]; // Trace index: 249, trace level: 3 // Btnode Action 'goto_waypoint_btn25' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(249); btnode[goto_waypoint_btn25].caller := None; to ether from ether wait [0,0]; to start_ process btnode_land_btn26 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_land, dispatch, Action_land_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[land_btn26].caller <> None); report_halted := false; if (btnode[land_btn26].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 250, trace level: 3 // Btnode Action 'land_btn26' has been called ignorep := fiacre_c_print_trace(250); btnode[land_btn26].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 251, trace level: 3 // Btnode Action 'land_btn26' is being halted ignorep := fiacre_c_print_trace(251); ignorep := fiacre_graphic_trace(28,ns_halt); ignoreb := Fiacre_Action_land_halt (btnode[land_btn26]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(28,ns_ticked); to Action_land from Action_land // Trace index: 252, trace level: 3 // Btnode Action 'land_btn26' calling its action (start task) ignorep := fiacre_c_print_trace(252); start Fiacre_Action_land_task (btnode[land_btn26]); to Action_land_sync from Action_land_sync sync Fiacre_Action_land_task ret_val; // Trace index: 253, trace level: 3 // Btnode Action 'land_btn26' returned (sync task) ignorep := fiacre_c_print_trace(253); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 254, trace level: 2 // Btnode Action 'land_btn26' returns success. ignorep := fiacre_c_print_trace(254); btnode[land_btn26].rstatus := success; ignorep := fiacre_graphic_trace(28,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 255, trace level: 2 // Btnode Action 'land_btn26' returns halted failure. ignorep := fiacre_c_print_trace(255); ignorep := fiacre_graphic_trace(28,ns_halted); null else // Trace index: 256, trace level: 2 // Btnode Action 'land_btn26' returns failure. ignorep := fiacre_c_print_trace(256); ignorep := fiacre_graphic_trace(28,ns_failure); null end; btnode[land_btn26].rstatus := failure; to done from halted wait [0,0]; // Trace index: 257, trace level: 2 // Btnode Action 'land_btn26' has been halted. ignorep := fiacre_c_print_trace(257); report_halted := true; to failure from running wait [0,0]; // Trace index: 258, trace level: 3 // Btnode Action 'land_btn26' returns running. ignorep := fiacre_c_print_trace(258); ignorep := fiacre_graphic_trace(28,ns_running); btnode[land_btn26].rstatus := running; to done from done wait [0,0]; // Trace index: 259, trace level: 3 // Btnode Action 'land_btn26' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(259); btnode[land_btn26].caller := None; to ether from ether wait [0,0]; to start_ process btnode_shutdown_drone_btn27 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Action_shutdown_drone, dispatch, Action_shutdown_drone_sync, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, ret_val: ret_status from start_ wait [0,0]; on (btnode[shutdown_drone_btn27].caller <> None); report_halted := false; if (btnode[shutdown_drone_btn27].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 260, trace level: 3 // Btnode Action 'shutdown_drone_btn27' has been called ignorep := fiacre_c_print_trace(260); btnode[shutdown_drone_btn27].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 261, trace level: 3 // Btnode Action 'shutdown_drone_btn27' is being halted ignorep := fiacre_c_print_trace(261); ignorep := fiacre_graphic_trace(29,ns_halt); ignoreb := Fiacre_Action_shutdown_drone_halt (btnode[shutdown_drone_btn27]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(29,ns_ticked); to Action_shutdown_drone from Action_shutdown_drone // Trace index: 262, trace level: 3 // Btnode Action 'shutdown_drone_btn27' calling its action (start task) ignorep := fiacre_c_print_trace(262); start Fiacre_Action_shutdown_drone_task (btnode[shutdown_drone_btn27]); to Action_shutdown_drone_sync from Action_shutdown_drone_sync sync Fiacre_Action_shutdown_drone_task ret_val; // Trace index: 263, trace level: 3 // Btnode Action 'shutdown_drone_btn27' returned (sync task) ignorep := fiacre_c_print_trace(263); to dispatch from dispatch wait [0,0]; if (ret_val = success) then to success elsif (ret_val = failure) then to failure elsif (ret_val = running) then to running else to error // a priori unreachable end from success wait [0,0]; // Trace index: 264, trace level: 2 // Btnode Action 'shutdown_drone_btn27' returns success. ignorep := fiacre_c_print_trace(264); btnode[shutdown_drone_btn27].rstatus := success; ignorep := fiacre_graphic_trace(29,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 265, trace level: 2 // Btnode Action 'shutdown_drone_btn27' returns halted failure. ignorep := fiacre_c_print_trace(265); ignorep := fiacre_graphic_trace(29,ns_halted); null else // Trace index: 266, trace level: 2 // Btnode Action 'shutdown_drone_btn27' returns failure. ignorep := fiacre_c_print_trace(266); ignorep := fiacre_graphic_trace(29,ns_failure); null end; btnode[shutdown_drone_btn27].rstatus := failure; to done from halted wait [0,0]; // Trace index: 267, trace level: 2 // Btnode Action 'shutdown_drone_btn27' has been halted. ignorep := fiacre_c_print_trace(267); report_halted := true; to failure from running wait [0,0]; // Trace index: 268, trace level: 3 // Btnode Action 'shutdown_drone_btn27' returns running. ignorep := fiacre_c_print_trace(268); ignorep := fiacre_graphic_trace(29,ns_running); btnode[shutdown_drone_btn27].rstatus := running; to done from done wait [0,0]; // Trace index: 269, trace level: 3 // Btnode Action 'shutdown_drone_btn27' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(269); btnode[shutdown_drone_btn27].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Sequence29_btn14 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, takeoff_btn15, takeoff_btn15_done, Parallel33_btn16, Parallel33_btn16_done, goto_waypoint_btn25, goto_waypoint_btn25_done, land_btn26, land_btn26_done, shutdown_drone_btn27, shutdown_drone_btn27_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_seq: 1..6 := 1 from start_ wait [0,0]; on (btnode[Sequence29_btn14].caller <> None); report_halted := false; if (btnode[Sequence29_btn14].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 270, trace level: 3 // Btnode Sequence 'Sequence29_btn14' has been called ignorep := fiacre_c_print_trace(270); btnode[Sequence29_btn14].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 271, trace level: 3 // Btnode Sequence 'Sequence29_btn14' is being halted ignorep := fiacre_c_print_trace(271); ignorep := fiacre_graphic_trace(16,ns_halt); if (btnode[takeoff_btn15].rstatus = running) then // Trace index: 272, trace level: 4 // Btnode Sequence 'Sequence29_btn14' halting Action 'takeoff_btn15' ignorep := fiacre_c_print_trace(272); btnode[takeoff_btn15].rstatus := halt_me; btnode[takeoff_btn15].caller := caller_Sequence29_btn14; to halt_wait end; if (btnode[Parallel33_btn16].rstatus = running) then // Trace index: 273, trace level: 4 // Btnode Sequence 'Sequence29_btn14' halting Parallel 'Parallel33_btn16' ignorep := fiacre_c_print_trace(273); btnode[Parallel33_btn16].rstatus := halt_me; btnode[Parallel33_btn16].caller := caller_Sequence29_btn14; to halt_wait end; if (btnode[goto_waypoint_btn25].rstatus = running) then // Trace index: 274, trace level: 4 // Btnode Sequence 'Sequence29_btn14' halting Action 'goto_waypoint_btn25' ignorep := fiacre_c_print_trace(274); btnode[goto_waypoint_btn25].rstatus := halt_me; btnode[goto_waypoint_btn25].caller := caller_Sequence29_btn14; to halt_wait end; if (btnode[land_btn26].rstatus = running) then // Trace index: 275, trace level: 4 // Btnode Sequence 'Sequence29_btn14' halting Action 'land_btn26' ignorep := fiacre_c_print_trace(275); btnode[land_btn26].rstatus := halt_me; btnode[land_btn26].caller := caller_Sequence29_btn14; to halt_wait end; if (btnode[shutdown_drone_btn27].rstatus = running) then // Trace index: 276, trace level: 4 // Btnode Sequence 'Sequence29_btn14' halting Action 'shutdown_drone_btn27' ignorep := fiacre_c_print_trace(276); btnode[shutdown_drone_btn27].rstatus := halt_me; btnode[shutdown_drone_btn27].caller := caller_Sequence29_btn14; to halt_wait end; to halted from halt_wait on ( (btnode[takeoff_btn15].caller = None) and (btnode[Parallel33_btn16].caller = None) and (btnode[goto_waypoint_btn25].caller = None) and (btnode[land_btn26].caller = None) and (btnode[shutdown_drone_btn27].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(16,ns_ticked); if (next_seq = 1) then to takeoff_btn15 end; if (next_seq = 2) then to Parallel33_btn16 end; if (next_seq = 3) then to goto_waypoint_btn25 end; if (next_seq = 4) then to land_btn26 end; if (next_seq = 5) then to shutdown_drone_btn27 end; to error from takeoff_btn15 wait [0,0]; // Trace index: 277, trace level: 4 // Btnode Sequence 'Sequence29_btn14' calling Action 'takeoff_btn15' ignorep := fiacre_c_print_trace(277); btnode[takeoff_btn15].caller := caller_Sequence29_btn14; ignorep := fiacre_graphic_trace(16,ns_tick_passed); to takeoff_btn15_done from takeoff_btn15_done wait [0,0]; on (btnode[takeoff_btn15].caller = None); ignorep := fiacre_graphic_trace(16,ns_ticked); // Trace index: 278, trace level: 4 // Btnode Sequence 'Sequence29_btn14' getting control back from Action 'takeoff_btn15' ignorep := fiacre_c_print_trace(278); if (btnode[takeoff_btn15].rstatus = success) then to Parallel33_btn16 elsif (btnode[takeoff_btn15].rstatus = failure) then next_seq := 1; to failure elsif (btnode[takeoff_btn15].rstatus = running) then next_seq := 1; to running else to error end from Parallel33_btn16 wait [0,0]; // Trace index: 279, trace level: 4 // Btnode Sequence 'Sequence29_btn14' calling Parallel 'Parallel33_btn16' ignorep := fiacre_c_print_trace(279); btnode[Parallel33_btn16].caller := caller_Sequence29_btn14; ignorep := fiacre_graphic_trace(16,ns_tick_passed); to Parallel33_btn16_done from Parallel33_btn16_done wait [0,0]; on (btnode[Parallel33_btn16].caller = None); ignorep := fiacre_graphic_trace(16,ns_ticked); // Trace index: 280, trace level: 4 // Btnode Sequence 'Sequence29_btn14' getting control back from Parallel 'Parallel33_btn16' ignorep := fiacre_c_print_trace(280); if (btnode[Parallel33_btn16].rstatus = success) then to goto_waypoint_btn25 elsif (btnode[Parallel33_btn16].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Parallel33_btn16].rstatus = running) then next_seq := 2; to running else to error end from goto_waypoint_btn25 wait [0,0]; // Trace index: 281, trace level: 4 // Btnode Sequence 'Sequence29_btn14' calling Action 'goto_waypoint_btn25' ignorep := fiacre_c_print_trace(281); btnode[goto_waypoint_btn25].caller := caller_Sequence29_btn14; ignorep := fiacre_graphic_trace(16,ns_tick_passed); to goto_waypoint_btn25_done from goto_waypoint_btn25_done wait [0,0]; on (btnode[goto_waypoint_btn25].caller = None); ignorep := fiacre_graphic_trace(16,ns_ticked); // Trace index: 282, trace level: 4 // Btnode Sequence 'Sequence29_btn14' getting control back from Action 'goto_waypoint_btn25' ignorep := fiacre_c_print_trace(282); if (btnode[goto_waypoint_btn25].rstatus = success) then to land_btn26 elsif (btnode[goto_waypoint_btn25].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn25].rstatus = running) then next_seq := 3; to running else to error end from land_btn26 wait [0,0]; // Trace index: 283, trace level: 4 // Btnode Sequence 'Sequence29_btn14' calling Action 'land_btn26' ignorep := fiacre_c_print_trace(283); btnode[land_btn26].caller := caller_Sequence29_btn14; ignorep := fiacre_graphic_trace(16,ns_tick_passed); to land_btn26_done from land_btn26_done wait [0,0]; on (btnode[land_btn26].caller = None); ignorep := fiacre_graphic_trace(16,ns_ticked); // Trace index: 284, trace level: 4 // Btnode Sequence 'Sequence29_btn14' getting control back from Action 'land_btn26' ignorep := fiacre_c_print_trace(284); if (btnode[land_btn26].rstatus = success) then to shutdown_drone_btn27 elsif (btnode[land_btn26].rstatus = failure) then next_seq := 1; to failure elsif (btnode[land_btn26].rstatus = running) then next_seq := 4; to running else to error end from shutdown_drone_btn27 wait [0,0]; // Trace index: 285, trace level: 4 // Btnode Sequence 'Sequence29_btn14' calling Action 'shutdown_drone_btn27' ignorep := fiacre_c_print_trace(285); btnode[shutdown_drone_btn27].caller := caller_Sequence29_btn14; ignorep := fiacre_graphic_trace(16,ns_tick_passed); to shutdown_drone_btn27_done from shutdown_drone_btn27_done wait [0,0]; on (btnode[shutdown_drone_btn27].caller = None); ignorep := fiacre_graphic_trace(16,ns_ticked); // Trace index: 286, trace level: 4 // Btnode Sequence 'Sequence29_btn14' getting control back from Action 'shutdown_drone_btn27' ignorep := fiacre_c_print_trace(286); if (btnode[shutdown_drone_btn27].rstatus = success) then next_seq := 1; to success elsif (btnode[shutdown_drone_btn27].rstatus = failure) then next_seq := 1; to failure elsif (btnode[shutdown_drone_btn27].rstatus = running) then next_seq := 5; to running else to error end from success wait [0,0]; // Trace index: 287, trace level: 2 // Btnode Sequence 'Sequence29_btn14' returns success. ignorep := fiacre_c_print_trace(287); btnode[Sequence29_btn14].rstatus := success; ignorep := fiacre_graphic_trace(16,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 288, trace level: 2 // Btnode Sequence 'Sequence29_btn14' returns halted failure. ignorep := fiacre_c_print_trace(288); ignorep := fiacre_graphic_trace(16,ns_halted); null else // Trace index: 289, trace level: 2 // Btnode Sequence 'Sequence29_btn14' returns failure. ignorep := fiacre_c_print_trace(289); ignorep := fiacre_graphic_trace(16,ns_failure); null end; btnode[Sequence29_btn14].rstatus := failure; to done from halted wait [0,0]; // Trace index: 290, trace level: 2 // Btnode Sequence 'Sequence29_btn14' has been halted. ignorep := fiacre_c_print_trace(290); next_seq := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 291, trace level: 3 // Btnode Sequence 'Sequence29_btn14' returns running. ignorep := fiacre_c_print_trace(291); ignorep := fiacre_graphic_trace(16,ns_running); btnode[Sequence29_btn14].rstatus := running; to done from done wait [0,0]; // Trace index: 292, trace level: 3 // Btnode Sequence 'Sequence29_btn14' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(292); btnode[Sequence29_btn14].caller := None; to ether from ether wait [0,0]; to start_ process btnode_ReactiveSequence11_btn5 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, Fallback13_btn6, Fallback13_btn6_done, Fallback21_btn10, Fallback21_btn10_done, Sequence29_btn14, Sequence29_btn14_done, done, ether var ignorep: nat, ignoreb: bool, runningb:bool := false, halt_called_by_me:bool := false, force_success:bool := false, report_halted:bool := false, next_seq: 1..4 := 1 from start_ wait [0,0]; on (btnode[ReactiveSequence11_btn5].caller <> None); report_halted := false; if (btnode[ReactiveSequence11_btn5].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 293, trace level: 3 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' has been called ignorep := fiacre_c_print_trace(293); btnode[ReactiveSequence11_btn5].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 294, trace level: 3 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' is being halted ignorep := fiacre_c_print_trace(294); ignorep := fiacre_graphic_trace(7,ns_halt); if (btnode[Fallback13_btn6].rstatus = running) then // Trace index: 295, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' halting Fallback 'Fallback13_btn6' ignorep := fiacre_c_print_trace(295); btnode[Fallback13_btn6].rstatus := halt_me; btnode[Fallback13_btn6].caller := caller_ReactiveSequence11_btn5; to halt_wait end; if (btnode[Fallback21_btn10].rstatus = running) then // Trace index: 296, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' halting Fallback 'Fallback21_btn10' ignorep := fiacre_c_print_trace(296); btnode[Fallback21_btn10].rstatus := halt_me; btnode[Fallback21_btn10].caller := caller_ReactiveSequence11_btn5; to halt_wait end; if (btnode[Sequence29_btn14].rstatus = running) then // Trace index: 297, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' halting Sequence 'Sequence29_btn14' ignorep := fiacre_c_print_trace(297); btnode[Sequence29_btn14].rstatus := halt_me; btnode[Sequence29_btn14].caller := caller_ReactiveSequence11_btn5; to halt_wait end; to halted from halt_wait on ( (btnode[Fallback13_btn6].caller = None) and (btnode[Fallback21_btn10].caller = None) and (btnode[Sequence29_btn14].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(7,ns_ticked); if (next_seq = 1) then to Fallback13_btn6 end; if (next_seq = 2) then to Fallback21_btn10 end; if (next_seq = 3) then to Sequence29_btn14 end; to error from Fallback13_btn6 wait [0,0]; // Trace index: 298, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' calling Fallback 'Fallback13_btn6' ignorep := fiacre_c_print_trace(298); btnode[Fallback13_btn6].caller := caller_ReactiveSequence11_btn5; ignorep := fiacre_graphic_trace(7,ns_tick_passed); to Fallback13_btn6_done from Fallback13_btn6_done wait [0,0]; on (btnode[Fallback13_btn6].caller = None); ignorep := fiacre_graphic_trace(7,ns_ticked); // Trace index: 299, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' getting control back from Fallback 'Fallback13_btn6' ignorep := fiacre_c_print_trace(299); if (btnode[Fallback13_btn6].rstatus = success) then to Fallback21_btn10 elsif (btnode[Fallback13_btn6].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Fallback13_btn6].rstatus = running) then next_seq := 1; to running else to error end from Fallback21_btn10 wait [0,0]; // Trace index: 300, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' calling Fallback 'Fallback21_btn10' ignorep := fiacre_c_print_trace(300); btnode[Fallback21_btn10].caller := caller_ReactiveSequence11_btn5; ignorep := fiacre_graphic_trace(7,ns_tick_passed); to Fallback21_btn10_done from Fallback21_btn10_done wait [0,0]; on (btnode[Fallback21_btn10].caller = None); ignorep := fiacre_graphic_trace(7,ns_ticked); // Trace index: 301, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' getting control back from Fallback 'Fallback21_btn10' ignorep := fiacre_c_print_trace(301); if (btnode[Fallback21_btn10].rstatus = success) then to Sequence29_btn14 elsif (btnode[Fallback21_btn10].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Fallback21_btn10].rstatus = running) then next_seq := 1; to running else to error end from Sequence29_btn14 wait [0,0]; // Trace index: 302, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' calling Sequence 'Sequence29_btn14' ignorep := fiacre_c_print_trace(302); btnode[Sequence29_btn14].caller := caller_ReactiveSequence11_btn5; ignorep := fiacre_graphic_trace(7,ns_tick_passed); to Sequence29_btn14_done from Sequence29_btn14_done wait [0,0]; on (btnode[Sequence29_btn14].caller = None); ignorep := fiacre_graphic_trace(7,ns_ticked); // Trace index: 303, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' getting control back from Sequence 'Sequence29_btn14' ignorep := fiacre_c_print_trace(303); if (btnode[Sequence29_btn14].rstatus = success) then next_seq := 1; to success elsif (btnode[Sequence29_btn14].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Sequence29_btn14].rstatus = running) then next_seq := 1; to running else to error end from success wait [0,0]; // Trace index: 304, trace level: 2 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returns success. ignorep := fiacre_c_print_trace(304); btnode[ReactiveSequence11_btn5].rstatus := success; ignorep := fiacre_graphic_trace(7,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 305, trace level: 2 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returns halted failure. ignorep := fiacre_c_print_trace(305); ignorep := fiacre_graphic_trace(7,ns_halted); null else // Trace index: 306, trace level: 2 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returns failure. ignorep := fiacre_c_print_trace(306); ignorep := fiacre_graphic_trace(7,ns_failure); null end; btnode[ReactiveSequence11_btn5].rstatus := failure; to done from halted wait [0,0]; // Trace index: 307, trace level: 2 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' has been halted. ignorep := fiacre_c_print_trace(307); next_seq := 1; if (halt_called_by_me) then if (force_success) then to success else to failure end else report_halted := true; to failure end from running wait [0,0]; // Trace index: 308, trace level: 3 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returns running. ignorep := fiacre_c_print_trace(308); ignorep := fiacre_graphic_trace(7,ns_running); btnode[ReactiveSequence11_btn5].rstatus := running; to done from done wait [0,0]; halt_called_by_me := false; force_success := false; // Trace index: 309, trace level: 3 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(309); btnode[ReactiveSequence11_btn5].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Sequence3_btn1 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, ParallelAll5_btn2, ParallelAll5_btn2_done, ReactiveSequence11_btn5, ReactiveSequence11_btn5_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_seq: 1..3 := 1 from start_ wait [0,0]; on (btnode[Sequence3_btn1].caller <> None); report_halted := false; if (btnode[Sequence3_btn1].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 310, trace level: 3 // Btnode Sequence 'Sequence3_btn1' has been called ignorep := fiacre_c_print_trace(310); btnode[Sequence3_btn1].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 311, trace level: 3 // Btnode Sequence 'Sequence3_btn1' is being halted ignorep := fiacre_c_print_trace(311); ignorep := fiacre_graphic_trace(3,ns_halt); if (btnode[ParallelAll5_btn2].rstatus = running) then // Trace index: 312, trace level: 4 // Btnode Sequence 'Sequence3_btn1' halting ParallelAll 'ParallelAll5_btn2' ignorep := fiacre_c_print_trace(312); btnode[ParallelAll5_btn2].rstatus := halt_me; btnode[ParallelAll5_btn2].caller := caller_Sequence3_btn1; to halt_wait end; if (btnode[ReactiveSequence11_btn5].rstatus = running) then // Trace index: 313, trace level: 4 // Btnode Sequence 'Sequence3_btn1' halting ReactiveSequence 'ReactiveSequence11_btn5' ignorep := fiacre_c_print_trace(313); btnode[ReactiveSequence11_btn5].rstatus := halt_me; btnode[ReactiveSequence11_btn5].caller := caller_Sequence3_btn1; to halt_wait end; to halted from halt_wait on ( (btnode[ParallelAll5_btn2].caller = None) and (btnode[ReactiveSequence11_btn5].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(3,ns_ticked); if (next_seq = 1) then to ParallelAll5_btn2 end; if (next_seq = 2) then to ReactiveSequence11_btn5 end; to error from ParallelAll5_btn2 wait [0,0]; // Trace index: 314, trace level: 4 // Btnode Sequence 'Sequence3_btn1' calling ParallelAll 'ParallelAll5_btn2' ignorep := fiacre_c_print_trace(314); btnode[ParallelAll5_btn2].caller := caller_Sequence3_btn1; ignorep := fiacre_graphic_trace(3,ns_tick_passed); to ParallelAll5_btn2_done from ParallelAll5_btn2_done wait [0,0]; on (btnode[ParallelAll5_btn2].caller = None); ignorep := fiacre_graphic_trace(3,ns_ticked); // Trace index: 315, trace level: 4 // Btnode Sequence 'Sequence3_btn1' getting control back from ParallelAll 'ParallelAll5_btn2' ignorep := fiacre_c_print_trace(315); if (btnode[ParallelAll5_btn2].rstatus = success) then to ReactiveSequence11_btn5 elsif (btnode[ParallelAll5_btn2].rstatus = failure) then next_seq := 1; to failure elsif (btnode[ParallelAll5_btn2].rstatus = running) then next_seq := 1; to running else to error end from ReactiveSequence11_btn5 wait [0,0]; // Trace index: 316, trace level: 4 // Btnode Sequence 'Sequence3_btn1' calling ReactiveSequence 'ReactiveSequence11_btn5' ignorep := fiacre_c_print_trace(316); btnode[ReactiveSequence11_btn5].caller := caller_Sequence3_btn1; ignorep := fiacre_graphic_trace(3,ns_tick_passed); to ReactiveSequence11_btn5_done from ReactiveSequence11_btn5_done wait [0,0]; on (btnode[ReactiveSequence11_btn5].caller = None); ignorep := fiacre_graphic_trace(3,ns_ticked); // Trace index: 317, trace level: 4 // Btnode Sequence 'Sequence3_btn1' getting control back from ReactiveSequence 'ReactiveSequence11_btn5' ignorep := fiacre_c_print_trace(317); if (btnode[ReactiveSequence11_btn5].rstatus = success) then next_seq := 1; to success elsif (btnode[ReactiveSequence11_btn5].rstatus = failure) then next_seq := 1; to failure elsif (btnode[ReactiveSequence11_btn5].rstatus = running) then next_seq := 2; to running else to error end from success wait [0,0]; // Trace index: 318, trace level: 2 // Btnode Sequence 'Sequence3_btn1' returns success. ignorep := fiacre_c_print_trace(318); btnode[Sequence3_btn1].rstatus := success; ignorep := fiacre_graphic_trace(3,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 319, trace level: 2 // Btnode Sequence 'Sequence3_btn1' returns halted failure. ignorep := fiacre_c_print_trace(319); ignorep := fiacre_graphic_trace(3,ns_halted); null else // Trace index: 320, trace level: 2 // Btnode Sequence 'Sequence3_btn1' returns failure. ignorep := fiacre_c_print_trace(320); ignorep := fiacre_graphic_trace(3,ns_failure); null end; btnode[Sequence3_btn1].rstatus := failure; to done from halted wait [0,0]; // Trace index: 321, trace level: 2 // Btnode Sequence 'Sequence3_btn1' has been halted. ignorep := fiacre_c_print_trace(321); next_seq := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 322, trace level: 3 // Btnode Sequence 'Sequence3_btn1' returns running. ignorep := fiacre_c_print_trace(322); ignorep := fiacre_graphic_trace(3,ns_running); btnode[Sequence3_btn1].rstatus := running; to done from done wait [0,0]; // Trace index: 323, trace level: 3 // Btnode Sequence 'Sequence3_btn1' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(323); btnode[Sequence3_btn1].caller := None; to ether from ether wait [0,0]; to start_ process btnode_BehaviorTree1_drone (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, running, error, Sequence3_btn1, Sequence3_btn1_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[BehaviorTree1_drone].caller <> None); report_halted := false; if (btnode[BehaviorTree1_drone].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 324, trace level: 3 // Btnode BehaviorTree 'BehaviorTree1_drone' has been called ignorep := fiacre_c_print_trace(324); btnode[BehaviorTree1_drone].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 325, trace level: 3 // Btnode BehaviorTree 'BehaviorTree1_drone' is being halted ignorep := fiacre_c_print_trace(325); ignorep := fiacre_graphic_trace(2,ns_halt); to halted from tick_node wait [1,1]; ignorep := fiacre_graphic_trace(2,ns_ticked); to Sequence3_btn1 from Sequence3_btn1 wait [0,0]; // Trace index: 326, trace level: 4 // Btnode BehaviorTree 'BehaviorTree1_drone' calling Sequence 'Sequence3_btn1' ignorep := fiacre_c_print_trace(326); btnode[Sequence3_btn1].caller := caller_BehaviorTree1_drone; ignorep := fiacre_graphic_trace(2,ns_tick_passed); to Sequence3_btn1_done from Sequence3_btn1_done wait [0,0]; on (btnode[Sequence3_btn1].caller = None); // Trace index: 327, trace level: 4 // Btnode BehaviorTree 'BehaviorTree1_drone' getting control back from Sequence 'Sequence3_btn1' ignorep := fiacre_c_print_trace(327); if (btnode[Sequence3_btn1].rstatus = success) then to success elsif (btnode[Sequence3_btn1].rstatus = failure) then to failure elsif (btnode[Sequence3_btn1].rstatus = running) then to running else to error end from success wait [0,0]; // Trace index: 328, trace level: 2 // Btnode BehaviorTree 'BehaviorTree1_drone' returns success. ignorep := fiacre_c_print_trace(328); btnode[BehaviorTree1_drone].rstatus := success; ignorep := fiacre_graphic_trace(2,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 329, trace level: 2 // Btnode BehaviorTree 'BehaviorTree1_drone' returns halted failure. ignorep := fiacre_c_print_trace(329); ignorep := fiacre_graphic_trace(2,ns_halted); null else // Trace index: 330, trace level: 2 // Btnode BehaviorTree 'BehaviorTree1_drone' returns failure. ignorep := fiacre_c_print_trace(330); ignorep := fiacre_graphic_trace(2,ns_failure); null end; btnode[BehaviorTree1_drone].rstatus := failure; to done from halted wait [0,0]; // Trace index: 331, trace level: 2 // Btnode BehaviorTree 'BehaviorTree1_drone' has been halted. ignorep := fiacre_c_print_trace(331); report_halted := true; to failure from running wait [0,0]; // Trace index: 332, trace level: 3 // Btnode BehaviorTree 'BehaviorTree1_drone' returns running. ignorep := fiacre_c_print_trace(332); ignorep := fiacre_graphic_trace(2,ns_running); btnode[BehaviorTree1_drone].rstatus := running; to tick_node from done wait [0,0]; // Trace index: 333, trace level: 3 // Btnode BehaviorTree 'BehaviorTree1_drone' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(333); btnode[BehaviorTree1_drone].caller := None; to ether component drone is var btnode: btnode_array := [ {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = None, ArgIndex = 0, rstatus = no_ret_status}, {caller = caller_BehaviorTree1_drone, ArgIndex = 0, rstatus = no_ret_status}] par * in // **** state variables processes **** // **** btnode processes **** btnode_start_drone_btn3(&btnode) || btnode_start_camera_btn4(&btnode) || btnode_ParallelAll5_btn2(&btnode) || btnode_battery_ok_btn7(&btnode) || btnode_land_btn9(&btnode) || btnode_fail_btn8(&btnode) || btnode_Fallback13_btn6(&btnode) || btnode_localization_ok_btn11(&btnode) || btnode_land_btn13(&btnode) || btnode_fail_btn12(&btnode) || btnode_Fallback21_btn10(&btnode) || btnode_takeoff_btn15(&btnode) || btnode_camera_tracking_btn17(&btnode) || btnode_goto_waypoint_btn19(&btnode) || btnode_goto_waypoint_btn20(&btnode) || btnode_goto_waypoint_btn21(&btnode) || btnode_goto_waypoint_btn22(&btnode) || btnode_goto_waypoint_btn23(&btnode) || btnode_goto_waypoint_btn24(&btnode) || btnode_Sequence37_btn18(&btnode) || btnode_Parallel33_btn16(&btnode) || btnode_goto_waypoint_btn25(&btnode) || btnode_land_btn26(&btnode) || btnode_shutdown_drone_btn27(&btnode) || btnode_Sequence29_btn14(&btnode) || btnode_ReactiveSequence11_btn5(&btnode) || btnode_Sequence3_btn1(&btnode) || btnode_BehaviorTree1_drone(&btnode) // **** end of the component **** end drone /*End of File */