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

📄 gridlocationinfo2.hh

📁 COPE the first practical network coding scheme which is developped on click
💻 HH
字号:
#ifndef GRIDLOCATIONINFO2_HH#define GRIDLOCATIONINFO2_HH#include <click/element.hh>#include <click/timer.hh>#include "gridgenericlocinfo.hh"CLICK_DECLS/* * =c * GridLocationInfo2(LATITUDE, LONGITUDE [, HEIGHT, I<KEYWORDS>]) * =s Grid * =io * None * =d * * This element implements the GridGenericLocInfo interface.  Unlike * GridLocationInfo, this element can work in the kernel. * * LATITUDE and LONGITUDE are in milliseconds.  Positive is North and * East, negative is South and West.  HEIGHT is in millimetres, * positive is up.  All are integers. * * Keyword arguments are: * * =over 8 * * =item LOC_GOOD * * Boolean.  If true, it means the location information (including * error radius) can be believed.  If false, don't believe the hype, * it's a sequel, i.e. it's all bogus. * * =item ERR_RADIUS * * Unsigned short.  The error radius in metres.  The node's actual * location is within a circle of ERR_RADIUS metres, centered at the * supplied location. * * =item TAG * * String.  A symbolic name used to identify this node's location, * e.g. "ne43-521b", or "Robert's office". * * =h loc read/write  * * When reading, returns the element's location information, in this * format: ``lat, lon, height (err=<err-radius> good=<good?> seq=<seq>)''. * *  <err-radius> is in metres, <good?> is "yes" or "no", indicating *  whether the location information is at all valid (i.e. don't *  believe any of it unless <good?> is "yes"), and <seq> is the *  location sequence number; it changes every time the location or *  other parameters change. * * When writing, use the same syntax as the configuration arguments. * * =h tag read/write * * Read/write the location tag.  Read format is: ``tag=<tag>''. * * =a * FixSrcLoc, GridLocationInfo */class GridLocationInfo2 : public GridGenericLocInfo {  public:  GridLocationInfo2();  ~GridLocationInfo2();  const char *class_name() const { return "GridLocationInfo2"; }  int configure(Vector<String> &, ErrorHandler *);  bool can_live_reconfigure() const { return true; }  void *cast(const char *);  // seq_no is incremented when location changes ``enough to make a  // difference''  grid_location get_current_location(unsigned int *seq_no = 0);  void add_handlers();  int read_args(const Vector<String> &conf, ErrorHandler *errh);  unsigned int seq_no() { return _seq_no; }  bool loc_good() { return _loc_good; }  unsigned short loc_err() { return _loc_err; }  unsigned int _seq_no;  String _tag;protected:  bool _loc_good; // if false, don't believe loc  unsigned short _loc_err; // error radius in metres  grid_location _loc;};CLICK_ENDDECLS#endif

⌨️ 快捷键说明

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