Files
pitts-touchscreen/3B/archive/root_11.bak/st.lua

114 lines
2.3 KiB
Lua

periphery = require('periphery')
Serial = periphery.Serial
serial = Serial("/dev/ttyAMA0",9600)
COMMAND_POSITION = 0x19
COMMAND_POSITION_X = 0x13
COMMAND_POSITION_Y = 0x11
COMMAND_01H = 0x01
COMMAND_03H = 0x03
COMMAND_CURSOR_OFF = 0x0E
COMMAND_BLINK = 0x0B
COMMAND_UNBLINK = 0x0C
COMMAND_CR = 0x0D
COMMAND_LF = 0x0A
blinkFlag = false
posX = 0
posY = 0
function checkY(y)
if y < 0 then
y = 0
end
if y > 5 then
y = 5
end
posY = y
return y
end
function checkX(x)
if x < 0 then
x = 39;
posY = posY - 1
checkY(posY)
end
if x > 39 then
if posY == 5 then
x = 39;
else
x = 0;
posY = posY + 1
checkY(posY);
end
end
posX = x
return x
end
function gotoXY(x,y)
checkX(x);
checkY(y);
end
function lineFeed(void)
posY = posY + 1
gotoXY(posX, checkY(posY));
end
function carriageReturn(void)
gotoXY(0, posY);
end
while (1) do
while serial:poll(100) do
local c = serial:read(1)
if c:byte() == COMMAND_POSITION then
local cmd = serial:read(1)
if cmd:byte() == COMMAND_POSITION_X then
local x = string.byte(serial:read(1))
gotoXY(x,posY)
elseif cmd:byte() == COMMAND_POSITION_Y then
local y = string.byte(serial:read(1))
gotoXY(posX,y)
end
elseif c:byte() == COMMAND_03H then
serial:read(1)
serial:read(1)
elseif c:byte() == COMMAND_BLINK then
blinkFlag = true
elseif c:byte() == COMMAND_UNBLINK then
blinkFlag = false
elseif c:byte() == COMMAND_CURSOR_OFF then
-- curs_set(0);
elseif c:byte() == COMMAND_CR then
carriageReturn()
elseif c:byte() == COMMAND_LF then
lineFeed()
else
if c:byte() >= 0x20 and c:byte() < 0x7F then
print(c.." at "..posX.." "..posY.."\n")
posX = posX + 1
checkX(posX)
--[[
if ( c >= 0x20 && c < 0x7F ) {
(c==buf_char[y_now][x_now])?(buf_chng[y_now][x_now]='n'):(buf_chng[y_now][x_now]='y');
(BLINK_FLAG?(buf_args[y_now][x_now] = 'b'):( buf_args[y_now][x_now] = 'n'));
buf_char[y_now][x_now] = c;
checkX(++x_now);
--]]
else
print("Unknown: "..c:byte().."\n");
end
end
--
-- io.stderr:write(string.format('%02X ',c:byte(1)));
end
end