/* * Copyright (c) 2015, Ralf Schlatterbeck Open Source Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the Institute nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * This file is part of the Contiki operating system. */ /** * \file * LED-strip driver for Seeed Studio LED-Strip * \author * Ralf Schlatterbeck */ #include #include #include #include #include "contiki.h" #include "contiki-net.h" #include "rest-engine.h" #include "generic_resource.h" /* * Resources to be activated need to be imported through the extern keyword. * The build system automatically compiles the resources in the * corresponding sub-directory. */ #if PLATFORM_HAS_BATTERY #include "dev/battery-sensor.h" extern resource_t res_battery; #endif #if PLATFORM_HAS_RADIO #include "dev/radio-sensor.h" extern resource_t res_radio; #endif #include "dev/relay-sensor.h" GENERIC_RESOURCE ( rel1 , REL_1 , s , state_from_string , state_to_string ); PROCESS(bowerbox, "POWERBOX Example"); AUTOSTART_PROCESSES(&bowerbox); PROCESS_THREAD(bowerbox, ev, data) { PROCESS_BEGIN(); /* Initialize the REST engine. */ rest_init_engine (); printf ("Initialized\n"); /* Activate the application-specific resources. */ #if PLATFORM_HAS_BATTERY SENSORS_ACTIVATE(battery_sensor); rest_activate_resource (&res_battery,"s/battery"); #endif SENSORS_ACTIVATE(relay_sensor); /* Define application-specific events here. */ /* Don't do anything for now, everything done in resources */ while(1) { PROCESS_WAIT_EVENT(); } /* while (1) */ PROCESS_END(); }