This commit is contained in:
2024-05-27 11:46:04 +02:00
parent 8025de69a9
commit 99ce3b378b
7 changed files with 211 additions and 28 deletions

View File

@ -84,23 +84,40 @@ public class IOPorts {
buttonsPORT[i].setDisable(!val);
buttonsTRIS[i].getToggles().get(0).setSelected(val);
buttonsTRIS[i].getToggles().get(1).setSelected(!val);
if(i < 8){
if (isLEDenabledA && !val){
if (DataRegister.getDirectBit(PORTA, i) == 1)
allLEDsA[i].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
updateLEDs(true, i, val);
}
}
private static void updateLEDs(boolean updateAll, int index, boolean val) {
if (updateAll) {
if (index < 8) {
if (isLEDenabledA && !val) {
if (DataRegister.getDirectBit(PORTA, index) == 1)
allLEDsA[index].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
else
allLEDsA[i].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
}
}
else{
if (isLEDenabledB){
if (DataRegister.getDirectBit(PORTB, i-8) == 1)
allLEDsB[i-8].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.RED), new Stop(1, Color.DARKGRAY)));
else
allLEDsB[i-8].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
allLEDsA[index].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
}
} else {
if (isLEDenabledB && !val) {
if (DataRegister.getDirectBit(PORTB, index - 8) == 1)
allLEDsB[index - 8].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.RED), new Stop(1, Color.DARKGRAY)));
else
allLEDsB[index - 8].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
}
}
}
else {
if (index < 8)
if (val || DataRegister.getDirectBit(PORTA, index) == 0)
allLEDsA[index].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
else
allLEDsA[index].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.RED), new Stop(1, Color.DARKGRAY)));
else
if (val || DataRegister.getDirectBit(PORTB, index - 8) == 0)
allLEDsB[index - 8].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
else
allLEDsB[index - 8].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.RED), new Stop(1, Color.DARKGRAY)));
}
}
private static boolean isInput(int i, int bit) {
@ -121,6 +138,7 @@ public class IOPorts {
clearBit(tris, bit);
buttonsPORT[(tris-TRISA)*8 + bit].setDisable(true);
}
updateLEDs(false, (tris-TRISA)*8 + bit, value == 1);
refreshPorts();
refreshTable(parent);
}
@ -142,13 +160,13 @@ public class IOPorts {
boolean isBnowDisabled = isLEDenabledB && !leds[1];
isLEDenabledB = leds[1];
if (isAnowDisabled){
for (int i = 0; i < allLEDsA.length; i++){
allLEDsA[i].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
for (Circle circle : allLEDsA) {
circle.setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
}
}
if (isBnowDisabled){
for (int i = 0; i < allLEDsB.length; i++){
allLEDsB[i].setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
for (Circle circle : allLEDsB) {
circle.setFill(new RadialGradient(0, 0, 0.5, 0.5, 0.7, true, null, new Stop(0, Color.BLACK), new Stop(1, Color.DARKGRAY)));
}
}
}
@ -158,7 +176,7 @@ public class IOPorts {
allLEDsB = b;
}
private static void refreshTable(ToggleButtonGroup parent) throws IOException {
private static void refreshTable(ToggleButtonGroup parent) {
Stage stage = (Stage) parent.getScene().getWindow();
Table.refresh();
CreateWindow.refreshTable(stage);