summaryrefslogtreecommitdiffstats
path: root/Kod
diff options
context:
space:
mode:
authorGustav Sörnäs <gusso230@student.liu.se>2019-11-14 09:59:31 +0100
committerGustav Sörnäs <gusso230@student.liu.se>2019-11-14 10:05:49 +0100
commit14b2064d325f8065dad48421c16db9b4ac678cfe (patch)
treea336ca6548355d9cd4bc3448fae2eeccb25057be /Kod
parent74f1d443644c8654d9fbc3bf48f5d3b87e48c199 (diff)
parent50ed829577446a0ae66395a1c20f47e79282d4cd (diff)
downloadtfyy51-14b2064d325f8065dad48421c16db9b4ac678cfe.tar.gz
Merge branch 'display-io' into car-function
Diffstat (limited to 'Kod')
-rw-r--r--Kod/bilbana/yc4/display/clear_display.m2
-rw-r--r--Kod/bilbana/yc4/display/continue_line.m5
-rw-r--r--Kod/bilbana/yc4/display/define_flashing_area.m5
-rw-r--r--Kod/bilbana/yc4/display/define_flashing_area_with_pattern.m5
-rw-r--r--Kod/bilbana/yc4/display/define_touch_key.m8
-rw-r--r--Kod/bilbana/yc4/display/define_touch_switch.m10
-rw-r--r--Kod/bilbana/yc4/display/delete_area.m5
-rw-r--r--Kod/bilbana/yc4/display/draw_box.m6
-rw-r--r--Kod/bilbana/yc4/display/draw_frame.m5
-rw-r--r--Kod/bilbana/yc4/display/draw_frame_box.m5
-rw-r--r--Kod/bilbana/yc4/display/draw_point.m5
-rw-r--r--Kod/bilbana/yc4/display/draw_rectangle.m5
-rw-r--r--Kod/bilbana/yc4/display/draw_single_line.m4
-rw-r--r--Kod/bilbana/yc4/display/fill_area.m5
-rw-r--r--Kod/bilbana/yc4/display/fill_area_with_pattern.m5
-rw-r--r--Kod/bilbana/yc4/display/fill_display.m2
-rw-r--r--Kod/bilbana/yc4/display/get_bytes.m2
-rw-r--r--Kod/bilbana/yc4/display/get_num.m3
-rw-r--r--Kod/bilbana/yc4/display/get_package.m12
-rw-r--r--Kod/bilbana/yc4/display/get_response.m56
-rw-r--r--Kod/bilbana/yc4/display/get_smallpackage.m8
-rw-r--r--Kod/bilbana/yc4/display/invert_area.m5
-rw-r--r--Kod/bilbana/yc4/display/invert_display.m2
-rw-r--r--Kod/bilbana/yc4/display/put_text.m10
-rw-r--r--Kod/bilbana/yc4/display/remove_flashing_area.m5
-rw-r--r--Kod/bilbana/yc4/display/restore_display_from_clipboard.m2
-rw-r--r--Kod/bilbana/yc4/display/restore_display_from_clipboard_to_point.m5
-rw-r--r--Kod/bilbana/yc4/display/save_area_to_clipboard.m5
-rw-r--r--Kod/bilbana/yc4/display/save_display_to_clipboard.m2
-rw-r--r--Kod/bilbana/yc4/display/send_data_to_display.m27
-rw-r--r--Kod/bilbana/yc4/display/set_display_visible.m11
-rw-r--r--Kod/bilbana/yc4/display/set_drawing_mode.m4
-rw-r--r--Kod/bilbana/yc4/display/set_flashing_time.m2
-rw-r--r--Kod/bilbana/yc4/display/set_line_pattern.m2
-rw-r--r--Kod/bilbana/yc4/display/set_pattern.m3
-rw-r--r--Kod/bilbana/yc4/display/set_point_size.m6
-rw-r--r--Kod/bilbana/yc4/display/set_text_font.m2
-rw-r--r--Kod/bilbana/yc4/display/set_touch_sound_response.m10
-rw-r--r--Kod/bilbana/yc4/do_car.m2
-rw-r--r--Kod/bilbana/yc4/main.m54
40 files changed, 183 insertions, 139 deletions
diff --git a/Kod/bilbana/yc4/display/clear_display.m b/Kod/bilbana/yc4/display/clear_display.m
index 2d0d25f..45f1680 100644
--- a/Kod/bilbana/yc4/display/clear_display.m
+++ b/Kod/bilbana/yc4/display/clear_display.m
@@ -1,3 +1,3 @@
function pkg = clear_display()
- pkg = get_package('DL', []);
+pkg = get_package('DL', []);
end
diff --git a/Kod/bilbana/yc4/display/continue_line.m b/Kod/bilbana/yc4/display/continue_line.m
index 9734201..99b4074 100644
--- a/Kod/bilbana/yc4/display/continue_line.m
+++ b/Kod/bilbana/yc4/display/continue_line.m
@@ -1,5 +1,4 @@
function pkg = continue_line(x2, y2)
- arg = [get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('GW', arg)
+arg = [get_bytes(x2), get_bytes(y2)];
+pkg = get_package('GW', arg)
end
diff --git a/Kod/bilbana/yc4/display/define_flashing_area.m b/Kod/bilbana/yc4/display/define_flashing_area.m
index 11d6cf3..3e581ea 100644
--- a/Kod/bilbana/yc4/display/define_flashing_area.m
+++ b/Kod/bilbana/yc4/display/define_flashing_area.m
@@ -1,5 +1,4 @@
function pkg = define_flashing_area(x1, y1, x2, y2)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('QI', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+pkg = get_package('QI', arg);
end
diff --git a/Kod/bilbana/yc4/display/define_flashing_area_with_pattern.m b/Kod/bilbana/yc4/display/define_flashing_area_with_pattern.m
index eb13e90..c5c190f 100644
--- a/Kod/bilbana/yc4/display/define_flashing_area_with_pattern.m
+++ b/Kod/bilbana/yc4/display/define_flashing_area_with_pattern.m
@@ -1,5 +1,4 @@
function pkg = define_flashing_area_with_pattern(x1, y1, x2, y2, n1)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2), n1];
-
- pkg = get_package('QM', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2), n1];
+pkg = get_package('QM', arg);
end
diff --git a/Kod/bilbana/yc4/display/define_touch_key.m b/Kod/bilbana/yc4/display/define_touch_key.m
index 14ee5ee..69ed130 100644
--- a/Kod/bilbana/yc4/display/define_touch_key.m
+++ b/Kod/bilbana/yc4/display/define_touch_key.m
@@ -1,7 +1,7 @@
function pkg = define_touch_key(x1, y1, x2, y2, down_code, up_code, just, text)
- arg_location = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
- arg_text = double(strjoin({just; text}, ''));
- arg_null = 0;
+arg_location = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+arg_text = double(strjoin({just; text}, ''));
+arg_null = 0;
- pkg = get_package('AT', [arg_location, down_code, up_code, arg_text, arg_null]);
+pkg = get_package('AT', [arg_location, down_code, up_code, arg_text, arg_null]);
end
diff --git a/Kod/bilbana/yc4/display/define_touch_switch.m b/Kod/bilbana/yc4/display/define_touch_switch.m
index 47d3cd9..e45f512 100644
--- a/Kod/bilbana/yc4/display/define_touch_switch.m
+++ b/Kod/bilbana/yc4/display/define_touch_switch.m
@@ -1,7 +1,7 @@
-function pkg = define_touch_key(x1, y1, x2, y2, down_code, up_code, just, text)
- arg_location = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
- arg_text = double(strjoin({just; text}, ''));
- arg_null = 0;
+function pkg = define_touch_switch(x1, y1, x2, y2, down_code, up_code, just, text)
+arg_location = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+arg_text = double(strjoin({just; text}, ''));
+arg_null = 0;
- pkg = get_package('AK', [arg_location, down_code, up_code, arg_text, arg_null]);
+pkg = get_package('AK', [arg_location, down_code, up_code, arg_text, arg_null]);
end
diff --git a/Kod/bilbana/yc4/display/delete_area.m b/Kod/bilbana/yc4/display/delete_area.m
index 44953b7..576638e 100644
--- a/Kod/bilbana/yc4/display/delete_area.m
+++ b/Kod/bilbana/yc4/display/delete_area.m
@@ -1,5 +1,4 @@
function pkg = delete_area(x1, y1, x2, y2)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('RL', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+pkg = get_package('RL', arg);
end
diff --git a/Kod/bilbana/yc4/display/draw_box.m b/Kod/bilbana/yc4/display/draw_box.m
index ef548a4..7ac4b70 100644
--- a/Kod/bilbana/yc4/display/draw_box.m
+++ b/Kod/bilbana/yc4/display/draw_box.m
@@ -1,6 +1,4 @@
function pkg = draw_box(x1, y1, x2, y2, n1)
-% rectangle with pattern filled and solid line around it
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2), n1];
-
- pkg = get_package('RO', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2), n1];
+pkg = get_package('RO', arg);
end
diff --git a/Kod/bilbana/yc4/display/draw_frame.m b/Kod/bilbana/yc4/display/draw_frame.m
index 7b97adb..1a6ce3b 100644
--- a/Kod/bilbana/yc4/display/draw_frame.m
+++ b/Kod/bilbana/yc4/display/draw_frame.m
@@ -1,5 +1,4 @@
function pkg = draw_frame(x1, y1, x2, y2, n1)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('RR', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+pkg = get_package('RR', arg);
end
diff --git a/Kod/bilbana/yc4/display/draw_frame_box.m b/Kod/bilbana/yc4/display/draw_frame_box.m
index 9b57c7c..f2a247e 100644
--- a/Kod/bilbana/yc4/display/draw_frame_box.m
+++ b/Kod/bilbana/yc4/display/draw_frame_box.m
@@ -1,5 +1,4 @@
function pkg = draw_frame_box(x1, y1, x2, y2, n1)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2), n1];
-
- pkg = get_package('RT', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2), n1];
+pkg = get_package('RT', arg);
end
diff --git a/Kod/bilbana/yc4/display/draw_point.m b/Kod/bilbana/yc4/display/draw_point.m
index 74053d5..34ba683 100644
--- a/Kod/bilbana/yc4/display/draw_point.m
+++ b/Kod/bilbana/yc4/display/draw_point.m
@@ -1,5 +1,4 @@
function pkg = draw_point(x1, y1)
- arg = [get_bytes(x1), get_bytes(y1)];
-
- pkg = get_package('GP', arg);
+arg = [get_bytes(x1), get_bytes(y1)];
+pkg = get_package('GP', arg);
end
diff --git a/Kod/bilbana/yc4/display/draw_rectangle.m b/Kod/bilbana/yc4/display/draw_rectangle.m
index 9e92cad..3edff7c 100644
--- a/Kod/bilbana/yc4/display/draw_rectangle.m
+++ b/Kod/bilbana/yc4/display/draw_rectangle.m
@@ -1,5 +1,4 @@
function pkg = draw_rectangle(x1, y1, x2, y2)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('GR', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+pkg = get_package('GR', arg);
end
diff --git a/Kod/bilbana/yc4/display/draw_single_line.m b/Kod/bilbana/yc4/display/draw_single_line.m
index ca13293..c1da8ab 100644
--- a/Kod/bilbana/yc4/display/draw_single_line.m
+++ b/Kod/bilbana/yc4/display/draw_single_line.m
@@ -1,4 +1,4 @@
function pkg = draw_single_line(x1, y1, x2, y2)
- arg = [mod(x1, 255), fix(x1 / 255), y1, 0, mod(x2, 255), fix(x2 / 255), y2, 0];
- pkg = get_package('GD', arg);
+arg = [mod(x1, 255), fix(x1 / 255), y1, 0, mod(x2, 255), fix(x2 / 255), y2, 0];
+pkg = get_package('GD', arg);
end
diff --git a/Kod/bilbana/yc4/display/fill_area.m b/Kod/bilbana/yc4/display/fill_area.m
index 4d64463..ae53551 100644
--- a/Kod/bilbana/yc4/display/fill_area.m
+++ b/Kod/bilbana/yc4/display/fill_area.m
@@ -1,5 +1,4 @@
function pkg = fill_area(x1, y1, x2, y2)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('RS', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+pkg = get_package('RS', arg);
end
diff --git a/Kod/bilbana/yc4/display/fill_area_with_pattern.m b/Kod/bilbana/yc4/display/fill_area_with_pattern.m
index 4815f5b..a461444 100644
--- a/Kod/bilbana/yc4/display/fill_area_with_pattern.m
+++ b/Kod/bilbana/yc4/display/fill_area_with_pattern.m
@@ -1,5 +1,4 @@
function pkg = fill_area_with_pattern(x1, y1, x2, y2, n1)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2), n1];
-
- pkg = get_package('RM', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2), n1];
+pkg = get_package('RM', arg);
end
diff --git a/Kod/bilbana/yc4/display/fill_display.m b/Kod/bilbana/yc4/display/fill_display.m
index e5fc1d2..55699b2 100644
--- a/Kod/bilbana/yc4/display/fill_display.m
+++ b/Kod/bilbana/yc4/display/fill_display.m
@@ -1,3 +1,3 @@
function pkg = fill_display()
- pkg = get_package('DS', []);
+pkg = get_package('DS', []);
end
diff --git a/Kod/bilbana/yc4/display/get_bytes.m b/Kod/bilbana/yc4/display/get_bytes.m
index 87ef875..9482008 100644
--- a/Kod/bilbana/yc4/display/get_bytes.m
+++ b/Kod/bilbana/yc4/display/get_bytes.m
@@ -1,3 +1,3 @@
function bytes = get_bytes(num)
- bytes = [mod(num, 256), fix(num / 256)];
+bytes = [mod(num, 256), fix(num / 256)];
end
diff --git a/Kod/bilbana/yc4/display/get_num.m b/Kod/bilbana/yc4/display/get_num.m
new file mode 100644
index 0000000..8ff62f7
--- /dev/null
+++ b/Kod/bilbana/yc4/display/get_num.m
@@ -0,0 +1,3 @@
+function num = get_num(bytes)
+num = bytes(1) + bytes(2) * 256;
+end
diff --git a/Kod/bilbana/yc4/display/get_package.m b/Kod/bilbana/yc4/display/get_package.m
index 7c3a01e..d2e8a26 100644
--- a/Kod/bilbana/yc4/display/get_package.m
+++ b/Kod/bilbana/yc4/display/get_package.m
@@ -1,10 +1,4 @@
-function [pkg] = get_package(code, args)
- DC1 = 17;
- ESC = 27;
-
- data = [ESC, double(code), args];
- len = length(data);
- initStr = [DC1, len, data];
- bcc = mod(sum(initStr), 256);
- pkg = [initStr, bcc];
+function pkg = get_package(code, args)
+ESC = 27;
+pkg = [ESC, double(code), args];
end
diff --git a/Kod/bilbana/yc4/display/get_response.m b/Kod/bilbana/yc4/display/get_response.m
new file mode 100644
index 0000000..0c77a00
--- /dev/null
+++ b/Kod/bilbana/yc4/display/get_response.m
@@ -0,0 +1,56 @@
+function [ack, start_code, responses] = get_response(display_data)
+% GET RESPONSE
+% In-depth explanation
+% [flag, display_data] = matlabclient(2)
+
+ack = false;
+start_code = '';
+responses = [];
+
+if isempty(display_data)
+ return
+end
+bcc = display_data(length(display_data));
+
+
+pointer = 1;
+
+if display_data(pointer) == 6
+ ack = true;
+else
+ return
+end
+
+if pointer > length(display_data)
+ return
+end
+
+pointer = pointer + 1;
+if display_data(1) == 17
+ start_code = 'DC1';
+elseif display_data(1) == 18
+ start_code = 'DC2';
+end
+
+pointer = pointer + 1;
+% total length
+
+data = struct;
+while pointer < length(display_data) - 1 % last value is bcc
+ pointer = pointer + 1;
+ if display_data(pointer) ~= 27
+ % TODO: no ESC?
+ end
+ pointer = pointer + 1;
+ data.id = char(display_data(pointer));
+
+ pointer = pointer + 1;
+ data.length = display_data(pointer);
+ if data.id == 'A'
+ pointer = pointer + 1;
+ data.data = display_data(pointer);
+ else
+ pointer = pointer + data.length;
+ end
+ responses = [responses, data];
+end
diff --git a/Kod/bilbana/yc4/display/get_smallpackage.m b/Kod/bilbana/yc4/display/get_smallpackage.m
new file mode 100644
index 0000000..be386bc
--- /dev/null
+++ b/Kod/bilbana/yc4/display/get_smallpackage.m
@@ -0,0 +1,8 @@
+function pkg = get_smallpackage(data)
+DC1 = 17;
+
+len = length(data);
+initStr = [DC1, len, data];
+bcc = mod(sum(initStr), 256);
+pkg = [initStr, bcc];
+end
diff --git a/Kod/bilbana/yc4/display/invert_area.m b/Kod/bilbana/yc4/display/invert_area.m
index 39db3c2..081d65c 100644
--- a/Kod/bilbana/yc4/display/invert_area.m
+++ b/Kod/bilbana/yc4/display/invert_area.m
@@ -1,5 +1,4 @@
function pkg = invert_area(x1, y1, x2, y2)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('RI', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+pkg = get_package('RI', arg);
end
diff --git a/Kod/bilbana/yc4/display/invert_display.m b/Kod/bilbana/yc4/display/invert_display.m
index ab2ddad..c661167 100644
--- a/Kod/bilbana/yc4/display/invert_display.m
+++ b/Kod/bilbana/yc4/display/invert_display.m
@@ -1,3 +1,3 @@
function pkg = invert_display()
- pkg = get_package('DI', []);
+pkg = get_package('DI', []);
end
diff --git a/Kod/bilbana/yc4/display/put_text.m b/Kod/bilbana/yc4/display/put_text.m
index 22871e3..8455c83 100644
--- a/Kod/bilbana/yc4/display/put_text.m
+++ b/Kod/bilbana/yc4/display/put_text.m
@@ -1,9 +1,7 @@
function [pkg] = put_text(x, y, justification, text)
- code = strjoin({'Z', justification}, '');
+arg1 = [mod(x, 256), x ./ 256, mod(y, 256), y ./ 256];
+arg2 = text;
+arg3 = 0;
- arg1 = [mod(x, 256), x ./ 256, mod(y, 256), y ./ 256];
- arg2 = text;
- arg3 = 0;
-
- pkg = get_package(code, [arg1 double(arg2) arg3]);
+pkg = get_package(strjoin({'Z', justification}, ''), [arg1 double(arg2) arg3]);
end
diff --git a/Kod/bilbana/yc4/display/remove_flashing_area.m b/Kod/bilbana/yc4/display/remove_flashing_area.m
index 701402b..4efa5be 100644
--- a/Kod/bilbana/yc4/display/remove_flashing_area.m
+++ b/Kod/bilbana/yc4/display/remove_flashing_area.m
@@ -1,5 +1,4 @@
function pkg = remove_flashing_area(x1, y1, x2, y2)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('QL', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+pkg = get_package('QL', arg);
end
diff --git a/Kod/bilbana/yc4/display/restore_display_from_clipboard.m b/Kod/bilbana/yc4/display/restore_display_from_clipboard.m
index 9542851..44c6150 100644
--- a/Kod/bilbana/yc4/display/restore_display_from_clipboard.m
+++ b/Kod/bilbana/yc4/display/restore_display_from_clipboard.m
@@ -1,3 +1,3 @@
function pkg = restore_display_from_clipboard()
- pkg = get_package('CR', []);
+pkg = get_package('CR', []);
end
diff --git a/Kod/bilbana/yc4/display/restore_display_from_clipboard_to_point.m b/Kod/bilbana/yc4/display/restore_display_from_clipboard_to_point.m
index 2c9e1aa..e10d019 100644
--- a/Kod/bilbana/yc4/display/restore_display_from_clipboard_to_point.m
+++ b/Kod/bilbana/yc4/display/restore_display_from_clipboard_to_point.m
@@ -1,5 +1,4 @@
function pkg = restore_display_from_clipboard_to_point(x1, y1)
- arg = [get_bytes(x1), get_bytes(y1)];
-
- pkg = get_package('CK', arg);
+arg = [get_bytes(x1), get_bytes(y1)];
+pkg = get_package('CK', arg);
end
diff --git a/Kod/bilbana/yc4/display/save_area_to_clipboard.m b/Kod/bilbana/yc4/display/save_area_to_clipboard.m
index 8098b06..4d12459 100644
--- a/Kod/bilbana/yc4/display/save_area_to_clipboard.m
+++ b/Kod/bilbana/yc4/display/save_area_to_clipboard.m
@@ -1,5 +1,4 @@
function pkg = save_area_to_clipboard(x1, y1, x2, y2)
- arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
-
- pkg = get_package('CS', arg);
+arg = [get_bytes(x1), get_bytes(y1), get_bytes(x2), get_bytes(y2)];
+pkg = get_package('CS', arg);
end
diff --git a/Kod/bilbana/yc4/display/save_display_to_clipboard.m b/Kod/bilbana/yc4/display/save_display_to_clipboard.m
index f8cd0bd..404831f 100644
--- a/Kod/bilbana/yc4/display/save_display_to_clipboard.m
+++ b/Kod/bilbana/yc4/display/save_display_to_clipboard.m
@@ -1,3 +1,3 @@
function pkg = save_display_to_clipboard()
- pkg = get_package('CB', []);
+pkg = get_package('CB', []);
end
diff --git a/Kod/bilbana/yc4/display/send_data_to_display.m b/Kod/bilbana/yc4/display/send_data_to_display.m
deleted file mode 100644
index c5d70c7..0000000
--- a/Kod/bilbana/yc4/display/send_data_to_display.m
+++ /dev/null
@@ -1,27 +0,0 @@
-function [] = send_data_to_display()
-%SEND_DATA_TO_DISPLAY sends available data to display if last send was
-% more than 0.5 seconds ago.
- persistent last_send;
- global display_data;
-
- if isempty(display_data)
- return
- end
- % disp(last_send);
- % disp(clock);
- if isempty(last_send) % first send
- %% SEND DATA
- % disp('sending data');
- % disp(display_data)
- matlabclient(1, display_data{1});
- last_send = clock;
- display_data(1) = [];
- elseif (etime(clock, last_send) >= 0.5)
- %% SEND DATA
- % disp('sending data');
- % disp(display_data)
- matlabclient(1, display_data{1});
- last_send = clock;
- display_data(1) = [];
- end
-end
diff --git a/Kod/bilbana/yc4/display/set_display_visible.m b/Kod/bilbana/yc4/display/set_display_visible.m
index 7b97264..58cd1a4 100644
--- a/Kod/bilbana/yc4/display/set_display_visible.m
+++ b/Kod/bilbana/yc4/display/set_display_visible.m
@@ -1,8 +1,7 @@
function pkg = set_display_visible(visible)
-%
- if visible == true
- pkg = get_package('DE', []);
- else
- pkg = get_package('DA', []);
- end
+if visible == true
+ pkg = get_package('DE', []);
+else
+ pkg = get_package('DA', []);
+end
end
diff --git a/Kod/bilbana/yc4/display/set_drawing_mode.m b/Kod/bilbana/yc4/display/set_drawing_mode.m
index 47c1490..1164ebc 100644
--- a/Kod/bilbana/yc4/display/set_drawing_mode.m
+++ b/Kod/bilbana/yc4/display/set_drawing_mode.m
@@ -2,7 +2,5 @@ function pkg = set_drawing_mode(n1)
% 1 = set
% 2 = delete (erase)
% 3 = invert (on -> off, off -> on for every pixel thats drawn over)
- arg = [n1];
-
- pkg = get_package('GV', arg);
+pkg = get_package('GV', [n1]);
end
diff --git a/Kod/bilbana/yc4/display/set_flashing_time.m b/Kod/bilbana/yc4/display/set_flashing_time.m
index e4f056d..3d11420 100644
--- a/Kod/bilbana/yc4/display/set_flashing_time.m
+++ b/Kod/bilbana/yc4/display/set_flashing_time.m
@@ -1,3 +1,3 @@
function pkg = set_flashing_time(n1)
- pkg = get_package('QZ', [n1]);
+pkg = get_package('QZ', [n1]);
end
diff --git a/Kod/bilbana/yc4/display/set_line_pattern.m b/Kod/bilbana/yc4/display/set_line_pattern.m
index 86c2261..c836c80 100644
--- a/Kod/bilbana/yc4/display/set_line_pattern.m
+++ b/Kod/bilbana/yc4/display/set_line_pattern.m
@@ -1,3 +1,3 @@
function pkg = set_line_pattern(n1)
- pkg = get_package('GM', n1);
+pkg = get_package('GM', n1);
end
diff --git a/Kod/bilbana/yc4/display/set_pattern.m b/Kod/bilbana/yc4/display/set_pattern.m
new file mode 100644
index 0000000..5962ebc
--- /dev/null
+++ b/Kod/bilbana/yc4/display/set_pattern.m
@@ -0,0 +1,3 @@
+function pkg = set_pattern(n1)
+pkg = get_package('GM', n1);
+end
diff --git a/Kod/bilbana/yc4/display/set_point_size.m b/Kod/bilbana/yc4/display/set_point_size.m
index f70e698..17615a1 100644
--- a/Kod/bilbana/yc4/display/set_point_size.m
+++ b/Kod/bilbana/yc4/display/set_point_size.m
@@ -1,6 +1,4 @@
function pkg = set_point_size(n1, n2)
-% både linjer och punkter
- arg = [n1, n2];
-
- pkg = get_package('GZ', arg);
+arg = [n1, n2];
+pkg = get_package('GZ', arg);
end
diff --git a/Kod/bilbana/yc4/display/set_text_font.m b/Kod/bilbana/yc4/display/set_text_font.m
index 78093c9..1aed263 100644
--- a/Kod/bilbana/yc4/display/set_text_font.m
+++ b/Kod/bilbana/yc4/display/set_text_font.m
@@ -1,3 +1,3 @@
function pkg = set_text_font(font_num)
- pkg = get_package('ZF', [font_num]);
+pkg = get_package('ZF', [font_num]);
end
diff --git a/Kod/bilbana/yc4/display/set_touch_sound_response.m b/Kod/bilbana/yc4/display/set_touch_sound_response.m
index 851eaf2..cb14d83 100644
--- a/Kod/bilbana/yc4/display/set_touch_sound_response.m
+++ b/Kod/bilbana/yc4/display/set_touch_sound_response.m
@@ -1,7 +1,7 @@
function pkg = set_touch_sound_response(state)
- if state == true
- pkg = get_package('AS', [1]);
- else
- pkg = get_package('AS', [0]);
- end
+if state == true
+ pkg = get_package('AS', [1]);
+else
+ pkg = get_package('AS', [0]);
+end
end
diff --git a/Kod/bilbana/yc4/do_car.m b/Kod/bilbana/yc4/do_car.m
index 504486a..f822395 100644
--- a/Kod/bilbana/yc4/do_car.m
+++ b/Kod/bilbana/yc4/do_car.m
@@ -104,7 +104,7 @@ if car.running == true
car.lap_tic = tic;
car.position = 0;
- 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))}, ' '))};
+ 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;
diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m
index 56b0014..8ee18b2 100644
--- a/Kod/bilbana/yc4/main.m
+++ b/Kod/bilbana/yc4/main.m
@@ -5,10 +5,17 @@ cd display/ClientServerApp/Release
!startServer
cd ../../..
-global display_data;
-display_data = {};
-display_data = {display_data clear_display()};
-pause(1);
+display = struct;
+display.data = [clear_display()];
+display.out = 0;
+display.shm = 0;
+display.shm_interp = struct;
+display.shm_interp.ack = 0;
+display.shm_interp.start_code = '';
+display.shm_interp.data = [];
+display.last_send = tic;
+display.last_request = tic;
+display.send_interval = 0.5;
disp('Startar bilbanan. Avsluta med q.')
hf=figure('position', [0 0 eps eps], 'menubar', 'none');
@@ -16,7 +23,6 @@ hf=figure('position', [0 0 eps eps], 'menubar', 'none');
initialize_counters(1)
initialize_counters(2)
-
config_IOs
load('bilbana\files\Bana1.mat')
@@ -39,7 +45,6 @@ car1.map = Bana1;
car1.approximation = [];
car1.miss_probability = 0.0;
-
car2 = struct;
car2.num = 2;
car2.running = false;
@@ -103,8 +108,8 @@ while 1
figure(hf)
drawnow
- [car1, car1.stop, display_data] = do_car(car1, t, display_data);
- [car2, car2.stop, display_data] = do_car(car2, t, display_data);
+ [car1, car1.stop, display.data] = do_car(car1, t, display.data);
+ [car2, car2.stop, display.data] = do_car(car2, t, display.data);
if car1.stop == true
disp('stopped by car 1');
@@ -114,13 +119,38 @@ while 1
disp('stopped by car 2');
break;
end
-
- %% DISPLAY
%% END OF LOOP
while 1 %Whileloop med paus som k�rs till pausen �verskridit 0.07 sekunder
- pause(0.001);
+ % DISPLAY
+ display.send_delay = tic;
+ if toc(display.last_send) > display.send_interval
+ % queue control signal
+ if car1.running && car1.automatic
+ display.data = [display.data, put_text(20, 16 + (16 * 1), 'L', num2str(car1.u))];
+ end
+ if car2.running && car2.automatic
+ display.data = [display.data, put_text(20, 16 + (16 * 2), 'L', num2str(car2.u))];
+ end
+
+ % send all queued data
+ if ~isempty(display.data)
+ [display.out] = matlabclient(1, get_smallpackage(display.data));
+ display.data = [];
+ end
+ display.last_send = tic;
+
+ % read internal mem from last send
+ [display.out, display.shm] = matlabclient(2);
+ [display.shm_interp.ack, display.shm_interp.start_code, display.shm_interp.data] = get_response(display.shm);
+
+ % request internal mem
+ % matlabclient(1, hex2dec(['12'; '01'; '53'; '66']));
+ end
+ % disp(strjoin({'display took additional ', num2str(toc(display.send_delay))}));
+ % ACTUAL END OF LOOP
t = toc(readTime);
+
if t > 0.07
if t > highToc
highToc = t; %Om det nya v�rdet p� pausen �r h�gre �n den tidigare h�gsta s� sparas det som den h�gsta
@@ -130,8 +160,8 @@ while 1
end
break;
end
+ pause(0.001);
end
- send_data_to_display();
end
%% END OF PROGRAM