--- /dev/null
+<!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::CompassSensor 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 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 List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+ <div class="navpath"><b>ecrobot</b>::<a class="el" href="classecrobot_1_1_compass_sensor.html">CompassSensor</a>
+ </div>
+</div>
+<div class="contents">
+<h1>ecrobot::CompassSensor Class Reference</h1><!-- doxytag: class="ecrobot::CompassSensor" -->
+<p>HiTechnic Compass sensor (<a href="http://www.hitechnic.com/">http://www.hitechnic.com/</a>) class.
+<a href="#_details">More...</a></p>
+
+<p><code>#include <<a class="el" href="_compass_sensor_8h_source.html">CompassSensor.h</a>></code></p>
+
+<p><a href="classecrobot_1_1_compass_sensor-members.html">List of all members.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_compass_sensor.html#a5a293125b2145c2584d79a3299f71afb">CompassSensor</a> (<a class="el" href="_port_8h.html#a8d17f8fabb486d5815d626610983e82d">ePortS</a> port)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor (activate I2C). <a href="#a5a293125b2145c2584d79a3299f71afb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">S16 </td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_compass_sensor.html#a080cad2c657331b82255369b87192471">getHeading</a> (void) const </td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Get heading data. <a href="#a080cad2c657331b82255369b87192471"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_compass_sensor.html#a48aff95d2c93ba37871664c274082f66">get</a> (U8 data[5]) const </td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Get raw I2C data. <a href="#a48aff95d2c93ba37871664c274082f66"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_compass_sensor.html#a77c71740e3e25e5539f241a0013c7092">beginCalibration</a> (void)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Start sensor calibration. <a href="#a77c71740e3e25e5539f241a0013c7092"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classecrobot_1_1_compass_sensor.html#a4c2c81a573ac44a545c2feac52f457f4">endCalibration</a> (void)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">End sensor calibration. <a href="#a4c2c81a573ac44a545c2feac52f457f4"></a><br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>HiTechnic Compass sensor (<a href="http://www.hitechnic.com/">http://www.hitechnic.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/>
+ void user_1ms_isr_type2(void)<br/>
+ {<br/>
+ 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/>
+ }<br/>
+ <br/>
+ + Define EventSleepI2C and EventSleep Events in user oil file.<br/>
+ EVENT EventSleepI2C<br/>
+ {<br/>
+ MASK = AUTO;<br/>
+ };<br/>
+<br/>
+ EVENT EventSleep<br/>
+ {<br/>
+ MASK = AUTO;<br/>
+ };<br/>
+<br/>
+ TASK TaskMain<br/>
+ {<br/>
+ AUTOSTART = TRUE<br/>
+ {<br/>
+ APPMODE = appmode1;<br/>
+ };<br/>
+ PRIORITY = 1;<br/>
+ ACTIVATION = 1;<br/>
+ SCHEDULE = FULL;<br/>
+ STACKSIZE = 512;<br/>
+ EVENT = EventSleepI2C; <- Here it is<br/>
+ EVENT = EventSleep; <- Here it is<br/>
+ };<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>Constructor & Destructor Documentation</h2>
+<a class="anchor" id="a5a293125b2145c2584d79a3299f71afb"></a><!-- doxytag: member="ecrobot::CompassSensor::CompassSensor" ref="a5a293125b2145c2584d79a3299f71afb" args="(ePortS port)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ecrobot::CompassSensor::CompassSensor </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_port_8h.html#a8d17f8fabb486d5815d626610983e82d">ePortS</a> </td>
+ <td class="paramname"> <em>port</em></td>
+ <td> ) </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> </td><td>Compass sensor 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="a77c71740e3e25e5539f241a0013c7092"></a><!-- doxytag: member="ecrobot::CompassSensor::beginCalibration" ref="a77c71740e3e25e5539f241a0013c7092" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void ecrobot::CompassSensor::beginCalibration </td>
+ <td>(</td>
+ <td class="paramtype">void </td>
+ <td class="paramname"></td>
+ <td> ) </td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Start sensor calibration. </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> </td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>- </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a4c2c81a573ac44a545c2feac52f457f4"></a><!-- doxytag: member="ecrobot::CompassSensor::endCalibration" ref="a4c2c81a573ac44a545c2feac52f457f4" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool ecrobot::CompassSensor::endCalibration </td>
+ <td>(</td>
+ <td class="paramtype">void </td>
+ <td class="paramname"></td>
+ <td> ) </td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>End sensor calibration. </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> </td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>true: calibration was successful<br/>
+ false: calibration was failed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a48aff95d2c93ba37871664c274082f66"></a><!-- doxytag: member="ecrobot::CompassSensor::get" ref="a48aff95d2c93ba37871664c274082f66" args="(U8 data[5]) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void ecrobot::CompassSensor::get </td>
+ <td>(</td>
+ <td class="paramtype">U8 </td>
+ <td class="paramname"> <em>data</em>[5]</td>
+ <td> ) </td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Get raw I2C data. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>Data representation from the sensor, per Hi-Technic's documentation:<br/>
+ data[0]: mode control<br/>
+ data[1]: heading upper 8 bits<br/>
+ data[2]: heading lower 1 bit<br/>
+ data[3]: heading lower 8 bits<br/>
+ data[4]: heading upper 1 bit </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>- </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a080cad2c657331b82255369b87192471"></a><!-- doxytag: member="ecrobot::CompassSensor::getHeading" ref="a080cad2c657331b82255369b87192471" args="(void) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">S16 ecrobot::CompassSensor::getHeading </td>
+ <td>(</td>
+ <td class="paramtype">void </td>
+ <td class="paramname"></td>
+ <td> ) </td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Get heading data. </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> </td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Heading data </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>device/<a class="el" href="_compass_sensor_8h_source.html">CompassSensor.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
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
+</body>
+</html>