From aeb5dab9fd25d28260403507d32a0b0a615ef588 Mon Sep 17 00:00:00 2001 From: ollo Date: Wed, 24 Apr 2019 21:21:19 +0200 Subject: [PATCH] Added ADC stimulation into the simulation --- .../src/de/c3ma/ollo/LuaSimulation.java | 4 +- .../src/de/c3ma/ollo/WS2812Simulation.java | 8 ++++ .../src/de/c3ma/ollo/mockup/ESP8266Adc.java | 47 +++++++++++++++++++ .../de/c3ma/ollo/mockup/ui/WS2812Layout.java | 3 +- 4 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 simulation/src/de/c3ma/ollo/mockup/ESP8266Adc.java diff --git a/simulation/src/de/c3ma/ollo/LuaSimulation.java b/simulation/src/de/c3ma/ollo/LuaSimulation.java index 5d3023d..7c1223d 100644 --- a/simulation/src/de/c3ma/ollo/LuaSimulation.java +++ b/simulation/src/de/c3ma/ollo/LuaSimulation.java @@ -11,5 +11,7 @@ public interface LuaSimulation { public void rebootTriggered(); - public void setSimulationTime(long timeInMillis); + public void setSimulationTime(long timeInMillis); + + public void setADC(int value); } diff --git a/simulation/src/de/c3ma/ollo/WS2812Simulation.java b/simulation/src/de/c3ma/ollo/WS2812Simulation.java index e88976c..388d3f0 100644 --- a/simulation/src/de/c3ma/ollo/WS2812Simulation.java +++ b/simulation/src/de/c3ma/ollo/WS2812Simulation.java @@ -11,6 +11,7 @@ import org.luaj.vm2.LuaValue; import org.luaj.vm2.lib.jse.JsePlatform; import de.c3ma.ollo.mockup.DoFileFunction; +import de.c3ma.ollo.mockup.ESP8266Adc; import de.c3ma.ollo.mockup.ESP8266File; import de.c3ma.ollo.mockup.ESP8266Net; import de.c3ma.ollo.mockup.ESP8266Node; @@ -36,6 +37,7 @@ public class WS2812Simulation implements LuaSimulation { private ESP8266Node espNode = new ESP8266Node(this); private DoFileFunction doFile = new DoFileFunction(globals); private ESP8266Ws2812 ws2812 = new ESP8266Ws2812(); + private ESP8266Adc adc = new ESP8266Adc(); private String scriptName; public WS2812Simulation(File sourceFolder) { @@ -44,6 +46,7 @@ public class WS2812Simulation implements LuaSimulation { globals.load(espTmr); globals.load(espFile); globals.load(espNode); + globals.load(adc); globals.load(new ESP8266Wifi()); globals.load(new ESP8266Net()); globals.load(new ESP8266Time()); @@ -177,4 +180,9 @@ public class WS2812Simulation implements LuaSimulation { public void setSimulationTime(long timeInMillis) { ESP8266Time.setOverwrittenTime(timeInMillis); } + + @Override + public void setADC(int value) { + adc.setADC(value); + } } diff --git a/simulation/src/de/c3ma/ollo/mockup/ESP8266Adc.java b/simulation/src/de/c3ma/ollo/mockup/ESP8266Adc.java new file mode 100644 index 0000000..4e8b45f --- /dev/null +++ b/simulation/src/de/c3ma/ollo/mockup/ESP8266Adc.java @@ -0,0 +1,47 @@ +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 24.04.2019 - 21:12:03
+ * creator: ollo
+ * project: WS2812Emulation
+ * $Id: $
+ * @author ollo
+ */ +public class ESP8266Adc extends TwoArgFunction { + + private int mAdc = 0; + + @Override + public LuaValue call(LuaValue modname, LuaValue env) { + env.checkglobals(); + final LuaTable adc = new LuaTable(); + adc.set("read", new Read(this)); + env.set("adc", adc); + env.get("package").get("loaded").set("adc", adc); + return adc; + } + + private class Read extends VarArgFunction { + + private ESP8266Adc adc; + + public Read(ESP8266Adc a) { + this.adc = a; + } + + public Varargs invoke(Varargs varargs) { + return LuaValue.valueOf(this.adc.mAdc); + } + } + + public void setADC(int newValue) { + this.mAdc = newValue; + System.out.println("[ADC] updated to " + this.mAdc); + } +} diff --git a/simulation/src/de/c3ma/ollo/mockup/ui/WS2812Layout.java b/simulation/src/de/c3ma/ollo/mockup/ui/WS2812Layout.java index f836c66..f59fa4b 100644 --- a/simulation/src/de/c3ma/ollo/mockup/ui/WS2812Layout.java +++ b/simulation/src/de/c3ma/ollo/mockup/ui/WS2812Layout.java @@ -122,8 +122,7 @@ public class WS2812Layout extends JFrame { @Override public void stateChanged(ChangeEvent e) { - // TODO Auto-generated method stub - + nodemcuSimu.setADC(adc.getValue()); } });