HOLLightSensor.java

1   /*
2    * Copyright (c) 2009, Sun Microsystems
3    * All rights reserved.
4    * 
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    * 
8    * Redistributions of source code must retain the above copyright notice, this
9    * list of conditions and the following disclaimer.
10   * 
11   * Redistributions in binary form must reproduce the above copyright notice,
12   * this list of conditions and the following disclaimer in the documentation
13   * and/or other materials provided with the distribution.
14   * 
15   * Neither the name of the Sun Microsystems nor the names of its contributors
16   * may be used to endorse or promote products derived from this software without
17   * specific prior written permission.
18   * 
19   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29   * POSSIBILITY OF SUCH DAMAGE.
30   */
31  
32  package org.sunspotworld.demo;
33  
34  import com.sun.spot.resources.Resources;
35  import com.sun.spot.resources.transducers.ILightSensor;
36  import java.io.IOException;
37  import com.sun.spot.wot.WebApplication;
38  import com.sun.spot.wot.http.HttpResponse;
39  import com.sun.spot.wot.http.HttpRequest;
40  
41  /**
42   *
43   * @author vgupta
44   */
45  public class HOLLightSensor extends WebApplication {
46      ILightSensor lightSensor;
47      /*
48       * XXX Comment out/remove the line above and uncomment the following
49       * lines to initialize myLEDs with the tri-color LED array
50       */
51  //    ILightSensor lightSensor = (ILightSensor) Resources.lookup(ILightSensor.class);
52      
53      public void init() {};
54  
55      public HOLLightSensor(String str) {
56          super(str);
57      }
58  
59      public HttpResponse processRequest(HttpRequest request) throws IOException {
60          HttpResponse response = new HttpResponse();
61          String respStr = "?";
62  
63          if (request.getMethod().equalsIgnoreCase("GET")) {
64              /*
65               * XXX Uncommenting this line will return the light sensor
66               * reading as an integer.
67               */           
68  //            respStr = "" + lightSensor.getValue();
69  
70              response.setStatus(HttpResponse.SC_OK);
71              response.setHeader("Content-Type", "text/plain");
72              // Note: Allow this response to be cached for 20 sec to reduce load
73              response.setHeader("Cache-Control", "max-age=20");
74              response.setBody(respStr.getBytes());
75  
76              return response;
77          } else {
78              response.setStatus(HttpResponse.SC_METHOD_NOT_ALLOWED);
79              response.setHeader("Allow", "GET");
80  
81              return response;
82          }
83      }
84  }
85  
86