public void b5_readAndWrite() { // A PV is both a PVReader and a PVWriter PV<Object, Object> pv = PVManager.readAndWrite(channel("channelName")) .readListener(new PVReaderListener<Object>() { @Override public void pvChanged(PVReaderEvent<Object> event) { // Do something with each value Object newValue = event.getPvReader().getValue(); System.out.println(newValue); } }) .asynchWriteAndMaxReadRate(ofMillis(10)); pv.write("New value"); // Remember to close pv.close(); }
public void v1_readNumericType() { // Let's statically import so the code looks cleaner // import static org.epics.pvmanager.data.ExpressionLanguage.*; // Read and Write a vNumber // Note that the read type is different form the write type final PV<VNumber, Number> pv = PVManager.readAndWrite(vNumber("currentRB")) .readListener(new PVReaderListener<VNumber>() { @Override public void pvChanged(PVReaderEvent<VNumber> event) { VNumber value = event.getPvReader().getValue(); if (value != null) { System.out.println(value.getValue() + " " + value.getAlarmSeverity()); } } }) .asynchWriteAndMaxReadRate(ofMillis(10)); pv.write(1.0); // Remember to close pv.close(); // For a full list of types, refer to org.epics.pvmanager.data.ExpressionLanguage }