From 56da8aea6c147ed2fa542d474413fe0bb243032f Mon Sep 17 00:00:00 2001 From: = Date: Thu, 23 Jan 2025 15:58:08 +0100 Subject: [PATCH] first server files --- server/autorun.lua | 1 + server/main.lua | 10 +++++++ server/screen.lua | 73 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 server/autorun.lua create mode 100644 server/main.lua create mode 100644 server/screen.lua diff --git a/server/autorun.lua b/server/autorun.lua new file mode 100644 index 0000000..20ffb90 --- /dev/null +++ b/server/autorun.lua @@ -0,0 +1 @@ +dofile("main.lua") \ No newline at end of file diff --git a/server/main.lua b/server/main.lua new file mode 100644 index 0000000..472bc55 --- /dev/null +++ b/server/main.lua @@ -0,0 +1,10 @@ +dofile("screen.lua") + +-- connecte l'écran sur les pins 18 et 19 +attachscreen(18, 19, 0x3C) + +-- connecte la bande de led sur le pin 21 +neo = neopixel.attach(neopixel.WS2812B, pio.GPIO21, 8) + +cls() +console("test") diff --git a/server/screen.lua b/server/screen.lua new file mode 100644 index 0000000..a127a76 --- /dev/null +++ b/server/screen.lua @@ -0,0 +1,73 @@ +function attachscreen(sda, scl, i2cadd) + try ( + function () + i2c.setpins(0,sda,scl) + gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.LANDSCAPE, false, i2cadd) + gdisplay.clear() + gdisplay.setfont(gdisplay.FONT_LCD) + gdisplay.setwrap(false) + end, + + function (where, line, error, message) + print("Couldn't attach the screen.\nError in "..where.." at "..line.." "..error..": "..message) + end, + + function () end + ) +end + +local consolepos = 0 +local consoletab = {} +local consolemax = 6 +local oledflip = 1 + +function flip() + oledflip = oledflip+1; if oledflip > 3 then oledflip = 0 end + if oledflip==0 then + consolemax = 6 + gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.LANDSCAPE_FLIP, false, i2cadd) + elseif oledflip==1 then + consolemax = 6 + gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.LANDSCAPE, false, i2cadd) + elseif oledflip==2 then + consolemax = 13 + gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.PORTRAIT, false, i2cadd) + else + consolemax = 13 + gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.PORTRAIT_FLIP, false, i2cadd) + end + cls() +end + +function cls() + if (consolemax==6) then gdisplay.clear() + else + gdisplay.rect( {0,0}, 128, 9*consolemax, {0,0,0}, {0,0,0} ) + end + if oledflip ~= 1 then gdisplay.clear() end + consolepos = 0 + consoletab={} + for i=0, consolemax do + consoletab[i] = "" + end +end + +function console(msg) + if (consolepos <= consolemax) then + consoletab[consolepos] = msg + gdisplay.write({0, consolepos*9},msg) + consolepos = consolepos+1 + else + for i = 1, consolemax do + consoletab[i-1] = consoletab[i] + end + consoletab[consolemax] = msg + if (consolemax==6) then gdisplay.clear() + else + gdisplay.rect( {0,0}, 128, 9*consolemax+9, {0,0,0}, {0,0,0} ) + end + for i=0, consolemax do + gdisplay.write({0, i*9},consoletab[i]) + end + end +end