Simulation speedup factor added

This commit is contained in:
ollo 2018-01-17 21:11:42 +01:00
parent f51613255b
commit 4522e40d52
4 changed files with 20 additions and 7 deletions

View File

@ -11,3 +11,4 @@ color4=string.char(green, red, blue)
colorBg=string.char(0,0,0) -- black is the default background color
sntpserverhostname="ptbtime1.ptb.de"
timezoneoffset=1

View File

@ -72,7 +72,7 @@ public class WS2812Simulation implements LuaSimulation {
}
}
public static void main(String[] args) {
public static void main(final String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
@ -100,9 +100,18 @@ public class WS2812Simulation implements LuaSimulation {
System.out.println("Integrate " + additionalFile.getName() + " into simulation");
} else {
System.err.println("Script " + args[2] + " cannot be found");
printUsage();
System.exit(1);
}
}
if (args.length >= 4) {
try {
ESP8266Tmr.gTimingFactor = Integer.parseInt(args[3]);
} catch (NumberFormatException nfe) {
System.err.println("Timing factor not parsable: " + nfe.getMessage());
printUsage();
}
}
simu.callScript(f.getName());
} catch (IOException e) {
@ -128,7 +137,7 @@ public class WS2812Simulation implements LuaSimulation {
private static void printUsage() {
System.out.println("Usage:");
System.out.println("one argument required: file to execute.");
System.out.println(".e.g: init.lua");
System.out.println(".e.g: init.lua (ws2812 layout configuration) (additional LUA script) (timing speedup factor)");
}
@Override

View File

@ -22,6 +22,8 @@ public class ESP8266Tmr extends TwoArgFunction {
private static LuaThreadTmr[] allThreads = new LuaThreadTmr[MAXTHREADS];
public static int gTimingFactor = 1;
@Override
public LuaValue call(LuaValue modname, LuaValue env) {
env.checkglobals();
@ -77,7 +79,8 @@ public class ESP8266Tmr extends TwoArgFunction {
System.err.println("[TMR] Timer" + timerNumer + " stopped");
}
allThreads[timerNumer] = new LuaThreadTmr(timerNumer, code, (endlessloop == 1), delay);
/* The cycletime is at least 1 ms */
allThreads[timerNumer] = new LuaThreadTmr(timerNumer, code, (endlessloop == 1), Math.max(delay / gTimingFactor, 1));
allThreads[timerNumer].start();
}
return LuaValue.valueOf(true);

View File

@ -52,9 +52,9 @@ public class ESP8266Ws2812 extends TwoArgFunction {
public LuaValue call(LuaValue arg) {
if (arg.isstring()) {
LuaString jstring = arg.checkstring();
int length = jstring.rawlen();
final int length = jstring.rawlen();
if ((length % 3) == 0) {
byte[] array = jstring.m_bytes;
final byte[] array = jstring.m_bytes;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {