summaryrefslogtreecommitdiffstats
path: root/Kod/bilbana/yc4/display
diff options
context:
space:
mode:
authorGustav Sörnäs <gusso230@student.liu.se>2019-10-20 14:36:29 +0200
committerGustav Sörnäs <gusso230@student.liu.se>2019-10-20 14:36:29 +0200
commitc8d4d70b17cd7a56dd48cb94b3831e52f8d56dc9 (patch)
tree4a0e1b2864cae60f260101644c176ac2d5ab80d3 /Kod/bilbana/yc4/display
parent1111d306f96fbe7d1608e1eaa156680fd5b21ecf (diff)
parentc4033991d6363441bf4697608034edb39ff50fe5 (diff)
downloadtfyy51-c8d4d70b17cd7a56dd48cb94b3831e52f8d56dc9.tar.gz
Merge branch 'freeze_gustav' into freeze
# Conflicts: # Kod/bilbana/yc4/main.m
Diffstat (limited to 'Kod/bilbana/yc4/display')
-rw-r--r--Kod/bilbana/yc4/display/clear_display.m3
-rw-r--r--Kod/bilbana/yc4/display/draw_single_line.m4
-rw-r--r--Kod/bilbana/yc4/display/get_package.m10
-rw-r--r--Kod/bilbana/yc4/display/put_text.m9
-rw-r--r--Kod/bilbana/yc4/display/send_data_to_display.m28
-rw-r--r--Kod/bilbana/yc4/display/set_text_font.m3
6 files changed, 57 insertions, 0 deletions
diff --git a/Kod/bilbana/yc4/display/clear_display.m b/Kod/bilbana/yc4/display/clear_display.m
new file mode 100644
index 0000000..32fdac1
--- /dev/null
+++ b/Kod/bilbana/yc4/display/clear_display.m
@@ -0,0 +1,3 @@
+function pkg = clear_display()
+ pkg = get_package('DL', [])
+end
diff --git a/Kod/bilbana/yc4/display/draw_single_line.m b/Kod/bilbana/yc4/display/draw_single_line.m
new file mode 100644
index 0000000..ca13293
--- /dev/null
+++ b/Kod/bilbana/yc4/display/draw_single_line.m
@@ -0,0 +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);
+end
diff --git a/Kod/bilbana/yc4/display/get_package.m b/Kod/bilbana/yc4/display/get_package.m
new file mode 100644
index 0000000..7c3a01e
--- /dev/null
+++ b/Kod/bilbana/yc4/display/get_package.m
@@ -0,0 +1,10 @@
+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];
+end
diff --git a/Kod/bilbana/yc4/display/put_text.m b/Kod/bilbana/yc4/display/put_text.m
new file mode 100644
index 0000000..5b80192
--- /dev/null
+++ b/Kod/bilbana/yc4/display/put_text.m
@@ -0,0 +1,9 @@
+function [pkg] = put_text(x, y, justification, text)
+ code = double(strjoin({'Z', justification}, ''));
+
+ arg1 = [x, 0, y, 0];
+ arg2 = text;
+ arg3 = 0;
+
+ pkg = get_package(code, [arg1 double(arg2) arg3]);
+end
diff --git a/Kod/bilbana/yc4/display/send_data_to_display.m b/Kod/bilbana/yc4/display/send_data_to_display.m
new file mode 100644
index 0000000..8df03f7
--- /dev/null
+++ b/Kod/bilbana/yc4/display/send_data_to_display.m
@@ -0,0 +1,28 @@
+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_text_font.m b/Kod/bilbana/yc4/display/set_text_font.m
new file mode 100644
index 0000000..768d16b
--- /dev/null
+++ b/Kod/bilbana/yc4/display/set_text_font.m
@@ -0,0 +1,3 @@
+function pkg = set_text_font(font_num)
+ pkg = get_package('ZF', [font_num])
+end