@Override public void addPVReaderListener(PVReaderListener<? super R> listener) { reader.addPVReaderListener(listener); }
@Override public void close() { reader.close(); writer.close(); }
@Override public void pvChanged(PVReaderEvent<VImage> event) { setLastError(pv.lastException()); if (pv.getValue() != null) { BufferedImage image = ValueUtil.toImage(pv.getValue()); plotView.setImage(image); } } })
@Override public R getValue() { return reader.getValue(); }
@Override public void pvChanged(PVReaderEvent<Object> event) { setLastError(pv.lastException()); Object value = pv.getValue(); setTextValue(format.format(value)); setType(ValueUtil.typeOf(value)); setAlarm(ValueUtil.alarmOf(value)); setTime(ValueUtil.timeOf(value)); setIndicator(ValueUtil.normalizedNumericValueOf(value)); setMetadata(ValueUtil.displayOf(value)); setConnected(pv.isConnected()); } })
logException(pv.lastException()); VDouble value = (VDouble) pv.getValue(); System.out.println(value.getClass()); pv.close(); logException(pv.lastException()); VString value = (VString) pv.getValue(); System.out.println(value.getClass()); pv.close(); logException(pv.lastException()); VEnum value = (VEnum) pv.getValue(); System.out.println(value.getClass()); pv.close(); logException(pv.lastException()); VInt value = (VInt) pv.getValue(); System.out.println(value.getClass()); pv.close(); logException(pv.lastException()); VDoubleArray value = (VDoubleArray) pv.getValue(); System.out.println(value.getClass()); pv.close();
private void createPVButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createPVButtonActionPerformed if (pvs != null && !pvs.isEmpty()) { for (PVReader<VStatistics> pv : pvs) { pv.close(); } } int nPvs = ((Integer) nPVSpinner.getModel().getValue()).intValue(); double timeIntervalSec = (1.0 / ((Integer) updateRateSpinner.getModel().getValue()).intValue()); String pvName = "gaussian(0.0, 1.0, " + timeIntervalSec + ")"; int scanRate = ((Integer) scanRateSpinner.getModel().getValue()).intValue(); final DefaultTableModel model = (DefaultTableModel) pvTable.getModel(); model.setRowCount(nPvs); pvs.clear(); for (int n = 0; n < nPvs; n++) { final PVReader<VStatistics> pv = PVManager.read(statisticsOf(vDouble(pvName))).maxRate(ofHertz(scanRate)); final int nRow = n; pv.addPVReaderListener(new PVReaderListener<VStatistics>() { @Override public void pvChanged(PVReaderEvent<VStatistics> event) { model.setValueAt(pv.getValue().getAverage(), nRow, 0); model.setValueAt(pv.getValue().getStdDev(), nRow, 1); model.setValueAt(pv.getValue().getMin(), nRow, 2); model.setValueAt(pv.getValue().getMax(), nRow, 3); } }); pvs.add(pv); } }//GEN-LAST:event_createPVButtonActionPerformed
PVReader<?> reader = PVManager.read(org.diirt.datasource.formula.ExpressionLanguage.formula(indirectPv)) .readListener((PVReaderEvent<Object> event) -> { System.out.println(event + " - connected(" + event.getPvReader().isConnected() + ")"); }) .maxRate(Duration.ofMillis(50)); reader.close(); namePv.close(); PVManager.getDefaultDataSource().close();
@Override public Exception lastException() { return reader.lastException(); }
@Override public void setPaused(boolean paused) { reader.setPaused(paused); }
@Override public boolean isConnected() { return reader.isConnected(); }
@Override public boolean isClosed() { return reader.isClosed(); }
@Override public boolean isPaused() { return reader.isPaused(); }
@Override public void removePVReaderListener(PVReaderListener<? super R> listener) { reader.removePVReaderListener(listener); }
@Override public String getName() { return reader.getName(); }
@Override public void pvChanged(PVReaderEvent<Map<String, Object>> event) { // Print the values if any Map<String, Object> map = event.getPvReader().getValue(); if (map != null) { System.out.println("one: " + map.get("one") + " - two: " + map.get("two") + " - three: " + map.get("three")); } } })
private void createPVButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createPVButtonActionPerformed if (pv != null) pv.close(); pv.addPVReaderListener(new PVReaderListener<Object>() { @Override public void pvChanged(PVReaderEvent<Object> event) {
@Override public void pvChanged(PVReaderEvent<Object> event) { // Timeout are passed as exceptions. This allows you to // treat them as any other error conditions. Exception ex = event.getPvReader().lastException(); if (ex instanceof TimeoutException) { System.out.println("Didn't connected after 5 seconds"); } } })
/** * Determines whether the notifier is active or not. * <p> * The notifier becomes inactive if the PVReader is closed or is garbage collected. * The first time this function determines that the notifier is inactive, * it will ask the data source to close all channels relative to the * pv. * * @return true if new notification should be performed */ private boolean isActive() { // Making sure to get the reference once for thread safety final PVReader<T> pv = pvReaderRef.get(); if (pv != null && !pv.isClosed()) { return true; } else if (pv == null && closed != true) { log.log(Level.WARNING, "PVReader wasn't properly closed and it was garbage collected. Closing the associated connections...", creationStackTrace); return false; } else { return false; } }