LowPowerListening.nc
上传用户:joranyuan
上传日期:2022-06-23
资源大小:3306k
文件大小:3k
源码类别:

网络

开发平台:

Others

  1. /* tab:4
  2.  *
  3.  *
  4.  * "Copyright (c) 2000-2002 The Regents of the University  of California.  
  5.  * All rights reserved.
  6.  *
  7.  * Permission to use, copy, modify, and distribute this software and its
  8.  * documentation for any purpose, without fee, and without written agreement is
  9.  * hereby granted, provided that the above copyright notice, the following
  10.  * two paragraphs and the author appear in all copies of this software.
  11.  * 
  12.  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
  13.  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
  14.  * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
  15.  * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  16.  * 
  17.  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
  18.  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  19.  * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
  20.  * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
  21.  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
  22.  *
  23.  */
  24. /*
  25.  * Authors: Joe Polastre
  26.  * Date last modified:  $Revision: 1.1.1.1 $
  27.  *
  28.  * Low Power Listening
  29.  */
  30. /**
  31.  * Low Power Listening control interface
  32.  */
  33. interface LowPowerListening
  34. {
  35.   /**
  36.    * Set the current Low Power Listening mode.
  37.    * Setting the LPL mode sets both the check interval and preamble length.
  38.    *
  39.    * Modes include:
  40.    *  0 = Radio full on
  41.    *  1 = 10ms check interval
  42.    *  2 = 25ms check interval
  43.    *  3 = 50ms check interval
  44.    *  4 = 100ms check interval (recommended)
  45.    *  5 = 200ms check interval
  46.    *  6 = 400ms check interval
  47.    *  7 = 800ms check interval
  48.    *  8 = 1600ms check interval
  49.    *
  50.    * @param mode the mode number
  51.    * @return SUCCESS if the mode was successfully changed
  52.    */
  53.   async command result_t SetListeningMode(uint8_t mode);
  54.   /**
  55.    * Get the current Low Power Listening mode
  56.    * @return mode number (see SetListeningMode)
  57.    */
  58.   async command uint8_t GetListeningMode();
  59.   /**
  60.    * Set the transmit mode.  This allows for hybrid schemes where
  61.    * the transmit mode is different than the receive mode.
  62.    * Use SetListeningMode first, then change the mode with SetTransmitMode.
  63.    *
  64.    * @param mode mode number (see SetListeningMode)
  65.    * @return SUCCESS if the mode was successfully changed
  66.    */
  67.   async command result_t SetTransmitMode(uint8_t mode);
  68.   /**
  69.    * Get the current Low Power Listening transmit mode
  70.    * @return mode number (see SetListeningMode)
  71.    */
  72.   async command uint8_t GetTransmitMode();
  73.   /**
  74.    * Set the preamble length of outgoing packets
  75.    *
  76.    * @param bytes length of the preamble in bytes
  77.    * @return SUCCESS if the preamble length was successfully changed
  78.    */
  79.   async command result_t SetPreambleLength(uint16_t bytes);
  80.   /**
  81.    * Get the preamble length of outgoing packets
  82.    *
  83.    * @return length of the preamble in bytes
  84.    */
  85.   async command uint16_t GetPreambleLength();
  86.   /**
  87.    * Set the check interval (time between waking up and sampling
  88.    * the radio for activity in low power listening)
  89.    *
  90.    * @param ms check interval in milliseconds
  91.    * @return SUCCESS if the check interval was successfully changed
  92.    */
  93.   async command result_t SetCheckInterval(uint16_t ms);
  94.   /**
  95.    * Get the check interval currently used by low power listening
  96.    *
  97.    * @return length of the check interval in milliseconds
  98.    */
  99.   async command uint16_t GetCheckInterval();
  100. }