From be93f1ae52071e29751f0f9957a58e243be81bca Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Mon, 10 Sep 2012 17:07:29 +0100 Subject: [PATCH] cc2531: Added a new USB demo project (CDC-ACM) See Pull Request #18 --- examples/cc2530dk/cc2531-usb-demo/Makefile | 8 ++ .../cc2530dk/cc2531-usb-demo/Makefile.target | 1 + .../cc2531-usb-demo/cc2531-usb-demo.c | 81 +++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 examples/cc2530dk/cc2531-usb-demo/Makefile create mode 100644 examples/cc2530dk/cc2531-usb-demo/Makefile.target create mode 100644 examples/cc2530dk/cc2531-usb-demo/cc2531-usb-demo.c diff --git a/examples/cc2530dk/cc2531-usb-demo/Makefile b/examples/cc2530dk/cc2531-usb-demo/Makefile new file mode 100644 index 000000000..404f8ce14 --- /dev/null +++ b/examples/cc2530dk/cc2531-usb-demo/Makefile @@ -0,0 +1,8 @@ +CONTIKI_PROJECT = cc2531-usb-demo + +DEFINES+=MODEL_CC2531=1 + +all: $(CONTIKI_PROJECT) + +CONTIKI = ../../.. +include $(CONTIKI)/Makefile.include diff --git a/examples/cc2530dk/cc2531-usb-demo/Makefile.target b/examples/cc2530dk/cc2531-usb-demo/Makefile.target new file mode 100644 index 000000000..70609bbdb --- /dev/null +++ b/examples/cc2530dk/cc2531-usb-demo/Makefile.target @@ -0,0 +1 @@ +TARGET = cc2530dk diff --git a/examples/cc2530dk/cc2531-usb-demo/cc2531-usb-demo.c b/examples/cc2530dk/cc2531-usb-demo/cc2531-usb-demo.c new file mode 100644 index 000000000..ca0dce11e --- /dev/null +++ b/examples/cc2530dk/cc2531-usb-demo/cc2531-usb-demo.c @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2012, George Oikonomou (oikonomou@users.sourceforge.net) + * 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 copyright holder 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 COPYRIGHT HOLDERS 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 + * COPYRIGHT HOLDER 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 + * A simple demo project which demonstrates the cc2531 USB dongle + * USB (CDC_ACM) functionality. + * + * It will print out periodically. Anything you type in the dongle's + * serial console will be echoed back + * + * \author + * George Oikonomou - + */ + +#include "contiki.h" +#include "dev/leds.h" +#include "debug.h" +/*---------------------------------------------------------------------------*/ +static struct etimer et; +static uint16_t count; +/*---------------------------------------------------------------------------*/ +PROCESS(cc2531_usb_demo_process, "cc2531 USB Demo process"); +AUTOSTART_PROCESSES(&cc2531_usb_demo_process); +extern process_event_t serial_line_event_message; +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(cc2531_usb_demo_process, ev, data) +{ + PROCESS_BEGIN(); + + etimer_set(&et, CLOCK_SECOND); + count = 0; + + while(1) { + PROCESS_WAIT_EVENT(); + + if(ev == PROCESS_EVENT_TIMER) { + putstring("cc2531 USB Dongle Out: 0x"); + puthex(count >> 8); + puthex(count & 0xFF); + putchar('\n'); + count++; + + etimer_reset(&et); + } else if(ev == serial_line_event_message) { + putstring("cc2531 USB Dongle In : "); + putstring((char *)data); + putchar('\n'); + } + } + + PROCESS_END(); +}