User Tools

Site Tools


the_ledtester_class

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
the_ledtester_class [2018/08/11 00:25] – created frchristhe_ledtester_class [2018/08/11 01:09] frchris
Line 1: Line 1:
-hi +<file java LEDTester.java> 
-<file LEDTester.java> +/** 
-hi+ * This class tests LED by flashing some morse code. 2014 verion by  
 + * @author Ian Utting 
 + * @author Fabio Heday 
 + *  
 + * Chris Thiel added the finalize() method to aviod GpioPinExistsException 
 + * @version 10 Aug 18 
 + */ 
 +public class LEDTester 
 +
 +    public LED pin1; 
 +     
 +    //unit of time, in milliseconds 
 +    private final static int UNIT = 200; 
 +     
 +    public static void main(String [] args) { 
 +        LEDTester lt = new LEDTester(); 
 +         
 +        String s = "SOS SOS SOS"; 
 +//        if ( args.length > 0 && args[0] != null && !args[0].equals ("") )  
 +            s = args[0]; 
 +         
 +        lt.flashMorse(s); 
 +        lt.finalize(); 
 +    } 
 +     
 +    /* 
 +     * create a new LED instance 
 +     */ 
 +    public LEDTester() { 
 +        this(new LED()); 
 +    } 
 +     
 +    /* 
 +     * Creates a LED instance based on a LED object 
 +     */ 
 +    public LEDTester(LED p) { 
 +        pin1 = p; 
 +    } 
 +     
 +    /* 
 +     * Flashes the LED 10 times 
 +     */ 
 +    public void flash10Times() { 
 +         
 +        for(int i = 0; i < 10; i++) { 
 +            pin1.flash(200); 
 +            try { Thread.sleep (200); } catch (InterruptedException e) {} 
 +        } 
 +    } 
 +     
 +     
 +    /* 
 +     * Sends the morse code using the LED. 
 +     */ 
 +    public void flashMorse(String msg) { 
 +                
 +        char [] morse = StringToMorse.translate(msg).toCharArray(); 
 +         
 +        // . = 1, - = 3, intra-char = 1, inter-char = 3, space = 7.", 
 +         
 +        for (char atom : morse) { 
 +                if (atom == '.') { 
 +                    pin1.flash(UNIT); 
 +                } else if (atom == '-') { 
 +                    pin1.flash(3*UNIT); 
 +                } else if (atom == '/') {   // inter-symbol gap 
 +                    sleep (1);   // plus one leading and one trailing == 3 
 +                } else { 
 +                    // must be a space 
 +                    sleep (5);   // plus one leading and one trailing == 7 
 +                } 
 +                sleep (1);   // common gap 
 +        } 
 +    } 
 +    /* 
 +     * Wait units times the defined unit of time 
 +     */ 
 +    private void sleep(int units) { 
 +        try {  
 +            Thread.sleep(units*UNIT);  
 +        } catch (InterruptedException e)  
 +        { 
 +        } 
 +    } 
 +    protected void finalize(){ 
 +        pin1.finalize(); 
 +    }         
 +}
 </file> </file>
 +
the_ledtester_class.txt · Last modified: 2018/08/11 01:10 by frchris

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki