Project

General

Profile

Sensor

/**
 * Sensor API
 * @author Andrej Cimperšek
 */
public interface Sensor {
    /**
     * Kaj natancno naredi ukaz ni znano. Pred zajemom podatkov ga je potrebno izvesti.
     * TODO: odstranit oz. samodejen klic pred zajemom podatkov.
     */
    public void ReadQuery();

    /**
     * Pripravi senzor na zajemanje podatkov. Ob naslednjih prozenjih laserja bodo meritve dostopne preko lastnosti ReceivedMeasurement.
     * TODO: drugačen dostop do podatkov
     */
    public void RunAcqusition();

    /**
     * Ustavi zajemanje podatkov ob prozenju laserja. Z drugimi besadami, ob naslednjih sprozitvah laserja ne bomo dobili podatkov meritev.
     */
    public void StopAcqusition();

    /**
     * Podobno kot RunAcqusition, natancnejsi podatki zal niso znani.
     */
    public void ForceTrigger();

    /**
     * Mnozica doloca vse mozne tipe meritev.
     */
    public enum DataType { Data, Background, DataMinusBackground }

    /**
     * Nastavi tip type meritve.
     * @param type Tip meritve.
     */
    public void SetDataType(DataType type);

    /**
     * Vrne status senzurja, predstavljen v enem byte-u.
     * @return byte Status senzorja.
     */
    public byte GetStatus();

    /**
     * Poslje gain profil gainData v senzor.
     * @param gainData Gain profil.
     */
    public void SendGain(short[] gainData);

}