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

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

?? tinydb.html

?? tinyos中文手冊,是根據tinyos系統自帶手冊翻譯過來的,雖然質量不好,但是對英文不強的人還是有用的
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
  <head>
    <title>Lesson A: TinyDB</title>
  </head>
  <body bgcolor="#f8f8ff" link="#005bb7" vlink="#005bb7">
    
    <table border=0 hspace="4" cellspacing=2 width="100%" cellpadding=3>
      <tr bgcolor="#e0e0ff">
	<td width="100%">
	  <font face="tahoma,arial,helvetica"><b><big><big>
		  TinyDB</big><br>
		  <b>A Declarative Query System for Motes</b></big></b>
	    <p>
	      Last updated 26 Sep. 2002
	  </font></P>
	</td></tr>
    </table>
    
    <p>
      <table border=0 hspace="4" cellspacing=2 width="100%" cellpadding=3>
	<tr bgcolor="#e0e0ff">
	  <td width="100%"><nobr> <b>
		<font face="arial,helvetica">Introduction</font>
	      </b></nobr></td> </tr>
      </table>
    </p>
In this lesson, you will learn to use the TinyDB query processing system for 
extracting data from motes through a declarative query interface that is similar
to the SQL interface of a relational database system.  This lesson assumes you have a 
familiarity with the TinyOS toolset (have completed through lesson 7), but
will not require you to write (or even look at!) any C code.  The final section
of the document shows you how to write a simple Java program to use TinyDB in
your own software.

    <p>
      <table border=0 hspace="4" cellspacing=2 width="100%" cellpadding=3>
	<tr bgcolor="#e0e0ff">
	  <td width="100%"><nobr> <b>
		<font face="arial,helvetica">About TinyDB</font>
	      </b></nobr></td> </tr>
      </table>
    </p>

TinyDB is a query processing system for extracting
information from a network of
motes. Unlike other
solutions for data processing in TinyOS,
TinyDB does not require you to write embedded C
code for sensors.
Instead, TinyDB provides a
simple, SQL-like interface to specify the data you want to
extract, along with additional parameters, like the rate at which data
should be refreshed -- much as you would pose queries against a
traditional database.  
Given a query specifying your data interests,
TinyDB collects that data from motes in the
environment, filters it, aggregates it together, and routes it out to
a PC.  TinyDB does this via power-efficient in-network
processing algorithms.<p>

To use TinyDB, you install its TinyOS components onto
each mote in your sensor network. 
TinyDB provides a simple
Java API for writing PC applications that query and extract data from
the network; it also comes with a simple graphical query-builder and
result display that uses the API.<p>

The primary goal of TinyDB is to make your life as a programmer
significantly easier, and allow data-driven applications to be
developed and deployed <i>much</i> more quickly than what is currently
possible.  TinyDB frees you from the burden of writing low-level code
for sensor devices, including the (very tricky) sensor network
interfaces.  
	
    <p>
      <table border=0 hspace="4" cellspacing=2 width="100%" cellpadding=3>
	<tr bgcolor="#e0e0ff">
	  <td width="100%"><nobr> <b> <font
	  face="arial,helvetica">Installing TinyDB and Running A Simple Query</font> </b></nobr></td> </tr> </table></p>

For this lesson, you will need three motes.  Program all three with the <code>TinyDBApp</code> application, setting their id's to 0, 1, and 2.  Turn on all three and connect the mote you programmed with id 0 to the PC serial port.  (To program a mote with a specific id, run <code>make mica install.<i>nodeid</i></code>, where
<code><i>nodeid</i></code> is the id you wish to program into the mote.)
<p>
You will interact with these motes using the <code>TinyDBMain</code> class in
<code>tools/java/net/tinyos/tinydb</code>.  First, you need to build the
java classes -- to do this, you need to insure that several packages are in your <code>CLASSPATH</code>. The packages you need are <code>JLex.jar</code>, <code>cup.jar</code>, and <code>plot.jar</code>;  all three are available in 
<code>tools/java/jars</code>. We've included a small program to set your classpath for you, called <code>"javapath"</code> in the <code>tools/java/</code> directory.  To use it, you set the value of your <code>CLASSPATH</code> to the output of this command (it will prepend the new directories and jars to your current
<code>CLASSPATH</code>.)  To use it under bash (in Cygwin or Linux), type:

<blockquote>
<table border=0 hspace="4" cellspacing=2 width="80%" cellpadding=3>
<tr bgcolor="#e0e0e0">
<td width="100%"><pre>
export CLASSPATH=`<i>path/to/tinyos</i>/tools/java/javapath`
</pre></td></tr></table>
</blockquote>

Under <code>sh</code> or <code>csh</code> you would write "<code>setenv CLASSPATH ...</code>"  instead of "<code>export CLASSPATH=...</code>".
<p>
Now, build the java classes by typing the following:

<blockquote>
<table border=0 hspace="4" cellspacing=2 width="80%" cellpadding=3>
<tr bgcolor="#e0e0e0">
<td width="100%"><pre>
cd <i>path/to/tinyos</i>/tools/java/net/tinyos/tinydb
make
</pre></td></tr></table>
</blockquote>
<p>

This may take several minutes and will output lots of text as the TinyDB query parser is compiled.
Now, you're ready to start up the GUI!  You need to run it from the <code>tools/java</code>
directory; type:

<blockquote>
<table border=0 hspace="4" cellspacing=2 width="80%" cellpadding=3>
<tr bgcolor="#e0e0e0">
<td width="100%"><pre>
cd ../../..
java net.tinyos.tinydb.TinyDBMain
</pre></td></tr></table>
</blockquote>
<p>

The TinyDB GUI should appear:<p>

<IMG src="imgs/tinydb-main.jpg"></IMG>
<p>
 To specify a query in this GUI, you move the fields you want to extract from
the sensors from the list of available attributes on the left to the list
of projected attributes on the right. Let's add the light  attribute: first,
click on "light" in the left column, then click the"&gt;&gt;&gt;" button.  You display
should now look like:
<p>
<IMG src="imgs/tinydb-light.jpg"></IMG>
<p>
Notice that the text of the query below the attribute list updates as
you modify the query.  The <code>SAMPLE PERIOD</code> clause in the query
specifies that a new light reading will be delivered once every 1024 milliseconds.
You can change the sample period using the pop-up menu at the top of
the window.
<p>
 Now let's add the nodeid  attribute: click on "nodeid" in the left column, and
then click the"&gt;&gt;&gt;" button again.  Your display should now look like:
<p>
<IMG src="imgs/tinydb-light_and_id.jpg"></IMG>
<p>

Unlike light, nodeid does not specify a 
physical sensor reading, but instead is the id that was programmed into the
mote using the <code>make mica install.nodeid</code> command.  You'll learn
later how to extend TinyDB with other attributes of your own creation.

Now, we're ready to run a query.  Click the "Send Query" button;  a result
window will appear:
<p>
<IMG src="imgs/tinydb-result1.jpg"></IMG>
<p>
As this window appears, 
the red LED on mote id 0 (the <i>base station</i>) should blink a few
times, and shortly thereafter the red LEDS on motes 1 and 2 should
turn on.  After a few seconds, the yellow LEDS on all three motes
should blink about once a second -- this indicates the query is
running properly.  If the LEDs don't start blinking in a few seconds,
try clicking "Resend Query" to reissue the query.
<p>
Results should now be streaming into the GUI, showing the light reading
at motes 1 and 2.  Try covering mote 2;  you should see the
line representing its value on the graph fall off:
<p>
<IMG src="imgs/tinydb-result2.jpg"></IMG>
<p>
That's it for this simple introduction to TinyDB.  In the next section, we will 
discuss the more sophisticated features of TinyDB that make it useful in a 
broad range of data collection applications.



    <p>
      <table border=0 hspace="4" cellspacing=2 width="100%" cellpadding=3>
	<tr bgcolor="#e0e0ff">
	  <td width="100%"><nobr> <b> <font
	  face="arial,helvetica">Neat, But What Else Is It Good For?</font> </b></nobr></td>
	</tr> </table></p>

TinyDB includes a number of other features.  See the "Where To Look For More Information"
section for a link to the complete TinyDB reference manual.  In this section, we'll briefly
describe other features of the query language.
<p>
<b> The WHERE clause </b>:

TinyDB queries can contain a <code>WHERE</code> clause that filters out particular readings that
are not of interest.  For example, a query that finds the light and temperature readings and id's
of all motes whose light reading is
above 400 would look like:

<blockquote>
<table border=0 hspace="4" cellspacing=2 width="50%" cellpadding=3>
<tr bgcolor="#e0e0e0">
<td width="100%"><pre>
SELECT 
nodeid,light,temp FROM 
sensors WHERE
light &gt;  400
SAMPLE PERIOD 1024
</pre></td></tr></table>
</blockquote>

 To create such a query, use the "New Predicate" button to add a predicate, select "light"
from the predicate attribute menu, select"&gt;" from the menu of comparative operators, and type 400 
into the value field:
<p>
<IMG src="imgs/tinydb-where.jpg"></IMG>
<p>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲主播在线观看| 欧美精品一区二区蜜臀亚洲| 国产在线一区观看| 丝袜亚洲另类欧美| 青青草精品视频| 日韩成人免费电影| 日本va欧美va瓶| 精品中文字幕一区二区小辣椒| 三级不卡在线观看| 免费成人在线播放| 韩国一区二区三区| 大白屁股一区二区视频| 国产成人亚洲精品青草天美| 大桥未久av一区二区三区中文| 成人性生交大片免费看在线播放| 成人听书哪个软件好| 97国产精品videossex| 色哟哟欧美精品| 日韩一区和二区| 精品国产sm最大网站| 欧美国产综合色视频| 一区二区久久久久| 久久精品国产精品青草| 国产成人欧美日韩在线电影| 成人成人成人在线视频| 欧美自拍偷拍午夜视频| 日韩一区二区三区观看| 久久久99精品免费观看不卡| 亚洲日本在线a| 天天av天天翘天天综合网色鬼国产 | 国产米奇在线777精品观看| 国产成人免费在线观看不卡| 在线免费视频一区二区| 日韩精品专区在线影院观看| 国产精品久久二区二区| 一区二区在线观看不卡| 久久99精品网久久| 91香蕉视频污在线| 欧美成人精品高清在线播放| 亚洲免费av高清| 国内精品在线播放| 欧美最猛性xxxxx直播| 欧美电影免费观看高清完整版| 国产精品夫妻自拍| 美国毛片一区二区三区| 91蜜桃免费观看视频| 久久综合丝袜日本网| 午夜一区二区三区视频| 丁香激情综合国产| 欧美成人女星排行榜| 亚洲综合精品久久| 国产精品88888| 91精品国产综合久久久久久| 亚洲人成影院在线观看| 极品瑜伽女神91| 欧美一卡2卡三卡4卡5免费| 亚洲精品ww久久久久久p站| 韩国成人在线视频| 欧美日韩国产综合一区二区| 国产精品久久久久久妇女6080| 九九国产精品视频| 日韩欧美中文字幕一区| 无码av中文一区二区三区桃花岛| www.性欧美| 国产农村妇女毛片精品久久麻豆| 青椒成人免费视频| 欧美精品视频www在线观看| 亚洲欧美偷拍三级| 91偷拍与自偷拍精品| 国产精品不卡一区二区三区| 国产成人三级在线观看| 国产三级一区二区| 国产福利91精品一区二区三区| 欧美不卡一二三| 韩国欧美国产一区| 26uuu亚洲综合色| 久久国产尿小便嘘嘘| 精品美女一区二区三区| 捆绑紧缚一区二区三区视频| 日韩免费高清电影| 国产成人精品一区二| 国产精品嫩草99a| av在线不卡观看免费观看| 中文字幕中文字幕在线一区 | 91精品国产综合久久久久| 日韩va欧美va亚洲va久久| 欧美精品乱人伦久久久久久| 日韩综合在线视频| 欧美一区二区黄| 国内欧美视频一区二区| 国产女人水真多18毛片18精品视频| 国产一区二区在线视频| 国产精品视频免费看| 91在线视频网址| 亚洲国产中文字幕在线视频综合| 欧美老女人第四色| 国模大尺度一区二区三区| 久久久不卡影院| 91网址在线看| 视频在线观看一区| 国产校园另类小说区| 99国产欧美久久久精品| 同产精品九九九| 国产免费成人在线视频| 色综合婷婷久久| 免费在线观看不卡| 国产欧美一区视频| 欧美性生活一区| 国模一区二区三区白浆| 亚洲女子a中天字幕| 制服丝袜一区二区三区| 国产精品综合二区| 亚洲韩国精品一区| 久久精品在线观看| 欧美日韩亚洲另类| 国产伦精品一区二区三区视频青涩| 国产精品二三区| 欧美videos大乳护士334| 99久久精品久久久久久清纯| 午夜激情一区二区三区| 国产亚洲欧美中文| 欧美一区二区三区色| 99re成人精品视频| 久久激情五月婷婷| 亚洲午夜精品在线| 国产亚洲精品资源在线26u| 欧美三区在线视频| 成人做爰69片免费看网站| 日韩在线一二三区| 伊人色综合久久天天| 欧美经典三级视频一区二区三区| 在线成人免费观看| 欧美亚洲国产一区二区三区| 国产精品中文字幕日韩精品| 亚洲成av人片在线观看| 亚洲欧美另类久久久精品 | 日韩免费高清电影| 91伊人久久大香线蕉| 国产精品66部| 精品一区二区三区影院在线午夜| 亚洲免费三区一区二区| 国产三级精品在线| 欧美草草影院在线视频| 欧美精品成人一区二区三区四区| 97se亚洲国产综合自在线不卡 | 国产午夜精品在线观看| 欧美一区二区三区视频免费播放 | 国产成人av一区二区三区在线观看| 亚洲一区二区av电影| 亚洲欧美日韩一区| 亚洲欧美在线观看| 国产精品久久久久久久久晋中 | 成人一道本在线| 国产一区二区视频在线| 狠狠狠色丁香婷婷综合激情| 久久成人综合网| 国产真实乱对白精彩久久| 久久精品99国产精品| 国产在线不卡一区| 成人午夜精品在线| 99久久久久久| 欧美日韩黄视频| 欧美一区二区三区视频| 26uuu色噜噜精品一区| 欧美高清在线视频| 亚洲激情男女视频| 午夜婷婷国产麻豆精品| 日韩av中文字幕一区二区| 国内精品第一页| 成人黄色片在线观看| 色婷婷国产精品| 91精品国模一区二区三区| 日韩一区二区在线观看视频| 欧美精品一区二区三区很污很色的| 26uuuu精品一区二区| 国产精品人妖ts系列视频| 自拍av一区二区三区| 亚洲第一主播视频| 激情六月婷婷综合| 91丝袜美女网| 欧美一区午夜视频在线观看| 久久综合久久综合九色| 欧美激情一区在线观看| 亚洲一区电影777| 日本韩国一区二区三区| 精品中文字幕一区二区小辣椒| 欧美挠脚心视频网站| 成人综合婷婷国产精品久久| 欧美电影一区二区| 国产精品一级在线| 国产精品青草久久| 日本韩国精品在线| 天天av天天翘天天综合网色鬼国产 | 久88久久88久久久| 欧美性色aⅴ视频一区日韩精品| 国产精品欧美久久久久无广告 | 国产精品少妇自拍| 国产尤物一区二区| 精品盗摄一区二区三区| 久久精品国产一区二区|