Migrate to PShell 2.0

This commit is contained in:
gac-S_Changer
2025-08-08 10:50:06 +02:00
parent 5f19b8ac42
commit 249e9e3855
16 changed files with 294 additions and 285 deletions

View File

@@ -1,58 +1,58 @@
package ch.psi.mxsc;
import static ch.psi.mxsc.Controller.NUMBER_OF_PUCKS;
import ch.psi.pshell.device.Device;
import ch.psi.pshell.device.DeviceAdapter;
import ch.psi.utils.State;
import java.util.List;
/**
*
*/
public class EseraDetection implements AutoCloseable{
final Device device;
public EseraDetection(Device device){
this.device = device;
if (device!=null){
device.addListener(listener);
}
}
DeviceAdapter listener = new DeviceAdapter(){
@Override
public void onStateChanged(Device device, State state, State former) {
if (!state.isInitialized()){
Controller.getInstance().clearPuckStates();
}
}
@Override
public void onValueChanged(Device device, Object value, Object former) {
if ((value == null) || !(value instanceof List)){
Controller.getInstance().clearPuckStates();
} else {
List l = (List)value;
PuckState[] puckState = Controller.getInstance().getPuckStates();
for (int i=0; i<NUMBER_OF_PUCKS; i++ ){
try{
List det = (List) l.get(i);
puckState[i].set((det.get(0).equals(0)) ? 1 : 0, (det.get(1).equals(0)) ? 1 : 0);
} catch (Exception ex){
puckState[i].clear();
}
}
Controller.getInstance().updateView();
}
}
};
@Override
public void close() {
if (device!=null){
device.removeListener(listener);
}
Controller.getInstance().clearPuckStates();
}
}
package ch.psi.mxsc;
import static ch.psi.mxsc.Controller.NUMBER_OF_PUCKS;
import ch.psi.pshell.device.Device;
import ch.psi.pshell.device.DeviceListener;
import ch.psi.pshell.utils.State;
import java.util.List;
/**
*
*/
public class EseraDetection implements AutoCloseable{
final Device device;
public EseraDetection(Device device){
this.device = device;
if (device!=null){
device.addListener(listener);
}
}
DeviceListener listener = new DeviceListener(){
@Override
public void onStateChanged(Device device, State state, State former) {
if (!state.isInitialized()){
Controller.getInstance().clearPuckStates();
}
}
@Override
public void onValueChanged(Device device, Object value, Object former) {
if ((value == null) || !(value instanceof List)){
Controller.getInstance().clearPuckStates();
} else {
List l = (List)value;
PuckState[] puckState = Controller.getInstance().getPuckStates();
for (int i=0; i<NUMBER_OF_PUCKS; i++ ){
try{
List det = (List) l.get(i);
puckState[i].set((det.get(0).equals(0)) ? 1 : 0, (det.get(1).equals(0)) ? 1 : 0);
} catch (Exception ex){
puckState[i].clear();
}
}
Controller.getInstance().updateView();
}
}
};
@Override
public void close() {
if (device!=null){
device.removeListener(listener);
}
Controller.getInstance().clearPuckStates();
}
}