/** * This file is part of license combination gpl version 3 license and eCos. * The corresponding license terms are below. * * gpl version 3 Licence: * * The file were developed during the student thesis "Datensammlung in Wireless * Sensor Networks fuer Autonomic Home NetworkingÒ of Thomas Kothmayr and is * included in the dissertation "Secure Data Transmission in Wireless * Sensor Networks" by Corinna Schmitt during employment at the Technische * UniversitŠt MŸnchen, Department Computer Science, Chair Network * Architectures and Services (Germany). * Copyright (C) 2013 * Authors: Thomas Kothmayr and Corinna Schmitt (schmitt[at]net.in.tum.de) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * * eCos Licence: (http://ecos.sourceware.org) * * This file is part of eCos, the Embedded Configurable Operating System. * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, * 2007, 2008, 2009 Free Software Foundation, Inc. * * eCos is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free * Software Foundation; either version 3 any later version. * * eCos is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with eCos; if not, write to the Free Software Foundation, Inc., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * As a special exception, if other files instantiate templates or use * macros or inline functions from this file, or you compile this file and * link it with other works to produce a work based on this file, this file * does not by itself cause the resulting work to be covered by the GNU * General Public License. However the source code for this file must still * be made available in accordance with section (3) of the GNU General * Public License v2. * * This exception does not invalidate any other reasons why a work based on * this file might be covered by the GNU General Public License. * */ Interface: tos.chips.rf230.RF230Config

Interface: tos.chips.rf230.RF230Config

interface RF230Config

This interface needs to be implemented by the MAC to control the behaviour of the RF230LayerC component.

Commands
command uint8_t getDefaultChannel() This command is used at power up to set the default channel.
command uint8_t getHeaderLength() Gets the number of bytes we should read before the RadioReceive.header event is fired.
command uint8_t getLength(message_t *msg) Returns the length of the PHY payload (including the FCF field).
command uint8_t getMaxLength() Returns the maximum PHY length that can be set via the setLength command
command uint8_t *getPayload(message_t *msg) Returns a pointer to the start of the PHY payload that contains getLength()-2 number of bytes.
command bool requiresRssiCca(message_t *msg) Returns TRUE if before sending this message we should make sure that the channel is clear via a very basic (and quick) RSSI check.
command void setLength(message_t *msg, uint8_t len) Sets the length of the PHY payload.

Commands - Details

getDefaultChannel

command uint8_t getDefaultChannel()

This command is used at power up to set the default channel. The default CC2420 channel is 26.

getHeaderLength

command uint8_t getHeaderLength()

Gets the number of bytes we should read before the RadioReceive.header event is fired. If the length of the packet is less than this amount, then that event is fired earlier. The last touch event is not signaled for packets whose length is less than or equal to this header length. The header length must be at least 1.

getLength

command uint8_t getLength(message_t *msg)

Returns the length of the PHY payload (including the FCF field). This value must be in the range [3, 127].

getMaxLength

command uint8_t getMaxLength()

Returns the maximum PHY length that can be set via the setLength command

getPayload

command uint8_t *getPayload(message_t *msg)

Returns a pointer to the start of the PHY payload that contains getLength()-2 number of bytes. The FCF field (CRC-16) is not stored, but automatically appended / verified.

requiresRssiCca

command bool requiresRssiCca(message_t *msg)

Returns TRUE if before sending this message we should make sure that the channel is clear via a very basic (and quick) RSSI check.

setLength

command void setLength(message_t *msg, uint8_t len)

Sets the length of the PHY payload.