summaryrefslogtreecommitdiffstats
path: root/Kod/bilbana
diff options
context:
space:
mode:
Diffstat (limited to 'Kod/bilbana')
-rw-r--r--Kod/bilbana/yc4/do_car.m16
-rw-r--r--Kod/bilbana/yc4/main.m20
2 files changed, 30 insertions, 6 deletions
diff --git a/Kod/bilbana/yc4/do_car.m b/Kod/bilbana/yc4/do_car.m
index ce3d76c..ed8de89 100644
--- a/Kod/bilbana/yc4/do_car.m
+++ b/Kod/bilbana/yc4/do_car.m
@@ -33,6 +33,10 @@ if car.running == true
end
end
+if car.stopped == true
+ return
+end
+
%% READ INPUT FROM TRACK
if car.running == true
if car.lap ~= 0
@@ -66,6 +70,18 @@ if car.running == true
end
end
+ if car.stopping == true
+ % CHECK IF CAR IS AT THE END OF TRACK
+ if car.position > (car.map(80, 1) / 100) - 0.8 % 80cm
+ disp(car.position)
+ disp((car.map(80, 1) / 100) - 300)
+ set_car_speed(car.num, 0);
+ car.stopped = true;
+ return
+ end
+ end
+
+
%% CHECK POINT
if car.new_check_point == true
if car.new_lap == false % choose_position krachar vid nytt varv (seg 10)
diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m
index cad395a..1f71a95 100644
--- a/Kod/bilbana/yc4/main.m
+++ b/Kod/bilbana/yc4/main.m
@@ -35,6 +35,8 @@ car1 = struct;
car1.num = 1;
car1.running = false;
car1.automatic = true;
+car1.stopping = false;
+car1.stopped = false;
car1.segment = 1;
car1.lap = 0;
car1.lap_times = [];
@@ -49,6 +51,8 @@ car2 = struct;
car2.num = 2;
car2.running = false;
car2.automatic = true;
+car2.stopping = false;
+car2.stopped = false;
car2.segment = 1;
car2.lap = 0;
car2.lap_times = [];
@@ -97,8 +101,6 @@ end
%}
ref_time = 13;
-matlabclient(1, get_smallpackage([define_bar_graph('O', 2, 266, 30, 290, 210, 0, 64, 1, 1)]));
-
%% MAIN LOOP
while 1
readTime = tic;
@@ -106,6 +108,9 @@ while 1
if strcmp(get(hf,'currentcharacter'),'q')
close(hf)
break
+ elseif strcmp(get(hf, 'currentcharacter'), 's')
+ car1.stopping = true;
+ car2.stopping = true;
end
figure(hf)
@@ -117,12 +122,16 @@ while 1
if car1.stop == true
disp('stopped by car 1');
break;
- end
- if car2.stop == true
+ end
+ if car2.stop == true
disp('stopped by car 2');
break;
- end
+ end
+ if (~car2.running && car1.stopped) || (~car1.running && car2.stopped) || (car1.stopped && car2.stopped)
+ break;
+ end
+
%% END OF LOOP
while 1 %Whileloop med paus som k�rs till pausen �verskridit 0.07 sekunder
% DISPLAY
@@ -134,7 +143,6 @@ while 1
end
if car2.running && car2.automatic
% display.data = [display.data, put_text(20, 16 + (16 * 2), 'L', num2str(car2.u))];
- display.data = [display.data, update_bar_graph(2, car2.u)];
end
% send all queued data