Exercise 2 Solution: Simple Sun SPOT Application Code
Code:
1
6
7 package org.sunspotworld;
8
9 import com.sun.spot.peripheral.Spot;
10 import com.sun.spot.sensorboard.EDemoBoard;
11 import com.sun.spot.sensorboard.peripheral.ISwitch;
12 import com.sun.spot.sensorboard.peripheral.ITriColorLED;
13 import com.sun.spot.peripheral.radio.IRadioPolicyManager;
14 import com.sun.spot.io.j2me.radiostream.*;
15 import com.sun.spot.io.j2me.radiogram.*;
16 import com.sun.spot.sensorboard.io.IScalarInput;
17 import com.sun.spot.util.*;
18
19 import java.io.*;
20 import javax.microedition.io.*;
21 import javax.microedition.midlet.MIDlet;
22 import javax.microedition.midlet.MIDletStateChangeException;
23
24
31 public class TestApplication extends MIDlet {
32
33 private ITriColorLED [] leds = EDemoBoard.getInstance().getLEDs();
34
35 protected void startApp() throws MIDletStateChangeException {
36 System.out.println("Hello, world");
37 new BootloaderListener().start();
38
39 long ourAddr = Spot.getInstance().getRadioPolicyManager().getIEEEAddress();
40 System.out.println("Our radio address = " + IEEEAddress.toDottedHex(ourAddr));
41
42 IScalarInput sensor = EDemoBoard.getInstance().getScalarInputs()[EDemoBoard.A0];
43 while(true){
44 try {
45 int val = sensor.getValue();
46 System.out.println("Value: " + val);
47 } catch (IOException ex) {
48 ex.printStackTrace();
49 }
50 Utils.sleep(100);
51 }
52 }
53
54 protected void pauseApp() {
55
56 }
57
58
71 protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
72 for (int i = 0; i < 8; i++) {
73 leds[i].setOff();
74 }
75 }
76 }
Go on to Exercise 3