Michael Koster / Mbed 2 deprecated ipso_interop_mbed1

Dependencies:   Chainable_RGB_LED DHT LED_Bar mbed mbedConnectorInterface mbedEndpointNetwork_mjk_regfix

Committer:
michaeljkoster
Date:
Tue May 19 21:34:25 2015 +0000
Revision:
0:f299ce844c09
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
michaeljkoster 0:f299ce844c09 1 /**
michaeljkoster 0:f299ce844c09 2 * @file LightResource.h
michaeljkoster 0:f299ce844c09 3 * @brief mbed CoAP Endpoint Light resource supporting CoAP GET and PUT
michaeljkoster 0:f299ce844c09 4 * @author Doug Anson, Michael Koster
michaeljkoster 0:f299ce844c09 5 * @version 1.0
michaeljkoster 0:f299ce844c09 6 * @see
michaeljkoster 0:f299ce844c09 7 *
michaeljkoster 0:f299ce844c09 8 * Copyright (c) 2014
michaeljkoster 0:f299ce844c09 9 *
michaeljkoster 0:f299ce844c09 10 * Licensed under the Apache License, Version 2.0 (the "License");
michaeljkoster 0:f299ce844c09 11 * you may not use this file except in compliance with the License.
michaeljkoster 0:f299ce844c09 12 * You may obtain a copy of the License at
michaeljkoster 0:f299ce844c09 13 *
michaeljkoster 0:f299ce844c09 14 * http://www.apache.org/licenses/LICENSE-2.0
michaeljkoster 0:f299ce844c09 15 *
michaeljkoster 0:f299ce844c09 16 * Unless required by applicable law or agreed to in writing, software
michaeljkoster 0:f299ce844c09 17 * distributed under the License is distributed on an "AS IS" BASIS,
michaeljkoster 0:f299ce844c09 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
michaeljkoster 0:f299ce844c09 19 * See the License for the specific language governing permissions and
michaeljkoster 0:f299ce844c09 20 * limitations under the License.
michaeljkoster 0:f299ce844c09 21 */
michaeljkoster 0:f299ce844c09 22
michaeljkoster 0:f299ce844c09 23 #ifndef __LIGHT_RESOURCE_H__
michaeljkoster 0:f299ce844c09 24 #define __LIGHT_RESOURCE_H__
michaeljkoster 0:f299ce844c09 25
michaeljkoster 0:f299ce844c09 26
michaeljkoster 0:f299ce844c09 27 // Base class
michaeljkoster 0:f299ce844c09 28 #include "DynamicResource.h"
michaeljkoster 0:f299ce844c09 29
michaeljkoster 0:f299ce844c09 30 // our Light
michaeljkoster 0:f299ce844c09 31 #include "ChainableLED.h"
michaeljkoster 0:f299ce844c09 32 #define LED_COUNT 1
michaeljkoster 0:f299ce844c09 33
michaeljkoster 0:f299ce844c09 34 ChainableLED led_chain(D3, D4, LED_COUNT);
michaeljkoster 0:f299ce844c09 35
michaeljkoster 0:f299ce844c09 36 static char * led_value = {"00000"}; //RRGGBB
michaeljkoster 0:f299ce844c09 37
michaeljkoster 0:f299ce844c09 38 void set_led_array(char * color_string)
michaeljkoster 0:f299ce844c09 39 {
michaeljkoster 0:f299ce844c09 40 int color_int;
michaeljkoster 0:f299ce844c09 41
michaeljkoster 0:f299ce844c09 42 sscanf(color_string, "%X", &color_int);
michaeljkoster 0:f299ce844c09 43
michaeljkoster 0:f299ce844c09 44 led_chain.setColorRGB(0, (color_int >> 16 & 255), (color_int >> 8 & 255), (color_int & 255) );
michaeljkoster 0:f299ce844c09 45 }
michaeljkoster 0:f299ce844c09 46
michaeljkoster 0:f299ce844c09 47 /** LightResource class
michaeljkoster 0:f299ce844c09 48 */
michaeljkoster 0:f299ce844c09 49 class LightResource : public DynamicResource
michaeljkoster 0:f299ce844c09 50 {
michaeljkoster 0:f299ce844c09 51
michaeljkoster 0:f299ce844c09 52 public:
michaeljkoster 0:f299ce844c09 53 /**
michaeljkoster 0:f299ce844c09 54 Default constructor
michaeljkoster 0:f299ce844c09 55 @param logger input logger instance for this resource
michaeljkoster 0:f299ce844c09 56 @param name input the Light resource name
michaeljkoster 0:f299ce844c09 57 @param observable input the resource is Observable (default: FALSE)
michaeljkoster 0:f299ce844c09 58 */
michaeljkoster 0:f299ce844c09 59 LightResource(const Logger *logger,const char *name,const bool observable = false) : DynamicResource(logger,name,"Light",SN_GRS_GET_ALLOWED|SN_GRS_PUT_ALLOWED,observable) {
michaeljkoster 0:f299ce844c09 60 set_led_array("000000");
michaeljkoster 0:f299ce844c09 61 wait(0.5);
michaeljkoster 0:f299ce844c09 62 set_led_array("FF0000");
michaeljkoster 0:f299ce844c09 63 wait(0.5);
michaeljkoster 0:f299ce844c09 64 set_led_array("00FF00");
michaeljkoster 0:f299ce844c09 65 wait(0.5);
michaeljkoster 0:f299ce844c09 66 set_led_array("0000FF");
michaeljkoster 0:f299ce844c09 67 wait(0.5);
michaeljkoster 0:f299ce844c09 68 set_led_array(led_value);
michaeljkoster 0:f299ce844c09 69 }
michaeljkoster 0:f299ce844c09 70
michaeljkoster 0:f299ce844c09 71 /**
michaeljkoster 0:f299ce844c09 72 Get the value of the Light
michaeljkoster 0:f299ce844c09 73 @returns string containing either "0" (light off) or "1" (light on)
michaeljkoster 0:f299ce844c09 74 */
michaeljkoster 0:f299ce844c09 75 virtual string get() {
michaeljkoster 0:f299ce844c09 76 return(led_value);
michaeljkoster 0:f299ce844c09 77 }
michaeljkoster 0:f299ce844c09 78
michaeljkoster 0:f299ce844c09 79 /**
michaeljkoster 0:f299ce844c09 80 Set the value of the Light
michaeljkoster 0:f299ce844c09 81 @param string input the string containing "0" (light off) or "1" (light on)
michaeljkoster 0:f299ce844c09 82 */
michaeljkoster 0:f299ce844c09 83 virtual void put(const string value) {
michaeljkoster 0:f299ce844c09 84 if( sizeof(value) == sizeof(led_value) ){
michaeljkoster 0:f299ce844c09 85 led_value = (char *)value.c_str();
michaeljkoster 0:f299ce844c09 86 set_led_array(led_value);
michaeljkoster 0:f299ce844c09 87 }
michaeljkoster 0:f299ce844c09 88 }
michaeljkoster 0:f299ce844c09 89 };
michaeljkoster 0:f299ce844c09 90
michaeljkoster 0:f299ce844c09 91 #endif // __LIGHT_RESOURCE_H__