From e5f92b8b507861769c7439b1873ef580e1400538 Mon Sep 17 00:00:00 2001 From: Albin Date: Wed, 20 Nov 2019 17:18:59 +0100 Subject: =?UTF-8?q?Typ=20s=C3=A5h=C3=A4r=20ska=20det=20se=20ut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kod/bilbana/yc4/do_boot.m | 89 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 Kod/bilbana/yc4/do_boot.m (limited to 'Kod/bilbana/yc4/do_boot.m') diff --git a/Kod/bilbana/yc4/do_boot.m b/Kod/bilbana/yc4/do_boot.m new file mode 100644 index 0000000..645e100 --- /dev/null +++ b/Kod/bilbana/yc4/do_boot.m @@ -0,0 +1,89 @@ +function [car] = do_boot(car, boot_time) +%BOOT Summary of this function goes here +% Detailed explanation goes here +if car.running == true + [car.new_lap, car.new_check_point, car.time] = get_car_position(car.num); + %% CHECK POINT + if car.new_check_point == true + if car.new_lap == false % choose_position krachar vid nytt varv (seg 10) + if car.lap ~= 0 + car.seg_times(car.lap, car.segment) = toc(car.seg_tic); + car.seg_constant_list(car.lap, car.segment) = car.seg_constant; + end + car.segment = car.segment + 1; + car.seg_tic = tic; + if car.lap > 2 % S�kerhetsmarginal (B�r vara 1?) + disp(car) + [new_position, seg_plus] = ... + choose_position(car.position, car.segment, car.num, car.pos_at); + if seg_plus ~= 0 && car.segment == 2 + disp('Hoppar �ver missad givare 1/2'); + else + car.position = new_position; + car.segment = car.segment + seg_plus; + end + if seg_plus ~= 0 + car.seg_times(car.lap, car.segment - seg_plus - 1) = 0; + car.seg_constant_list(car.lap, car.segment - seg_plus - 1) = 0; + disp(car.seg_times(car.lap, :)) + disp(seg_plus) + end + %car.miss_time = uint64(0); + else + car.position = car.pos_at(car.segment); + %car.miss_time = uint64(0); + end + end + end + %% NEW LAP + if car.new_lap == true + car.lap_constants = gov_set(car.constant); + car.new_lap = false; %TODO remove + beep; + if car.lap == 0 + % dont save time for first lap + car.segment = 1; + car.lap = car.lap + 1; + car.seg_tic = tic; + car.lap_tic = tic; + else + % beep; + % Spara inte seg_time om missad givare + if car.segment == 9 + car.seg_times(car.lap, car.segment) = toc(car.seg_tic); + car.seg_constant_list(car.lap, car.segment) = car.seg_constant; + end + car.seg_tic = tic; + car.lap_times(car.lap) = toc(car.lap_tic); + car.lap_tic = tic; + car.position = 0; + + if car.lap == 1 && size(car.seg_times, 2) < 9 + disp('FEL: För få segment!!') + car.stopped = true; + other_car.stopped = true; + return + end + + display_data = [display_data, put_text(100, 16 + (16 * car.num), 'L', strjoin({num2str(car.lap), get_time_as_string(round(car.lap_times(car.lap) * 1000))}, ' '))]; + + car.segment = 1; + car.lap = car.lap + 1; + end + end + %% CALCULATE + if car.running == true && car.automatic == true + car.v = get_new_v(car.position, car.map); + car.seg_constant = get_seg_constant(car.position, car.lap_constants, car.num, car.pos_at); + car.u = get_new_u(car.v, car.seg_constant); + end + %% BEFORE FIRST LAP + if car.lap == 0 + t = toc(boot_time); + if t > 1 + car.constant = car.constant + 0.05; + boot_time = tic; + end + end +end +end \ No newline at end of file -- cgit v1.2.1