⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zmac.h

📁 Contiki是一个开源
💻 H
字号:
/*   Copyright (c) 2008, Swedish Institute of Computer Science *  All rights reserved. * *  Additional fixes for AVR contributed by: * *	Colin O'Flynn coflynn@newae.com *	Eric Gnoske egnoske@gmail.com *	Blake Leverett bleverett@gmail.com *	Mike Vidales mavida404@gmail.com *	Kevin Brown kbrown3@uccs.edu *	Nate Bohlmann nate@elfwerks.com * *   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 copyright holders nor the names of *     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. *//** *    \brief  The equivalent IEEE 802.15.4 (2003/2006) header file for *            the mac primitives. * *//** *   \addtogroup rf230mac *   @{*//** *    \file *    \brief  The IEEE 802.15.4 (2003/2006) MAC utility functions. */#ifndef MAC_H#define MAC_H/*  Includes */#include <stdint.h>#include <stdbool.h>#include "frame.h"#include "ieee-15-4-manager.h"#define EEPROMMACADDRESS                ((void*)0)#define EEPROMDSTADDRESS                ((void*)8)#define EEPROMCHANADDRESS               ((void*)16)#define EEPROMPANIDADDRESS              ((void*)17)#define EEPROMROLEADDRESS               ((void*)19)#define SUCCESS                         (0)#define CHANNEL_PAGE_0                  (0)/* MAC command frames codes *//* MAC enumerations *//** \brief Pre-defined data frame control field (FCF) values.  *  \name FCF Values *  @{*/#define FCF_NO_ACK      (0x8841)#define FCF_ACK_REQ     (0x8861)/** @} *//** \brief Hardcoded various "network" addresses, for use when testing. *  \name Pre-defined network addresses *  @{ */#define DEST_PAN_ID     (0xABCD)#define SOURCE_PAN_ID   (0xABCD)#define LONG_ADDR_1     (0xFFEEDDCCBBAA1100LL)#define LONG_ADDR_2     (0x1122334455667788LL)#define LONG_ADDR_3     (0xDDEEAADDBBEEEEFFLL)#define LONG_ADDR_4     (0x0123456789ABCDEFLL)#define SOURCE_ADDR     (0x1234)#define FCF_ACK         (0x0002)#define TX_OPTION_NOACK (0)#define TX_OPTION_ACK   (1)#define LONG_ADDR_LEN   (8)/** @} */#define MPDU_OVERHEAD   (11) /**< This overhead includes FCF, DSN, DEST_PAN_ID, DEST_ADDR, SOURCE_ADDR, & FCS *//** \brief These are some definitions of values used in the FCF.  See the 802.15.4 spec for details. *  \name FCF element values definitions *  @{ */#define BEACONFRAME     (0x00)#define DATAFRAME       (0x01)#define ACKFRAME        (0x02)#define CMDFRAME        (0x03)#define BEACONREQ       (0x07)#define IEEERESERVED    (0x00)#define NOADDR          (0x00)      /**< Only valid for ACK or Beacon frames. */#define SHORTADDRMODE   (0x02)#define LONGADDRMODE    (0x03)#define NOBEACONS       (0x0F)#define BROADCASTADDR   (0xFFFF)#define BROADCASTPANDID (0xFFFF)#define IEEE802154_2003 (0x00)#define IEEE802154_2006 (0x01)#define SECURITY_LEVEL_NONE (0)#define SECURITY_LEVEL_128  (3)#define PSDULEN         (127)/** @} *//* typedef enum {TRUE, FALSE} bool; */typedef struct dataRequest  {    uint8_t srcAddrMode;    uint8_t dstAddrMode;    uint16_t dstPANId;    addr_t dstAddr;    uint8_t msduLength;    uint8_t *msdu;    uint8_t msduHandle;    uint8_t txOptions;    uint8_t securityLevel;    uint8_t keyIdMode;    uint8_t *keySource;    uint8_t keyIndex;} dataRequest_t;/*  Macros & Defines */extern ieee_15_4_manager_t ieee15_4ManagerAddress;extern dataRequest_t dataRequestStructAddress;#define ieee15_4Struct (&ieee15_4ManagerAddress)#define dataRequestStruct (&dataRequestStructAddress)/** *  \name Scan variables *  \brief Global variables and defines for scan. *  \{*/extern uint8_t msduHandle;extern bool iAmCoord;extern bool autoModes;extern uint16_t macShortAddr;extern uint64_t macLongAddr;/** @} *//*  PHY PIB Attributes *//* uint8_t phyCurrentChannel		  Integer 0-26 * The RF channel to use for all following transmissions and receptions (see6.1.2). */extern uint8_t phyCurrentChannel;/* uint64_t macCoordExtendedAddress -- no default * *   The 64-bit address of the coordinator/router through which the network layer wishes to communicate */extern uint64_t macCoordExtendedAddress;/* uint16_t macCoordShortAddress  -- default 0xffff * *   The 16-bit short address assigned to the coordinator through which the network layer wishes *   to communicate.  A value of 0xfffe indicates th the coordinator is only using it's 64-bit *   extended address.  A value of 0xffff indicates that this value is unknown. */extern uint16_t macCoordShortAddress;/* uint64_t macDestAddress  -- default 0xffff * *   This address is the 64-bit address that will be used as the mechanism to *   provide a destination to the upper layers. */extern uint64_t macDestAddress;/* uint8_t macDSN                 -- default is random value within the range * *   The sequence number (0x00 - 0xff) added to the transmitted data or MAC command frame. */extern uint8_t macDSN;/* uint16_t macDstPANId              -- default 0xffff * *   The 16-bit identifier of the PAN on which the device is sending to.  If this value *   is 0xffff, the device is not associated. */extern uint16_t macDstPANId;/* uint16_t macSrcPANId              -- default 0xffff * *   The 16-bit identifier of the PAN on which the device is operating.  If this value *   is 0xffff, the device is not associated. */extern uint16_t macSrcPANId;/* uint16_t macShortAddress       -- default 0xffff * *   The 16-bit address that the device uses to communicate in the PAN.  If the device is the *   PAN coordinator, this value shall be chosen before a PAN is started.  Otherwise, the *   address is allocated by a coordinator during association.  A value of 0xfffe indicates *   that the device has associated but has not been allocated an address.  A value of 0xffff *   indicates that the device does not have a short address. */extern uint16_t macShortAddress;/*  Scan defines *//*  Protoypes */void mac_init(void);#endif/** @} */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -