/** * Register a listener for value changes, will check for changes every 50ms. * * @param listener * The listener callback. * @param percentChange * Degree of change required to trigger an event. */ public void addListener(InputEventListener<AnalogInputEvent> listener, float percentChange) { addListener(listener, percentChange, DEFAULT_POLL_INTERVAL); }
/** * Get the current temperature in °C. * @return Temperature in °C. * @throws RuntimeIOException If an I/O error occurred. */ @Override public float getTemperature() throws RuntimeIOException { // Get the scaled value (voltage) float v = super.getScaledValue(); return (100 * v - 50) + tempOffset; } }
@Override public void run() { if (stopScheduler.get()) { throw new RuntimeException("Stopping scheduler due to close request, device key=" + device.getKey()); } float unscaled = getUnscaledValue(); if (changeDetected(unscaled)) { valueChanged(new AnalogInputEvent(gpio, System.currentTimeMillis(), System.nanoTime(), unscaled)); lastValue = Float.valueOf(unscaled); } }
/** * Register a listener for value changes, will check for changes every 50ms. * * @param listener * The listener callback. * @param percentChange * Degree of change required to trigger an event. * @param pollInterval * Time in milliseconds at which reading should be taken. */ public void addListener(InputEventListener<AnalogInputEvent> listener, float percentChange, int pollInterval) { this.percentChange = percentChange; this.pollInterval = pollInterval; addListener(listener); } }