Project

General

Profile

Laser

/**
 * Laser API
 * @author Andrej Cimperšek
 */
public interface Laser {
    /**
     * Vkljuci laser, ki zacne delovati v skladu z nastavljenimi parametri.
     */
    public void Fire();

    /**
     * Izkljuci laser.
     */
    public void Stop();

    /**
     * Shrani trenutno konfiguracijo parametrov v interni pomnilnik laserja, ki se bodo nalozili ob naslednjem zagonu napajanja.
     */
    public void SaveConfig();

    /**
     * Mnozica vseh nacinov delovanja laserja.
     */
    public enum LaserMode { Continuous, Burst, ExternalTrigger};

    /**
     * Izbere nacin delovanja laserja. Nacini mode so nasteti v mnozici LaserMode.
     * @param mode Nacin delovanja laserja.
     */
    public void SelectMode(LaserMode mode);

    /**
     * Omogoci oz. onemogoci Q-Switch opcijo.
     * @param enabled Omogoci oz. onemogoci..
     */
    public void QSwitch(boolean enabled);

    /**
     * Zaklene oz. odklene tipkovnico na napajalniku laserja.
     * @param locked Zaklep oz. odklep.
     */
    public void Keypad(boolean locked);

    /**
     * Nastavi stevilo sunkov laserja, pulses, ki se bodo zaporedoma izbvrsili, ce je izbran nacin delovanje LaserMode.Continuous.
     * Dovoljeno obmocje 0 - 99.
     * @param pulses Stevilo sunkov laserja.
     */
    public void SetBurstPulseCount(byte pulses);

    /**
     * Zazene Q-Switch na vsakih freq sunkov.
     * Dovoljeno obmocje je od 1 - 99.
     * @param freq Frekvenca sunkov.
     */
    public void SetQSwitchFrequency(byte freq);

    /**
     * Zakasnitev aktivacije v stevilu sunkov delay.
     * Dovoljeno obmocje je od 0 - 99.
     * @param delay Zakasnitev aktivacije.
     */
    public void SetQSwitchDelay(byte delay);

    /**
     * Nastavi energijo laserja, eneryLevel, pri posameznem sunku aktivcaije.
     * @param energyLevel Energija laserja.
     */
    public void SetEnergyLevel(byte energyLevel);

    /**
     * Nastavi frekvenco, s katero naj se prozi lase po aktivaciji. Frekvenca je izrazena v sunkih na sekundo, rate.
     * Dovoljene vrednosti so 1, 2, 5, 10 in 20.
     * @param rate Frekvenca s katero se prozi laser.
     */
    public void SetRepetitionRate(byte rate);
}