Skip to content

Commit 8ead5cc

Browse files
committedJan 11, 2025
Started rework process
1 parent e073fbd commit 8ead5cc

32 files changed

+256
-920
lines changed
 

‎.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ build/
66
*.aar
77
*.war
88
!gradle-wrapper.jar
9+
10+
.codegpt

‎.idea/workspace.xml

+29-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# log4j.properties
2+
log4j.rootLogger=INFO, stdout
3+
4+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
5+
log4j.appender.stdout.Target=System.out
6+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
7+
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

‎src/main/java/com/github/iamniklas/liocore/led/LEDDataBundle.java

+25-28
Original file line numberDiff line numberDiff line change
@@ -7,43 +7,40 @@
77
import com.github.iamniklas.liocore.procedures.models.Direction;
88
import com.google.gson.annotations.SerializedName;
99

10+
import java.util.ArrayList;
11+
1012
public class LEDDataBundle {
11-
@SerializedName("color_primary")
12-
public ColorRGB colorPrimary;
13-
@SerializedName("color_secondary")
14-
public ColorRGB colorSecondary;
15-
@SerializedName("color_tertiary")
16-
public ColorRGB colorTertiary;
13+
//used for monocolor, glitter, lighttoggle, lighttogglecineadjusted,
14+
public ColorRGB color;
15+
16+
//used for multicolor
17+
public ArrayList<ColorRGB> colors;
18+
19+
//used for javascript
1720
public String data;
18-
@SerializedName("value_1")
19-
public Float value1;
20-
@SerializedName("value_2")
21-
public Float value2;
22-
@SerializedName("value_3")
23-
public Float value3;
24-
public Integer modulo;
21+
22+
//used for lightning
23+
public Float attenuation;
24+
25+
//used for lighttoggle, lighttogglecineadjusted
2526
public InterpolationType interpolation;
26-
public InterpolationType interpolationOverDistance;
27+
28+
//used for rainbow
2729
public Direction direction;
28-
public Integer bpm;
2930
public Float repetitions;
31+
32+
//used for rainbow, rainbowmono, glitter
3033
public Float speed;
31-
public Integer duration;
32-
public Boolean pulsating;
33-
public String path;
34-
public AnimationData animationData;
3534

36-
//subBundle
37-
@SerializedName("is_sub_procedure")
38-
public Boolean isSubProcedure;
39-
public Boolean indeterminate;
40-
@SerializedName("pu_modulo")
41-
public Integer puModulo;
42-
@SerializedName("pu_modulo_invert")
43-
public Boolean puModuloInvert;
35+
//used for lightning, lighttoggle, lighttogglecineadjusted
36+
public Integer duration;
4437

38+
//used in postupdate method
39+
public Integer modulo;
40+
public Boolean moduloInvert;
4541

42+
4643
public transient LEDStripManager ledStrip;
47-
4844
public transient ProcedureCalls procedureCalls;
45+
4946
}

‎src/main/java/com/github/iamniklas/liocore/procedures/ProcContainer.java

+8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package com.github.iamniklas.liocore.procedures;
22

33
import com.github.iamniklas.liocore.led.LEDStripManager;
4+
import org.apache.log4j.Logger;
45

56
import java.util.ArrayList;
67

78
public class ProcContainer {
9+
private static final Logger log = Logger.getLogger(ProcContainer.class);
810
private LEDStripManager ledStripManager;
911
private ArrayList<Procedure> procedures = new ArrayList<>();
1012

@@ -20,9 +22,15 @@ public Procedure getActiveProcedure() {
2022
}
2123

2224
public void replaceActiveProcedure(Procedure _procedure) {
25+
if(!_procedure.validateBundleData()) {
26+
log.error("Procedure data validation failed. Some required fields for this procedure has not been set. Procedure will not be queued.");
27+
return;
28+
}
29+
2330
removeAllCurrentProcedures();
2431
procedures.add(_procedure);
2532
_procedure.procCalls.onProcedureQueued();
33+
_procedure.start();
2634
}
2735

2836
public void queueProcedure(Procedure _procedure) {

‎src/main/java/com/github/iamniklas/liocore/procedures/Procedure.java

+24-16
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
import com.github.iamniklas.liocore.led.LEDStripManager;
66
import com.github.iamniklas.liocore.led.colorspace.LIOColor;
77
import com.github.iamniklas.liocore.network.LEDUpdateModel;
8+
import org.apache.log4j.Logger;
89

910
public abstract class Procedure {
11+
private static final Logger log = Logger.getLogger(Procedure.class);
1012
public LEDUpdateModel ledUpdateModel;
1113
protected LEDStripManager strip;
1214
public ProcedureCalls procCalls;
@@ -15,17 +17,18 @@ public abstract class Procedure {
1517
protected int modulo = 1;
1618
protected boolean moduloInvert = false;
1719
protected boolean isSubProcedure = false;
20+
protected boolean bundleDataValid = false;
1821

1922
public Procedure(LEDUpdateModel _updateModel) {
2023
ledUpdateModel = _updateModel;
2124

2225
strip = ledUpdateModel.bundle.ledStrip;
2326
procCalls = ledUpdateModel.bundle.procedureCalls;
24-
if(ledUpdateModel.bundle.puModulo != null) {
25-
modulo = ledUpdateModel.bundle.puModulo;
27+
if(ledUpdateModel.bundle.modulo != null) {
28+
modulo = ledUpdateModel.bundle.modulo;
2629
}
27-
if(ledUpdateModel.bundle.puModuloInvert != null) {
28-
moduloInvert = ledUpdateModel.bundle.puModuloInvert;
30+
if(ledUpdateModel.bundle.moduloInvert != null) {
31+
moduloInvert = ledUpdateModel.bundle.moduloInvert;
2932
}
3033
}
3134

@@ -34,14 +37,27 @@ public Procedure(LEDUpdateModel _updateModel) {
3437
public void updateLEDDataBundle(LEDDataBundle ledDataBundle) {
3538
ledUpdateModel.bundle = ledDataBundle;
3639

37-
if(ledUpdateModel.bundle.puModulo != null) {
38-
modulo = ledUpdateModel.bundle.puModulo;
40+
if(ledUpdateModel.bundle.modulo != null) {
41+
modulo = ledUpdateModel.bundle.modulo;
3942
}
40-
if(ledUpdateModel.bundle.puModuloInvert != null) {
41-
moduloInvert = ledUpdateModel.bundle.puModuloInvert;
43+
if(ledUpdateModel.bundle.moduloInvert != null) {
44+
moduloInvert = ledUpdateModel.bundle.moduloInvert;
4245
}
4346
}
4447

48+
public boolean bundleIsValid() {
49+
return bundleDataValid;
50+
}
51+
52+
public abstract boolean validateBundleData();
53+
protected boolean checkSingleField(Object _field, String _fieldName) {
54+
if(_field == null) {
55+
log.error("Field " + _fieldName + " is not set but required. Procedure will not be queued.");
56+
return false;
57+
}
58+
return true;
59+
}
60+
4561
public void onActionReceived(ProcedureAction procedureAction) {
4662

4763
}
@@ -60,9 +76,6 @@ public void postUpdate() {
6076
}
6177
}
6278
}
63-
if (step > steps) {
64-
finishProcedure();
65-
}
6679
}
6780

6881
protected void finishProcedure(boolean _clearStrip) {
@@ -72,9 +85,4 @@ protected void finishProcedure(boolean _clearStrip) {
7285
}
7386
procCalls.onProcedureFinish();
7487
}
75-
76-
protected void finishProcedure() {
77-
strip.procContainer.removeCurrentProcedure();
78-
procCalls.onProcedureFinish();
79-
}
8088
}

‎src/main/java/com/github/iamniklas/liocore/procedures/ProcedureFactory.java

+4-11
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,17 @@
66
public class ProcedureFactory {
77
public static Procedure getProcedure(LEDUpdateModel _updateModel) {
88
switch (_updateModel.procedure) {
9-
case BootComplete: return new BootCompleteProcedure(_updateModel);
10-
case ColorInstantSet: return new ColorInstantSetProcedure(_updateModel);
11-
case FadeInFadeOut: return new FadeInFadeOutProcedure(_updateModel);
12-
case FadeToMultiColor: return new FadeToMultiColorProcedure(_updateModel);
13-
case FadeToUniformColor: return new FadeToUniformColorProcedure(_updateModel);
14-
case Blink: return new BlinkProcedure(_updateModel);
9+
case Ready: return new ReadyProcedure(_updateModel);
10+
case MonoColor: return new MonoColorProcedure(_updateModel);
1511
case Glitter: return new GlitterProcedure(_updateModel);
16-
case Fill: return new FillStripProcedure(_updateModel);
17-
case FillInterpolated: return new FillStripInterpolatedProcedure(_updateModel);
1812
case Rainbow: return new RainbowProcedure(_updateModel);
1913
case RainbowMono: return new RainbowMonoProcedure(_updateModel);
20-
case JsonProcedure: return new JsonProcedure(_updateModel);
21-
case Progress: return new ProgressProcedure(_updateModel);
14+
case MultiColor: return new MultiColorProcedure(_updateModel);
2215
case Lightning: return new LightningProcedure(_updateModel);
2316
case Javascript: return new JavascriptProcedure(_updateModel);
2417
case LightToggle: return new LightToggleProcedure(_updateModel);
2518
case LightToggleCineAdjusted: return new LightToggleCineAdjustedProcedure(_updateModel);
26-
case NoLongerReady: return new NoLongerReadyProcedure(_updateModel);
19+
case Error: return new ErrorProcedure(_updateModel);
2720
default: return null;
2821
}
2922
}
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
11
package com.github.iamniklas.liocore.procedures;
22

33
public enum ProcedureType {
4-
BootComplete,
5-
ColorInstantSet,
6-
FadeInFadeOut,
7-
FadeToMultiColor,
8-
FadeToUniformColor,
9-
Blink,
10-
Glitter,
11-
Fill,
12-
FillInterpolated,
4+
Ready,
5+
Error,
6+
7+
MonoColor,
8+
MultiColor,
9+
1310
Rainbow,
1411
RainbowMono,
15-
JsonProcedure,
16-
Progress,
12+
13+
Glitter,
1714
Lightning,
18-
MusicSync,
19-
RandomColorBlocks,
2015
Javascript,
21-
NoLongerReady,
16+
2217
LightToggle,
2318
LightToggleCineAdjusted,
2419
}

‎src/main/java/com/github/iamniklas/liocore/procedures/models/IndeterminateState.java

-5
This file was deleted.

‎src/main/java/com/github/iamniklas/liocore/procedures/variants/BlinkProcedure.java

-52
This file was deleted.

‎src/main/java/com/github/iamniklas/liocore/procedures/variants/NoLongerReadyProcedure.java ‎src/main/java/com/github/iamniklas/liocore/procedures/variants/ErrorProcedure.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,12 @@
66
import com.github.iamniklas.liocore.network.LEDUpdateModel;
77
import com.github.iamniklas.liocore.procedures.Procedure;
88

9-
public class NoLongerReadyProcedure extends Procedure {
10-
11-
private LEDDataBundle bundle;
9+
public class ErrorProcedure extends Procedure {
1210

1311
private boolean redLightActive = false;
1412

15-
public NoLongerReadyProcedure(LEDUpdateModel _ledUpdateModel) {
13+
public ErrorProcedure(LEDUpdateModel _ledUpdateModel) {
1614
super(_ledUpdateModel);
17-
bundle = _ledUpdateModel.bundle;
1815

1916
steps = 60;
2017
}
@@ -38,12 +35,16 @@ public void update() {
3835
step++;
3936
if(step > steps) {
4037
strip.setAllPixels(LIOColor.fromRGB(ColorRGB.BLACK));
41-
finishProcedure();
4238
}
4339
}
4440

4541
@Override
4642
public void updateLEDDataBundle(LEDDataBundle ledDataBundle) {
4743

4844
}
45+
46+
@Override
47+
public boolean validateBundleData() {
48+
return true;
49+
}
4950
}

0 commit comments

Comments
 (0)
Please sign in to comment.