/* * 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_measure_battery_btn9 | caller_ForceFailure17_btn8 | caller_Eval21_btn10 | caller_Fallback15_btn7 | caller_Eval25_btn12 | caller_Eval29_btn14 | caller_Fallback27_btn13 | caller_Sequence13_btn6 | caller_ForceFailure37_btn18 | caller_Fallback33_btn16 | caller_Eval53_btn26 | caller_Sequence51_btn25 | caller_Repeat49_btn24 | caller_Parallel45_btn22 | caller_Sequence41_btn20 | 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 measure_battery_btn9: 3..3 is 3 const ForceFailure17_btn8: 4..4 is 4 const Eval21_btn10: 5..5 is 5 const land_btn11: 6..6 is 6 const Fallback15_btn7: 7..7 is 7 const Eval25_btn12: 8..8 is 8 const Eval29_btn14: 9..9 is 9 const goto_waypoint_btn15: 10..10 is 10 const Fallback27_btn13: 11..11 is 11 const Sequence13_btn6: 12..12 is 12 const localization_ok_btn17: 13..13 is 13 const land_btn19: 14..14 is 14 const ForceFailure37_btn18: 15..15 is 15 const Fallback33_btn16: 16..16 is 16 const takeoff_btn21: 17..17 is 17 const camera_tracking_btn23: 18..18 is 18 const Eval53_btn26: 19..19 is 19 const goto_waypoint_btn27: 20..20 is 20 const goto_waypoint_btn28: 21..21 is 21 const goto_waypoint_btn29: 22..22 is 22 const goto_waypoint_btn30: 23..23 is 23 const goto_waypoint_btn31: 24..24 is 24 const goto_waypoint_btn32: 25..25 is 25 const Sequence51_btn25: 26..26 is 26 const Repeat49_btn24: 27..27 is 27 const Parallel45_btn22: 28..28 is 28 const goto_waypoint_btn33: 29..29 is 29 const land_btn34: 30..30 is 30 const shutdown_drone_btn35: 31..31 is 31 const Sequence41_btn20: 32..32 is 32 const ReactiveSequence11_btn5: 33..33 is 33 const Sequence3_btn1: 34..34 is 34 const BehaviorTree1_drone: 35..35 is 35 type btnode_array is array 36 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*/ type sv_fls is 0..3 /* state variable FSM types*/ type sv_battery is union Good | Low | Critical end /* Process automata controlling the proper transition of resources/SV */ process sv_battery_automata (&battery:sv_battery) is states Good, Low , Critical var ignorep: nat from Good wait [0,0]; select on (battery = Low); // Trace index: 0, trace level: 4 // State variable 'battery', from 'Good' to 'Low'. ignorep := fiacre_c_print_trace(0); to Low [] on (battery = Critical); // Trace index: 1, trace level: 4 // State variable 'battery', from 'Good' to 'Critical'. ignorep := fiacre_c_print_trace(1); to Critical end from Low wait [0,0]; select on (battery = Good); // Trace index: 2, trace level: 4 // State variable 'battery', from 'Low' to 'Good'. ignorep := fiacre_c_print_trace(2); to Good [] on (battery = Critical); // Trace index: 3, trace level: 4 // State variable 'battery', from 'Low' to 'Critical'. ignorep := fiacre_c_print_trace(3); to Critical end from Critical wait [0,0]; select on (battery = Good); // Trace index: 4, trace level: 4 // State variable 'battery', from 'Critical' to 'Good'. ignorep := fiacre_c_print_trace(4); to Good [] on (battery = Low); // Trace index: 5, trace level: 4 // State variable 'battery', from 'Critical' to 'Low'. ignorep := fiacre_c_print_trace(5); to Low end // 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_SetSV_measure_battery_extern () : sv_battery is Fiacre_SetSV_measure_battery_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 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 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_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, &fls: sv_fls, &battery: sv_battery) 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: 6, trace level: 3 // Btnode Action 'start_drone_btn3' has been called ignorep := fiacre_c_print_trace(6); btnode[start_drone_btn3].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 7, trace level: 3 // Btnode Action 'start_drone_btn3' is being halted ignorep := fiacre_c_print_trace(7); 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: 8, trace level: 3 // Btnode Action 'start_drone_btn3' calling its action (start task) ignorep := fiacre_c_print_trace(8); 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: 9, trace level: 3 // Btnode Action 'start_drone_btn3' returned (sync task) ignorep := fiacre_c_print_trace(9); 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: 10, trace level: 2 // Btnode Action 'start_drone_btn3' returns success. ignorep := fiacre_c_print_trace(10); 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: 11, trace level: 2 // Btnode Action 'start_drone_btn3' returns halted failure. ignorep := fiacre_c_print_trace(11); ignorep := fiacre_graphic_trace(5,ns_halted); null else // Trace index: 12, trace level: 2 // Btnode Action 'start_drone_btn3' returns failure. ignorep := fiacre_c_print_trace(12); ignorep := fiacre_graphic_trace(5,ns_failure); null end; btnode[start_drone_btn3].rstatus := failure; to done from halted wait [0,0]; // Trace index: 13, trace level: 2 // Btnode Action 'start_drone_btn3' has been halted. ignorep := fiacre_c_print_trace(13); report_halted := true; to failure from running wait [0,0]; // Trace index: 14, trace level: 3 // Btnode Action 'start_drone_btn3' returns running. ignorep := fiacre_c_print_trace(14); ignorep := fiacre_graphic_trace(5,ns_running); btnode[start_drone_btn3].rstatus := running; to done from done wait [0,0]; // Trace index: 15, trace level: 3 // Btnode Action 'start_drone_btn3' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(15); btnode[start_drone_btn3].caller := None; to ether from ether wait [0,0]; to start_ process btnode_start_camera_btn4 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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: 16, trace level: 3 // Btnode Action 'start_camera_btn4' has been called ignorep := fiacre_c_print_trace(16); btnode[start_camera_btn4].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 17, trace level: 3 // Btnode Action 'start_camera_btn4' is being halted ignorep := fiacre_c_print_trace(17); 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: 18, trace level: 3 // Btnode Action 'start_camera_btn4' calling its action (start task) ignorep := fiacre_c_print_trace(18); 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: 19, trace level: 3 // Btnode Action 'start_camera_btn4' returned (sync task) ignorep := fiacre_c_print_trace(19); 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: 20, trace level: 2 // Btnode Action 'start_camera_btn4' returns success. ignorep := fiacre_c_print_trace(20); 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: 21, trace level: 2 // Btnode Action 'start_camera_btn4' returns halted failure. ignorep := fiacre_c_print_trace(21); ignorep := fiacre_graphic_trace(6,ns_halted); null else // Trace index: 22, trace level: 2 // Btnode Action 'start_camera_btn4' returns failure. ignorep := fiacre_c_print_trace(22); ignorep := fiacre_graphic_trace(6,ns_failure); null end; btnode[start_camera_btn4].rstatus := failure; to done from halted wait [0,0]; // Trace index: 23, trace level: 2 // Btnode Action 'start_camera_btn4' has been halted. ignorep := fiacre_c_print_trace(23); report_halted := true; to failure from running wait [0,0]; // Trace index: 24, trace level: 3 // Btnode Action 'start_camera_btn4' returns running. ignorep := fiacre_c_print_trace(24); ignorep := fiacre_graphic_trace(6,ns_running); btnode[start_camera_btn4].rstatus := running; to done from done wait [0,0]; // Trace index: 25, trace level: 3 // Btnode Action 'start_camera_btn4' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(25); 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: 26, trace level: 3 // Btnode ParallelAll 'ParallelAll5_btn2' has been called ignorep := fiacre_c_print_trace(26); btnode[ParallelAll5_btn2].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 27, trace level: 3 // Btnode ParallelAll 'ParallelAll5_btn2' is being halted ignorep := fiacre_c_print_trace(27); ignorep := fiacre_graphic_trace(4,ns_halt); if (btnode[start_drone_btn3].rstatus = running) then // Trace index: 28, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' halting Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(28); 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: 29, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' halting Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(29); 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: 30, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' calling again 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' calling again Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(31); btnode[start_camera_btn4].caller := caller_ParallelAll5_btn2 end; null else // Trace index: 32, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' calling Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(32); btnode[start_drone_btn3].caller := caller_ParallelAll5_btn2; // Trace index: 33, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' calling Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(33); 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: 34, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' getting control back from Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(34); // Trace index: 35, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' getting control back from Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(35); 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: 36, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' failed but calling again to wait running Action 'start_drone_btn3' ignorep := fiacre_c_print_trace(36); btnode[start_drone_btn3].caller := caller_ParallelAll5_btn2 end; if (btnode[start_camera_btn4].rstatus = running) then // Trace index: 37, trace level: 4 // Btnode ParallelAll 'ParallelAll5_btn2' failed but calling again to wait running Action 'start_camera_btn4' ignorep := fiacre_c_print_trace(37); 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: 38, trace level: 2 // Btnode ParallelAll 'ParallelAll5_btn2' returns success. ignorep := fiacre_c_print_trace(38); 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: 39, trace level: 2 // Btnode ParallelAll 'ParallelAll5_btn2' returns halted failure. ignorep := fiacre_c_print_trace(39); ignorep := fiacre_graphic_trace(4,ns_halted); null else // Trace index: 40, trace level: 2 // Btnode ParallelAll 'ParallelAll5_btn2' returns failure. ignorep := fiacre_c_print_trace(40); ignorep := fiacre_graphic_trace(4,ns_failure); null end; btnode[ParallelAll5_btn2].rstatus := failure; to done from halted wait [0,0]; // Trace index: 41, trace level: 2 // Btnode ParallelAll 'ParallelAll5_btn2' has been halted. ignorep := fiacre_c_print_trace(41); 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: 42, trace level: 3 // Btnode ParallelAll 'ParallelAll5_btn2' returns running. ignorep := fiacre_c_print_trace(42); 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: 43, trace level: 3 // Btnode ParallelAll 'ParallelAll5_btn2' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(43); btnode[ParallelAll5_btn2].caller := None; to ether from ether wait [0,0]; to start_ process btnode_measure_battery_btn9 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) is states start_, tick_node, success, halt, halted, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[measure_battery_btn9].caller <> None); report_halted := false; if (btnode[measure_battery_btn9].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 44, trace level: 3 // Btnode SetSV 'measure_battery_btn9' has been called ignorep := fiacre_c_print_trace(44); btnode[measure_battery_btn9].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 45, trace level: 3 // Btnode SetSV 'measure_battery_btn9' is being halted ignorep := fiacre_c_print_trace(45); ignorep := fiacre_graphic_trace(11,ns_halt); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(11,ns_ticked); // Trace index: 46, trace level: 3 // Btnode SetSV 'measure_battery_btn9' Setting State Variable battery. ignorep := fiacre_c_print_trace(46); battery := Fiacre_SetSV_measure_battery_extern(); to success from success wait [0,0]; // Trace index: 47, trace level: 2 // Btnode SetSV 'measure_battery_btn9' returns success. ignorep := fiacre_c_print_trace(47); btnode[measure_battery_btn9].rstatus := success; ignorep := fiacre_graphic_trace(11,ns_success); to done from done wait [0,0]; // Trace index: 48, trace level: 3 // Btnode SetSV 'measure_battery_btn9' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(48); btnode[measure_battery_btn9].caller := None; to ether from ether wait [0,0]; to start_ process btnode_ForceFailure17_btn8 (&btnode: btnode_array) is states start_, tick_node, failure, halt, halted, halt_wait, running, error, measure_battery_btn9, measure_battery_btn9_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[ForceFailure17_btn8].caller <> None); report_halted := false; if (btnode[ForceFailure17_btn8].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 49, trace level: 3 // Btnode ForceFailure 'ForceFailure17_btn8' has been called ignorep := fiacre_c_print_trace(49); btnode[ForceFailure17_btn8].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 50, trace level: 3 // Btnode ForceFailure 'ForceFailure17_btn8' is being halted ignorep := fiacre_c_print_trace(50); ignorep := fiacre_graphic_trace(10,ns_halt); if (btnode[measure_battery_btn9].rstatus = running) then // Trace index: 51, trace level: 4 // Btnode ForceFailure 'ForceFailure17_btn8' halting SetSV 'measure_battery_btn9' ignorep := fiacre_c_print_trace(51); btnode[measure_battery_btn9].rstatus := halt_me; btnode[measure_battery_btn9].caller := caller_ForceFailure17_btn8; to halt_wait end; to halted from halt_wait on (btnode[measure_battery_btn9].caller = None); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(10,ns_ticked); to measure_battery_btn9 from measure_battery_btn9 wait [0,0]; // Trace index: 52, trace level: 4 // Btnode ForceFailure 'ForceFailure17_btn8' calling SetSV 'measure_battery_btn9' ignorep := fiacre_c_print_trace(52); btnode[measure_battery_btn9].caller := caller_ForceFailure17_btn8; ignorep := fiacre_graphic_trace(10,ns_tick_passed); to measure_battery_btn9_done from measure_battery_btn9_done wait [0,0]; on (btnode[measure_battery_btn9].caller = None); // Trace index: 53, trace level: 4 // Btnode ForceFailure 'ForceFailure17_btn8' getting control back from SetSV 'measure_battery_btn9' ignorep := fiacre_c_print_trace(53); if (btnode[measure_battery_btn9].rstatus = success) then to failure elsif (btnode[measure_battery_btn9].rstatus = failure) then to failure elsif (btnode[measure_battery_btn9].rstatus = running) then to running else to error end from failure wait [0,0]; if (report_halted) then // Trace index: 54, trace level: 2 // Btnode ForceFailure 'ForceFailure17_btn8' returns halted failure. ignorep := fiacre_c_print_trace(54); ignorep := fiacre_graphic_trace(10,ns_halted); null else // Trace index: 55, trace level: 2 // Btnode ForceFailure 'ForceFailure17_btn8' returns failure. ignorep := fiacre_c_print_trace(55); ignorep := fiacre_graphic_trace(10,ns_failure); null end; btnode[ForceFailure17_btn8].rstatus := failure; to done from halted wait [0,0]; // Trace index: 56, trace level: 2 // Btnode ForceFailure 'ForceFailure17_btn8' has been halted. ignorep := fiacre_c_print_trace(56); report_halted := true; to failure from running wait [0,0]; // Trace index: 57, trace level: 3 // Btnode ForceFailure 'ForceFailure17_btn8' returns running. ignorep := fiacre_c_print_trace(57); ignorep := fiacre_graphic_trace(10,ns_running); btnode[ForceFailure17_btn8].rstatus := running; to done from done wait [0,0]; // Trace index: 58, trace level: 3 // Btnode ForceFailure 'ForceFailure17_btn8' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(58); btnode[ForceFailure17_btn8].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Eval21_btn10 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) is states start_, tick_node, success, failure, halt, halted, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[Eval21_btn10].caller <> None); report_halted := false; if (btnode[Eval21_btn10].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 59, trace level: 3 // Btnode Eval 'Eval21_btn10' has been called ignorep := fiacre_c_print_trace(59); btnode[Eval21_btn10].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 60, trace level: 3 // Btnode Eval 'Eval21_btn10' is being halted ignorep := fiacre_c_print_trace(60); ignorep := fiacre_graphic_trace(12,ns_halt); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(12,ns_ticked); // Trace index: 61, trace level: 3 // Btnode Eval 'Eval21_btn10' evaluating expression (~ (= battery Critical)) ignorep := fiacre_c_print_trace(61); if (not (battery = Critical)) then to success else to failure end from success wait [0,0]; // Trace index: 62, trace level: 2 // Btnode Eval 'Eval21_btn10' returns success. ignorep := fiacre_c_print_trace(62); btnode[Eval21_btn10].rstatus := success; ignorep := fiacre_graphic_trace(12,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 63, trace level: 2 // Btnode Eval 'Eval21_btn10' returns halted failure. ignorep := fiacre_c_print_trace(63); ignorep := fiacre_graphic_trace(12,ns_halted); null else // Trace index: 64, trace level: 2 // Btnode Eval 'Eval21_btn10' returns failure. ignorep := fiacre_c_print_trace(64); ignorep := fiacre_graphic_trace(12,ns_failure); null end; btnode[Eval21_btn10].rstatus := failure; to done from halted wait [0,0]; // Trace index: 65, trace level: 2 // Btnode Eval 'Eval21_btn10' has been halted. ignorep := fiacre_c_print_trace(65); report_halted := true; to failure from done wait [0,0]; // Trace index: 66, trace level: 3 // Btnode Eval 'Eval21_btn10' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(66); btnode[Eval21_btn10].caller := None; to ether from ether wait [0,0]; to start_ process btnode_land_btn11 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn11].caller <> None); report_halted := false; if (btnode[land_btn11].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 67, trace level: 3 // Btnode Action 'land_btn11' has been called ignorep := fiacre_c_print_trace(67); btnode[land_btn11].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 68, trace level: 3 // Btnode Action 'land_btn11' is being halted ignorep := fiacre_c_print_trace(68); ignorep := fiacre_graphic_trace(13,ns_halt); ignoreb := Fiacre_Action_land_halt (btnode[land_btn11]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(13,ns_ticked); to Action_land from Action_land // Trace index: 69, trace level: 3 // Btnode Action 'land_btn11' calling its action (start task) ignorep := fiacre_c_print_trace(69); start Fiacre_Action_land_task (btnode[land_btn11]); to Action_land_sync from Action_land_sync sync Fiacre_Action_land_task ret_val; // Trace index: 70, trace level: 3 // Btnode Action 'land_btn11' returned (sync task) ignorep := fiacre_c_print_trace(70); 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: 71, trace level: 2 // Btnode Action 'land_btn11' returns success. ignorep := fiacre_c_print_trace(71); btnode[land_btn11].rstatus := success; ignorep := fiacre_graphic_trace(13,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 72, trace level: 2 // Btnode Action 'land_btn11' returns halted failure. ignorep := fiacre_c_print_trace(72); ignorep := fiacre_graphic_trace(13,ns_halted); null else // Trace index: 73, trace level: 2 // Btnode Action 'land_btn11' returns failure. ignorep := fiacre_c_print_trace(73); ignorep := fiacre_graphic_trace(13,ns_failure); null end; btnode[land_btn11].rstatus := failure; to done from halted wait [0,0]; // Trace index: 74, trace level: 2 // Btnode Action 'land_btn11' has been halted. ignorep := fiacre_c_print_trace(74); report_halted := true; to failure from running wait [0,0]; // Trace index: 75, trace level: 3 // Btnode Action 'land_btn11' returns running. ignorep := fiacre_c_print_trace(75); ignorep := fiacre_graphic_trace(13,ns_running); btnode[land_btn11].rstatus := running; to done from done wait [0,0]; // Trace index: 76, trace level: 3 // Btnode Action 'land_btn11' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(76); btnode[land_btn11].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Fallback15_btn7 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, ForceFailure17_btn8, ForceFailure17_btn8_done, Eval21_btn10, Eval21_btn10_done, land_btn11, land_btn11_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_fb: 1..3 := 1 from start_ wait [0,0]; on (btnode[Fallback15_btn7].caller <> None); report_halted := false; if (btnode[Fallback15_btn7].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 77, trace level: 3 // Btnode Fallback 'Fallback15_btn7' has been called ignorep := fiacre_c_print_trace(77); btnode[Fallback15_btn7].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 78, trace level: 3 // Btnode Fallback 'Fallback15_btn7' is being halted ignorep := fiacre_c_print_trace(78); ignorep := fiacre_graphic_trace(9,ns_halt); if (btnode[ForceFailure17_btn8].rstatus = running) then // Trace index: 79, trace level: 4 // Btnode Fallback 'Fallback15_btn7' halting ForceFailure 'ForceFailure17_btn8' ignorep := fiacre_c_print_trace(79); btnode[ForceFailure17_btn8].rstatus := halt_me; btnode[ForceFailure17_btn8].caller := caller_Fallback15_btn7; to halt_wait end; if (btnode[Eval21_btn10].rstatus = running) then // Trace index: 80, trace level: 4 // Btnode Fallback 'Fallback15_btn7' halting Eval 'Eval21_btn10' ignorep := fiacre_c_print_trace(80); btnode[Eval21_btn10].rstatus := halt_me; btnode[Eval21_btn10].caller := caller_Fallback15_btn7; to halt_wait end; if (btnode[land_btn11].rstatus = running) then // Trace index: 81, trace level: 4 // Btnode Fallback 'Fallback15_btn7' halting Action 'land_btn11' ignorep := fiacre_c_print_trace(81); btnode[land_btn11].rstatus := halt_me; btnode[land_btn11].caller := caller_Fallback15_btn7; to halt_wait end; to halted from halt_wait on ( (btnode[ForceFailure17_btn8].caller = None) and (btnode[Eval21_btn10].caller = None) and (btnode[land_btn11].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(9,ns_ticked); if (next_fb = 1) then to ForceFailure17_btn8 end; if (next_fb = 2) then to Eval21_btn10 end; if (next_fb = 3) then to land_btn11 end; to error from ForceFailure17_btn8 wait [0,0]; // Trace index: 82, trace level: 4 // Btnode Fallback 'Fallback15_btn7' calling ForceFailure 'ForceFailure17_btn8' ignorep := fiacre_c_print_trace(82); btnode[ForceFailure17_btn8].caller := caller_Fallback15_btn7; ignorep := fiacre_graphic_trace(9,ns_tick_passed); to ForceFailure17_btn8_done from ForceFailure17_btn8_done wait [0,0]; on (btnode[ForceFailure17_btn8].caller = None); ignorep := fiacre_graphic_trace(9,ns_ticked); // Trace index: 83, trace level: 4 // Btnode Fallback 'Fallback15_btn7' getting control back from ForceFailure 'ForceFailure17_btn8' ignorep := fiacre_c_print_trace(83); if (btnode[ForceFailure17_btn8].rstatus = success) then next_fb := 1; to success elsif (btnode[ForceFailure17_btn8].rstatus = failure) then to Eval21_btn10 elsif (btnode[ForceFailure17_btn8].rstatus = running) then next_fb := 1; to running else to error end from Eval21_btn10 wait [0,0]; // Trace index: 84, trace level: 4 // Btnode Fallback 'Fallback15_btn7' calling Eval 'Eval21_btn10' ignorep := fiacre_c_print_trace(84); btnode[Eval21_btn10].caller := caller_Fallback15_btn7; ignorep := fiacre_graphic_trace(9,ns_tick_passed); to Eval21_btn10_done from Eval21_btn10_done wait [0,0]; on (btnode[Eval21_btn10].caller = None); ignorep := fiacre_graphic_trace(9,ns_ticked); // Trace index: 85, trace level: 4 // Btnode Fallback 'Fallback15_btn7' getting control back from Eval 'Eval21_btn10' ignorep := fiacre_c_print_trace(85); if (btnode[Eval21_btn10].rstatus = success) then next_fb := 1; to success elsif (btnode[Eval21_btn10].rstatus = failure) then to land_btn11 elsif (btnode[Eval21_btn10].rstatus = running) then next_fb := 2; to running else to error end from land_btn11 wait [0,0]; // Trace index: 86, trace level: 4 // Btnode Fallback 'Fallback15_btn7' calling Action 'land_btn11' ignorep := fiacre_c_print_trace(86); btnode[land_btn11].caller := caller_Fallback15_btn7; ignorep := fiacre_graphic_trace(9,ns_tick_passed); to land_btn11_done from land_btn11_done wait [0,0]; on (btnode[land_btn11].caller = None); ignorep := fiacre_graphic_trace(9,ns_ticked); // Trace index: 87, trace level: 4 // Btnode Fallback 'Fallback15_btn7' getting control back from Action 'land_btn11' ignorep := fiacre_c_print_trace(87); if (btnode[land_btn11].rstatus = success) then next_fb := 1; to success elsif (btnode[land_btn11].rstatus = failure) then next_fb := 1; to failure elsif (btnode[land_btn11].rstatus = running) then next_fb := 3; to running else to error end from success wait [0,0]; // Trace index: 88, trace level: 2 // Btnode Fallback 'Fallback15_btn7' returns success. ignorep := fiacre_c_print_trace(88); btnode[Fallback15_btn7].rstatus := success; ignorep := fiacre_graphic_trace(9,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 89, trace level: 2 // Btnode Fallback 'Fallback15_btn7' returns halted failure. ignorep := fiacre_c_print_trace(89); ignorep := fiacre_graphic_trace(9,ns_halted); null else // Trace index: 90, trace level: 2 // Btnode Fallback 'Fallback15_btn7' returns failure. ignorep := fiacre_c_print_trace(90); ignorep := fiacre_graphic_trace(9,ns_failure); null end; btnode[Fallback15_btn7].rstatus := failure; to done from halted wait [0,0]; // Trace index: 91, trace level: 2 // Btnode Fallback 'Fallback15_btn7' has been halted. ignorep := fiacre_c_print_trace(91); next_fb := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 92, trace level: 3 // Btnode Fallback 'Fallback15_btn7' returns running. ignorep := fiacre_c_print_trace(92); ignorep := fiacre_graphic_trace(9,ns_running); btnode[Fallback15_btn7].rstatus := running; to done from done wait [0,0]; // Trace index: 93, trace level: 3 // Btnode Fallback 'Fallback15_btn7' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(93); btnode[Fallback15_btn7].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Eval25_btn12 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) is states start_, tick_node, success, failure, halt, halted, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[Eval25_btn12].caller <> None); report_halted := false; if (btnode[Eval25_btn12].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 94, trace level: 3 // Btnode Eval 'Eval25_btn12' has been called ignorep := fiacre_c_print_trace(94); btnode[Eval25_btn12].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 95, trace level: 3 // Btnode Eval 'Eval25_btn12' is being halted ignorep := fiacre_c_print_trace(95); ignorep := fiacre_graphic_trace(14,ns_halt); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(14,ns_ticked); // Trace index: 96, trace level: 3 // Btnode Eval 'Eval25_btn12' evaluating expression (~ (= battery Critical)) ignorep := fiacre_c_print_trace(96); if (not (battery = Critical)) then to success else to failure end from success wait [0,0]; // Trace index: 97, trace level: 2 // Btnode Eval 'Eval25_btn12' returns success. ignorep := fiacre_c_print_trace(97); btnode[Eval25_btn12].rstatus := success; ignorep := fiacre_graphic_trace(14,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 98, trace level: 2 // Btnode Eval 'Eval25_btn12' returns halted failure. ignorep := fiacre_c_print_trace(98); ignorep := fiacre_graphic_trace(14,ns_halted); null else // Trace index: 99, trace level: 2 // Btnode Eval 'Eval25_btn12' returns failure. ignorep := fiacre_c_print_trace(99); ignorep := fiacre_graphic_trace(14,ns_failure); null end; btnode[Eval25_btn12].rstatus := failure; to done from halted wait [0,0]; // Trace index: 100, trace level: 2 // Btnode Eval 'Eval25_btn12' has been halted. ignorep := fiacre_c_print_trace(100); report_halted := true; to failure from done wait [0,0]; // Trace index: 101, trace level: 3 // Btnode Eval 'Eval25_btn12' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(101); btnode[Eval25_btn12].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Eval29_btn14 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) is states start_, tick_node, success, failure, halt, halted, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[Eval29_btn14].caller <> None); report_halted := false; if (btnode[Eval29_btn14].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 102, trace level: 3 // Btnode Eval 'Eval29_btn14' has been called ignorep := fiacre_c_print_trace(102); btnode[Eval29_btn14].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 103, trace level: 3 // Btnode Eval 'Eval29_btn14' is being halted ignorep := fiacre_c_print_trace(103); ignorep := fiacre_graphic_trace(16,ns_halt); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(16,ns_ticked); // Trace index: 104, trace level: 3 // Btnode Eval 'Eval29_btn14' evaluating expression (= battery Good) ignorep := fiacre_c_print_trace(104); if (battery = Good) then to success else to failure end from success wait [0,0]; // Trace index: 105, trace level: 2 // Btnode Eval 'Eval29_btn14' returns success. ignorep := fiacre_c_print_trace(105); btnode[Eval29_btn14].rstatus := success; ignorep := fiacre_graphic_trace(16,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 106, trace level: 2 // Btnode Eval 'Eval29_btn14' returns halted failure. ignorep := fiacre_c_print_trace(106); ignorep := fiacre_graphic_trace(16,ns_halted); null else // Trace index: 107, trace level: 2 // Btnode Eval 'Eval29_btn14' returns failure. ignorep := fiacre_c_print_trace(107); ignorep := fiacre_graphic_trace(16,ns_failure); null end; btnode[Eval29_btn14].rstatus := failure; to done from halted wait [0,0]; // Trace index: 108, trace level: 2 // Btnode Eval 'Eval29_btn14' has been halted. ignorep := fiacre_c_print_trace(108); report_halted := true; to failure from done wait [0,0]; // Trace index: 109, trace level: 3 // Btnode Eval 'Eval29_btn14' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(109); btnode[Eval29_btn14].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn15 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn15].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn15].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 110, trace level: 3 // Btnode Action 'goto_waypoint_btn15' has been called (:x -1 :y -1 :z 0.500000 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(110); btnode[goto_waypoint_btn15].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 111, trace level: 3 // Btnode Action 'goto_waypoint_btn15' is being halted (:x -1 :y -1 :z 0.500000 :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(111); ignorep := fiacre_graphic_trace(17,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn15]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(17,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 1 btnode[goto_waypoint_btn15].ArgIndex := 1; // Trace index: 112, trace level: 3 // Btnode Action 'goto_waypoint_btn15' calling its action (start task) ignorep := fiacre_c_print_trace(112); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn15]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 113, trace level: 3 // Btnode Action 'goto_waypoint_btn15' returned (sync task) ignorep := fiacre_c_print_trace(113); 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: 114, trace level: 2 // Btnode Action 'goto_waypoint_btn15' (:x -1 :y -1 :z 0.500000 :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(114); btnode[goto_waypoint_btn15].rstatus := success; ignorep := fiacre_graphic_trace(17,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 115, trace level: 2 // Btnode Action 'goto_waypoint_btn15' (:x -1 :y -1 :z 0.500000 :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(115); ignorep := fiacre_graphic_trace(17,ns_halted); null else // Trace index: 116, trace level: 2 // Btnode Action 'goto_waypoint_btn15' (:x -1 :y -1 :z 0.500000 :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(116); ignorep := fiacre_graphic_trace(17,ns_failure); null end; btnode[goto_waypoint_btn15].rstatus := failure; to done from halted wait [0,0]; // Trace index: 117, trace level: 2 // Btnode Action 'goto_waypoint_btn15' (:x -1 :y -1 :z 0.500000 :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(117); report_halted := true; to failure from running wait [0,0]; // Trace index: 118, trace level: 3 // Btnode Action 'goto_waypoint_btn15' (:x -1 :y -1 :z 0.500000 :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(118); ignorep := fiacre_graphic_trace(17,ns_running); btnode[goto_waypoint_btn15].rstatus := running; to done from done wait [0,0]; // Trace index: 119, trace level: 3 // Btnode Action 'goto_waypoint_btn15' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(119); btnode[goto_waypoint_btn15].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Fallback27_btn13 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, Eval29_btn14, Eval29_btn14_done, goto_waypoint_btn15, goto_waypoint_btn15_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_fb: 1..2 := 1 from start_ wait [0,0]; on (btnode[Fallback27_btn13].caller <> None); report_halted := false; if (btnode[Fallback27_btn13].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 120, trace level: 3 // Btnode Fallback 'Fallback27_btn13' has been called ignorep := fiacre_c_print_trace(120); btnode[Fallback27_btn13].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 121, trace level: 3 // Btnode Fallback 'Fallback27_btn13' is being halted ignorep := fiacre_c_print_trace(121); ignorep := fiacre_graphic_trace(15,ns_halt); if (btnode[Eval29_btn14].rstatus = running) then // Trace index: 122, trace level: 4 // Btnode Fallback 'Fallback27_btn13' halting Eval 'Eval29_btn14' ignorep := fiacre_c_print_trace(122); btnode[Eval29_btn14].rstatus := halt_me; btnode[Eval29_btn14].caller := caller_Fallback27_btn13; to halt_wait end; if (btnode[goto_waypoint_btn15].rstatus = running) then // Trace index: 123, trace level: 4 // Btnode Fallback 'Fallback27_btn13' halting Action 'goto_waypoint_btn15' ignorep := fiacre_c_print_trace(123); btnode[goto_waypoint_btn15].rstatus := halt_me; btnode[goto_waypoint_btn15].caller := caller_Fallback27_btn13; to halt_wait end; to halted from halt_wait on ( (btnode[Eval29_btn14].caller = None) and (btnode[goto_waypoint_btn15].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(15,ns_ticked); if (next_fb = 1) then to Eval29_btn14 end; if (next_fb = 2) then to goto_waypoint_btn15 end; to error from Eval29_btn14 wait [0,0]; // Trace index: 124, trace level: 4 // Btnode Fallback 'Fallback27_btn13' calling Eval 'Eval29_btn14' ignorep := fiacre_c_print_trace(124); btnode[Eval29_btn14].caller := caller_Fallback27_btn13; ignorep := fiacre_graphic_trace(15,ns_tick_passed); to Eval29_btn14_done from Eval29_btn14_done wait [0,0]; on (btnode[Eval29_btn14].caller = None); ignorep := fiacre_graphic_trace(15,ns_ticked); // Trace index: 125, trace level: 4 // Btnode Fallback 'Fallback27_btn13' getting control back from Eval 'Eval29_btn14' ignorep := fiacre_c_print_trace(125); if (btnode[Eval29_btn14].rstatus = success) then next_fb := 1; to success elsif (btnode[Eval29_btn14].rstatus = failure) then to goto_waypoint_btn15 elsif (btnode[Eval29_btn14].rstatus = running) then next_fb := 1; to running else to error end from goto_waypoint_btn15 wait [0,0]; // Trace index: 126, trace level: 4 // Btnode Fallback 'Fallback27_btn13' calling Action 'goto_waypoint_btn15' ignorep := fiacre_c_print_trace(126); btnode[goto_waypoint_btn15].caller := caller_Fallback27_btn13; ignorep := fiacre_graphic_trace(15,ns_tick_passed); to goto_waypoint_btn15_done from goto_waypoint_btn15_done wait [0,0]; on (btnode[goto_waypoint_btn15].caller = None); ignorep := fiacre_graphic_trace(15,ns_ticked); // Trace index: 127, trace level: 4 // Btnode Fallback 'Fallback27_btn13' getting control back from Action 'goto_waypoint_btn15' ignorep := fiacre_c_print_trace(127); if (btnode[goto_waypoint_btn15].rstatus = success) then next_fb := 1; to success elsif (btnode[goto_waypoint_btn15].rstatus = failure) then next_fb := 1; to failure elsif (btnode[goto_waypoint_btn15].rstatus = running) then next_fb := 2; to running else to error end from success wait [0,0]; // Trace index: 128, trace level: 2 // Btnode Fallback 'Fallback27_btn13' returns success. ignorep := fiacre_c_print_trace(128); btnode[Fallback27_btn13].rstatus := success; ignorep := fiacre_graphic_trace(15,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 129, trace level: 2 // Btnode Fallback 'Fallback27_btn13' returns halted failure. ignorep := fiacre_c_print_trace(129); ignorep := fiacre_graphic_trace(15,ns_halted); null else // Trace index: 130, trace level: 2 // Btnode Fallback 'Fallback27_btn13' returns failure. ignorep := fiacre_c_print_trace(130); ignorep := fiacre_graphic_trace(15,ns_failure); null end; btnode[Fallback27_btn13].rstatus := failure; to done from halted wait [0,0]; // Trace index: 131, trace level: 2 // Btnode Fallback 'Fallback27_btn13' has been halted. ignorep := fiacre_c_print_trace(131); next_fb := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 132, trace level: 3 // Btnode Fallback 'Fallback27_btn13' returns running. ignorep := fiacre_c_print_trace(132); ignorep := fiacre_graphic_trace(15,ns_running); btnode[Fallback27_btn13].rstatus := running; to done from done wait [0,0]; // Trace index: 133, trace level: 3 // Btnode Fallback 'Fallback27_btn13' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(133); btnode[Fallback27_btn13].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Sequence13_btn6 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, Fallback15_btn7, Fallback15_btn7_done, Eval25_btn12, Eval25_btn12_done, Fallback27_btn13, Fallback27_btn13_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_seq: 1..4 := 1 from start_ wait [0,0]; on (btnode[Sequence13_btn6].caller <> None); report_halted := false; if (btnode[Sequence13_btn6].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 134, trace level: 3 // Btnode Sequence 'Sequence13_btn6' has been called ignorep := fiacre_c_print_trace(134); btnode[Sequence13_btn6].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 135, trace level: 3 // Btnode Sequence 'Sequence13_btn6' is being halted ignorep := fiacre_c_print_trace(135); ignorep := fiacre_graphic_trace(8,ns_halt); if (btnode[Fallback15_btn7].rstatus = running) then // Trace index: 136, trace level: 4 // Btnode Sequence 'Sequence13_btn6' halting Fallback 'Fallback15_btn7' ignorep := fiacre_c_print_trace(136); btnode[Fallback15_btn7].rstatus := halt_me; btnode[Fallback15_btn7].caller := caller_Sequence13_btn6; to halt_wait end; if (btnode[Eval25_btn12].rstatus = running) then // Trace index: 137, trace level: 4 // Btnode Sequence 'Sequence13_btn6' halting Eval 'Eval25_btn12' ignorep := fiacre_c_print_trace(137); btnode[Eval25_btn12].rstatus := halt_me; btnode[Eval25_btn12].caller := caller_Sequence13_btn6; to halt_wait end; if (btnode[Fallback27_btn13].rstatus = running) then // Trace index: 138, trace level: 4 // Btnode Sequence 'Sequence13_btn6' halting Fallback 'Fallback27_btn13' ignorep := fiacre_c_print_trace(138); btnode[Fallback27_btn13].rstatus := halt_me; btnode[Fallback27_btn13].caller := caller_Sequence13_btn6; to halt_wait end; to halted from halt_wait on ( (btnode[Fallback15_btn7].caller = None) and (btnode[Eval25_btn12].caller = None) and (btnode[Fallback27_btn13].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(8,ns_ticked); if (next_seq = 1) then to Fallback15_btn7 end; if (next_seq = 2) then to Eval25_btn12 end; if (next_seq = 3) then to Fallback27_btn13 end; to error from Fallback15_btn7 wait [0,0]; // Trace index: 139, trace level: 4 // Btnode Sequence 'Sequence13_btn6' calling Fallback 'Fallback15_btn7' ignorep := fiacre_c_print_trace(139); btnode[Fallback15_btn7].caller := caller_Sequence13_btn6; ignorep := fiacre_graphic_trace(8,ns_tick_passed); to Fallback15_btn7_done from Fallback15_btn7_done wait [0,0]; on (btnode[Fallback15_btn7].caller = None); ignorep := fiacre_graphic_trace(8,ns_ticked); // Trace index: 140, trace level: 4 // Btnode Sequence 'Sequence13_btn6' getting control back from Fallback 'Fallback15_btn7' ignorep := fiacre_c_print_trace(140); if (btnode[Fallback15_btn7].rstatus = success) then to Eval25_btn12 elsif (btnode[Fallback15_btn7].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Fallback15_btn7].rstatus = running) then next_seq := 1; to running else to error end from Eval25_btn12 wait [0,0]; // Trace index: 141, trace level: 4 // Btnode Sequence 'Sequence13_btn6' calling Eval 'Eval25_btn12' ignorep := fiacre_c_print_trace(141); btnode[Eval25_btn12].caller := caller_Sequence13_btn6; ignorep := fiacre_graphic_trace(8,ns_tick_passed); to Eval25_btn12_done from Eval25_btn12_done wait [0,0]; on (btnode[Eval25_btn12].caller = None); ignorep := fiacre_graphic_trace(8,ns_ticked); // Trace index: 142, trace level: 4 // Btnode Sequence 'Sequence13_btn6' getting control back from Eval 'Eval25_btn12' ignorep := fiacre_c_print_trace(142); if (btnode[Eval25_btn12].rstatus = success) then to Fallback27_btn13 elsif (btnode[Eval25_btn12].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Eval25_btn12].rstatus = running) then next_seq := 2; to running else to error end from Fallback27_btn13 wait [0,0]; // Trace index: 143, trace level: 4 // Btnode Sequence 'Sequence13_btn6' calling Fallback 'Fallback27_btn13' ignorep := fiacre_c_print_trace(143); btnode[Fallback27_btn13].caller := caller_Sequence13_btn6; ignorep := fiacre_graphic_trace(8,ns_tick_passed); to Fallback27_btn13_done from Fallback27_btn13_done wait [0,0]; on (btnode[Fallback27_btn13].caller = None); ignorep := fiacre_graphic_trace(8,ns_ticked); // Trace index: 144, trace level: 4 // Btnode Sequence 'Sequence13_btn6' getting control back from Fallback 'Fallback27_btn13' ignorep := fiacre_c_print_trace(144); if (btnode[Fallback27_btn13].rstatus = success) then next_seq := 1; to success elsif (btnode[Fallback27_btn13].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Fallback27_btn13].rstatus = running) then next_seq := 3; to running else to error end from success wait [0,0]; // Trace index: 145, trace level: 2 // Btnode Sequence 'Sequence13_btn6' returns success. ignorep := fiacre_c_print_trace(145); btnode[Sequence13_btn6].rstatus := success; ignorep := fiacre_graphic_trace(8,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 146, trace level: 2 // Btnode Sequence 'Sequence13_btn6' returns halted failure. ignorep := fiacre_c_print_trace(146); ignorep := fiacre_graphic_trace(8,ns_halted); null else // Trace index: 147, trace level: 2 // Btnode Sequence 'Sequence13_btn6' returns failure. ignorep := fiacre_c_print_trace(147); ignorep := fiacre_graphic_trace(8,ns_failure); null end; btnode[Sequence13_btn6].rstatus := failure; to done from halted wait [0,0]; // Trace index: 148, trace level: 2 // Btnode Sequence 'Sequence13_btn6' has been halted. ignorep := fiacre_c_print_trace(148); next_seq := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 149, trace level: 3 // Btnode Sequence 'Sequence13_btn6' returns running. ignorep := fiacre_c_print_trace(149); ignorep := fiacre_graphic_trace(8,ns_running); btnode[Sequence13_btn6].rstatus := running; to done from done wait [0,0]; // Trace index: 150, trace level: 3 // Btnode Sequence 'Sequence13_btn6' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(150); btnode[Sequence13_btn6].caller := None; to ether from ether wait [0,0]; to start_ process btnode_localization_ok_btn17 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn17].caller <> None); // Trace index: 151, trace level: 3 // Btnode Condition 'localization_ok_btn17' has been called ignorep := fiacre_c_print_trace(151); btnode[localization_ok_btn17].rstatus := no_ret_status; to tick_node from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(19,ns_ticked); to Condition_localization_ok from Condition_localization_ok // Trace index: 152, trace level: 3 // Btnode Condition 'localization_ok_btn17' calling its condition external ignorep := fiacre_c_print_trace(152); ret_val := Fiacre_Condition_localization_ok_ext (btnode[localization_ok_btn17]); 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: 153, trace level: 2 // Btnode Condition 'localization_ok_btn17' returns success. ignorep := fiacre_c_print_trace(153); btnode[localization_ok_btn17].rstatus := success; ignorep := fiacre_graphic_trace(19,ns_success); to done from failure wait [0,0]; // Trace index: 154, trace level: 2 // Btnode Condition 'localization_ok_btn17' returns failure. ignorep := fiacre_c_print_trace(154); ignorep := fiacre_graphic_trace(19,ns_failure); btnode[localization_ok_btn17].rstatus := failure; to done from done wait [0,0]; // Trace index: 155, trace level: 3 // Btnode Condition 'localization_ok_btn17' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(155); btnode[localization_ok_btn17].caller := None; to ether from ether wait [0,0]; to start_ process btnode_land_btn19 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn19].caller <> None); report_halted := false; if (btnode[land_btn19].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 156, trace level: 3 // Btnode Action 'land_btn19' has been called ignorep := fiacre_c_print_trace(156); btnode[land_btn19].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 157, trace level: 3 // Btnode Action 'land_btn19' is being halted ignorep := fiacre_c_print_trace(157); ignorep := fiacre_graphic_trace(21,ns_halt); ignoreb := Fiacre_Action_land_halt (btnode[land_btn19]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(21,ns_ticked); to Action_land from Action_land // Trace index: 158, trace level: 3 // Btnode Action 'land_btn19' calling its action (start task) ignorep := fiacre_c_print_trace(158); start Fiacre_Action_land_task (btnode[land_btn19]); to Action_land_sync from Action_land_sync sync Fiacre_Action_land_task ret_val; // Trace index: 159, trace level: 3 // Btnode Action 'land_btn19' 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 'land_btn19' returns success. ignorep := fiacre_c_print_trace(160); btnode[land_btn19].rstatus := success; ignorep := fiacre_graphic_trace(21,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 161, trace level: 2 // Btnode Action 'land_btn19' returns halted failure. ignorep := fiacre_c_print_trace(161); ignorep := fiacre_graphic_trace(21,ns_halted); null else // Trace index: 162, trace level: 2 // Btnode Action 'land_btn19' returns failure. ignorep := fiacre_c_print_trace(162); ignorep := fiacre_graphic_trace(21,ns_failure); null end; btnode[land_btn19].rstatus := failure; to done from halted wait [0,0]; // Trace index: 163, trace level: 2 // Btnode Action 'land_btn19' 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 'land_btn19' returns running. ignorep := fiacre_c_print_trace(164); ignorep := fiacre_graphic_trace(21,ns_running); btnode[land_btn19].rstatus := running; to done from done wait [0,0]; // Trace index: 165, trace level: 3 // Btnode Action 'land_btn19' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(165); btnode[land_btn19].caller := None; to ether from ether wait [0,0]; to start_ process btnode_ForceFailure37_btn18 (&btnode: btnode_array) is states start_, tick_node, failure, halt, halted, halt_wait, running, error, land_btn19, land_btn19_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[ForceFailure37_btn18].caller <> None); report_halted := false; if (btnode[ForceFailure37_btn18].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 166, trace level: 3 // Btnode ForceFailure 'ForceFailure37_btn18' has been called ignorep := fiacre_c_print_trace(166); btnode[ForceFailure37_btn18].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 167, trace level: 3 // Btnode ForceFailure 'ForceFailure37_btn18' is being halted ignorep := fiacre_c_print_trace(167); ignorep := fiacre_graphic_trace(20,ns_halt); if (btnode[land_btn19].rstatus = running) then // Trace index: 168, trace level: 4 // Btnode ForceFailure 'ForceFailure37_btn18' halting Action 'land_btn19' ignorep := fiacre_c_print_trace(168); btnode[land_btn19].rstatus := halt_me; btnode[land_btn19].caller := caller_ForceFailure37_btn18; to halt_wait end; to halted from halt_wait on (btnode[land_btn19].caller = None); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(20,ns_ticked); to land_btn19 from land_btn19 wait [0,0]; // Trace index: 169, trace level: 4 // Btnode ForceFailure 'ForceFailure37_btn18' calling Action 'land_btn19' ignorep := fiacre_c_print_trace(169); btnode[land_btn19].caller := caller_ForceFailure37_btn18; ignorep := fiacre_graphic_trace(20,ns_tick_passed); to land_btn19_done from land_btn19_done wait [0,0]; on (btnode[land_btn19].caller = None); // Trace index: 170, trace level: 4 // Btnode ForceFailure 'ForceFailure37_btn18' getting control back from Action 'land_btn19' ignorep := fiacre_c_print_trace(170); if (btnode[land_btn19].rstatus = success) then to failure elsif (btnode[land_btn19].rstatus = failure) then to failure elsif (btnode[land_btn19].rstatus = running) then to running else to error end from failure wait [0,0]; if (report_halted) then // Trace index: 171, trace level: 2 // Btnode ForceFailure 'ForceFailure37_btn18' returns halted failure. ignorep := fiacre_c_print_trace(171); ignorep := fiacre_graphic_trace(20,ns_halted); null else // Trace index: 172, trace level: 2 // Btnode ForceFailure 'ForceFailure37_btn18' returns failure. ignorep := fiacre_c_print_trace(172); ignorep := fiacre_graphic_trace(20,ns_failure); null end; btnode[ForceFailure37_btn18].rstatus := failure; to done from halted wait [0,0]; // Trace index: 173, trace level: 2 // Btnode ForceFailure 'ForceFailure37_btn18' 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 ForceFailure 'ForceFailure37_btn18' returns running. ignorep := fiacre_c_print_trace(174); ignorep := fiacre_graphic_trace(20,ns_running); btnode[ForceFailure37_btn18].rstatus := running; to done from done wait [0,0]; // Trace index: 175, trace level: 3 // Btnode ForceFailure 'ForceFailure37_btn18' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(175); btnode[ForceFailure37_btn18].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Fallback33_btn16 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, localization_ok_btn17, localization_ok_btn17_done, ForceFailure37_btn18, ForceFailure37_btn18_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_fb: 1..2 := 1 from start_ wait [0,0]; on (btnode[Fallback33_btn16].caller <> None); report_halted := false; if (btnode[Fallback33_btn16].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 176, trace level: 3 // Btnode Fallback 'Fallback33_btn16' has been called ignorep := fiacre_c_print_trace(176); btnode[Fallback33_btn16].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 177, trace level: 3 // Btnode Fallback 'Fallback33_btn16' is being halted ignorep := fiacre_c_print_trace(177); ignorep := fiacre_graphic_trace(18,ns_halt); if (btnode[localization_ok_btn17].rstatus = running) then // Trace index: 178, trace level: 4 // Btnode Fallback 'Fallback33_btn16' halting Condition 'localization_ok_btn17' ignorep := fiacre_c_print_trace(178); btnode[localization_ok_btn17].rstatus := halt_me; btnode[localization_ok_btn17].caller := caller_Fallback33_btn16; to halt_wait end; if (btnode[ForceFailure37_btn18].rstatus = running) then // Trace index: 179, trace level: 4 // Btnode Fallback 'Fallback33_btn16' halting ForceFailure 'ForceFailure37_btn18' ignorep := fiacre_c_print_trace(179); btnode[ForceFailure37_btn18].rstatus := halt_me; btnode[ForceFailure37_btn18].caller := caller_Fallback33_btn16; to halt_wait end; to halted from halt_wait on ( (btnode[localization_ok_btn17].caller = None) and (btnode[ForceFailure37_btn18].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(18,ns_ticked); if (next_fb = 1) then to localization_ok_btn17 end; if (next_fb = 2) then to ForceFailure37_btn18 end; to error from localization_ok_btn17 wait [0,0]; // Trace index: 180, trace level: 4 // Btnode Fallback 'Fallback33_btn16' calling Condition 'localization_ok_btn17' ignorep := fiacre_c_print_trace(180); btnode[localization_ok_btn17].caller := caller_Fallback33_btn16; ignorep := fiacre_graphic_trace(18,ns_tick_passed); to localization_ok_btn17_done from localization_ok_btn17_done wait [0,0]; on (btnode[localization_ok_btn17].caller = None); ignorep := fiacre_graphic_trace(18,ns_ticked); // Trace index: 181, trace level: 4 // Btnode Fallback 'Fallback33_btn16' getting control back from Condition 'localization_ok_btn17' ignorep := fiacre_c_print_trace(181); if (btnode[localization_ok_btn17].rstatus = success) then next_fb := 1; to success elsif (btnode[localization_ok_btn17].rstatus = failure) then to ForceFailure37_btn18 elsif (btnode[localization_ok_btn17].rstatus = running) then next_fb := 1; to running else to error end from ForceFailure37_btn18 wait [0,0]; // Trace index: 182, trace level: 4 // Btnode Fallback 'Fallback33_btn16' calling ForceFailure 'ForceFailure37_btn18' ignorep := fiacre_c_print_trace(182); btnode[ForceFailure37_btn18].caller := caller_Fallback33_btn16; ignorep := fiacre_graphic_trace(18,ns_tick_passed); to ForceFailure37_btn18_done from ForceFailure37_btn18_done wait [0,0]; on (btnode[ForceFailure37_btn18].caller = None); ignorep := fiacre_graphic_trace(18,ns_ticked); // Trace index: 183, trace level: 4 // Btnode Fallback 'Fallback33_btn16' getting control back from ForceFailure 'ForceFailure37_btn18' ignorep := fiacre_c_print_trace(183); if (btnode[ForceFailure37_btn18].rstatus = success) then next_fb := 1; to success elsif (btnode[ForceFailure37_btn18].rstatus = failure) then next_fb := 1; to failure elsif (btnode[ForceFailure37_btn18].rstatus = running) then next_fb := 2; to running else to error end from success wait [0,0]; // Trace index: 184, trace level: 2 // Btnode Fallback 'Fallback33_btn16' returns success. ignorep := fiacre_c_print_trace(184); btnode[Fallback33_btn16].rstatus := success; ignorep := fiacre_graphic_trace(18,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 185, trace level: 2 // Btnode Fallback 'Fallback33_btn16' returns halted failure. ignorep := fiacre_c_print_trace(185); ignorep := fiacre_graphic_trace(18,ns_halted); null else // Trace index: 186, trace level: 2 // Btnode Fallback 'Fallback33_btn16' returns failure. ignorep := fiacre_c_print_trace(186); ignorep := fiacre_graphic_trace(18,ns_failure); null end; btnode[Fallback33_btn16].rstatus := failure; to done from halted wait [0,0]; // Trace index: 187, trace level: 2 // Btnode Fallback 'Fallback33_btn16' has been halted. ignorep := fiacre_c_print_trace(187); next_fb := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 188, trace level: 3 // Btnode Fallback 'Fallback33_btn16' returns running. ignorep := fiacre_c_print_trace(188); ignorep := fiacre_graphic_trace(18,ns_running); btnode[Fallback33_btn16].rstatus := running; to done from done wait [0,0]; // Trace index: 189, trace level: 3 // Btnode Fallback 'Fallback33_btn16' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(189); btnode[Fallback33_btn16].caller := None; to ether from ether wait [0,0]; to start_ process btnode_takeoff_btn21 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn21].caller <> None); report_halted := false; if (btnode[takeoff_btn21].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 190, trace level: 3 // Btnode Action 'takeoff_btn21' has been called (:height 1.000000 :duration 0 ) ignorep := fiacre_c_print_trace(190); btnode[takeoff_btn21].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 191, trace level: 3 // Btnode Action 'takeoff_btn21' is being halted (:height 1.000000 :duration 0 ) ignorep := fiacre_c_print_trace(191); ignorep := fiacre_graphic_trace(23,ns_halt); ignoreb := Fiacre_Action_takeoff_halt (btnode[takeoff_btn21]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(23,ns_ticked); to Action_takeoff from Action_takeoff // synthesized action arg index 2 btnode[takeoff_btn21].ArgIndex := 2; // Trace index: 192, trace level: 3 // Btnode Action 'takeoff_btn21' calling its action (start task) ignorep := fiacre_c_print_trace(192); start Fiacre_Action_takeoff_task (btnode[takeoff_btn21]); to Action_takeoff_sync from Action_takeoff_sync sync Fiacre_Action_takeoff_task ret_val; // Trace index: 193, trace level: 3 // Btnode Action 'takeoff_btn21' returned (sync task) ignorep := fiacre_c_print_trace(193); 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: 194, trace level: 2 // Btnode Action 'takeoff_btn21' (:height 1.000000 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(194); btnode[takeoff_btn21].rstatus := success; ignorep := fiacre_graphic_trace(23,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 195, trace level: 2 // Btnode Action 'takeoff_btn21' (:height 1.000000 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(195); ignorep := fiacre_graphic_trace(23,ns_halted); null else // Trace index: 196, trace level: 2 // Btnode Action 'takeoff_btn21' (:height 1.000000 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(196); ignorep := fiacre_graphic_trace(23,ns_failure); null end; btnode[takeoff_btn21].rstatus := failure; to done from halted wait [0,0]; // Trace index: 197, trace level: 2 // Btnode Action 'takeoff_btn21' (:height 1.000000 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(197); report_halted := true; to failure from running wait [0,0]; // Trace index: 198, trace level: 3 // Btnode Action 'takeoff_btn21' (:height 1.000000 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(198); ignorep := fiacre_graphic_trace(23,ns_running); btnode[takeoff_btn21].rstatus := running; to done from done wait [0,0]; // Trace index: 199, trace level: 3 // Btnode Action 'takeoff_btn21' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(199); btnode[takeoff_btn21].caller := None; to ether from ether wait [0,0]; to start_ process btnode_camera_tracking_btn23 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn23].caller <> None); report_halted := false; if (btnode[camera_tracking_btn23].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 200, trace level: 3 // Btnode Action 'camera_tracking_btn23' has been called ignorep := fiacre_c_print_trace(200); btnode[camera_tracking_btn23].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 201, trace level: 3 // Btnode Action 'camera_tracking_btn23' is being halted ignorep := fiacre_c_print_trace(201); ignorep := fiacre_graphic_trace(25,ns_halt); ignoreb := Fiacre_Action_camera_tracking_halt (btnode[camera_tracking_btn23]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(25,ns_ticked); to Action_camera_tracking from Action_camera_tracking // Trace index: 202, trace level: 3 // Btnode Action 'camera_tracking_btn23' calling its action (start task) ignorep := fiacre_c_print_trace(202); start Fiacre_Action_camera_tracking_task (btnode[camera_tracking_btn23]); to Action_camera_tracking_sync from Action_camera_tracking_sync sync Fiacre_Action_camera_tracking_task ret_val; // Trace index: 203, trace level: 3 // Btnode Action 'camera_tracking_btn23' returned (sync task) ignorep := fiacre_c_print_trace(203); 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: 204, trace level: 2 // Btnode Action 'camera_tracking_btn23' returns success. ignorep := fiacre_c_print_trace(204); btnode[camera_tracking_btn23].rstatus := success; ignorep := fiacre_graphic_trace(25,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 205, trace level: 2 // Btnode Action 'camera_tracking_btn23' returns halted failure. ignorep := fiacre_c_print_trace(205); ignorep := fiacre_graphic_trace(25,ns_halted); null else // Trace index: 206, trace level: 2 // Btnode Action 'camera_tracking_btn23' returns failure. ignorep := fiacre_c_print_trace(206); ignorep := fiacre_graphic_trace(25,ns_failure); null end; btnode[camera_tracking_btn23].rstatus := failure; to done from halted wait [0,0]; // Trace index: 207, trace level: 2 // Btnode Action 'camera_tracking_btn23' has been halted. ignorep := fiacre_c_print_trace(207); report_halted := true; to failure from running wait [0,0]; // Trace index: 208, trace level: 3 // Btnode Action 'camera_tracking_btn23' returns running. ignorep := fiacre_c_print_trace(208); ignorep := fiacre_graphic_trace(25,ns_running); btnode[camera_tracking_btn23].rstatus := running; to done from done wait [0,0]; // Trace index: 209, trace level: 3 // Btnode Action 'camera_tracking_btn23' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(209); btnode[camera_tracking_btn23].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Eval53_btn26 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) is states start_, tick_node, success, halt, halted, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false from start_ wait [0,0]; on (btnode[Eval53_btn26].caller <> None); report_halted := false; if (btnode[Eval53_btn26].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 210, trace level: 3 // Btnode Eval 'Eval53_btn26' has been called ignorep := fiacre_c_print_trace(210); btnode[Eval53_btn26].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 211, trace level: 3 // Btnode Eval 'Eval53_btn26' is being halted ignorep := fiacre_c_print_trace(211); ignorep := fiacre_graphic_trace(28,ns_halt); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(28,ns_ticked); // Trace index: 212, trace level: 3 // Btnode Eval 'Eval53_btn26' evaluating expression (:= fls (+ 1 fls)) ignorep := fiacre_c_print_trace(212); // will assign: fls := (1 + fls) // Trace index: 213, trace level: 4 // Btnode Eval 'Eval53_btn26' assign 'fls := (1 + fls)' ignorep := fiacre_c_print_trace(213); fls := (1 + fls); to success from success wait [0,0]; // Trace index: 214, trace level: 2 // Btnode Eval 'Eval53_btn26' returns success. ignorep := fiacre_c_print_trace(214); btnode[Eval53_btn26].rstatus := success; ignorep := fiacre_graphic_trace(28,ns_success); to done from done wait [0,0]; // Trace index: 215, trace level: 3 // Btnode Eval 'Eval53_btn26' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(215); btnode[Eval53_btn26].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn27 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn27].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn27].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 216, trace level: 3 // Btnode Action 'goto_waypoint_btn27' has been called (:x -3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(216); btnode[goto_waypoint_btn27].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 217, trace level: 3 // Btnode Action 'goto_waypoint_btn27' is being halted (:x -3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(217); ignorep := fiacre_graphic_trace(29,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn27]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(29,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 3 btnode[goto_waypoint_btn27].ArgIndex := 3; // Trace index: 218, trace level: 3 // Btnode Action 'goto_waypoint_btn27' calling its action (start task) ignorep := fiacre_c_print_trace(218); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn27]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 219, trace level: 3 // Btnode Action 'goto_waypoint_btn27' returned (sync task) ignorep := fiacre_c_print_trace(219); 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: 220, trace level: 2 // Btnode Action 'goto_waypoint_btn27' (:x -3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(220); btnode[goto_waypoint_btn27].rstatus := success; ignorep := fiacre_graphic_trace(29,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 221, trace level: 2 // Btnode Action 'goto_waypoint_btn27' (:x -3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(221); ignorep := fiacre_graphic_trace(29,ns_halted); null else // Trace index: 222, trace level: 2 // Btnode Action 'goto_waypoint_btn27' (:x -3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(222); ignorep := fiacre_graphic_trace(29,ns_failure); null end; btnode[goto_waypoint_btn27].rstatus := failure; to done from halted wait [0,0]; // Trace index: 223, trace level: 2 // Btnode Action 'goto_waypoint_btn27' (:x -3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(223); report_halted := true; to failure from running wait [0,0]; // Trace index: 224, trace level: 3 // Btnode Action 'goto_waypoint_btn27' (:x -3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(224); ignorep := fiacre_graphic_trace(29,ns_running); btnode[goto_waypoint_btn27].rstatus := running; to done from done wait [0,0]; // Trace index: 225, trace level: 3 // Btnode Action 'goto_waypoint_btn27' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(225); btnode[goto_waypoint_btn27].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn28 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn28].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn28].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 226, trace level: 3 // Btnode Action 'goto_waypoint_btn28' has been called (:x -1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(226); btnode[goto_waypoint_btn28].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 227, trace level: 3 // Btnode Action 'goto_waypoint_btn28' is being halted (:x -1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(227); ignorep := fiacre_graphic_trace(30,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn28]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(30,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 4 btnode[goto_waypoint_btn28].ArgIndex := 4; // Trace index: 228, trace level: 3 // Btnode Action 'goto_waypoint_btn28' calling its action (start task) ignorep := fiacre_c_print_trace(228); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn28]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 229, trace level: 3 // Btnode Action 'goto_waypoint_btn28' returned (sync task) ignorep := fiacre_c_print_trace(229); 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: 230, trace level: 2 // Btnode Action 'goto_waypoint_btn28' (:x -1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(230); btnode[goto_waypoint_btn28].rstatus := success; ignorep := fiacre_graphic_trace(30,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 231, trace level: 2 // Btnode Action 'goto_waypoint_btn28' (:x -1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(231); ignorep := fiacre_graphic_trace(30,ns_halted); null else // Trace index: 232, trace level: 2 // Btnode Action 'goto_waypoint_btn28' (:x -1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(232); ignorep := fiacre_graphic_trace(30,ns_failure); null end; btnode[goto_waypoint_btn28].rstatus := failure; to done from halted wait [0,0]; // Trace index: 233, trace level: 2 // Btnode Action 'goto_waypoint_btn28' (:x -1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(233); report_halted := true; to failure from running wait [0,0]; // Trace index: 234, trace level: 3 // Btnode Action 'goto_waypoint_btn28' (:x -1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(234); ignorep := fiacre_graphic_trace(30,ns_running); btnode[goto_waypoint_btn28].rstatus := running; to done from done wait [0,0]; // Trace index: 235, trace level: 3 // Btnode Action 'goto_waypoint_btn28' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(235); btnode[goto_waypoint_btn28].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn29 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn29].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn29].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 236, trace level: 3 // Btnode Action 'goto_waypoint_btn29' has been called (:x 0 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(236); btnode[goto_waypoint_btn29].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 237, trace level: 3 // Btnode Action 'goto_waypoint_btn29' is being halted (:x 0 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(237); ignorep := fiacre_graphic_trace(31,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn29]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(31,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 5 btnode[goto_waypoint_btn29].ArgIndex := 5; // Trace index: 238, trace level: 3 // Btnode Action 'goto_waypoint_btn29' calling its action (start task) ignorep := fiacre_c_print_trace(238); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn29]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 239, trace level: 3 // Btnode Action 'goto_waypoint_btn29' returned (sync task) ignorep := fiacre_c_print_trace(239); 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: 240, trace level: 2 // Btnode Action 'goto_waypoint_btn29' (:x 0 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(240); btnode[goto_waypoint_btn29].rstatus := success; ignorep := fiacre_graphic_trace(31,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 241, trace level: 2 // Btnode Action 'goto_waypoint_btn29' (:x 0 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(241); ignorep := fiacre_graphic_trace(31,ns_halted); null else // Trace index: 242, trace level: 2 // Btnode Action 'goto_waypoint_btn29' (:x 0 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(242); ignorep := fiacre_graphic_trace(31,ns_failure); null end; btnode[goto_waypoint_btn29].rstatus := failure; to done from halted wait [0,0]; // Trace index: 243, trace level: 2 // Btnode Action 'goto_waypoint_btn29' (:x 0 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(243); report_halted := true; to failure from running wait [0,0]; // Trace index: 244, trace level: 3 // Btnode Action 'goto_waypoint_btn29' (:x 0 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(244); ignorep := fiacre_graphic_trace(31,ns_running); btnode[goto_waypoint_btn29].rstatus := running; to done from done wait [0,0]; // Trace index: 245, trace level: 3 // Btnode Action 'goto_waypoint_btn29' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(245); btnode[goto_waypoint_btn29].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn30 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn30].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn30].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 246, trace level: 3 // Btnode Action 'goto_waypoint_btn30' has been called (:x 1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(246); btnode[goto_waypoint_btn30].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 247, trace level: 3 // Btnode Action 'goto_waypoint_btn30' is being halted (:x 1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(247); ignorep := fiacre_graphic_trace(32,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn30]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(32,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 6 btnode[goto_waypoint_btn30].ArgIndex := 6; // Trace index: 248, trace level: 3 // Btnode Action 'goto_waypoint_btn30' calling its action (start task) ignorep := fiacre_c_print_trace(248); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn30]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 249, trace level: 3 // Btnode Action 'goto_waypoint_btn30' returned (sync task) ignorep := fiacre_c_print_trace(249); 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: 250, trace level: 2 // Btnode Action 'goto_waypoint_btn30' (:x 1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(250); btnode[goto_waypoint_btn30].rstatus := success; ignorep := fiacre_graphic_trace(32,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 251, trace level: 2 // Btnode Action 'goto_waypoint_btn30' (:x 1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(251); ignorep := fiacre_graphic_trace(32,ns_halted); null else // Trace index: 252, trace level: 2 // Btnode Action 'goto_waypoint_btn30' (:x 1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(252); ignorep := fiacre_graphic_trace(32,ns_failure); null end; btnode[goto_waypoint_btn30].rstatus := failure; to done from halted wait [0,0]; // Trace index: 253, trace level: 2 // Btnode Action 'goto_waypoint_btn30' (:x 1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(253); report_halted := true; to failure from running wait [0,0]; // Trace index: 254, trace level: 3 // Btnode Action 'goto_waypoint_btn30' (:x 1.500000 :y 3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(254); ignorep := fiacre_graphic_trace(32,ns_running); btnode[goto_waypoint_btn30].rstatus := running; to done from done wait [0,0]; // Trace index: 255, trace level: 3 // Btnode Action 'goto_waypoint_btn30' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(255); btnode[goto_waypoint_btn30].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn31 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn31].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn31].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 256, trace level: 3 // Btnode Action 'goto_waypoint_btn31' has been called (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(256); btnode[goto_waypoint_btn31].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 257, trace level: 3 // Btnode Action 'goto_waypoint_btn31' is being halted (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(257); ignorep := fiacre_graphic_trace(33,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn31]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(33,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 7 btnode[goto_waypoint_btn31].ArgIndex := 7; // Trace index: 258, trace level: 3 // Btnode Action 'goto_waypoint_btn31' calling its action (start task) ignorep := fiacre_c_print_trace(258); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn31]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 259, trace level: 3 // Btnode Action 'goto_waypoint_btn31' returned (sync task) ignorep := fiacre_c_print_trace(259); 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: 260, trace level: 2 // Btnode Action 'goto_waypoint_btn31' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(260); btnode[goto_waypoint_btn31].rstatus := success; ignorep := fiacre_graphic_trace(33,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 261, trace level: 2 // Btnode Action 'goto_waypoint_btn31' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(261); ignorep := fiacre_graphic_trace(33,ns_halted); null else // Trace index: 262, trace level: 2 // Btnode Action 'goto_waypoint_btn31' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(262); ignorep := fiacre_graphic_trace(33,ns_failure); null end; btnode[goto_waypoint_btn31].rstatus := failure; to done from halted wait [0,0]; // Trace index: 263, trace level: 2 // Btnode Action 'goto_waypoint_btn31' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(263); report_halted := true; to failure from running wait [0,0]; // Trace index: 264, trace level: 3 // Btnode Action 'goto_waypoint_btn31' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(264); ignorep := fiacre_graphic_trace(33,ns_running); btnode[goto_waypoint_btn31].rstatus := running; to done from done wait [0,0]; // Trace index: 265, trace level: 3 // Btnode Action 'goto_waypoint_btn31' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(265); btnode[goto_waypoint_btn31].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn32 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn32].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn32].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 266, trace level: 3 // Btnode Action 'goto_waypoint_btn32' has been called (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(266); btnode[goto_waypoint_btn32].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 267, trace level: 3 // Btnode Action 'goto_waypoint_btn32' is being halted (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) ignorep := fiacre_c_print_trace(267); ignorep := fiacre_graphic_trace(34,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn32]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(34,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 8 btnode[goto_waypoint_btn32].ArgIndex := 8; // Trace index: 268, trace level: 3 // Btnode Action 'goto_waypoint_btn32' calling its action (start task) ignorep := fiacre_c_print_trace(268); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn32]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 269, trace level: 3 // Btnode Action 'goto_waypoint_btn32' returned (sync task) ignorep := fiacre_c_print_trace(269); 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: 270, trace level: 2 // Btnode Action 'goto_waypoint_btn32' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(270); btnode[goto_waypoint_btn32].rstatus := success; ignorep := fiacre_graphic_trace(34,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 271, trace level: 2 // Btnode Action 'goto_waypoint_btn32' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(271); ignorep := fiacre_graphic_trace(34,ns_halted); null else // Trace index: 272, trace level: 2 // Btnode Action 'goto_waypoint_btn32' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(272); ignorep := fiacre_graphic_trace(34,ns_failure); null end; btnode[goto_waypoint_btn32].rstatus := failure; to done from halted wait [0,0]; // Trace index: 273, trace level: 2 // Btnode Action 'goto_waypoint_btn32' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(273); report_halted := true; to failure from running wait [0,0]; // Trace index: 274, trace level: 3 // Btnode Action 'goto_waypoint_btn32' (:x 3 :y -3 :z (* 2 {$fls->NULL}) :yaw 0 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(274); ignorep := fiacre_graphic_trace(34,ns_running); btnode[goto_waypoint_btn32].rstatus := running; to done from done wait [0,0]; // Trace index: 275, trace level: 3 // Btnode Action 'goto_waypoint_btn32' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(275); btnode[goto_waypoint_btn32].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Sequence51_btn25 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, Eval53_btn26, Eval53_btn26_done, goto_waypoint_btn27, goto_waypoint_btn27_done, goto_waypoint_btn28, goto_waypoint_btn28_done, goto_waypoint_btn29, goto_waypoint_btn29_done, goto_waypoint_btn30, goto_waypoint_btn30_done, goto_waypoint_btn31, goto_waypoint_btn31_done, goto_waypoint_btn32, goto_waypoint_btn32_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_seq: 1..8 := 1 from start_ wait [0,0]; on (btnode[Sequence51_btn25].caller <> None); report_halted := false; if (btnode[Sequence51_btn25].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 276, trace level: 3 // Btnode Sequence 'Sequence51_btn25' has been called ignorep := fiacre_c_print_trace(276); btnode[Sequence51_btn25].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 277, trace level: 3 // Btnode Sequence 'Sequence51_btn25' is being halted ignorep := fiacre_c_print_trace(277); ignorep := fiacre_graphic_trace(27,ns_halt); if (btnode[Eval53_btn26].rstatus = running) then // Trace index: 278, trace level: 4 // Btnode Sequence 'Sequence51_btn25' halting Eval 'Eval53_btn26' ignorep := fiacre_c_print_trace(278); btnode[Eval53_btn26].rstatus := halt_me; btnode[Eval53_btn26].caller := caller_Sequence51_btn25; to halt_wait end; if (btnode[goto_waypoint_btn27].rstatus = running) then // Trace index: 279, trace level: 4 // Btnode Sequence 'Sequence51_btn25' halting Action 'goto_waypoint_btn27' ignorep := fiacre_c_print_trace(279); btnode[goto_waypoint_btn27].rstatus := halt_me; btnode[goto_waypoint_btn27].caller := caller_Sequence51_btn25; to halt_wait end; if (btnode[goto_waypoint_btn28].rstatus = running) then // Trace index: 280, trace level: 4 // Btnode Sequence 'Sequence51_btn25' halting Action 'goto_waypoint_btn28' ignorep := fiacre_c_print_trace(280); btnode[goto_waypoint_btn28].rstatus := halt_me; btnode[goto_waypoint_btn28].caller := caller_Sequence51_btn25; to halt_wait end; if (btnode[goto_waypoint_btn29].rstatus = running) then // Trace index: 281, trace level: 4 // Btnode Sequence 'Sequence51_btn25' halting Action 'goto_waypoint_btn29' ignorep := fiacre_c_print_trace(281); btnode[goto_waypoint_btn29].rstatus := halt_me; btnode[goto_waypoint_btn29].caller := caller_Sequence51_btn25; to halt_wait end; if (btnode[goto_waypoint_btn30].rstatus = running) then // Trace index: 282, trace level: 4 // Btnode Sequence 'Sequence51_btn25' halting Action 'goto_waypoint_btn30' ignorep := fiacre_c_print_trace(282); btnode[goto_waypoint_btn30].rstatus := halt_me; btnode[goto_waypoint_btn30].caller := caller_Sequence51_btn25; to halt_wait end; if (btnode[goto_waypoint_btn31].rstatus = running) then // Trace index: 283, trace level: 4 // Btnode Sequence 'Sequence51_btn25' halting Action 'goto_waypoint_btn31' ignorep := fiacre_c_print_trace(283); btnode[goto_waypoint_btn31].rstatus := halt_me; btnode[goto_waypoint_btn31].caller := caller_Sequence51_btn25; to halt_wait end; if (btnode[goto_waypoint_btn32].rstatus = running) then // Trace index: 284, trace level: 4 // Btnode Sequence 'Sequence51_btn25' halting Action 'goto_waypoint_btn32' ignorep := fiacre_c_print_trace(284); btnode[goto_waypoint_btn32].rstatus := halt_me; btnode[goto_waypoint_btn32].caller := caller_Sequence51_btn25; to halt_wait end; to halted from halt_wait on ( (btnode[Eval53_btn26].caller = None) and (btnode[goto_waypoint_btn27].caller = None) and (btnode[goto_waypoint_btn28].caller = None) and (btnode[goto_waypoint_btn29].caller = None) and (btnode[goto_waypoint_btn30].caller = None) and (btnode[goto_waypoint_btn31].caller = None) and (btnode[goto_waypoint_btn32].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(27,ns_ticked); if (next_seq = 1) then to Eval53_btn26 end; if (next_seq = 2) then to goto_waypoint_btn27 end; if (next_seq = 3) then to goto_waypoint_btn28 end; if (next_seq = 4) then to goto_waypoint_btn29 end; if (next_seq = 5) then to goto_waypoint_btn30 end; if (next_seq = 6) then to goto_waypoint_btn31 end; if (next_seq = 7) then to goto_waypoint_btn32 end; to error from Eval53_btn26 wait [0,0]; // Trace index: 285, trace level: 4 // Btnode Sequence 'Sequence51_btn25' calling Eval 'Eval53_btn26' ignorep := fiacre_c_print_trace(285); btnode[Eval53_btn26].caller := caller_Sequence51_btn25; ignorep := fiacre_graphic_trace(27,ns_tick_passed); to Eval53_btn26_done from Eval53_btn26_done wait [0,0]; on (btnode[Eval53_btn26].caller = None); ignorep := fiacre_graphic_trace(27,ns_ticked); // Trace index: 286, trace level: 4 // Btnode Sequence 'Sequence51_btn25' getting control back from Eval 'Eval53_btn26' ignorep := fiacre_c_print_trace(286); if (btnode[Eval53_btn26].rstatus = success) then to goto_waypoint_btn27 elsif (btnode[Eval53_btn26].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Eval53_btn26].rstatus = running) then next_seq := 1; to running else to error end from goto_waypoint_btn27 wait [0,0]; // Trace index: 287, trace level: 4 // Btnode Sequence 'Sequence51_btn25' calling Action 'goto_waypoint_btn27' ignorep := fiacre_c_print_trace(287); btnode[goto_waypoint_btn27].caller := caller_Sequence51_btn25; ignorep := fiacre_graphic_trace(27,ns_tick_passed); to goto_waypoint_btn27_done from goto_waypoint_btn27_done wait [0,0]; on (btnode[goto_waypoint_btn27].caller = None); ignorep := fiacre_graphic_trace(27,ns_ticked); // Trace index: 288, trace level: 4 // Btnode Sequence 'Sequence51_btn25' getting control back from Action 'goto_waypoint_btn27' ignorep := fiacre_c_print_trace(288); if (btnode[goto_waypoint_btn27].rstatus = success) then to goto_waypoint_btn28 elsif (btnode[goto_waypoint_btn27].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn27].rstatus = running) then next_seq := 2; to running else to error end from goto_waypoint_btn28 wait [0,0]; // Trace index: 289, trace level: 4 // Btnode Sequence 'Sequence51_btn25' calling Action 'goto_waypoint_btn28' ignorep := fiacre_c_print_trace(289); btnode[goto_waypoint_btn28].caller := caller_Sequence51_btn25; ignorep := fiacre_graphic_trace(27,ns_tick_passed); to goto_waypoint_btn28_done from goto_waypoint_btn28_done wait [0,0]; on (btnode[goto_waypoint_btn28].caller = None); ignorep := fiacre_graphic_trace(27,ns_ticked); // Trace index: 290, trace level: 4 // Btnode Sequence 'Sequence51_btn25' getting control back from Action 'goto_waypoint_btn28' ignorep := fiacre_c_print_trace(290); if (btnode[goto_waypoint_btn28].rstatus = success) then to goto_waypoint_btn29 elsif (btnode[goto_waypoint_btn28].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn28].rstatus = running) then next_seq := 3; to running else to error end from goto_waypoint_btn29 wait [0,0]; // Trace index: 291, trace level: 4 // Btnode Sequence 'Sequence51_btn25' calling Action 'goto_waypoint_btn29' ignorep := fiacre_c_print_trace(291); btnode[goto_waypoint_btn29].caller := caller_Sequence51_btn25; ignorep := fiacre_graphic_trace(27,ns_tick_passed); to goto_waypoint_btn29_done from goto_waypoint_btn29_done wait [0,0]; on (btnode[goto_waypoint_btn29].caller = None); ignorep := fiacre_graphic_trace(27,ns_ticked); // Trace index: 292, trace level: 4 // Btnode Sequence 'Sequence51_btn25' getting control back from Action 'goto_waypoint_btn29' ignorep := fiacre_c_print_trace(292); if (btnode[goto_waypoint_btn29].rstatus = success) then to goto_waypoint_btn30 elsif (btnode[goto_waypoint_btn29].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn29].rstatus = running) then next_seq := 4; to running else to error end from goto_waypoint_btn30 wait [0,0]; // Trace index: 293, trace level: 4 // Btnode Sequence 'Sequence51_btn25' calling Action 'goto_waypoint_btn30' ignorep := fiacre_c_print_trace(293); btnode[goto_waypoint_btn30].caller := caller_Sequence51_btn25; ignorep := fiacre_graphic_trace(27,ns_tick_passed); to goto_waypoint_btn30_done from goto_waypoint_btn30_done wait [0,0]; on (btnode[goto_waypoint_btn30].caller = None); ignorep := fiacre_graphic_trace(27,ns_ticked); // Trace index: 294, trace level: 4 // Btnode Sequence 'Sequence51_btn25' getting control back from Action 'goto_waypoint_btn30' ignorep := fiacre_c_print_trace(294); if (btnode[goto_waypoint_btn30].rstatus = success) then to goto_waypoint_btn31 elsif (btnode[goto_waypoint_btn30].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn30].rstatus = running) then next_seq := 5; to running else to error end from goto_waypoint_btn31 wait [0,0]; // Trace index: 295, trace level: 4 // Btnode Sequence 'Sequence51_btn25' calling Action 'goto_waypoint_btn31' ignorep := fiacre_c_print_trace(295); btnode[goto_waypoint_btn31].caller := caller_Sequence51_btn25; ignorep := fiacre_graphic_trace(27,ns_tick_passed); to goto_waypoint_btn31_done from goto_waypoint_btn31_done wait [0,0]; on (btnode[goto_waypoint_btn31].caller = None); ignorep := fiacre_graphic_trace(27,ns_ticked); // Trace index: 296, trace level: 4 // Btnode Sequence 'Sequence51_btn25' getting control back from Action 'goto_waypoint_btn31' ignorep := fiacre_c_print_trace(296); if (btnode[goto_waypoint_btn31].rstatus = success) then to goto_waypoint_btn32 elsif (btnode[goto_waypoint_btn31].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn31].rstatus = running) then next_seq := 6; to running else to error end from goto_waypoint_btn32 wait [0,0]; // Trace index: 297, trace level: 4 // Btnode Sequence 'Sequence51_btn25' calling Action 'goto_waypoint_btn32' ignorep := fiacre_c_print_trace(297); btnode[goto_waypoint_btn32].caller := caller_Sequence51_btn25; ignorep := fiacre_graphic_trace(27,ns_tick_passed); to goto_waypoint_btn32_done from goto_waypoint_btn32_done wait [0,0]; on (btnode[goto_waypoint_btn32].caller = None); ignorep := fiacre_graphic_trace(27,ns_ticked); // Trace index: 298, trace level: 4 // Btnode Sequence 'Sequence51_btn25' getting control back from Action 'goto_waypoint_btn32' ignorep := fiacre_c_print_trace(298); if (btnode[goto_waypoint_btn32].rstatus = success) then next_seq := 1; to success elsif (btnode[goto_waypoint_btn32].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn32].rstatus = running) then next_seq := 7; to running else to error end from success wait [0,0]; // Trace index: 299, trace level: 2 // Btnode Sequence 'Sequence51_btn25' returns success. ignorep := fiacre_c_print_trace(299); btnode[Sequence51_btn25].rstatus := success; ignorep := fiacre_graphic_trace(27,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 300, trace level: 2 // Btnode Sequence 'Sequence51_btn25' returns halted failure. ignorep := fiacre_c_print_trace(300); ignorep := fiacre_graphic_trace(27,ns_halted); null else // Trace index: 301, trace level: 2 // Btnode Sequence 'Sequence51_btn25' returns failure. ignorep := fiacre_c_print_trace(301); ignorep := fiacre_graphic_trace(27,ns_failure); null end; btnode[Sequence51_btn25].rstatus := failure; to done from halted wait [0,0]; // Trace index: 302, trace level: 2 // Btnode Sequence 'Sequence51_btn25' has been halted. ignorep := fiacre_c_print_trace(302); next_seq := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 303, trace level: 3 // Btnode Sequence 'Sequence51_btn25' returns running. ignorep := fiacre_c_print_trace(303); ignorep := fiacre_graphic_trace(27,ns_running); btnode[Sequence51_btn25].rstatus := running; to done from done wait [0,0]; // Trace index: 304, trace level: 3 // Btnode Sequence 'Sequence51_btn25' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(304); btnode[Sequence51_btn25].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Repeat49_btn24 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, Sequence51_btn25, Sequence51_btn25_done, done, ether var ignorep: nat, ignoreb: bool, rep: 0..3 := 0, repeat: 3..3 := 3, report_halted:bool := false from start_ wait [0,0]; on (btnode[Repeat49_btn24].caller <> None); report_halted := false; if (btnode[Repeat49_btn24].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 305, trace level: 3 // Btnode Repeat 'Repeat49_btn24' has been called ignorep := fiacre_c_print_trace(305); btnode[Repeat49_btn24].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 306, trace level: 3 // Btnode Repeat 'Repeat49_btn24' is being halted ignorep := fiacre_c_print_trace(306); ignorep := fiacre_graphic_trace(26,ns_halt); if (btnode[Sequence51_btn25].rstatus = running) then // Trace index: 307, trace level: 4 // Btnode Repeat 'Repeat49_btn24' halting Sequence 'Sequence51_btn25' ignorep := fiacre_c_print_trace(307); btnode[Sequence51_btn25].rstatus := halt_me; btnode[Sequence51_btn25].caller := caller_Repeat49_btn24; to halt_wait end; to halted from halt_wait on (btnode[Sequence51_btn25].caller = None); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(26,ns_ticked); to Sequence51_btn25 from Sequence51_btn25 wait [0,0]; // Trace index: 308, trace level: 4 // Btnode Repeat 'Repeat49_btn24' calling Sequence 'Sequence51_btn25' ignorep := fiacre_c_print_trace(308); btnode[Sequence51_btn25].caller := caller_Repeat49_btn24; ignorep := fiacre_graphic_trace(26,ns_tick_passed); to Sequence51_btn25_done from Sequence51_btn25_done wait [0,0]; on (btnode[Sequence51_btn25].caller = None); // Trace index: 309, trace level: 4 // Btnode Repeat 'Repeat49_btn24' getting control back from Sequence 'Sequence51_btn25' ignorep := fiacre_c_print_trace(309); if (btnode[Sequence51_btn25].rstatus = success) then rep := rep + 1 ; if (rep = repeat) then rep := 0; to success end; to tick_node elsif (btnode[Sequence51_btn25].rstatus = failure) then rep := 0; to failure elsif (btnode[Sequence51_btn25].rstatus = running) then to running else to error end from success wait [0,0]; // Trace index: 310, trace level: 2 // Btnode Repeat 'Repeat49_btn24' returns success. ignorep := fiacre_c_print_trace(310); btnode[Repeat49_btn24].rstatus := success; ignorep := fiacre_graphic_trace(26,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 311, trace level: 2 // Btnode Repeat 'Repeat49_btn24' returns halted failure. ignorep := fiacre_c_print_trace(311); ignorep := fiacre_graphic_trace(26,ns_halted); null else // Trace index: 312, trace level: 2 // Btnode Repeat 'Repeat49_btn24' returns failure. ignorep := fiacre_c_print_trace(312); ignorep := fiacre_graphic_trace(26,ns_failure); null end; btnode[Repeat49_btn24].rstatus := failure; to done from halted wait [0,0]; // Trace index: 313, trace level: 2 // Btnode Repeat 'Repeat49_btn24' has been halted. ignorep := fiacre_c_print_trace(313); report_halted := true; to failure from running wait [0,0]; // Trace index: 314, trace level: 3 // Btnode Repeat 'Repeat49_btn24' returns running. ignorep := fiacre_c_print_trace(314); ignorep := fiacre_graphic_trace(26,ns_running); btnode[Repeat49_btn24].rstatus := running; to done from done wait [0,0]; // Trace index: 315, trace level: 3 // Btnode Repeat 'Repeat49_btn24' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(315); btnode[Repeat49_btn24].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Parallel45_btn22 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, Parallel45_btn22_par, Parallel45_btn22_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[Parallel45_btn22].caller <> None); report_halted := false; if (btnode[Parallel45_btn22].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 316, trace level: 3 // Btnode Parallel 'Parallel45_btn22' has been called ignorep := fiacre_c_print_trace(316); btnode[Parallel45_btn22].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 317, trace level: 3 // Btnode Parallel 'Parallel45_btn22' is being halted ignorep := fiacre_c_print_trace(317); ignorep := fiacre_graphic_trace(24,ns_halt); if (btnode[camera_tracking_btn23].rstatus = running) then // Trace index: 318, trace level: 4 // Btnode Parallel 'Parallel45_btn22' halting Action 'camera_tracking_btn23' ignorep := fiacre_c_print_trace(318); btnode[camera_tracking_btn23].rstatus := halt_me; btnode[camera_tracking_btn23].caller := caller_Parallel45_btn22 end; if (btnode[Repeat49_btn24].rstatus = running) then // Trace index: 319, trace level: 4 // Btnode Parallel 'Parallel45_btn22' halting Repeat 'Repeat49_btn24' ignorep := fiacre_c_print_trace(319); btnode[Repeat49_btn24].rstatus := halt_me; btnode[Repeat49_btn24].caller := caller_Parallel45_btn22 end; to halt_wait from halt_wait on ( (btnode[camera_tracking_btn23].caller = None) and (btnode[Repeat49_btn24].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(24,ns_ticked); to Parallel45_btn22_par from Parallel45_btn22_par wait [0,0]; if (runningb) then if (btnode[camera_tracking_btn23].rstatus = running) then // Trace index: 320, trace level: 4 // Btnode Parallel 'Parallel45_btn22' calling again Action 'camera_tracking_btn23' ignorep := fiacre_c_print_trace(320); btnode[camera_tracking_btn23].caller := caller_Parallel45_btn22 end; if (btnode[Repeat49_btn24].rstatus = running) then // Trace index: 321, trace level: 4 // Btnode Parallel 'Parallel45_btn22' calling again Repeat 'Repeat49_btn24' ignorep := fiacre_c_print_trace(321); btnode[Repeat49_btn24].caller := caller_Parallel45_btn22 end; null else // Trace index: 322, trace level: 4 // Btnode Parallel 'Parallel45_btn22' calling Action 'camera_tracking_btn23' ignorep := fiacre_c_print_trace(322); btnode[camera_tracking_btn23].caller := caller_Parallel45_btn22; // Trace index: 323, trace level: 4 // Btnode Parallel 'Parallel45_btn22' calling Repeat 'Repeat49_btn24' ignorep := fiacre_c_print_trace(323); btnode[Repeat49_btn24].caller := caller_Parallel45_btn22; null end; ignorep := fiacre_graphic_trace(24,ns_tick_passed); to Parallel45_btn22_par_done from Parallel45_btn22_par_done wait [0,0]; on ( (btnode[camera_tracking_btn23].caller = None) and (btnode[Repeat49_btn24].caller = None) and true); ignorep := fiacre_graphic_trace(24,ns_ticked); // Trace index: 324, trace level: 4 // Btnode Parallel 'Parallel45_btn22' getting control back from Action 'camera_tracking_btn23' ignorep := fiacre_c_print_trace(324); // Trace index: 325, trace level: 4 // Btnode Parallel 'Parallel45_btn22' getting control back from Repeat 'Repeat49_btn24' ignorep := fiacre_c_print_trace(325); success_so_far := 0; failed_so_far := 0; if (btnode[camera_tracking_btn23].rstatus = success) then success_so_far := success_so_far + 1 elsif (btnode[camera_tracking_btn23].rstatus = failure) then failed_so_far := failed_so_far + 1 end; if (btnode[Repeat49_btn24].rstatus = success) then success_so_far := success_so_far + 1 elsif (btnode[Repeat49_btn24].rstatus = failure) then failed_so_far := failed_so_far + 1 end; if (success_so_far >= 1) then // Trace index: 326, trace level: 3 // Btnode Parallel 'Parallel45_btn22' has enough success: >= 1 ignorep := fiacre_c_print_trace(326); halt_called_by_me := true; force_success := true; to halt elsif (failed_so_far > 1) then // Trace index: 327, trace level: 3 // Btnode Parallel 'Parallel45_btn22' has too many failure(s): > 1 ignorep := fiacre_c_print_trace(327); to failure else runningb := true; to running end from success wait [0,0]; // Trace index: 328, trace level: 2 // Btnode Parallel 'Parallel45_btn22' returns success. ignorep := fiacre_c_print_trace(328); btnode[Parallel45_btn22].rstatus := success; ignorep := fiacre_graphic_trace(24,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 329, trace level: 2 // Btnode Parallel 'Parallel45_btn22' returns halted failure. ignorep := fiacre_c_print_trace(329); ignorep := fiacre_graphic_trace(24,ns_halted); null else // Trace index: 330, trace level: 2 // Btnode Parallel 'Parallel45_btn22' returns failure. ignorep := fiacre_c_print_trace(330); ignorep := fiacre_graphic_trace(24,ns_failure); null end; btnode[Parallel45_btn22].rstatus := failure; to done from halted wait [0,0]; // Trace index: 331, trace level: 2 // Btnode Parallel 'Parallel45_btn22' has been halted. ignorep := fiacre_c_print_trace(331); 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: 332, trace level: 3 // Btnode Parallel 'Parallel45_btn22' returns running. ignorep := fiacre_c_print_trace(332); ignorep := fiacre_graphic_trace(24,ns_running); btnode[Parallel45_btn22].rstatus := running; to done from done wait [0,0]; halt_called_by_me := false; force_success := false; // Trace index: 333, trace level: 3 // Btnode Parallel 'Parallel45_btn22' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(333); btnode[Parallel45_btn22].caller := None; to ether from ether wait [0,0]; to start_ process btnode_goto_waypoint_btn33 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn33].caller <> None); report_halted := false; if (btnode[goto_waypoint_btn33].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 334, trace level: 3 // Btnode Action 'goto_waypoint_btn33' has been called (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) ignorep := fiacre_c_print_trace(334); btnode[goto_waypoint_btn33].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 335, trace level: 3 // Btnode Action 'goto_waypoint_btn33' is being halted (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) ignorep := fiacre_c_print_trace(335); ignorep := fiacre_graphic_trace(35,ns_halt); ignoreb := Fiacre_Action_goto_waypoint_halt (btnode[goto_waypoint_btn33]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(35,ns_ticked); to Action_goto_waypoint from Action_goto_waypoint // synthesized action arg index 9 btnode[goto_waypoint_btn33].ArgIndex := 9; // Trace index: 336, trace level: 3 // Btnode Action 'goto_waypoint_btn33' calling its action (start task) ignorep := fiacre_c_print_trace(336); start Fiacre_Action_goto_waypoint_task (btnode[goto_waypoint_btn33]); to Action_goto_waypoint_sync from Action_goto_waypoint_sync sync Fiacre_Action_goto_waypoint_task ret_val; // Trace index: 337, trace level: 3 // Btnode Action 'goto_waypoint_btn33' returned (sync task) ignorep := fiacre_c_print_trace(337); 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: 338, trace level: 2 // Btnode Action 'goto_waypoint_btn33' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) returns success. ignorep := fiacre_c_print_trace(338); btnode[goto_waypoint_btn33].rstatus := success; ignorep := fiacre_graphic_trace(35,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 339, trace level: 2 // Btnode Action 'goto_waypoint_btn33' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) returns halted failure. ignorep := fiacre_c_print_trace(339); ignorep := fiacre_graphic_trace(35,ns_halted); null else // Trace index: 340, trace level: 2 // Btnode Action 'goto_waypoint_btn33' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) returns failure. ignorep := fiacre_c_print_trace(340); ignorep := fiacre_graphic_trace(35,ns_failure); null end; btnode[goto_waypoint_btn33].rstatus := failure; to done from halted wait [0,0]; // Trace index: 341, trace level: 2 // Btnode Action 'goto_waypoint_btn33' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) has been halted. ignorep := fiacre_c_print_trace(341); report_halted := true; to failure from running wait [0,0]; // Trace index: 342, trace level: 3 // Btnode Action 'goto_waypoint_btn33' (:x 0 :y 0 :z 5 :yaw 1.400000 :duration 0 ) returns running. ignorep := fiacre_c_print_trace(342); ignorep := fiacre_graphic_trace(35,ns_running); btnode[goto_waypoint_btn33].rstatus := running; to done from done wait [0,0]; // Trace index: 343, trace level: 3 // Btnode Action 'goto_waypoint_btn33' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(343); btnode[goto_waypoint_btn33].caller := None; to ether from ether wait [0,0]; to start_ process btnode_land_btn34 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn34].caller <> None); report_halted := false; if (btnode[land_btn34].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 344, trace level: 3 // Btnode Action 'land_btn34' has been called ignorep := fiacre_c_print_trace(344); btnode[land_btn34].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 345, trace level: 3 // Btnode Action 'land_btn34' is being halted ignorep := fiacre_c_print_trace(345); ignorep := fiacre_graphic_trace(36,ns_halt); ignoreb := Fiacre_Action_land_halt (btnode[land_btn34]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(36,ns_ticked); to Action_land from Action_land // Trace index: 346, trace level: 3 // Btnode Action 'land_btn34' calling its action (start task) ignorep := fiacre_c_print_trace(346); start Fiacre_Action_land_task (btnode[land_btn34]); to Action_land_sync from Action_land_sync sync Fiacre_Action_land_task ret_val; // Trace index: 347, trace level: 3 // Btnode Action 'land_btn34' returned (sync task) ignorep := fiacre_c_print_trace(347); 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: 348, trace level: 2 // Btnode Action 'land_btn34' returns success. ignorep := fiacre_c_print_trace(348); btnode[land_btn34].rstatus := success; ignorep := fiacre_graphic_trace(36,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 349, trace level: 2 // Btnode Action 'land_btn34' returns halted failure. ignorep := fiacre_c_print_trace(349); ignorep := fiacre_graphic_trace(36,ns_halted); null else // Trace index: 350, trace level: 2 // Btnode Action 'land_btn34' returns failure. ignorep := fiacre_c_print_trace(350); ignorep := fiacre_graphic_trace(36,ns_failure); null end; btnode[land_btn34].rstatus := failure; to done from halted wait [0,0]; // Trace index: 351, trace level: 2 // Btnode Action 'land_btn34' has been halted. ignorep := fiacre_c_print_trace(351); report_halted := true; to failure from running wait [0,0]; // Trace index: 352, trace level: 3 // Btnode Action 'land_btn34' returns running. ignorep := fiacre_c_print_trace(352); ignorep := fiacre_graphic_trace(36,ns_running); btnode[land_btn34].rstatus := running; to done from done wait [0,0]; // Trace index: 353, trace level: 3 // Btnode Action 'land_btn34' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(353); btnode[land_btn34].caller := None; to ether from ether wait [0,0]; to start_ process btnode_shutdown_drone_btn35 (&btnode: btnode_array, &fls: sv_fls, &battery: sv_battery) 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_btn35].caller <> None); report_halted := false; if (btnode[shutdown_drone_btn35].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 354, trace level: 3 // Btnode Action 'shutdown_drone_btn35' has been called ignorep := fiacre_c_print_trace(354); btnode[shutdown_drone_btn35].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 355, trace level: 3 // Btnode Action 'shutdown_drone_btn35' is being halted ignorep := fiacre_c_print_trace(355); ignorep := fiacre_graphic_trace(37,ns_halt); ignoreb := Fiacre_Action_shutdown_drone_halt (btnode[shutdown_drone_btn35]); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(37,ns_ticked); to Action_shutdown_drone from Action_shutdown_drone // Trace index: 356, trace level: 3 // Btnode Action 'shutdown_drone_btn35' calling its action (start task) ignorep := fiacre_c_print_trace(356); start Fiacre_Action_shutdown_drone_task (btnode[shutdown_drone_btn35]); to Action_shutdown_drone_sync from Action_shutdown_drone_sync sync Fiacre_Action_shutdown_drone_task ret_val; // Trace index: 357, trace level: 3 // Btnode Action 'shutdown_drone_btn35' returned (sync task) ignorep := fiacre_c_print_trace(357); 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: 358, trace level: 2 // Btnode Action 'shutdown_drone_btn35' returns success. ignorep := fiacre_c_print_trace(358); btnode[shutdown_drone_btn35].rstatus := success; ignorep := fiacre_graphic_trace(37,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 359, trace level: 2 // Btnode Action 'shutdown_drone_btn35' returns halted failure. ignorep := fiacre_c_print_trace(359); ignorep := fiacre_graphic_trace(37,ns_halted); null else // Trace index: 360, trace level: 2 // Btnode Action 'shutdown_drone_btn35' returns failure. ignorep := fiacre_c_print_trace(360); ignorep := fiacre_graphic_trace(37,ns_failure); null end; btnode[shutdown_drone_btn35].rstatus := failure; to done from halted wait [0,0]; // Trace index: 361, trace level: 2 // Btnode Action 'shutdown_drone_btn35' has been halted. ignorep := fiacre_c_print_trace(361); report_halted := true; to failure from running wait [0,0]; // Trace index: 362, trace level: 3 // Btnode Action 'shutdown_drone_btn35' returns running. ignorep := fiacre_c_print_trace(362); ignorep := fiacre_graphic_trace(37,ns_running); btnode[shutdown_drone_btn35].rstatus := running; to done from done wait [0,0]; // Trace index: 363, trace level: 3 // Btnode Action 'shutdown_drone_btn35' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(363); btnode[shutdown_drone_btn35].caller := None; to ether from ether wait [0,0]; to start_ process btnode_Sequence41_btn20 (&btnode: btnode_array) is states start_, tick_node, success, failure, halt, halted, halt_wait, running, error, takeoff_btn21, takeoff_btn21_done, Parallel45_btn22, Parallel45_btn22_done, goto_waypoint_btn33, goto_waypoint_btn33_done, land_btn34, land_btn34_done, shutdown_drone_btn35, shutdown_drone_btn35_done, done, ether var ignorep: nat, ignoreb: bool, report_halted:bool := false, next_seq: 1..6 := 1 from start_ wait [0,0]; on (btnode[Sequence41_btn20].caller <> None); report_halted := false; if (btnode[Sequence41_btn20].rstatus = halt_me) then report_halted := true; to halt end; // Trace index: 364, trace level: 3 // Btnode Sequence 'Sequence41_btn20' has been called ignorep := fiacre_c_print_trace(364); btnode[Sequence41_btn20].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 365, trace level: 3 // Btnode Sequence 'Sequence41_btn20' is being halted ignorep := fiacre_c_print_trace(365); ignorep := fiacre_graphic_trace(22,ns_halt); if (btnode[takeoff_btn21].rstatus = running) then // Trace index: 366, trace level: 4 // Btnode Sequence 'Sequence41_btn20' halting Action 'takeoff_btn21' ignorep := fiacre_c_print_trace(366); btnode[takeoff_btn21].rstatus := halt_me; btnode[takeoff_btn21].caller := caller_Sequence41_btn20; to halt_wait end; if (btnode[Parallel45_btn22].rstatus = running) then // Trace index: 367, trace level: 4 // Btnode Sequence 'Sequence41_btn20' halting Parallel 'Parallel45_btn22' ignorep := fiacre_c_print_trace(367); btnode[Parallel45_btn22].rstatus := halt_me; btnode[Parallel45_btn22].caller := caller_Sequence41_btn20; to halt_wait end; if (btnode[goto_waypoint_btn33].rstatus = running) then // Trace index: 368, trace level: 4 // Btnode Sequence 'Sequence41_btn20' halting Action 'goto_waypoint_btn33' ignorep := fiacre_c_print_trace(368); btnode[goto_waypoint_btn33].rstatus := halt_me; btnode[goto_waypoint_btn33].caller := caller_Sequence41_btn20; to halt_wait end; if (btnode[land_btn34].rstatus = running) then // Trace index: 369, trace level: 4 // Btnode Sequence 'Sequence41_btn20' halting Action 'land_btn34' ignorep := fiacre_c_print_trace(369); btnode[land_btn34].rstatus := halt_me; btnode[land_btn34].caller := caller_Sequence41_btn20; to halt_wait end; if (btnode[shutdown_drone_btn35].rstatus = running) then // Trace index: 370, trace level: 4 // Btnode Sequence 'Sequence41_btn20' halting Action 'shutdown_drone_btn35' ignorep := fiacre_c_print_trace(370); btnode[shutdown_drone_btn35].rstatus := halt_me; btnode[shutdown_drone_btn35].caller := caller_Sequence41_btn20; to halt_wait end; to halted from halt_wait on ( (btnode[takeoff_btn21].caller = None) and (btnode[Parallel45_btn22].caller = None) and (btnode[goto_waypoint_btn33].caller = None) and (btnode[land_btn34].caller = None) and (btnode[shutdown_drone_btn35].caller = None) and true); to halted from tick_node wait [0,0]; ignorep := fiacre_graphic_trace(22,ns_ticked); if (next_seq = 1) then to takeoff_btn21 end; if (next_seq = 2) then to Parallel45_btn22 end; if (next_seq = 3) then to goto_waypoint_btn33 end; if (next_seq = 4) then to land_btn34 end; if (next_seq = 5) then to shutdown_drone_btn35 end; to error from takeoff_btn21 wait [0,0]; // Trace index: 371, trace level: 4 // Btnode Sequence 'Sequence41_btn20' calling Action 'takeoff_btn21' ignorep := fiacre_c_print_trace(371); btnode[takeoff_btn21].caller := caller_Sequence41_btn20; ignorep := fiacre_graphic_trace(22,ns_tick_passed); to takeoff_btn21_done from takeoff_btn21_done wait [0,0]; on (btnode[takeoff_btn21].caller = None); ignorep := fiacre_graphic_trace(22,ns_ticked); // Trace index: 372, trace level: 4 // Btnode Sequence 'Sequence41_btn20' getting control back from Action 'takeoff_btn21' ignorep := fiacre_c_print_trace(372); if (btnode[takeoff_btn21].rstatus = success) then to Parallel45_btn22 elsif (btnode[takeoff_btn21].rstatus = failure) then next_seq := 1; to failure elsif (btnode[takeoff_btn21].rstatus = running) then next_seq := 1; to running else to error end from Parallel45_btn22 wait [0,0]; // Trace index: 373, trace level: 4 // Btnode Sequence 'Sequence41_btn20' calling Parallel 'Parallel45_btn22' ignorep := fiacre_c_print_trace(373); btnode[Parallel45_btn22].caller := caller_Sequence41_btn20; ignorep := fiacre_graphic_trace(22,ns_tick_passed); to Parallel45_btn22_done from Parallel45_btn22_done wait [0,0]; on (btnode[Parallel45_btn22].caller = None); ignorep := fiacre_graphic_trace(22,ns_ticked); // Trace index: 374, trace level: 4 // Btnode Sequence 'Sequence41_btn20' getting control back from Parallel 'Parallel45_btn22' ignorep := fiacre_c_print_trace(374); if (btnode[Parallel45_btn22].rstatus = success) then to goto_waypoint_btn33 elsif (btnode[Parallel45_btn22].rstatus = failure) then next_seq := 1; to failure elsif (btnode[Parallel45_btn22].rstatus = running) then next_seq := 2; to running else to error end from goto_waypoint_btn33 wait [0,0]; // Trace index: 375, trace level: 4 // Btnode Sequence 'Sequence41_btn20' calling Action 'goto_waypoint_btn33' ignorep := fiacre_c_print_trace(375); btnode[goto_waypoint_btn33].caller := caller_Sequence41_btn20; ignorep := fiacre_graphic_trace(22,ns_tick_passed); to goto_waypoint_btn33_done from goto_waypoint_btn33_done wait [0,0]; on (btnode[goto_waypoint_btn33].caller = None); ignorep := fiacre_graphic_trace(22,ns_ticked); // Trace index: 376, trace level: 4 // Btnode Sequence 'Sequence41_btn20' getting control back from Action 'goto_waypoint_btn33' ignorep := fiacre_c_print_trace(376); if (btnode[goto_waypoint_btn33].rstatus = success) then to land_btn34 elsif (btnode[goto_waypoint_btn33].rstatus = failure) then next_seq := 1; to failure elsif (btnode[goto_waypoint_btn33].rstatus = running) then next_seq := 3; to running else to error end from land_btn34 wait [0,0]; // Trace index: 377, trace level: 4 // Btnode Sequence 'Sequence41_btn20' calling Action 'land_btn34' ignorep := fiacre_c_print_trace(377); btnode[land_btn34].caller := caller_Sequence41_btn20; ignorep := fiacre_graphic_trace(22,ns_tick_passed); to land_btn34_done from land_btn34_done wait [0,0]; on (btnode[land_btn34].caller = None); ignorep := fiacre_graphic_trace(22,ns_ticked); // Trace index: 378, trace level: 4 // Btnode Sequence 'Sequence41_btn20' getting control back from Action 'land_btn34' ignorep := fiacre_c_print_trace(378); if (btnode[land_btn34].rstatus = success) then to shutdown_drone_btn35 elsif (btnode[land_btn34].rstatus = failure) then next_seq := 1; to failure elsif (btnode[land_btn34].rstatus = running) then next_seq := 4; to running else to error end from shutdown_drone_btn35 wait [0,0]; // Trace index: 379, trace level: 4 // Btnode Sequence 'Sequence41_btn20' calling Action 'shutdown_drone_btn35' ignorep := fiacre_c_print_trace(379); btnode[shutdown_drone_btn35].caller := caller_Sequence41_btn20; ignorep := fiacre_graphic_trace(22,ns_tick_passed); to shutdown_drone_btn35_done from shutdown_drone_btn35_done wait [0,0]; on (btnode[shutdown_drone_btn35].caller = None); ignorep := fiacre_graphic_trace(22,ns_ticked); // Trace index: 380, trace level: 4 // Btnode Sequence 'Sequence41_btn20' getting control back from Action 'shutdown_drone_btn35' ignorep := fiacre_c_print_trace(380); if (btnode[shutdown_drone_btn35].rstatus = success) then next_seq := 1; to success elsif (btnode[shutdown_drone_btn35].rstatus = failure) then next_seq := 1; to failure elsif (btnode[shutdown_drone_btn35].rstatus = running) then next_seq := 5; to running else to error end from success wait [0,0]; // Trace index: 381, trace level: 2 // Btnode Sequence 'Sequence41_btn20' returns success. ignorep := fiacre_c_print_trace(381); btnode[Sequence41_btn20].rstatus := success; ignorep := fiacre_graphic_trace(22,ns_success); to done from failure wait [0,0]; if (report_halted) then // Trace index: 382, trace level: 2 // Btnode Sequence 'Sequence41_btn20' returns halted failure. ignorep := fiacre_c_print_trace(382); ignorep := fiacre_graphic_trace(22,ns_halted); null else // Trace index: 383, trace level: 2 // Btnode Sequence 'Sequence41_btn20' returns failure. ignorep := fiacre_c_print_trace(383); ignorep := fiacre_graphic_trace(22,ns_failure); null end; btnode[Sequence41_btn20].rstatus := failure; to done from halted wait [0,0]; // Trace index: 384, trace level: 2 // Btnode Sequence 'Sequence41_btn20' has been halted. ignorep := fiacre_c_print_trace(384); next_seq := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 385, trace level: 3 // Btnode Sequence 'Sequence41_btn20' returns running. ignorep := fiacre_c_print_trace(385); ignorep := fiacre_graphic_trace(22,ns_running); btnode[Sequence41_btn20].rstatus := running; to done from done wait [0,0]; // Trace index: 386, trace level: 3 // Btnode Sequence 'Sequence41_btn20' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(386); btnode[Sequence41_btn20].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, Sequence13_btn6, Sequence13_btn6_done, Fallback33_btn16, Fallback33_btn16_done, Sequence41_btn20, Sequence41_btn20_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: 387, trace level: 3 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' has been called ignorep := fiacre_c_print_trace(387); btnode[ReactiveSequence11_btn5].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 388, trace level: 3 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' is being halted ignorep := fiacre_c_print_trace(388); ignorep := fiacre_graphic_trace(7,ns_halt); if (btnode[Sequence13_btn6].rstatus = running) then // Trace index: 389, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' halting Sequence 'Sequence13_btn6' ignorep := fiacre_c_print_trace(389); btnode[Sequence13_btn6].rstatus := halt_me; btnode[Sequence13_btn6].caller := caller_ReactiveSequence11_btn5; to halt_wait end; if (btnode[Fallback33_btn16].rstatus = running) then // Trace index: 390, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' halting Fallback 'Fallback33_btn16' ignorep := fiacre_c_print_trace(390); btnode[Fallback33_btn16].rstatus := halt_me; btnode[Fallback33_btn16].caller := caller_ReactiveSequence11_btn5; to halt_wait end; if (btnode[Sequence41_btn20].rstatus = running) then // Trace index: 391, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' halting Sequence 'Sequence41_btn20' ignorep := fiacre_c_print_trace(391); btnode[Sequence41_btn20].rstatus := halt_me; btnode[Sequence41_btn20].caller := caller_ReactiveSequence11_btn5; to halt_wait end; to halted from halt_wait on ( (btnode[Sequence13_btn6].caller = None) and (btnode[Fallback33_btn16].caller = None) and (btnode[Sequence41_btn20].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 Sequence13_btn6 end; if (next_seq = 2) then to Fallback33_btn16 end; if (next_seq = 3) then to Sequence41_btn20 end; to error from Sequence13_btn6 wait [0,0]; // Trace index: 392, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' calling Sequence 'Sequence13_btn6' ignorep := fiacre_c_print_trace(392); btnode[Sequence13_btn6].caller := caller_ReactiveSequence11_btn5; ignorep := fiacre_graphic_trace(7,ns_tick_passed); to Sequence13_btn6_done from Sequence13_btn6_done wait [0,0]; on (btnode[Sequence13_btn6].caller = None); ignorep := fiacre_graphic_trace(7,ns_ticked); // Trace index: 393, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' getting control back from Sequence 'Sequence13_btn6' ignorep := fiacre_c_print_trace(393); if (btnode[Sequence13_btn6].rstatus = success) then to Fallback33_btn16 elsif (btnode[Sequence13_btn6].rstatus = failure) then next_seq := 1; halt_called_by_me := true; to halt elsif (btnode[Sequence13_btn6].rstatus = running) then next_seq := 1; to running else to error end from Fallback33_btn16 wait [0,0]; // Trace index: 394, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' calling Fallback 'Fallback33_btn16' ignorep := fiacre_c_print_trace(394); btnode[Fallback33_btn16].caller := caller_ReactiveSequence11_btn5; ignorep := fiacre_graphic_trace(7,ns_tick_passed); to Fallback33_btn16_done from Fallback33_btn16_done wait [0,0]; on (btnode[Fallback33_btn16].caller = None); ignorep := fiacre_graphic_trace(7,ns_ticked); // Trace index: 395, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' getting control back from Fallback 'Fallback33_btn16' ignorep := fiacre_c_print_trace(395); if (btnode[Fallback33_btn16].rstatus = success) then to Sequence41_btn20 elsif (btnode[Fallback33_btn16].rstatus = failure) then next_seq := 1; halt_called_by_me := true; to halt elsif (btnode[Fallback33_btn16].rstatus = running) then next_seq := 1; to running else to error end from Sequence41_btn20 wait [0,0]; // Trace index: 396, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' calling Sequence 'Sequence41_btn20' ignorep := fiacre_c_print_trace(396); btnode[Sequence41_btn20].caller := caller_ReactiveSequence11_btn5; ignorep := fiacre_graphic_trace(7,ns_tick_passed); to Sequence41_btn20_done from Sequence41_btn20_done wait [0,0]; on (btnode[Sequence41_btn20].caller = None); ignorep := fiacre_graphic_trace(7,ns_ticked); // Trace index: 397, trace level: 4 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' getting control back from Sequence 'Sequence41_btn20' ignorep := fiacre_c_print_trace(397); if (btnode[Sequence41_btn20].rstatus = success) then next_seq := 1; to success elsif (btnode[Sequence41_btn20].rstatus = failure) then next_seq := 1; halt_called_by_me := true; to halt elsif (btnode[Sequence41_btn20].rstatus = running) then next_seq := 1; to running else to error end from success wait [0,0]; // Trace index: 398, trace level: 2 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returns success. ignorep := fiacre_c_print_trace(398); 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: 399, trace level: 2 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returns halted failure. ignorep := fiacre_c_print_trace(399); ignorep := fiacre_graphic_trace(7,ns_halted); null else // Trace index: 400, trace level: 2 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returns failure. ignorep := fiacre_c_print_trace(400); ignorep := fiacre_graphic_trace(7,ns_failure); null end; btnode[ReactiveSequence11_btn5].rstatus := failure; to done from halted wait [0,0]; // Trace index: 401, trace level: 2 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' has been halted. ignorep := fiacre_c_print_trace(401); 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: 402, trace level: 3 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returns running. ignorep := fiacre_c_print_trace(402); 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: 403, trace level: 3 // Btnode ReactiveSequence 'ReactiveSequence11_btn5' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(403); 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: 404, trace level: 3 // Btnode Sequence 'Sequence3_btn1' has been called ignorep := fiacre_c_print_trace(404); btnode[Sequence3_btn1].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 405, trace level: 3 // Btnode Sequence 'Sequence3_btn1' is being halted ignorep := fiacre_c_print_trace(405); ignorep := fiacre_graphic_trace(3,ns_halt); if (btnode[ParallelAll5_btn2].rstatus = running) then // Trace index: 406, trace level: 4 // Btnode Sequence 'Sequence3_btn1' halting ParallelAll 'ParallelAll5_btn2' ignorep := fiacre_c_print_trace(406); 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: 407, trace level: 4 // Btnode Sequence 'Sequence3_btn1' halting ReactiveSequence 'ReactiveSequence11_btn5' ignorep := fiacre_c_print_trace(407); 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: 408, trace level: 4 // Btnode Sequence 'Sequence3_btn1' calling ParallelAll 'ParallelAll5_btn2' ignorep := fiacre_c_print_trace(408); 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: 409, trace level: 4 // Btnode Sequence 'Sequence3_btn1' getting control back from ParallelAll 'ParallelAll5_btn2' ignorep := fiacre_c_print_trace(409); 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: 410, trace level: 4 // Btnode Sequence 'Sequence3_btn1' calling ReactiveSequence 'ReactiveSequence11_btn5' ignorep := fiacre_c_print_trace(410); 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: 411, trace level: 4 // Btnode Sequence 'Sequence3_btn1' getting control back from ReactiveSequence 'ReactiveSequence11_btn5' ignorep := fiacre_c_print_trace(411); 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: 412, trace level: 2 // Btnode Sequence 'Sequence3_btn1' returns success. ignorep := fiacre_c_print_trace(412); 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: 413, trace level: 2 // Btnode Sequence 'Sequence3_btn1' returns halted failure. ignorep := fiacre_c_print_trace(413); ignorep := fiacre_graphic_trace(3,ns_halted); null else // Trace index: 414, trace level: 2 // Btnode Sequence 'Sequence3_btn1' returns failure. ignorep := fiacre_c_print_trace(414); ignorep := fiacre_graphic_trace(3,ns_failure); null end; btnode[Sequence3_btn1].rstatus := failure; to done from halted wait [0,0]; // Trace index: 415, trace level: 2 // Btnode Sequence 'Sequence3_btn1' has been halted. ignorep := fiacre_c_print_trace(415); next_seq := 1; report_halted := true; to failure from running wait [0,0]; // Trace index: 416, trace level: 3 // Btnode Sequence 'Sequence3_btn1' returns running. ignorep := fiacre_c_print_trace(416); ignorep := fiacre_graphic_trace(3,ns_running); btnode[Sequence3_btn1].rstatus := running; to done from done wait [0,0]; // Trace index: 417, trace level: 3 // Btnode Sequence 'Sequence3_btn1' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(417); 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: 418, trace level: 3 // Btnode BehaviorTree 'BehaviorTree1_drone' has been called ignorep := fiacre_c_print_trace(418); btnode[BehaviorTree1_drone].rstatus := no_ret_status; to tick_node from halt wait [0,0]; // Trace index: 419, trace level: 3 // Btnode BehaviorTree 'BehaviorTree1_drone' is being halted ignorep := fiacre_c_print_trace(419); 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: 420, trace level: 4 // Btnode BehaviorTree 'BehaviorTree1_drone' calling Sequence 'Sequence3_btn1' ignorep := fiacre_c_print_trace(420); 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: 421, trace level: 4 // Btnode BehaviorTree 'BehaviorTree1_drone' getting control back from Sequence 'Sequence3_btn1' ignorep := fiacre_c_print_trace(421); 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: 422, trace level: 2 // Btnode BehaviorTree 'BehaviorTree1_drone' returns success. ignorep := fiacre_c_print_trace(422); 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: 423, trace level: 2 // Btnode BehaviorTree 'BehaviorTree1_drone' returns halted failure. ignorep := fiacre_c_print_trace(423); ignorep := fiacre_graphic_trace(2,ns_halted); null else // Trace index: 424, trace level: 2 // Btnode BehaviorTree 'BehaviorTree1_drone' returns failure. ignorep := fiacre_c_print_trace(424); ignorep := fiacre_graphic_trace(2,ns_failure); null end; btnode[BehaviorTree1_drone].rstatus := failure; to done from halted wait [0,0]; // Trace index: 425, trace level: 2 // Btnode BehaviorTree 'BehaviorTree1_drone' has been halted. ignorep := fiacre_c_print_trace(425); report_halted := true; to failure from running wait [0,0]; // Trace index: 426, trace level: 3 // Btnode BehaviorTree 'BehaviorTree1_drone' returns running. ignorep := fiacre_c_print_trace(426); ignorep := fiacre_graphic_trace(2,ns_running); btnode[BehaviorTree1_drone].rstatus := running; to tick_node from done wait [0,0]; // Trace index: 427, trace level: 3 // Btnode BehaviorTree 'BehaviorTree1_drone' returning control to caller and back to 'ether' ignorep := fiacre_c_print_trace(427); 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 = 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}], // **** state variables ****, fls: sv_fls := 0, battery: sv_battery := Good par * in // **** state variables processes **** sv_battery_automata(&battery) // **** btnode processes **** || btnode_start_drone_btn3(&btnode, &fls, &battery) || btnode_start_camera_btn4(&btnode, &fls, &battery) || btnode_ParallelAll5_btn2(&btnode) || btnode_measure_battery_btn9(&btnode, &fls, &battery) || btnode_ForceFailure17_btn8(&btnode) || btnode_Eval21_btn10(&btnode, &fls, &battery) || btnode_land_btn11(&btnode, &fls, &battery) || btnode_Fallback15_btn7(&btnode) || btnode_Eval25_btn12(&btnode, &fls, &battery) || btnode_Eval29_btn14(&btnode, &fls, &battery) || btnode_goto_waypoint_btn15(&btnode, &fls, &battery) || btnode_Fallback27_btn13(&btnode) || btnode_Sequence13_btn6(&btnode) || btnode_localization_ok_btn17(&btnode, &fls, &battery) || btnode_land_btn19(&btnode, &fls, &battery) || btnode_ForceFailure37_btn18(&btnode) || btnode_Fallback33_btn16(&btnode) || btnode_takeoff_btn21(&btnode, &fls, &battery) || btnode_camera_tracking_btn23(&btnode, &fls, &battery) || btnode_Eval53_btn26(&btnode, &fls, &battery) || btnode_goto_waypoint_btn27(&btnode, &fls, &battery) || btnode_goto_waypoint_btn28(&btnode, &fls, &battery) || btnode_goto_waypoint_btn29(&btnode, &fls, &battery) || btnode_goto_waypoint_btn30(&btnode, &fls, &battery) || btnode_goto_waypoint_btn31(&btnode, &fls, &battery) || btnode_goto_waypoint_btn32(&btnode, &fls, &battery) || btnode_Sequence51_btn25(&btnode) || btnode_Repeat49_btn24(&btnode) || btnode_Parallel45_btn22(&btnode) || btnode_goto_waypoint_btn33(&btnode, &fls, &battery) || btnode_land_btn34(&btnode, &fls, &battery) || btnode_shutdown_drone_btn35(&btnode, &fls, &battery) || btnode_Sequence41_btn20(&btnode) || btnode_ReactiveSequence11_btn5(&btnode) || btnode_Sequence3_btn1(&btnode) || btnode_BehaviorTree1_drone(&btnode) // **** end of the component **** end drone /*End of File */