--- tags: CORE --- # ASAHIフローチャート # 離床まで ```flow start=>start: 電源ON end=>end: 離床 init=>operation: 初期化処理 cmd_loop=>operation: コマンド入力ループ cmd_input=>condition: コマンド入力チェック flightmode_on=>operation: フライトモードON start_telem=>operation: テレメトリ送信開始 launch_loop=>operation: 離床判定ループ launch_check=>condition: 離床判定 start->init->cmd_loop->cmd_input cmd_input(no)->cmd_loop cmd_input(yes)->flightmode_on flightmode_on->start_telem->launch_loop->launch_check launch_check(no)->launch_loop launch_check(yes)->end ``` # 飛行中 ```flow launch=>start: 離床 release_parachute=>end: パラシュート解放 start_timer=>operation: タイマースタート flying_loop=>operation: 飛行ループ get_acc=>subroutine: 加速度取得 get_altitude=>subroutine: 高度取得 send_telemetry=>subroutine: テレメトリ送信 check_top=>condition: 頂点判定 or タイムアウト launch->start_timer->flying_loop flying_loop->get_acc->get_altitude->send_telemetry->check_top check_top(no)->flying_loop check_top(yes)->release_parachute ``` # リーフィング ```flow release_parachute=>start: パラシュート解放 end=>end: 終了 start_timer=>operation: タイマースタート leafing_loop=>operation: リーフィングループ get_acc=>subroutine: 加速度取得 get_altitude=>subroutine: 高度取得 check_timeout=>condition: タイムアウトチェック or 高度? do_leafing=>operation: リーフィング動作 release_parachute->start_timer->leafing_loop leafing_loop->get_acc->get_altitude->check_timeout check_timeout(no)->leafing_loop check_timeout(yes)->do_leafing ```