xe1205phyrxtx.nc
来自「tinyos-2.0源代码!转载而已!要的尽管拿!」· NC 代码 · 共 126 行
NC
126 行
/* * Copyright (c) 2006, Ecole Polytechnique Federale de Lausanne (EPFL), * Switzerland. * 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 Ecole Polytechnique Federale de Lausanne (EPFL) * 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 Henri Dubois-Ferriere * */interface XE1205PhyRxTx { /** * Send a buffer. This call will be followed up with continueSend() events * (see below) until the client module indicates that there is nothing left to send. * * @param data a pointer to an array of bytes to send * @param len length of the array (6 <= len <= 16) * @return error SUCCESS if the operation initiated successfully, otherwise EOFF, EBUSY, EINVAL, or FAIL. * */ async command error_t sendFrame(char* data, uint8_t len); /** * Signalled by the Phy layer to fetch more bytes to send. * * @param len pointer to length field indicating number of bytes in next send. If 0, nothing more to send. * @return pointer to bytes to be sent. If NULL, nothing more to send. * */ async event char* continueSend(uint8_t* len); /** * Signalled after the last buffer has been sent, where the 'last buffer' is the one following which * the client module returned NULL to continueSendBuf(). * */ async event void sendFrameDone(); /** * Receive a frame header. This is called when 'len' bytes have been received after * detecting a preamble, where 'len' is the value set by calling setRxHeaderLen. * * The client should return the total number to read in this frame (which can be * equal to len, for example if this frame is a short ack code). * * @param data pointer to frame header * @param len length of frame header * @return total number of bytes in this frame (including header bytes). * */ async event uint8_t rxFrameBegin(char* data, uint8_t len); /** * Signalled at end of a frame reception. * * @param data pointer to frame (at first byte of header) * @param len length of frame * @param status SUCCESS if packet received ok, ERROR if packet reception was aborted. * */ async event void rxFrameEnd(char* data, uint8_t len, error_t status); /** * Set header size, ie number of bytes at start of packet to be read and passed along * with the rxFrameBegin() event. * * @param len length of header, 2 <= len <= 8 * */ async command void setRxHeaderLen(uint8_t len); /** * Get the current header size. * * @return header size * */ async command uint8_t getRxHeaderLen(); /** * Check busy/idle state of phy. * * @return TRUE if phy is sending or receiving a packet, FALSE otherwise. * */ async command bool busy();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?