README
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:5k
源码类别:

通讯编程

开发平台:

Visual C++

  1. Release Notes for Diffusion 3.2.0
  2. ---------------------------------
  3. 1. Compiling Diffusion
  4. Starting with Diffusion 3.1, we use autoconf/automake to configure
  5. diffusion.
  6. There are several options that can be used with configure (for a
  7. complete list, please type ./configure --help). Relevant command line
  8. options for configure are:
  9. --with-ethernet  // Enables wired Ethernet support in diffusion
  10. --with-wins2     // Enables support for the Sensoria WINSNG 2.0 radios
  11. --host=sh4-linux // Enables support for using the sh4 cross compiler
  12.  // It assumes that the sh4 cross-compiler provided by
  13.  // Sensoria is already installed and on the user's path.
  14.  // The configure script will default to gcc/g++ if
  15.  // sh4-linux-gcc and sh4-linux-g++ cannot be found.
  16. --prefix=destination_path
  17.  // Enables the user to specify where the binaries will
  18.  // be installed (default is the test directory inside
  19.  // the distribution)
  20. So, compiling diffusion for the Sensoria nodes, should be as simple as:
  21. bash# ./configure --with-wins2 --host=sh4-linux
  22. bash# make
  23. bash# make install
  24. On the other hand, compiling for wired Ethernet on an x86 machine is:
  25. bash$ ./configure --with-ethernet
  26. bash$ make
  27. bash$ make install
  28. Please remember to remove the config.cache file when compiling for a
  29. different environment, as the file is not always deleted and may
  30. contain misleading information for the configure script.
  31. We tested compiling diffusion on Red Hat Linux versions 7.2, 7.3, 8.0,
  32. and 9.0. It also compiles and runs on other versions of Unix.
  33. 2. Before Running Diffusion (Sensoria Hardware)
  34. In order to use diffusion on the Sensoria nodes, you will have to have
  35. streamd running on your system.  We assume streamd will export the
  36. device files /dev/rf/0/flink and /dev/rf/1/flink. Diffusion will not
  37. start if these files are not present.
  38. Starting with Sensoria software version 2.0, streamd is started
  39. automatically when nodes boot, so there is no need to start it
  40. manually for the two radios.
  41. In addition, diffusion expects the radios to be configured as
  42. base/remotes and clusters to be configured before it starts. Use
  43. /dev/rf/*/command to manually configure each radio with the desired
  44. topology (or use clusterd to set up a cluster automatically if a
  45. specific topology is not important).
  46. 3. Setting up Node Ids
  47. Diffusion uses a random ID for the each node. This behavior can be
  48. overridden by setting the 'node_addr' environment variable to the
  49. desired ID. Under bash, this can be done with:
  50. bash$ export node_addr=2
  51. When diffusion is compiled to run on emsim (with the --with-emsim
  52. configure flag), it can get its node id directly from emsim's
  53. environment variables. Gear will also be able to get node location
  54. from emsim automatically.
  55. 4. Configuration File (Wired Ethernet Environment)
  56. Note that in the wired case, the file 'config.txt' (or an alternate
  57. configuration file, specified with the -f flag) should be present and
  58. contain a list of all directly connected nodes, one node in each
  59. line. If connected nodes are running on a port other than the default
  60. diffusion port (done by using the '-p' flag), this must be indicated
  61. in the configuration file as well. When diffusion initializes, it will
  62. display the list of connected nodes. Also, the configuration file can
  63. include the link quality to each neighbor.  It's an integer from 0 to
  64. 100 and will indicate the probability of a message sent by your node
  65. to reach this neighbor. A sample configuration file is:
  66. 10.0.0.1 - 3400 - 100
  67. 10.2.4.1 - 30
  68. 10.3.12.4 - 85
  69. In this case, we have three neighbors (10.0.0.1, 10.2.4.1 and
  70. 10.3.12.4), to which the probability of a packet getting lost is 0,
  71. 70% and 15% respectively. Note that the first neighbor (10.0.0.1) is
  72. running on the port 3400 (instead of the default diffusion port, 2000).
  73. Since the link quality is an integer from 0 to 100, and the port number
  74. has to be above 1024, diffusion can correctly guess the second argument's
  75. meaning if there are just 2 arguments in a config line.
  76. 5. Running Diffusion
  77. To run diffusion, simply start the 'filter_core' main process followed
  78. by the applications/filters desired.  Please allow a few seconds for
  79. the filter_core to initialize before starting applications and
  80. filters. Be sure to at least start the two_phase_pull filter (where
  81. the two-phase pull and one-phase push algorithms are implemented). For
  82. debugging, the log filter can be used to print all messages arriving
  83. at the node.
  84. To test if things are working, start filter_core, two_phase_pull and
  85. ping_sender in a node. Then start filter_core, two_phase_pull and
  86. ping_receiver in another node. ping_receiver should receive
  87. ping_sender's messages after a few seconds. For example:
  88. bash$ filter_core &
  89. bash$ two_phase_pull &
  90. bash$ ping_receiver
  91. To increase the amount of debug messages, you can use the '-d
  92. debug_level' flag. A debug_level 10 will generate a lot of output. The
  93. default value is 1.
  94. Please note that if filter_core is run with the '-p port' flag, all
  95. other applications will also need it (i.e. two_phase_pull -p port,
  96. agent1 -p port, etc...).
  97. Also, for using the GEAR protocol, you will need to start gear as
  98. well, So, the list of processes to start is:
  99. bash$ filter_core &
  100. bash$ two_phase_pull &
  101. bash$ gear &
  102. bash$ your_application &
  103. ---------------------------------
  104. Fabio Silva
  105. Information Sciences Institute
  106. University of Southern California