mbed device for IPSO Interop 2015

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 LedBarResource.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 __LEDBAR_RESOURCE_H__
michaeljkoster 0:f299ce844c09 24 #define __LEDBAR_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 LED Bar
michaeljkoster 0:f299ce844c09 31 #include "LED_Bar.h"
michaeljkoster 0:f299ce844c09 32
michaeljkoster 0:f299ce844c09 33 LED_Bar bar(D3, D2);
michaeljkoster 0:f299ce844c09 34
michaeljkoster 0:f299ce844c09 35 static char * leds = {"0000000000"}; //GGGGGGGGYR
michaeljkoster 0:f299ce844c09 36
michaeljkoster 0:f299ce844c09 37
michaeljkoster 0:f299ce844c09 38 void set_leds(char *leds)
michaeljkoster 0:f299ce844c09 39 {
michaeljkoster 0:f299ce844c09 40 int i;
michaeljkoster 0:f299ce844c09 41 for (i=0; i<=9; i++) {
michaeljkoster 0:f299ce844c09 42 if(leds[i] == '1')
michaeljkoster 0:f299ce844c09 43 bar.setSingleLed((9-i),1);
michaeljkoster 0:f299ce844c09 44 else if(leds[i] == '0')
michaeljkoster 0:f299ce844c09 45 bar.setSingleLed((9-i),0);
michaeljkoster 0:f299ce844c09 46 }
michaeljkoster 0:f299ce844c09 47 }
michaeljkoster 0:f299ce844c09 48
michaeljkoster 0:f299ce844c09 49 /** LedBarResource class
michaeljkoster 0:f299ce844c09 50 */
michaeljkoster 0:f299ce844c09 51 class LedBarResource : public DynamicResource
michaeljkoster 0:f299ce844c09 52 {
michaeljkoster 0:f299ce844c09 53
michaeljkoster 0:f299ce844c09 54 public:
michaeljkoster 0:f299ce844c09 55 /**
michaeljkoster 0:f299ce844c09 56 Default constructor
michaeljkoster 0:f299ce844c09 57 @param logger input logger instance for this resource
michaeljkoster 0:f299ce844c09 58 @param name input the Light resource name
michaeljkoster 0:f299ce844c09 59 @param observable input the resource is Observable (default: FALSE)
michaeljkoster 0:f299ce844c09 60 */
michaeljkoster 0:f299ce844c09 61 LedBarResource(const Logger *logger,const char *name,const bool observable = false) :
michaeljkoster 0:f299ce844c09 62 DynamicResource(logger,name,"urn:X-ipso:actuator",SN_GRS_GET_ALLOWED|SN_GRS_PUT_ALLOWED,observable) {
michaeljkoster 0:f299ce844c09 63 }
michaeljkoster 0:f299ce844c09 64
michaeljkoster 0:f299ce844c09 65 /**
michaeljkoster 0:f299ce844c09 66 Get the value of the LED bar
michaeljkoster 0:f299ce844c09 67 @returns string containing either "0" (light off) or "1" (light on) for each LED segment
michaeljkoster 0:f299ce844c09 68 */
michaeljkoster 0:f299ce844c09 69 virtual string get() {
michaeljkoster 0:f299ce844c09 70 return(leds);
michaeljkoster 0:f299ce844c09 71 }
michaeljkoster 0:f299ce844c09 72
michaeljkoster 0:f299ce844c09 73 /**
michaeljkoster 0:f299ce844c09 74 Set the value of the LED bar
michaeljkoster 0:f299ce844c09 75 @param string input the string containing "0" (light off) or "1" (light on) per segment
michaeljkoster 0:f299ce844c09 76 */
michaeljkoster 0:f299ce844c09 77 virtual void put(const string value) {
michaeljkoster 0:f299ce844c09 78 if( sizeof(value) == sizeof(leds) ){
michaeljkoster 0:f299ce844c09 79 leds = (char *)value.c_str();
michaeljkoster 0:f299ce844c09 80 set_leds(leds);
michaeljkoster 0:f299ce844c09 81 }
michaeljkoster 0:f299ce844c09 82 }
michaeljkoster 0:f299ce844c09 83 };
michaeljkoster 0:f299ce844c09 84
michaeljkoster 0:f299ce844c09 85 #endif // __LEDBAR_RESOURCE_H__