/** * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT * All rights reserved. Use is subject to license terms. See LICENSE.TXT */ package org.diirt.datasource.sample; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.diirt.datasource.PVManager; import org.diirt.datasource.PVReader; import org.diirt.datasource.PVReaderEvent; import org.diirt.datasource.PVReaderListener; import org.diirt.datasource.formula.ExpressionLanguage; import java.time.Duration; /** * Prompts for a channel name, connects and shows the events. * * @author carcassi */ public class MonitorChannel { public static void main(String[] args) throws Exception { // Prompt for channel System.out.print("Enter channel: "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String channelName; try { channelName = br.readLine(); } catch (IOException ioe) { System.out.println("IO error trying to read the channel name"); System.exit(1); return; } System.out.println("Starting channel " + channelName); PVReader<?> reader = PVManager.read(ExpressionLanguage.formula(channelName)) .readListener(new PVReaderListener<Object>() { @Override public void pvChanged(PVReaderEvent<Object> event) { System.out.println(event); } }) .maxRate(Duration.ofMillis(50)); Thread.sleep(3000); System.out.println("Closing..."); reader.close(); PVManager.getDefaultDataSource().close(); System.out.println("Done"); } }