[Tinyos-2-commits] CVS: tinyos-2.x/tos/lib/tosthreads/platforms/eyesIFX ActiveMessageC.nc, NONE, 1.1 ActiveMessageFilterC.nc, NONE, 1.1
Chieh-Jan Mike Liang
liang_mike at users.sourceforge.net
Thu Jul 24 13:07:23 PDT 2008
Update of /cvsroot/tinyos/tinyos-2.x/tos/lib/tosthreads/platforms/eyesIFX
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16354/eyesIFX
Added Files:
ActiveMessageC.nc ActiveMessageFilterC.nc
Log Message:
Add tosthreads active message support to eyesIFX
--- NEW FILE: ActiveMessageC.nc ---
// $Id: ActiveMessageC.nc,v 1.1 2008/07/24 20:07:21 liang_mike Exp $
/*
* "Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose, without fee, and without written agreement is
* hereby granted, provided that the above copyright notice, the following
* two paragraphs and the author appear in all copies of this software.
*
* IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
* CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
*
* Copyright (c) 2004-2005 Intel Corporation
* All rights reserved.
*
* This file is distributed under the terms in the attached INTEL-LICENSE
* file. If you do not find these files, copies can be found by writing to
* Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,
* 94704. Attention: Intel License Inquiry.
*/
/*
*
* Authors: Philip Levis
* Date last modified: $Id: ActiveMessageC.nc,v 1.1 2008/07/24 20:07:21 liang_mike Exp $
*
*/
/**
*
* The Active Message layer on the eyesIFX platforms. This is a naming wrapper
* around the TDA5250 Active Message layer.
*
* @author Philip Levis
* @author Vlado Handziski (TDA5250 modifications)
* @date July 20 2005
*/
#include "Timer.h"
configuration ActiveMessageC {
provides {
interface SplitControl;
interface AMSend[uint8_t id];
interface Receive[am_id_t id];
interface Receive as ReceiveDefault[am_id_t id];
interface Receive as Snoop[am_id_t id];
interface Receive as SnoopDefault[am_id_t id];
interface Packet;
interface AMPacket;
interface PacketAcknowledgements;
interface PacketTimeStamp<T32khz, uint32_t> as PacketTimeStamp32khz;
interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
}
}
implementation {
components ActiveMessageFilterC as Filter;
components Tda5250ActiveMessageC as AM;
components PacketStampC as PacketStamp;
AMSend = Filter;
Receive = Filter.Receive;
ReceiveDefault = Filter.ReceiveDefault;
Snoop = Filter.Snoop;
SnoopDefault = Filter.SnoopDefault;
Filter.SubAMSend -> AM;
Filter.SubReceive -> AM.Receive;
Filter.SubSnoop -> AM.Snoop;
//Filter.AMPacket -> AM;
SplitControl = AM;
Packet = AM;
AMPacket = AM;
PacketAcknowledgements = AM;
PacketTimeStamp32khz = PacketStamp;
PacketTimeStampMilli = PacketStamp;
}
--- NEW FILE: ActiveMessageFilterC.nc ---
/*
* Copyright (c) 2006, Technische Universitaet Berlin
* 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 Universitaet 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.
*
* - Revision -------------------------------------------------------------
* $Revision: 1.1 $
* $Date: 2008/07/24 20:07:21 $
* @author: Jan Hauer <hauer at tkn.tu-berlin.de>
* ========================================================================
*/
/* This component is the default AM filter component: it does not do anything,
* it uses no RAM and nesC will compile all code away. Its purpose is to allow
* other components to shadow (overwrite) it to implement their own
* filter/statistic component.
*/
#include "AM.h"
module ActiveMessageFilterC {
provides {
interface AMSend[am_id_t id];
interface Receive[am_id_t id];
interface Receive as ReceiveDefault[am_id_t id];
interface Receive as Snoop[am_id_t id];
interface Receive as SnoopDefault[am_id_t id];
}
uses {
interface AMSend as SubAMSend[am_id_t id];
interface Receive as SubReceive[am_id_t id];
interface Receive as SubSnoop[am_id_t id];
}
} implementation {
command error_t AMSend.send[am_id_t id](am_addr_t addr, message_t* msg, uint8_t len){ return call SubAMSend.send[id](addr, msg, len);}
command error_t AMSend.cancel[am_id_t id](message_t* msg){ return call SubAMSend.cancel[id](msg);}
command uint8_t AMSend.maxPayloadLength[am_id_t id](){ return call SubAMSend.maxPayloadLength[id]();}
command void* AMSend.getPayload[am_id_t id](message_t* msg, uint8_t len){ return call SubAMSend.getPayload[id](msg, len);}
event void SubAMSend.sendDone[am_id_t id](message_t* msg, error_t error) { signal AMSend.sendDone[id](msg, error); }
default event void AMSend.sendDone[am_id_t id](message_t* msg, error_t error) { return; }
event message_t* SubReceive.receive[am_id_t id](message_t* msg, void* payload, uint8_t len) { return signal Receive.receive[id](msg, payload, len); }
event message_t* SubSnoop.receive[am_id_t id](message_t* msg, void* payload, uint8_t len) { return signal Snoop.receive[id](msg, payload, len); }
default event message_t* Receive.receive[am_id_t id](message_t* msg, void* payload, uint8_t len) {
return signal ReceiveDefault.receive[id](msg, payload, len);
}
default event message_t* ReceiveDefault.receive[am_id_t id](message_t* msg, void* payload, uint8_t len) {
return msg;
}
default event message_t* Snoop.receive[am_id_t id](message_t* msg, void* payload, uint8_t len) {
return signal SnoopDefault.receive[id](msg, payload, len);
}
default event message_t* SnoopDefault.receive[am_id_t id](message_t* msg, void* payload, uint8_t len) {
return msg;
}
}
More information about the Tinyos-2-commits
mailing list