OSDN Git Service

Update ecrobot to nxtOSEK_v212.zip
[nxt-jsp/etrobo-atk.git] / nxtOSEK / ecrobot / c++ / html / classecrobot_1_1_camera.html
diff --git a/nxtOSEK/ecrobot/c++/html/classecrobot_1_1_camera.html b/nxtOSEK/ecrobot/c++/html/classecrobot_1_1_camera.html
new file mode 100644 (file)
index 0000000..ef22d3c
--- /dev/null
@@ -0,0 +1,551 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>ECRobot C++ API for LEGO MINDSTORMS NXT: ecrobot::Camera Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath"><b>ecrobot</b>::<a class="el" href="classecrobot_1_1_camera.html">Camera</a>
+  </div>
+</div>
+<div class="contents">
+<h1>ecrobot::Camera Class Reference</h1><!-- doxytag: class="ecrobot::Camera" -->
+<p>Mindsensor <a class="el" href="classecrobot_1_1_camera.html" title="Mindsensor Camera device (http://www.mindsensors.com/) class.">Camera</a> device (<a href="http://www.mindsensors.com/">http://www.mindsensors.com/</a>) class.  
+<a href="#_details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_camera_8h_source.html">Camera.h</a>&gt;</code></p>
+
+<p><a href="classecrobot_1_1_camera-members.html">List of all members.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structecrobot_1_1_camera_1_1_rectangle___t.html">Rectangle_T</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type of rectangle for object being tracked.  <a href="structecrobot_1_1_camera_1_1_rectangle___t.html#_details">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a115fc4feceb09e64e2d3e9878c8d1f19">eTrackingType</a> { <a class="el" href="classecrobot_1_1_camera.html#a115fc4feceb09e64e2d3e9878c8d1f19a61d56eb2d460c246df71eef3c782e0ad">OBJECT</a> =  OBJECT_TRACKING, 
+<a class="el" href="classecrobot_1_1_camera.html#a115fc4feceb09e64e2d3e9878c8d1f19a5aa5f0ed7549ab947004eb1ac447231c">LINE</a> =  LINE_TRACKING
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Tracking types. </p>
+ <a href="classecrobot_1_1_camera.html#a115fc4feceb09e64e2d3e9878c8d1f19">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a77fe935449e5f39e26e399d6225c4856">eSortType</a> { <a class="el" href="classecrobot_1_1_camera.html#a77fe935449e5f39e26e399d6225c4856a1d23e1c52f087cecf44c2136a559433a">SIZE</a> =  SORT_OBJ_BY_SIZE, 
+<a class="el" href="classecrobot_1_1_camera.html#a77fe935449e5f39e26e399d6225c4856af369684579a270203d0dd3ea954b486c">COLOR</a> =  SORT_OBJ_BY_COLOR, 
+<a class="el" href="classecrobot_1_1_camera.html#a77fe935449e5f39e26e399d6225c4856a106a771f4cb68e02c25d084620d2e80e">NO_SORTING</a> =  NO_SORTING_OBJ
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Tracked objects sorting types. </p>
+ <a href="classecrobot_1_1_camera.html#a77fe935449e5f39e26e399d6225c4856">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a450da3cd6e3be55b163fe9069686576c">Camera</a> (<a class="el" href="_port_8h.html#a8d17f8fabb486d5815d626610983e82d">ePortS</a> port)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor (activate I2C).  <a href="#a450da3cd6e3be55b163fe9069686576c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a61a2e75a6ddbefa61768f2a9504edd81">enableTracking</a> (boolean enable)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enable/disable tracking objects.  <a href="#a61a2e75a6ddbefa61768f2a9504edd81"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a81ec5da7e7b6f5b7a749e0f25143c966">setTrackingType</a> (<a class="el" href="classecrobot_1_1_camera.html#a115fc4feceb09e64e2d3e9878c8d1f19">eTrackingType</a> mode)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Choose either object or line tracking mode.  <a href="#a81ec5da7e7b6f5b7a749e0f25143c966"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a6b06a15f5f2b73f19a2aec9ca5748188">sortBy</a> (<a class="el" href="classecrobot_1_1_camera.html#a77fe935449e5f39e26e399d6225c4856">eSortType</a> sortType)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classecrobot_1_1_camera.html" title="Mindsensor Camera device (http://www.mindsensors.com/) class.">Camera</a> sorts objects it detects according to criteria, either color, size, or no sorting at all.  <a href="#a6b06a15f5f2b73f19a2aec9ca5748188"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">SINT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a208602b130718a9767b160f248f9ee18">getNumberOfObjects</a> (void) const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of objects being tracked.  <a href="#a208602b130718a9767b160f248f9ee18"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">SINT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a445b20c0e1af333b38716f08521395a7">getObjectColor</a> (SINT id) const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the color number for a tracked object.  <a href="#a445b20c0e1af333b38716f08521395a7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#af153c4fb67f26aa6854b7fe0e921ec02">getRectangle</a> (SINT id, <a class="el" href="structecrobot_1_1_camera_1_1_rectangle___t.html">Rectangle_T</a> *rect)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the rectangle containing a tracked object.  <a href="#af153c4fb67f26aa6854b7fe0e921ec02"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a9ff6122faab0ffc55dd67f73058cca3c">update</a> (void)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Call regularly to poll the status of the camera device.  <a href="#a9ff6122faab0ffc55dd67f73058cca3c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a72907a11381d935dd1418a87b45a6110">sendCommand</a> (U8 command)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a camera command.  <a href="#a72907a11381d935dd1418a87b45a6110"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a278d4432f2905339bfde3a8e8578dd5a">receive</a> (U32 address, U8 *data, U32 length)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Receive raw data from the camera.  <a href="#a278d4432f2905339bfde3a8e8578dd5a"></a><br/></td></tr>
+<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a526bf436dfc3e92d8028bc95f3ddf020"></a><!-- doxytag: member="ecrobot::Camera::SORT_OBJ_BY_SIZE" ref="a526bf436dfc3e92d8028bc95f3ddf020" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a526bf436dfc3e92d8028bc95f3ddf020">SORT_OBJ_BY_SIZE</a> = 0x41</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to sort tracked objects by size. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d9d8cc7b7aa27714d4cb0a38bedb293"></a><!-- doxytag: member="ecrobot::Camera::OBJECT_TRACKING" ref="a5d9d8cc7b7aa27714d4cb0a38bedb293" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a5d9d8cc7b7aa27714d4cb0a38bedb293">OBJECT_TRACKING</a> = 0x42</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to select object tracing mode. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a8ad5f2f41bbc0f86230d1295beef3913">WRITE_CAM_REG</a> = 0x43</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to write to camera registers.  <a href="#a8ad5f2f41bbc0f86230d1295beef3913"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abec41aee1620447052f477d5e72ca1c8"></a><!-- doxytag: member="ecrobot::Camera::DISABLE_TRACKING" ref="abec41aee1620447052f477d5e72ca1c8" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#abec41aee1620447052f477d5e72ca1c8">DISABLE_TRACKING</a> = 0x44</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to disable tracking. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4188353e6a05a639fff0ff27c791074"></a><!-- doxytag: member="ecrobot::Camera::ENABLE_TRACKING" ref="af4188353e6a05a639fff0ff27c791074" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#af4188353e6a05a639fff0ff27c791074">ENABLE_TRACKING</a> = 0x45</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to enable tracking. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1fc098785e7814909c03ad0ecc24188"></a><!-- doxytag: member="ecrobot::Camera::GET_COLOR_MAP" ref="ab1fc098785e7814909c03ad0ecc24188" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#ab1fc098785e7814909c03ad0ecc24188">GET_COLOR_MAP</a> = 0x47</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to get the color map from camera engine. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf604a31d1f8f30e90723244e1b33b7a"></a><!-- doxytag: member="ecrobot::Camera::READ_CAM_REG" ref="abf604a31d1f8f30e90723244e1b33b7a" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#abf604a31d1f8f30e90723244e1b33b7a">READ_CAM_REG</a> = 0x48</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to read data from the camera engine. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a878bd25c7eea54e62126035e69533378"></a><!-- doxytag: member="ecrobot::Camera::ILLUMINATION_ON" ref="a878bd25c7eea54e62126035e69533378" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a878bd25c7eea54e62126035e69533378">ILLUMINATION_ON</a> = 0x49</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to turn illumination On (Future). <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13d559b0f266d4ef001c2f21d03635c6"></a><!-- doxytag: member="ecrobot::Camera::LINE_TRACKING" ref="a13d559b0f266d4ef001c2f21d03635c6" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a13d559b0f266d4ef001c2f21d03635c6">LINE_TRACKING</a> = 0x4C</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to select line tracking mode. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf15bdee4c4f7bc34eca24ffeed9f5d2"></a><!-- doxytag: member="ecrobot::Camera::SET_ADPA_ON" ref="adf15bdee4c4f7bc34eca24ffeed9f5d2" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#adf15bdee4c4f7bc34eca24ffeed9f5d2">SET_ADPA_ON</a> = 0x4E</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to set ADPA mode On. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5720ea738662a071a76f055c8b415f04"></a><!-- doxytag: member="ecrobot::Camera::SET_ADPA_OFF" ref="a5720ea738662a071a76f055c8b415f04" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a5720ea738662a071a76f055c8b415f04">SET_ADPA_OFF</a> = 0x4F</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to set ADPA mode Off (default). <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adfa2f5defcf93dec1458983504cde241"></a><!-- doxytag: member="ecrobot::Camera::PING_CAMERA_ENGINE" ref="adfa2f5defcf93dec1458983504cde241" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#adfa2f5defcf93dec1458983504cde241">PING_CAMERA_ENGINE</a> = 0x50</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to ping camera engine. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4730645ef6521c4cd98f2af60fb62ca3"></a><!-- doxytag: member="ecrobot::Camera::RESET_CAMERA_ENGINE" ref="a4730645ef6521c4cd98f2af60fb62ca3" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a4730645ef6521c4cd98f2af60fb62ca3">RESET_CAMERA_ENGINE</a> = 0x52</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to reset camera engine. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2738574f42dc16112189dde96b6d657a"></a><!-- doxytag: member="ecrobot::Camera::SET_COLOR_MAP" ref="a2738574f42dc16112189dde96b6d657a" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a2738574f42dc16112189dde96b6d657a">SET_COLOR_MAP</a> = 0x53</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to send the color map to camera engine. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4235e922b5ad18b6410cdc234d3d3702"></a><!-- doxytag: member="ecrobot::Camera::ILLUMINATION_OFF" ref="a4235e922b5ad18b6410cdc234d3d3702" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a4235e922b5ad18b6410cdc234d3d3702">ILLUMINATION_OFF</a> = 0x54</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to turn illumination Off. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09232436e591469b754fd9afb2a222ff"></a><!-- doxytag: member="ecrobot::Camera::SORT_OBJ_BY_COLOR" ref="a09232436e591469b754fd9afb2a222ff" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a09232436e591469b754fd9afb2a222ff">SORT_OBJ_BY_COLOR</a> = 0x55</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to sort tracked objects by color. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a3d489bb778b0d6884e6d49e2621cf5"></a><!-- doxytag: member="ecrobot::Camera::GET_VERSION" ref="a2a3d489bb778b0d6884e6d49e2621cf5" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a2a3d489bb778b0d6884e6d49e2621cf5">GET_VERSION</a> = 0x56</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to get camera engine firmware version. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78792de7e3d1b5bd899acb520e221bbe"></a><!-- doxytag: member="ecrobot::Camera::NO_SORTING_OBJ" ref="a78792de7e3d1b5bd899acb520e221bbe" args="" -->
+static const U8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_camera.html#a78792de7e3d1b5bd899acb520e221bbe">NO_SORTING_OBJ</a> = 0x58</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command to not sort tracked objects. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Mindsensor <a class="el" href="classecrobot_1_1_camera.html" title="Mindsensor Camera device (http://www.mindsensors.com/) class.">Camera</a> device (<a href="http://www.mindsensors.com/">http://www.mindsensors.com/</a>) class. </p>
+<p>[ How to use with TOPPERS/ATK1(OSEK) ]<br/>
+ I2C (derived/compositted) class and <a class="el" href="classecrobot_1_1_clock.html" title="NXT system clock related class.">Clock</a> class internally use RTOS features. Thus, user needs to implement a C function and RTOS provided events.<br/>
+<br/>
+ + Invoke SleeperMonitor function in user_1msec_isr_type2 hook.<br/>
+ &nbsp;&nbsp;void user_1ms_isr_type2(void)<br/>
+ &nbsp;&nbsp;{<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;SleeperMonitor(); // needed for I2C devices and <a class="el" href="classecrobot_1_1_clock.html" title="NXT system clock related class.">Clock</a> class<br/>
+ &nbsp;&nbsp;}<br/>
+ <br/>
+ + Define EventSleepI2C and EventSleep Events in user oil file.<br/>
+ &nbsp;&nbsp;EVENT EventSleepI2C<br/>
+ &nbsp;&nbsp;{<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;MASK = AUTO;<br/>
+ &nbsp;&nbsp;};<br/>
+<br/>
+ &nbsp;&nbsp;EVENT EventSleep<br/>
+ &nbsp;&nbsp;{<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;MASK = AUTO;<br/>
+ &nbsp;&nbsp;};<br/>
+<br/>
+ &nbsp;&nbsp;TASK TaskMain<br/>
+ &nbsp;&nbsp;{<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;AUTOSTART = TRUE<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;{<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APPMODE = appmode1;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;};<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;PRIORITY = 1;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;ACTIVATION = 1;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;SCHEDULE = FULL;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;STACKSIZE = 512;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;EVENT = EventSleepI2C; &lt;- Here it is<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;EVENT = EventSleep; &lt;- Here it is<br/>
+ &nbsp;&nbsp;};<br/>
+ <br/>
+ [ How to use with TOPPERS/JSP(ITRON) ]<br/>
+ In case of using this class with TOPPERS/JSP(ITRON), RTOS specific definitions for the class are not needed. </p>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a77fe935449e5f39e26e399d6225c4856"></a><!-- doxytag: member="ecrobot::Camera::eSortType" ref="a77fe935449e5f39e26e399d6225c4856" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classecrobot_1_1_camera.html#a77fe935449e5f39e26e399d6225c4856">ecrobot::Camera::eSortType</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Tracked objects sorting types. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a77fe935449e5f39e26e399d6225c4856a1d23e1c52f087cecf44c2136a559433a"></a><!-- doxytag: member="SIZE" ref="a77fe935449e5f39e26e399d6225c4856a1d23e1c52f087cecf44c2136a559433a" args="" -->SIZE</em>&nbsp;</td><td>
+<p>Sort tracked objects by size. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a77fe935449e5f39e26e399d6225c4856af369684579a270203d0dd3ea954b486c"></a><!-- doxytag: member="COLOR" ref="a77fe935449e5f39e26e399d6225c4856af369684579a270203d0dd3ea954b486c" args="" -->COLOR</em>&nbsp;</td><td>
+<p>Sort tracked objects by color. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a77fe935449e5f39e26e399d6225c4856a106a771f4cb68e02c25d084620d2e80e"></a><!-- doxytag: member="NO_SORTING" ref="a77fe935449e5f39e26e399d6225c4856a106a771f4cb68e02c25d084620d2e80e" args="" -->NO_SORTING</em>&nbsp;</td><td>
+<p>Do not sort tracked objects. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a115fc4feceb09e64e2d3e9878c8d1f19"></a><!-- doxytag: member="ecrobot::Camera::eTrackingType" ref="a115fc4feceb09e64e2d3e9878c8d1f19" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classecrobot_1_1_camera.html#a115fc4feceb09e64e2d3e9878c8d1f19">ecrobot::Camera::eTrackingType</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Tracking types. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a115fc4feceb09e64e2d3e9878c8d1f19a61d56eb2d460c246df71eef3c782e0ad"></a><!-- doxytag: member="OBJECT" ref="a115fc4feceb09e64e2d3e9878c8d1f19a61d56eb2d460c246df71eef3c782e0ad" args="" -->OBJECT</em>&nbsp;</td><td>
+<p>Select object tracing mode. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a115fc4feceb09e64e2d3e9878c8d1f19a5aa5f0ed7549ab947004eb1ac447231c"></a><!-- doxytag: member="LINE" ref="a115fc4feceb09e64e2d3e9878c8d1f19a5aa5f0ed7549ab947004eb1ac447231c" args="" -->LINE</em>&nbsp;</td><td>
+<p>Select Line tracking mode. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a450da3cd6e3be55b163fe9069686576c"></a><!-- doxytag: member="ecrobot::Camera::Camera" ref="a450da3cd6e3be55b163fe9069686576c" args="(ePortS port)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ecrobot::Camera::Camera </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="_port_8h.html#a8d17f8fabb486d5815d626610983e82d">ePortS</a>&nbsp;</td>
+          <td class="paramname"> <em>port</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [explicit]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Constructor (activate I2C). </p>
+<p>Note:<br/>
+ This class must be constructed as a global object. Otherwise, a device assertion will be displayed<br/>
+ in the LCD when the object is constructed as a non global object.<br/>
+ When the object is destructed while the system is shut down, the device is de-activated automatically. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td><a class="el" href="classecrobot_1_1_camera.html" title="Mindsensor Camera device (http://www.mindsensors.com/) class.">Camera</a> device connected port </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>- </dd></dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a61a2e75a6ddbefa61768f2a9504edd81"></a><!-- doxytag: member="ecrobot::Camera::enableTracking" ref="a61a2e75a6ddbefa61768f2a9504edd81" args="(boolean enable)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ecrobot::Camera::enableTracking </td>
+          <td>(</td>
+          <td class="paramtype">boolean&nbsp;</td>
+          <td class="paramname"> <em>enable</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Enable/disable tracking objects. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>enable,:</em>&nbsp;</td><td>true(enable)/false(disable) </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>- </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a208602b130718a9767b160f248f9ee18"></a><!-- doxytag: member="ecrobot::Camera::getNumberOfObjects" ref="a208602b130718a9767b160f248f9ee18" args="(void) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">SINT ecrobot::Camera::getNumberOfObjects </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Get the number of objects being tracked. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>-</em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Number of objects (0 - 8) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a445b20c0e1af333b38716f08521395a7"></a><!-- doxytag: member="ecrobot::Camera::getObjectColor" ref="a445b20c0e1af333b38716f08521395a7" args="(SINT id) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">SINT ecrobot::Camera::getObjectColor </td>
+          <td>(</td>
+          <td class="paramtype">SINT&nbsp;</td>
+          <td class="paramname"> <em>id</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Get the color number for a tracked object. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The object number (starting at zero) </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>the color of the object (starting at zero) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af153c4fb67f26aa6854b7fe0e921ec02"></a><!-- doxytag: member="ecrobot::Camera::getRectangle" ref="af153c4fb67f26aa6854b7fe0e921ec02" args="(SINT id, Rectangle_T *rect)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ecrobot::Camera::getRectangle </td>
+          <td>(</td>
+          <td class="paramtype">SINT&nbsp;</td>
+          <td class="paramname"> <em>id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structecrobot_1_1_camera_1_1_rectangle___t.html">Rectangle_T</a> *&nbsp;</td>
+          <td class="paramname"> <em>rect</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Get the rectangle containing a tracked object. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The object number (staring at zero) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>rect</em>&nbsp;</td><td>Rectangle data </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a278d4432f2905339bfde3a8e8578dd5a"></a><!-- doxytag: member="ecrobot::Camera::receive" ref="a278d4432f2905339bfde3a8e8578dd5a" args="(U32 address, U8 *data, U32 length)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool ecrobot::Camera::receive </td>
+          <td>(</td>
+          <td class="paramtype">U32&nbsp;</td>
+          <td class="paramname"> <em>address</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">U8 *&nbsp;</td>
+          <td class="paramname"> <em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">U32&nbsp;</td>
+          <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Receive raw data from the camera. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>address</em>&nbsp;</td><td>I2C address </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Data to be received </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>Length of data to be received </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The result of receive data: true(succeded)/false(failed) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a72907a11381d935dd1418a87b45a6110"></a><!-- doxytag: member="ecrobot::Camera::sendCommand" ref="a72907a11381d935dd1418a87b45a6110" args="(U8 command)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool ecrobot::Camera::sendCommand </td>
+          <td>(</td>
+          <td class="paramtype">U8&nbsp;</td>
+          <td class="paramname"> <em>command</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Send a camera command. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>command</em>&nbsp;</td><td>single byte camera command </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The result of update: true(succeded)/false(failed) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a81ec5da7e7b6f5b7a749e0f25143c966"></a><!-- doxytag: member="ecrobot::Camera::setTrackingType" ref="a81ec5da7e7b6f5b7a749e0f25143c966" args="(eTrackingType mode)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ecrobot::Camera::setTrackingType </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classecrobot_1_1_camera.html#a115fc4feceb09e64e2d3e9878c8d1f19">eTrackingType</a>&nbsp;</td>
+          <td class="paramname"> <em>mode</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Choose either object or line tracking mode. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>OBJECT/LINE </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>- </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6b06a15f5f2b73f19a2aec9ca5748188"></a><!-- doxytag: member="ecrobot::Camera::sortBy" ref="a6b06a15f5f2b73f19a2aec9ca5748188" args="(eSortType sortType)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ecrobot::Camera::sortBy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classecrobot_1_1_camera.html#a77fe935449e5f39e26e399d6225c4856">eSortType</a>&nbsp;</td>
+          <td class="paramname"> <em>sortType</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p><a class="el" href="classecrobot_1_1_camera.html" title="Mindsensor Camera device (http://www.mindsensors.com/) class.">Camera</a> sorts objects it detects according to criteria, either color, size, or no sorting at all. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>sortType</em>&nbsp;</td><td>SIZE/COLOR/NO_SORTING </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>- </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9ff6122faab0ffc55dd67f73058cca3c"></a><!-- doxytag: member="ecrobot::Camera::update" ref="a9ff6122faab0ffc55dd67f73058cca3c" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool ecrobot::Camera::update </td>
+          <td>(</td>
+          <td class="paramtype">void&nbsp;</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Call regularly to poll the status of the camera device. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>-</em>&nbsp;</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The result of update: true(succeded)/false(failed) </dd></dl>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a8ad5f2f41bbc0f86230d1295beef3913"></a><!-- doxytag: member="ecrobot::Camera::WRITE_CAM_REG" ref="a8ad5f2f41bbc0f86230d1295beef3913" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const U8 <a class="el" href="classecrobot_1_1_camera.html#a8ad5f2f41bbc0f86230d1295beef3913">ecrobot::Camera::WRITE_CAM_REG</a> = 0x43<code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Command to write to camera registers. </p>
+<p><br/>
+ According to Mindsensors:<br/>
+ Use extreme CAUTION when using this command since this can stop your camera working properly. In case this happens, please power off your NXTCam and power it on again. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>device/<a class="el" href="_camera_8h_source.html">Camera.h</a></li>
+</ul>
+</div>
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Dec 29 11:38:02 2009 for ECRobot C++ API for LEGO MINDSTORMS NXT by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>