Android Open Source - rcdroid Abstract Sensor






From Project

Back to project page rcdroid.

License

The source code is released under:

Copyright (c) 2013, Jamie Furness (jamie@jamierf.co.uk) All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following...

If you think the Android project rcdroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.jamierf.rcdroid.input.sensor;
/* w w w  .j a  va  2  s.  c  o m*/
import android.hardware.SensorManager;
import com.google.common.base.Optional;
import com.google.common.collect.Lists;
import com.jamierf.rcdroid.input.sensor.listener.SensorListener;

import java.util.Collection;

public abstract class AbstractSensor<T> {

    private final Collection<SensorListener<? extends AbstractSensor<T>>> listeners;

    protected long timestamp;
    protected int accuracy;

    protected AbstractSensor() {
        listeners = Lists.newLinkedList();

        timestamp = 0;
        accuracy = 0;
    }

    public void addListener(SensorListener<? extends AbstractSensor<T>> listener) {
        synchronized (listeners) {
            listeners.add(listener);
        }
    }

    public void removeListener(SensorListener<? extends AbstractSensor<T>> listener) {
        synchronized (listeners) {
            listeners.remove(listener);
        }
    }

    protected void setValueChanged(long timestamp) {
        synchronized (listeners) {
            this.timestamp = timestamp;

            for (SensorListener listener : listeners) {
                listener.onSensorChanged(this);
            }
        }
    }

    public void forceUpdate() {
        this.setValueChanged(System.currentTimeMillis());
    }

    public abstract Optional<T> getValue();

    public synchronized long getTimestamp() {
        return timestamp;
    }

    public synchronized int getAccuracy() {
        return accuracy;
    }

    public synchronized boolean isHighAccuracy() {
        return accuracy == SensorManager.SENSOR_STATUS_ACCURACY_HIGH;
    }

    public synchronized boolean isMediumAccuracy() {
        return accuracy == SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM;
    }

    public synchronized boolean isLowAccuracy() {
        return accuracy == SensorManager.SENSOR_STATUS_ACCURACY_LOW;
    }

    public synchronized boolean isNoAccuracy() {
        return accuracy == 0;
    }

    public void close() {
        // No-op
    }
}




Java Source Code List

com.jamierf.rcdroid.CarActivity.java
com.jamierf.rcdroid.CarService.java
com.jamierf.rcdroid.config.CarConfig.java
com.jamierf.rcdroid.config.ServoConfig.java
com.jamierf.rcdroid.config.WebUIConfig.java
com.jamierf.rcdroid.http.Packet.java
com.jamierf.rcdroid.http.WebController.java
com.jamierf.rcdroid.http.handler.AssetResourceHandler.java
com.jamierf.rcdroid.http.handler.ControlProtocolHandler.java
com.jamierf.rcdroid.http.handler.JsonPOJOHandler.java
com.jamierf.rcdroid.http.listener.ClientListener.java
com.jamierf.rcdroid.http.listener.PacketListener.java
com.jamierf.rcdroid.input.SensorController.java
com.jamierf.rcdroid.input.api.BatteryStatus.java
com.jamierf.rcdroid.input.api.Coordinate.java
com.jamierf.rcdroid.input.sensor.AbstractSensor.java
com.jamierf.rcdroid.input.sensor.AccelerationSensor.java
com.jamierf.rcdroid.input.sensor.BatterySensor.java
com.jamierf.rcdroid.input.sensor.LocationSensor.java
com.jamierf.rcdroid.input.sensor.RotationSensor.java
com.jamierf.rcdroid.input.sensor.listener.SensorListener.java
com.jamierf.rcdroid.logic.CarEngine.java
com.jamierf.rcdroid.logic.packets.AbstractServoHandler.java
com.jamierf.rcdroid.logic.packets.PlayAlarmRequestHandler.java
com.jamierf.rcdroid.logic.packets.SetRotationRequestHandler.java
com.jamierf.rcdroid.logic.packets.SetSpeedRequestHandler.java
com.jamierf.rcdroid.logic.sensors.AccelerationSensorHandler.java
com.jamierf.rcdroid.logic.sensors.BatterySensorHandler.java
com.jamierf.rcdroid.logic.sensors.LocationSensorHandler.java
com.jamierf.rcdroid.logic.sensors.RotationSensorHandler.java