亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? smac.h

?? 在ns2中仿真無線傳感器網絡mac層協議的代碼smac
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* * smac.h * Copyright (C) 2000 by the University of Southern California * $Id: smac.h,v 1.11 2005/08/25 18:58:07 johnh Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * 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, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * The copyright of this module includes the following * linking-with-specific-other-licenses addition: * * In addition, as a special exception, the copyright holders of * this module give you permission to combine (via static or * dynamic linking) this module with free software programs or * libraries that are released under the GNU LGPL and with code * included in the standard release of ns-2 under the Apache 2.0 * license or under otherwise-compatible licenses with advertising * requirements (or modified versions of such code, with unchanged * license).  You may copy and distribute such a system following the * terms of the GNU GPL for this module and the licenses of the * other code concerned, provided that you include the source code of * that other code when and as the GNU GPL requires distribution of * source code. * * Note that people who make modified versions of this module * are not obligated to grant this special exception for their * modified versions; it is their choice whether to do so.  The GNU * General Public License gives permission to release a modified * version without this exception; this exception also makes it * possible to release a modified version which carries forward this * exception. * */// smac is designed and developed by Wei Ye (SCADDS/ISI)// and is ported into ns by Padma Haldar, June'02.// Contributors: Yuan Li// This module implements Sensor-MAC//  See http://www.isi.edu/scadds/papers/smac_infocom.pdf for details//// It has the following functions.//  1) Both virtual and physical carrier sense//  2) RTS/CTS for hidden terminal problem//  3) Backoff and retry//  4) Broadcast packets are sent directly without using RTS/CTS/ACK.//  5) A long unicast message is divided into multiple TOS_MSG (by upper//     layer). The RTS/CTS reserves the medium for the entire message.//     ACK is used for each TOS_MSG for immediate error recovery.//  6) Node goes to sleep when its neighbor is communicating with another//     node.//  7) Each node follows a periodic listen/sleep schedule//  8.1) At bootup time each node listens for a fixed SYNCPERIOD and then//     tries to send out a sync packet. It suppresses sending out of sync pkt //     if it happens to receive a sync pkt from a neighbor and follows the //     neighbor's schedule. //  8.2) Or a node can choose its own schecule instead of following others, the//       schedule start time is user configurable//  9) Neighbor Discovery: in order to prevent that two neighbors can not//     find each other due to following complete different schedules, each//     node periodically listen for a whole period of the SYNCPERIOD//  10) Duty cycle is user configurable//  New features including adaptive listen//   See http://www.isi.edu/~weiye/pub/smac_ton.pdf #ifndef NS_SMAC#define NS_SMAC//test features described in Journal paper, adaptive listen, etc//#ifndef JOURNAL_PAPER//#define JOURNAL_PAPER//#endif#include "mac.h"#include "mac-802_11.h"#include "cmu-trace.h"#include "random.h"#include "timer-handler.h"/* User-adjustable MAC parameters *-------------------------------- * The default values can be overriden in Each application's Makefile * SMAC_MAX_NUM_NEIGHB: maximum number of neighbors. * SMAC_MAX_NUM_SCHED: maximum number of different schedules. * SMAC_DUTY_CYCLE: duty cycle in percentage. It controls the length of sleep  *   interval. * SMAC_RETRY_LIMIT: maximum number of RTS retries for sending a single message. * SMAC_EXTEND_LIMIT: maximum number of times to extend Tx time when ACK timeout     happens. */#ifndef SMAC_MAX_NUM_NEIGHBORS#define SMAC_MAX_NUM_NEIGHBORS 20#endif#ifndef SMAC_MAX_NUM_SCHEDULES#define SMAC_MAX_NUM_SCHEDULES 4#endif#ifndef SMAC_DUTY_CYCLE#define SMAC_DUTY_CYCLE 10#endif#ifndef SMAC_RETRY_LIMIT#define SMAC_RETRY_LIMIT 5#endif#ifndef SMAC_EXTEND_LIMIT#define SMAC_EXTEND_LIMIT 5#endif#ifdef JOURNAL_PAPER#ifndef SMAC_UPDATE_NEIGHB_PERIOD#define SMAC_UPDATE_NEIGHB_PERIOD 50#endif                                                                                                                                                      #ifndef GUARDTIME#define GUARDTIME 0.001#endif#endif                                                                                                                                                           /* Internal MAC parameters *-------------------------- * Do NOT change them unless for tuning S-MAC * SYNC_CW: number of slots in the sync contention window, must be 2^n - 1  * DATA_CW: number of slots in the data contention window, must be 2^n - 1 * SYNC_PERIOD: period to send a sync pkt, in cycles. * SRCH_CYCLES_LONG: # of SYNC periods during which a node performs a neighbor discovery * SRCH_CYCLES_SHORT: if there is no known neighbor, a node need to seach neighbor more aggressively */#define SYNC_CW 31#define DATA_CW 63#define SYNCPERIOD 10#define SYNCPKTTIME 3         // an adhoc value used for now later shld converge with durSyncPkt_#define SRCH_CYCLES_SHORT 3#define SRCH_CYCLES_LONG 22/* Physical layer parameters *--------------------------- * Based on the parameters from PHY_RADIO and RADIO_CONTROL * CLOCK_RES: clock resolution in ms.  * BANDWIDTH: bandwidth (bit rate) in kbps. Not directly used. * PRE_PKT_BYTES: number of extra bytes transmitted before each pkt. It equals *   preamble + start symbol + sync bytes. * ENCODE_RATIO: output/input ratio of the number of bytes of the encoding *  scheme. In Manchester encoding, 1-byte input generates 2-byte output. * PROC_DELAY: processing delay of each packet in physical and MAC layer, in ms */#define CLOCKRES 1       // clock resolution is 1ms#define BANDWIDTH 20      // kbps =>CHANGE BYTE_TX_TIME WHENEVER BANDWIDTH CHANGES//#define BYTE_TX_TIME 4/10 // 0.4 ms to tx one byte => changes when bandwidth does#define PRE_PKT_BYTES 5#define ENCODE_RATIO 2   /* Manchester encoding has 2x overhead */#define PROC_DELAY 1// Note everything is in clockticks (CLOCKRES in ms) for tinyOS// so we need to convert that to sec for ns#define CLKTICK2SEC(x)  ((x) * (CLOCKRES / 1.0e3))#define SEC2CLKTICK(x)  ((x) / (CLOCKRES / 1.0e3))// MAC states#define SLEEP 0         // radio is turned off, can't Tx or Rx#define IDLE 1          // radio in Rx mode, and can start Tx//#define CHOOSE_SCHED 2  // node in boot-up phase, needs to choose a schedule#define CR_SENSE 2      // medium is free, do it before initiate a Tx//#define BACKOFF 3       // medium is busy, and cannot Tx#define WAIT_CTS 3      // sent RTS, waiting for CTS#define WAIT_DATA 4     // sent CTS, waiting for DATA#define WAIT_ACK 5      // sent DATA, waiting for ACK#ifdef JOURNAL_PAPER#define TX_NEXT_FRAG 6 // send one fragment, waiting for next from upper layer#else#define WAIT_NEXTFRAG 6 // send one fragment, waiting for next from upper layer#endif#ifdef JOURNAL_PAPER#define DATA_SENSE1 7 // received a RTS destined to another node, keep listening until confirm sender gets a CTS or starts tx data#define DATA_SENSE2 8 // received a RTS destined to another node,and did not receive a RTS, keep listening until timeout or receive data#define TX_PKT 9 // before sending CTS/DATA/ACK, need to wait for a sifs_ time#endif// how to send the pkt: broadcast or unicast#define BCASTSYNC 0#define BCASTDATA 1#define UNICAST 2#ifdef JOURNAL_PAPER#define UNICAST_ADDR 0#endif// Types of pkt#define DATA_PKT 0#define RTS_PKT 1#define CTS_PKT 2#define ACK_PKT 3#define SYNC_PKT 4// radio states for performance measurement#define RADIO_SLP 0  // radio off#define RADIO_IDLE 1 // radio idle#define RADIO_RX 2   // recv'ing mode#define RADIO_TX 3   // transmitting mode/*  sizeof smac datapkt hdr and smac control and sync packets  *//*  have been hardcoded here to mirror the values in TINY_OS implementation *//*  The following is the pkt format definitions for tiny_os implementation *//*  of smac : *//*  typedef struct MAC_CTRLPKT_VALS{ *//*  unsigned char length; *//*  char type; *//*  short addr; *//*  unsigned char group; *//*  short srcAddr; *//*  unsigned char duration; *//*  short crc; *//*  }; *//*  typedef struct MAC_SYNCPKT_VALS{ *//*  unsigned char length; *//*  char type; *//*  short srcAddr; *//*  short syncNode; *//*  unsigned char sleepTime;  // my next sleep time from now *//*  short crc; *//*  };  *//*  struct MSG_VALS{ *//*  unsigned char length; *//*  char type; *//*  short addr; *//*  unsigned char group; *//*  short srcAddr; *//*  unsigned char duration; *//*  char data[DATA_LENGTH]; *//*  short crc; *//*  }; */// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#define SIZEOF_SMAC_DATAPKT 50  // hdr(10) + payload - fixed size pkts#define SIZEOF_SMAC_CTRLPKT 10#define SIZEOF_SMAC_SYNCPKT 9  // Following are the ns definitions of the smac frames//SYNC PKT struct smac_sync_frame {   int type;   int length;   int srcAddr;  //int dstAddr;  int syncNode;   double sleepTime;  // my next sleep time from now */#ifdef JOURNAL_PAPER  int state;  // if node has changed schedule#endif  int crc; }; // RTS, CTS, ACKstruct smac_control_frame {  int type;  int length;  int dstAddr;  int srcAddr;  double duration;  int crc;};// DATA struct hdr_smac {  int type;  int length;  int dstAddr;  int srcAddr;  double duration;  //char data[DATA_LENGTH];  int crc;};// Used by smac when in sync modestruct SchedTable {   int txSync;  // flag indicating need to send sync   int txData;  // flag indicating need to send data   int numPeriods; // count for number of periods #ifdef JOURNAL_PAPER  int numNodes;  // number of nodes on this schedule  int syncNode;  // the node who initialized this schedule  int chkSched; // flag indicating need to check numNodes#endif}; struct NeighbList {   int nodeId;   int schedId;#ifdef JOURNAL_PAPER  int active; //flag indicating the node is active recently  int state; // flag indicating the node has changed schedule#endif }; class SMAC;// Timers used in smacclass SmacTimer : public TimerHandler { public:  SmacTimer(SMAC *a) : TimerHandler() {a_ = a; }  virtual void expire(Event *e) = 0 ;  int busy() ; protected:  SMAC *a_;};#ifdef JOURNAL_PAPER// timer for updating neighbors periodicallyclass SmacUpdateNeighbTimer : public SmacTimer { public:  SmacUpdateNeighbTimer(SMAC *a) : SmacTimer(a) {}  void expire(Event *e);};                                                                                                                                                            // timer for putting nodes back to sleep after Adaptive Listenclass SmacAdaptiveListenTimer : public SmacTimer {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久一卡二卡| 日本韩国一区二区| 99久久综合国产精品| 9191国产精品| 亚洲激情校园春色| 国产黄色精品视频| 91精品国产综合久久福利| 亚洲色图丝袜美腿| 国产成人综合在线观看| 91精品国产色综合久久| 夜夜夜精品看看| 成人开心网精品视频| 日韩欧美久久久| 性做久久久久久免费观看欧美| 国产99一区视频免费| 日韩免费成人网| 日日夜夜免费精品| 欧洲日韩一区二区三区| 国产精品剧情在线亚洲| 国产伦精品一区二区三区免费| 欧美高清视频www夜色资源网| 亚洲人成亚洲人成在线观看图片| 国产精品自在在线| 精品久久久久99| 麻豆国产精品一区二区三区| 在线电影院国产精品| 亚洲午夜一二三区视频| 欧美性生交片4| 国产精品18久久久久久久久久久久| 欧美日韩五月天| 亚洲第一成人在线| 欧美日韩另类一区| 亚洲精品成a人| 欧美视频完全免费看| 水野朝阳av一区二区三区| 欧美日韩国产天堂| 免费观看30秒视频久久| 欧美sm美女调教| 精品综合久久久久久8888| 日韩欧美国产三级| 韩国欧美国产一区| 久久久久久夜精品精品免费| 国产精品99久久久久久久女警| 国产日韩高清在线| 成人午夜视频在线观看| 最好看的中文字幕久久| 欧美性xxxxxx少妇| 日韩电影免费在线观看网站| 91精品国产麻豆| 黄页网站大全一区二区| 欧美国产日韩在线观看| 色94色欧美sute亚洲13| 午夜欧美在线一二页| 日韩精品在线一区二区| 国产乱码精品一区二区三区av| 国产欧美精品区一区二区三区| 成人美女在线视频| 亚洲二区在线观看| 日韩欧美国产电影| 99精品热视频| 日日夜夜精品视频天天综合网| 久久亚洲免费视频| 色老综合老女人久久久| 蜜桃传媒麻豆第一区在线观看| 欧美国产精品一区二区| 欧美三级电影网站| 国产精品综合一区二区三区| 悠悠色在线精品| 欧美成人伊人久久综合网| 菠萝蜜视频在线观看一区| 亚洲不卡一区二区三区| 国产欧美日韩在线观看| 精品视频在线免费看| 高清不卡在线观看| 婷婷开心激情综合| 亚洲欧洲日韩av| 日韩精品资源二区在线| 色999日韩国产欧美一区二区| 国模娜娜一区二区三区| 亚洲图片欧美色图| 中文字幕av在线一区二区三区| 欧美精品乱码久久久久久| 成人avav影音| 韩国一区二区在线观看| 日韩精品午夜视频| 亚洲天堂2016| 国产无遮挡一区二区三区毛片日本| 欧美日韩中文字幕一区二区| 成人美女在线观看| 国产一区二区三区蝌蚪| 日韩国产精品大片| 亚洲国产综合91精品麻豆| 中文字幕中文乱码欧美一区二区| 欧美电视剧免费全集观看 | 国产日韩亚洲欧美综合| 777久久久精品| 在线精品视频小说1| 99这里只有久久精品视频| 国产一区二区三区四| 老司机一区二区| 日日夜夜免费精品视频| 亚洲成人综合视频| 亚洲精品乱码久久久久| 中文字幕在线不卡国产视频| 欧美精品一区二区三区四区| 91精品国产综合久久国产大片| 欧美日韩中字一区| 欧美日韩免费在线视频| 欧美三级中文字| 欧美日韩精品一二三区| 欧美视频精品在线| 欧美日韩精品福利| 91精品国产色综合久久久蜜香臀| 欧美狂野另类xxxxoooo| 欧美午夜精品一区二区三区| 91国产丝袜在线播放| 在线观看不卡一区| 欧美日韩成人综合| 91精品啪在线观看国产60岁| 91精品国产福利| 精品国产乱码久久| 26uuu国产一区二区三区| 久久久久国产免费免费| 国产精品每日更新| 一区二区三区欧美在线观看| 亚洲国产一区在线观看| 日韩不卡在线观看日韩不卡视频| 免费成人小视频| 国产精品99精品久久免费| 成人国产免费视频| 欧美午夜在线一二页| 91精品久久久久久久91蜜桃| 欧美大尺度电影在线| 国产免费观看久久| 亚洲久本草在线中文字幕| 亚洲一卡二卡三卡四卡无卡久久| 亚洲电影一级黄| 激情久久五月天| av电影一区二区| 欧美日本一区二区| 精品sm在线观看| 亚洲精品乱码久久久久| 日产精品久久久久久久性色| 国产精品综合网| 欧美无人高清视频在线观看| 欧美大片顶级少妇| 亚洲人成小说网站色在线 | 国产人久久人人人人爽| 亚洲色图欧美偷拍| 久久精品国产一区二区三区免费看 | 亚洲色图在线播放| 麻豆91免费观看| 夫妻av一区二区| 欧美日本在线观看| 国产喂奶挤奶一区二区三区| 亚洲国产日韩一级| 国产成人自拍网| 欧美精品第一页| ...xxx性欧美| 黑人精品欧美一区二区蜜桃 | 国产成人一级电影| 欧美另类久久久品| 国产精品欧美一级免费| 奇米精品一区二区三区四区 | 欧美一区二区在线观看| 国产精品无人区| 蜜桃91丨九色丨蝌蚪91桃色| 99精品桃花视频在线观看| 欧美精品一区二区三区视频| 亚洲成人先锋电影| 99久久免费视频.com| 2019国产精品| 热久久一区二区| 欧美日韩小视频| 亚洲免费在线电影| 成人va在线观看| 久久一留热品黄| 麻豆视频观看网址久久| 欧美人xxxx| 亚洲高清中文字幕| 在线观看中文字幕不卡| 国产精品区一区二区三| 国产成人在线影院| 久久亚洲二区三区| 激情综合色播激情啊| 日韩美女一区二区三区四区| 午夜电影一区二区三区| 色婷婷综合在线| 亚洲精品大片www| 99re在线视频这里只有精品| 久久精品欧美日韩| 精东粉嫩av免费一区二区三区| 欧美日本在线一区| 日本一不卡视频| 91精品国产高清一区二区三区蜜臀| 亚洲国产精品一区二区www| 欧美性videosxxxxx| 香蕉成人啪国产精品视频综合网| 日本精品免费观看高清观看| 一区二区三区不卡视频|