From 40caf9c26fdd0bf045b7ce19148b9ba6e1a78b36 Mon Sep 17 00:00:00 2001 From: "R. Steve McKown" Date: Fri, 30 Jul 2010 16:34:41 -0600 Subject: [PATCH] PlatformUartC provides Resource; PlatformSerialC provides StdControl. PlatformSerialC is then derived from PlatformUartC. Only for TMI created platforms for now. --- tos/platforms/olimexp169/PlatformSerialC.nc | 4 +- .../{PlatformSerialP.nc => PlatformUartC.nc} | 28 +++++----- tos/platforms/tmicore/PlatformSerialC.nc | 7 +-- tos/platforms/tmicore/PlatformUartC.nc | 51 +++++++++++++++++++ 4 files changed, 67 insertions(+), 23 deletions(-) rename tos/platforms/olimexp169/{PlatformSerialP.nc => PlatformUartC.nc} (80%) create mode 100644 tos/platforms/tmicore/PlatformUartC.nc diff --git a/tos/platforms/olimexp169/PlatformSerialC.nc b/tos/platforms/olimexp169/PlatformSerialC.nc index 58d28330..1acf9fac 100644 --- a/tos/platforms/olimexp169/PlatformSerialC.nc +++ b/tos/platforms/olimexp169/PlatformSerialC.nc @@ -9,13 +9,11 @@ configuration PlatformSerialC { implementation { - components new Msp430Uart0C() as UartC; + components PlatformUartC as UartC; UartStream = UartC; UartByte = UartC; components TelosSerialP; StdControl = TelosSerialP; - TelosSerialP.Msp430UartConfigure <- UartC.Msp430UartConfigure; - TelosSerialP.Resource -> UartC.Resource; } diff --git a/tos/platforms/olimexp169/PlatformSerialP.nc b/tos/platforms/olimexp169/PlatformUartC.nc similarity index 80% rename from tos/platforms/olimexp169/PlatformSerialP.nc rename to tos/platforms/olimexp169/PlatformUartC.nc index 034547d1..bc06f1fd 100644 --- a/tos/platforms/olimexp169/PlatformSerialP.nc +++ b/tos/platforms/olimexp169/PlatformUartC.nc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, Titanium Mirror, Inc. + * Copyright (c) 2008-2010, Titanium Mirror, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,21 +31,21 @@ * @author R. Steve McKown */ -module PlatformSerialP { - provides interface StdControl; - uses interface Resource; +configuration PlatformUartC { + provides { + interface Resource; + interface UartStream; + interface UartByte; + } } implementation { - command error_t StdControl.start() - { - return call Resource.immediateRequest(); - } + components new Msp430Uart0C() as UartC; + Resource = UartC; + UartStream = UartC; + UartByte = UartC; - command error_t StdControl.stop() - { - call Resource.release(); - return SUCCESS; - } + components TelosSerialP; + TelosSerialP.Msp430UartConfigure <- UartC.Msp430UartConfigure; + TelosSerialP.Resource -> UartC.Resource; - event void Resource.granted() {} } diff --git a/tos/platforms/tmicore/PlatformSerialC.nc b/tos/platforms/tmicore/PlatformSerialC.nc index 28f4354e..a32ffa04 100644 --- a/tos/platforms/tmicore/PlatformSerialC.nc +++ b/tos/platforms/tmicore/PlatformSerialC.nc @@ -37,16 +37,11 @@ configuration PlatformSerialC { provides interface UartByte; } implementation { - components new Msp430UartA1C() as UartC; + components PlatformUartC as UartC; UartStream = UartC; UartByte = UartC; components PlatformSerialP; StdControl = PlatformSerialP; PlatformSerialP.Resource -> UartC; - -#if 0 /* If you want to change the configuration... */ - components SomeConfigurationComponentC as ConfigC; - UartC.AsyncConfigure -> ConfigC; -#endif } diff --git a/tos/platforms/tmicore/PlatformUartC.nc b/tos/platforms/tmicore/PlatformUartC.nc new file mode 100644 index 00000000..10a7cec4 --- /dev/null +++ b/tos/platforms/tmicore/PlatformUartC.nc @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2008-2010, Titanium Mirror, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * - 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. + * - Neither the name of the Technische Universität Berlin 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 + * OWNER 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. + */ + + /** + * @author R. Steve McKown + */ + +configuration PlatformUartC { + provides { + interface Resource; + interface UartStream; + interface UartByte; + } +} +implementation { + components new Msp430UartA1C() as UartC; + Resource = UartC; + UartStream = UartC; + UartByte = UartC; + +#if 0 /* If you want to change the Uart's configuration... */ + components SomeConfigurationComponentC as ConfigC; + UartC.AsyncConfigure -> ConfigC; +#endif +} -- 2.39.2