improved simulation: GPIO added and dofile adapted
This commit is contained in:
parent
a36dc8d033
commit
22afc1e4c4
10
main.lua
10
main.lua
@ -1,7 +1,5 @@
|
|||||||
-- Main Module
|
-- Main Module
|
||||||
|
|
||||||
displayword = {}
|
|
||||||
|
|
||||||
function startSetupMode()
|
function startSetupMode()
|
||||||
tmr.stop(0)
|
tmr.stop(0)
|
||||||
tmr.stop(1)
|
tmr.stop(1)
|
||||||
@ -56,12 +54,12 @@ function displayTime()
|
|||||||
else
|
else
|
||||||
words.briPercent=nil
|
words.briPercent=nil
|
||||||
end
|
end
|
||||||
dofile("displayword.lc")
|
dp = dofile("displayword.lc")
|
||||||
if (displayword ~= nil) then
|
if (dp ~= nil) then
|
||||||
ledBuf = displayword.generateLEDs(words, color, color1, color2, color3, color4)
|
ledBuf = dp.generateLEDs(words, color, color1, color2, color3, color4)
|
||||||
print("Local time : " .. time.year .. "-" .. time.month .. "-" .. time.day .. " " .. time.hour .. ":" .. time.minute .. ":" .. time.second .. " char: " .. tostring(displayword.data.drawnCharacters))
|
print("Local time : " .. time.year .. "-" .. time.month .. "-" .. time.day .. " " .. time.hour .. ":" .. time.minute .. ":" .. time.second .. " char: " .. tostring(displayword.data.drawnCharacters))
|
||||||
end
|
end
|
||||||
displayword = nil
|
dp = nil
|
||||||
if (ledBuf ~= nil) then
|
if (ledBuf ~= nil) then
|
||||||
--if lines 4 to 6 are inverted due to hardware-fuckup, unfuck it here
|
--if lines 4 to 6 are inverted due to hardware-fuckup, unfuck it here
|
||||||
if ((inv46 ~= nil) and (inv46 == "on")) then
|
if ((inv46 ~= nil) and (inv46 == "on")) then
|
||||||
|
@ -12,3 +12,4 @@ color4=string.char(tonumber(green2*0.2), 0, 0)
|
|||||||
colorBg=string.char(0,0,0) -- black is the default background color
|
colorBg=string.char(0,0,0) -- black is the default background color
|
||||||
sntpserverhostname="ptbtime1.ptb.de"
|
sntpserverhostname="ptbtime1.ptb.de"
|
||||||
timezoneoffset=1
|
timezoneoffset=1
|
||||||
|
dim="on"
|
||||||
|
@ -13,6 +13,7 @@ import org.luaj.vm2.lib.jse.JsePlatform;
|
|||||||
import de.c3ma.ollo.mockup.DoFileFunction;
|
import de.c3ma.ollo.mockup.DoFileFunction;
|
||||||
import de.c3ma.ollo.mockup.ESP8266Adc;
|
import de.c3ma.ollo.mockup.ESP8266Adc;
|
||||||
import de.c3ma.ollo.mockup.ESP8266File;
|
import de.c3ma.ollo.mockup.ESP8266File;
|
||||||
|
import de.c3ma.ollo.mockup.ESP8266GPIO;
|
||||||
import de.c3ma.ollo.mockup.ESP8266Net;
|
import de.c3ma.ollo.mockup.ESP8266Net;
|
||||||
import de.c3ma.ollo.mockup.ESP8266Node;
|
import de.c3ma.ollo.mockup.ESP8266Node;
|
||||||
import de.c3ma.ollo.mockup.ESP8266Time;
|
import de.c3ma.ollo.mockup.ESP8266Time;
|
||||||
@ -46,11 +47,13 @@ public class WS2812Simulation implements LuaSimulation {
|
|||||||
globals.load(espTmr);
|
globals.load(espTmr);
|
||||||
globals.load(espFile);
|
globals.load(espFile);
|
||||||
globals.load(espNode);
|
globals.load(espNode);
|
||||||
|
globals.load(new ESP8266GPIO());
|
||||||
globals.load(adc);
|
globals.load(adc);
|
||||||
globals.load(new ESP8266Wifi());
|
globals.load(new ESP8266Wifi());
|
||||||
globals.load(new ESP8266Net());
|
globals.load(new ESP8266Net());
|
||||||
globals.load(new ESP8266Time());
|
globals.load(new ESP8266Time());
|
||||||
globals.set("dofile", doFile);
|
globals.set("dofile", doFile);
|
||||||
|
adc.setADC(50);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
File tempFile = File.createTempFile("NodemcuSimuFile", "");
|
File tempFile = File.createTempFile("NodemcuSimuFile", "");
|
||||||
|
@ -26,14 +26,13 @@ public class DoFileFunction extends OneArgFunction {
|
|||||||
public LuaValue call(LuaValue luaFilename) {
|
public LuaValue call(LuaValue luaFilename) {
|
||||||
String filename = luaFilename.checkjstring();
|
String filename = luaFilename.checkjstring();
|
||||||
|
|
||||||
System.out.println("[Nodemcu] dofile " + filename);
|
//System.out.println("[Nodemcu] dofile " + filename);
|
||||||
|
|
||||||
File f = new File(workingDir.getAbsolutePath() + File.separator + filename);
|
File f = new File(workingDir.getAbsolutePath() + File.separator + filename);
|
||||||
|
|
||||||
if (f.exists()) {
|
if (f.exists()) {
|
||||||
LuaValue chunk = this.globals.loadfile(f.getAbsolutePath());
|
LuaValue chunk = this.globals.loadfile(f.getAbsolutePath());
|
||||||
chunk.call();
|
return chunk.call();
|
||||||
return LuaValue.valueOf(true);
|
|
||||||
} else {
|
} else {
|
||||||
return LuaValue.valueOf(false);
|
return LuaValue.valueOf(false);
|
||||||
}
|
}
|
||||||
|
51
simulation/src/de/c3ma/ollo/mockup/ESP8266GPIO.java
Normal file
51
simulation/src/de/c3ma/ollo/mockup/ESP8266GPIO.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package de.c3ma.ollo.mockup;
|
||||||
|
|
||||||
|
import org.luaj.vm2.LuaTable;
|
||||||
|
import org.luaj.vm2.LuaValue;
|
||||||
|
import org.luaj.vm2.Varargs;
|
||||||
|
import org.luaj.vm2.lib.TwoArgFunction;
|
||||||
|
import org.luaj.vm2.lib.VarArgFunction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* created at 08.05.2019 - 21:33:04<br />
|
||||||
|
* creator: ollo<br />
|
||||||
|
* project: ESP8266GPIO Emulation<br />
|
||||||
|
* $Id: $<br />
|
||||||
|
* @author ollo<br />
|
||||||
|
*/
|
||||||
|
public class ESP8266GPIO extends TwoArgFunction {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LuaValue call(LuaValue modname, LuaValue env) {
|
||||||
|
env.checkglobals();
|
||||||
|
final LuaTable gpio = new LuaTable();
|
||||||
|
gpio.set("mode", new Mode());
|
||||||
|
gpio.set("read", new Read(this));
|
||||||
|
env.set("gpio", gpio);
|
||||||
|
env.get("package").get("loaded").set("gpio", gpio);
|
||||||
|
return gpio;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class Read extends VarArgFunction {
|
||||||
|
|
||||||
|
private ESP8266GPIO mGpio = null;
|
||||||
|
|
||||||
|
Read(ESP8266GPIO gpio) {
|
||||||
|
this.mGpio = gpio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Varargs invoke(Varargs varargs) {
|
||||||
|
int pin = varargs.toint(0);
|
||||||
|
//FIXME add here something to simulate a pin pressing
|
||||||
|
return LuaValue.valueOf((int)1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class Mode extends VarArgFunction {
|
||||||
|
|
||||||
|
public Varargs invoke(Varargs varargs) {
|
||||||
|
System.out.println("[GPIO] mode GPIO" + varargs.toint(0) + "=" + varargs.toint(1));
|
||||||
|
return LuaValue.valueOf(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user