Files
NXT-Dev-Kits/LEGO MINDSTORMS NXT Software Developer Kit/fantom/documentation/html/iNXT_8h-source.html

399 lines
22 KiB
HTML
Executable File

<html><body>
<!-- Generated by Doxygen 1.2.11.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center>
<hr><h1>iNXT.h</h1><a href="iNXT_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
00005 <font class="comment">/*</font>
00006 <font class="comment"> © Copyright 2005-2006,</font>
00007 <font class="comment"> National Instruments Corporation.</font>
00008 <font class="comment"> All rights reserved.</font>
00009 <font class="comment"></font>
00010 <font class="comment"> File: iNXT.h</font>
00011 <font class="comment"> Originated: 12 May 2005</font>
00012 <font class="comment">*/</font>
00013
00014 <font class="preprocessor">#ifndef ___fantom_iNXT_h___</font>
00015 <font class="preprocessor"></font><font class="preprocessor">#define ___fantom_iNXT_h___</font>
00016 <font class="preprocessor"></font>
00017
00018 <font class="comment">// includes...</font>
00019
00020 <font class="preprocessor">#ifndef ___fantom_platform_h___</font>
00021 <font class="preprocessor"></font><font class="preprocessor"> #include "platform.h"</font>
00022 <font class="preprocessor">#endif</font>
00023 <font class="preprocessor"></font>
00024 <font class="preprocessor">#ifndef ___fantom_iFile_h___</font>
00025 <font class="preprocessor"></font><font class="preprocessor"> #include "<a class="code" href="iFile_8h.html">iFile.h</a>"</font>
00026 <font class="preprocessor">#endif</font>
00027 <font class="preprocessor"></font>
00028 <font class="preprocessor">#ifndef ___fantom_iFileIterator_h___</font>
00029 <font class="preprocessor"></font><font class="preprocessor"> #include "<a class="code" href="iFileIterator_8h.html">iFileIterator.h</a>"</font>
00030 <font class="preprocessor">#endif</font>
00031 <font class="preprocessor"></font>
00032 <font class="preprocessor">#ifndef ___fantom_iModule_h___</font>
00033 <font class="preprocessor"></font><font class="preprocessor"> #include "<a class="code" href="iModule_8h.html">iModule.h</a>"</font>
00034 <font class="preprocessor">#endif</font>
00035 <font class="preprocessor"></font>
00036 <font class="preprocessor">#ifndef ___fantom_iModuleIterator_h___</font>
00037 <font class="preprocessor"></font><font class="preprocessor"> #include "<a class="code" href="iModuleIterator_8h.html">iModuleIterator.h</a>"</font>
00038 <font class="preprocessor">#endif</font>
00039 <font class="preprocessor"></font>
00040 <font class="preprocessor">#ifndef ___fantom_iNXTIterator_h___</font>
00041 <font class="preprocessor"></font><font class="preprocessor"> #include "<a class="code" href="iNXTIterator_8h.html">iNXTIterator.h</a>"</font>
00042 <font class="preprocessor">#endif</font>
00043 <font class="preprocessor"></font>
00044 <font class="preprocessor">#ifndef ___fantom_tStatus_h___</font>
00045 <font class="preprocessor"></font><font class="preprocessor"> #include "<a class="code" href="tStatus_8h.html">tStatus.h</a>"</font>
00046 <font class="preprocessor">#endif</font>
00047 <font class="preprocessor"></font>
00048 <font class="comment">// defines...</font>
00049
00050
00051 <font class="keyword">namespace </font>nFANTOM100
00052 {
00053 <font class="comment">// forward declarations...</font>
00054
00055 <font class="comment">// typedefs...</font>
00056
00057 <font class="comment">// classes...</font>
00058
00063 <font class="keyword">class </font>iNXT
00064 {
00065 <font class="comment">// methods</font>
00066 <font class="keyword">protected</font>:
00067
00069 <font class="keyword">virtual</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#b0">~iNXT</a>() = 0;
00070
00071 <font class="keyword">public</font>:
00072
<a name="l00074"></a><a class="code" href="classnFANTOM100_1_1iNXT.html#s2">00074</a> <font class="keyword">enum</font> tBuffer
00075 {
00076 <font class="comment">// The buffer associated with the standard port.</font>
00077 kBufferStandard,
00078
00079 <font class="comment">// The buffer associated with the high-speed port.</font>
00080 kBufferHighSpeed
00081 };
00082
00084
00096 <font class="keyword">virtual</font> iFile* <a class="code" href="classnFANTOM100_1_1iNXT.html#a0">createFile</a>( ViConstString fileName, tStatus&amp; status ) = 0;
00097
00098
00100
00107 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a1">destroyFile</a>( iFile* filePtr ) = 0;
00108
00109
00111
00128 <font class="keyword">virtual</font> iFileIterator* <a class="code" href="classnFANTOM100_1_1iNXT.html#a2">createFileIterator</a>( ViConstString fileNamePattern,
00129 tStatus&amp; status ) = 0;
00130
00131
00133
00136 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a3">destroyFileIterator</a>( iFileIterator* fileIteratorPtr ) = 0;
00137
00139
00153 <font class="keyword">virtual</font> iModule* <a class="code" href="classnFANTOM100_1_1iNXT.html#a4">createModule</a>( ViConstString moduleName, ViUInt32 moduleID,
00154 ViUInt32 moduleSizeInBytes, ViUInt32 ioMapSizeInBytes, tStatus&amp; status ) = 0;
00155
00157
00164 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a5">destroyModule</a>( iModule* modulePtr ) = 0;
00165
00166
00168
00181 <font class="keyword">virtual</font> iModuleIterator* <a class="code" href="classnFANTOM100_1_1iNXT.html#a6">createModuleIterator</a>( ViConstString moduleNamePattern,
00182 tStatus&amp; status ) = 0;
00183
00184
00186
00189 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a7">destroyModuleIterator</a>( iModuleIterator* moduleIteratorPtr ) = 0;
00190
00192
00209 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a8">getFirmwareVersion</a>( ViUInt8&amp; protocolVersionMajorRef,
00210 ViUInt8&amp; protocolVersionMinorRef, ViUInt8&amp; firmwareVersionMajorRef,
00211 ViUInt8&amp; firmwareVersionMinorRef, tStatus&amp; status ) = 0;
00212
00213
00215
00240 <font class="keyword">virtual</font> ViUInt32 <a class="code" href="classnFANTOM100_1_1iNXT.html#a9">sendDirectCommand</a>( ViBoolean requireResponse, <font class="keyword">const</font> ViByte commandBufferPtr[],
00241 ViUInt32 commandBufferSizeInBytes, ViPBuf responseBufferPtr,
00242 ViUInt32 responseBufferSizeInBytes, tStatus&amp; status ) = 0;
00243
00245
00252 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a10">downloadFirmware</a>( <font class="keyword">const</font> ViByte firmwareBufferPtr[],
00253 ViUInt32 firmwareBufferSizeInBytes, tStatus&amp; status ) = 0;
00254
00255
00257
00269 <font class="keyword">virtual</font> ViUInt32 <a class="code" href="classnFANTOM100_1_1iNXT.html#a11">write</a>( <font class="keyword">const</font> ViByte bufferPtr[], ViUInt32 numberOfBytes,
00270 tStatus&amp; status ) = 0;
00271
00273
00284 <font class="keyword">virtual</font> ViUInt32 read ( ViPBuf bufferPtr, ViUInt32 numberOfBytes, tStatus&amp; status ) = 0;
00285
00287
00293 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a13">bootIntoFirmwareDownloadMode</a>( tStatus&amp; status ) = 0;
00294
00296
00304 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a14">setName</a>( ViConstString newName, tStatus&amp; status ) = 0;
00305
00307
00324 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a15">getDeviceInfo</a>( ViChar name[], ViByte bluetoothAddress[],
00325 ViUInt8 signalStrength[], ViUInt32 &amp;availableFlash, tStatus&amp; status ) = 0;
00326
00328
00334 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a16">eraseUserFlash</a>( tStatus&amp; status ) = 0;
00335
00337 <font class="comment">/*</font>
00338 <font class="comment"> The data buffer is not polled if the specified status is fatal.</font>
00339 <font class="comment"></font>
00340 <font class="comment"> \param bufferSelector The buffer from which to read.</font>
00341 <font class="comment"> \param status Status chaining object.</font>
00342 <font class="comment"> \return The number of bytes in the buffer available to be read.</font>
00343 <font class="comment"> */</font>
00344 <font class="keyword">virtual</font> ViUInt32 <a class="code" href="classnFANTOM100_1_1iNXT.html#a17">pollAvailableLength</a>( tBuffer bufferSelector, tStatus&amp; status ) = 0;
00345
00347
00356 <font class="keyword">virtual</font> ViUInt32 <a class="code" href="classnFANTOM100_1_1iNXT.html#a18">readBufferData</a>( ViPBuf dataBuffer, tBuffer bufferSelector,
00357 ViUInt32 numberOfBytesToRead, tStatus&amp; status ) = 0;
00358
00360 <font class="comment">/*</font>
00361 <font class="comment"> An example resource string could look like the one of the following:</font>
00362 <font class="comment"> BTH::LEGOBrick::00:16:53:04:05:06::5</font>
00363 <font class="comment"> BTH::LEGOBrick::00:16:53:04:05:06::1</font>
00364 <font class="comment"> BTH::Brick2::00:16:53:44:FF:66</font>
00365 <font class="comment"> USB0::0x0694::0x0002::0016535127BA::RAW</font>
00366 <font class="comment"> </font>
00367 <font class="comment"> \param resourceString Populated with the resource string. The resource string must</font>
00368 <font class="comment"> have a capacity of 256 bytes.</font>
00369 <font class="comment"> \param status Status chaining object.</font>
00370 <font class="comment"> */</font>
00371 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a19">getResourceString</a>( ViChar resourceString[], tStatus&amp; status ) = 0;
00372
00374 <font class="comment">/*</font>
00375 <font class="comment"> \param status Status chaining object.</font>
00376 <font class="comment"> */</font>
00377 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#a20">bluetoothFactoryReset</a>( tStatus&amp; status ) = 0;
00378
00380
00393 nFANTOM100_kExport <font class="keyword">static</font> iNXT* _VI_FUNCC <a class="code" href="classnFANTOM100_1_1iNXT.html#d0">createNXT</a>( ViConstString resourceString,
00394 tStatus&amp; status, ViBoolean checkFirmwareVersion = <font class="keyword">true</font> );
00395
00397
00400 nFANTOM100_kExport <font class="keyword">static</font> <font class="keywordtype">void</font> _VI_FUNCC <a class="code" href="classnFANTOM100_1_1iNXT.html#d1">destroyNXT</a>( iNXT* nxtPtr );
00401
00403
00417 nFANTOM100_kExport <font class="keyword">static</font> iNXTIterator* _VI_FUNCC <a class="code" href="classnFANTOM100_1_1iNXT.html#d2">createNXTIterator</a>(
00418 ViBoolean searchBluetooth, ViUInt32 bluetoothSearchTimeoutInSeconds,
00419 tStatus&amp; status );
00420
00422 <font class="comment">/*</font>
00423 <font class="comment"> \param iterPtr A pointer to the iNXTIterator object to destroy.</font>
00424 <font class="comment"> */</font>
00425 nFANTOM100_kExport <font class="keyword">static</font> <font class="keywordtype">void</font> _VI_FUNCC <a class="code" href="classnFANTOM100_1_1iNXT.html#d3">destroyNXTIterator</a>( iNXTIterator* iterPtr );
00426
00428
00444 nFANTOM100_kExport <font class="keyword">static</font> <font class="keywordtype">void</font> _VI_FUNCC <a class="code" href="classnFANTOM100_1_1iNXT.html#d4">pairBluetooth</a>( ViConstString resourceName,
00445 ViConstString passkey, ViChar pairedResourceName[], tStatus&amp; status );
00446
00448
00457 nFANTOM100_kExport <font class="keyword">static</font> <font class="keywordtype">void</font> _VI_FUNCC <a class="code" href="classnFANTOM100_1_1iNXT.html#d5">unpairBluetooth</a>( ViConstString resourceName,
00458 tStatus&amp; status );
00459
00461
00470 nFANTOM100_kExport <font class="keyword">static</font> ViBoolean _VI_FUNCC <a class="code" href="classnFANTOM100_1_1iNXT.html#d6">isPaired</a>( ViConstString resourceName,
00471 tStatus&amp; status );
00472
00474
00481 nFANTOM100_kExport <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classnFANTOM100_1_1iNXT.html#d7">findDeviceInFirmwareDownloadMode</a>( ViChar resourceName[],
00482 tStatus&amp; status );
00483
00484
00485 <font class="keyword">private</font>:
00486
00487 };
00488
00489 <font class="comment">// constants...</font>
00490
00491 } <font class="comment">// namespace nFANTOM100</font>
00492
00493
00494 <font class="comment">// declarations for globally-scoped globals...</font>
00495
00496 <font class="comment">// typedefs...</font>
00497 <font class="keyword">typedef</font> ViObject nFANTOM100_iNXT;
00498
00499 <font class="comment">// prototypes...</font>
00500 <font class="keyword">extern</font> <font class="stringliteral">"C"</font>
00501 {
00502
00503 nFANTOM100_kExport nFANTOM100_iNXTIterator _VI_FUNCC nFANTOM100_createNXTIterator(
00504 ViBoolean searchBluetooth,
00505 ViUInt32 bluetoothSearchTimeoutInSeconds,
00506 ViStatus* status );
00507
00508 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_destroyNXTIterator(
00509 nFANTOM100_iNXTIterator iterPtr,
00510 ViStatus* status );
00511
00512 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_pairBluetooth(
00513 ViConstString resourceName,
00514 ViConstString passkey,
00515 ViChar pairedResourceName[],
00516 ViStatus* status );
00517
00518 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_unpairBluetooth(
00519 ViConstString resourceName,
00520 ViStatus* status );
00521
00522 nFANTOM100_kExport ViBoolean _VI_FUNCC nFANTOM100_isPaired(
00523 ViConstString resourceName,
00524 ViStatus* status );
00525
00526 nFANTOM100_kExport nFANTOM100_iNXT _VI_FUNCC nFANTOM100_createNXT(
00527 ViConstString resourceString,
00528 ViStatus* status,
00529 ViBoolean checkFirmwareVersion );
00530
00531 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_destroyNXT(
00532 nFANTOM100_iNXT nxtPtr,
00533 ViStatus* status );
00534
00535 nFANTOM100_kExport nFANTOM100_iFile _VI_FUNCC nFANTOM100_iNXT_createFile(
00536 nFANTOM100_iNXT nxtPtr,
00537 ViConstString fileName,
00538 ViStatus* status );
00539
00540 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_destroyFile(
00541 nFANTOM100_iNXT nxtPtr,
00542 nFANTOM100_iFile filePtr,
00543 ViStatus* status );
00544
00545 nFANTOM100_kExport nFANTOM100_iFileIterator _VI_FUNCC nFANTOM100_iNXT_createFileIterator(
00546 nFANTOM100_iNXT nxtPtr,
00547 ViConstString fileNamePattern,
00548 ViStatus* status );
00549
00550 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_destroyFileIterator(
00551 nFANTOM100_iNXT nxtPtr,
00552 nFANTOM100_iFileIterator fileIteratorPtr,
00553 ViStatus* status );
00554
00555 nFANTOM100_kExport nFANTOM100_iModule _VI_FUNCC nFANTOM100_iNXT_createModule(
00556 nFANTOM100_iNXT nxtPtr,
00557 ViConstString moduleName,
00558 ViUInt32 moduleID,
00559 ViUInt32 moduleSize,
00560 ViUInt32 ioMapSizeInBytes,
00561 ViStatus* status );
00562
00563 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_destroyModule(
00564 nFANTOM100_iNXT nxtPtr,
00565 nFANTOM100_iModule modulePtr,
00566 ViStatus* status );
00567
00568 nFANTOM100_kExport nFANTOM100_iModuleIterator _VI_FUNCC nFANTOM100_iNXT_createModuleIterator(
00569 nFANTOM100_iNXT nxtPtr,
00570 ViConstString moduleNamePattern,
00571 ViStatus* status );
00572
00573 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_destroyModuleIterator(
00574 nFANTOM100_iNXT nxtPtr,
00575 nFANTOM100_iModuleIterator moduleIteratorPtr,
00576 ViStatus* status );
00577
00578 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_getFirmwareVersion(
00579 nFANTOM100_iNXT nxtPtr,
00580 ViUInt8* protocolVersionMajorPtr,
00581 ViUInt8* protocolVersionMinorPtr,
00582 ViUInt8* firmwareVersionMajorPtr,
00583 ViUInt8* firmwareVersionMinorPtr,
00584 ViStatus* status );
00585
00586 nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_sendDirectCommand(
00587 nFANTOM100_iNXT nxtPtr,
00588 ViBoolean requireResponse,
00589 <font class="keyword">const</font> ViByte commandBufferPtr[],
00590 ViUInt32 commandBufferSizeInBytes,
00591 ViPBuf responseBufferPtr,
00592 ViUInt32 responseBufferSizeInBytes,
00593 ViStatus* status );
00594
00595 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_findDeviceInFirmwareDownloadMode(
00596 ViChar resourceString[],
00597 ViStatus* status );
00598
00599 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_downloadFirmware(
00600 nFANTOM100_iNXT nxtPtr,
00601 <font class="keyword">const</font> ViByte firmwareBufferPtr[],
00602 ViUInt32 firmwareBufferSize,
00603 ViStatus* status );
00604
00605 nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_write(
00606 nFANTOM100_iNXT nxtPtr,
00607 <font class="keyword">const</font> ViByte bufferPtr[],
00608 ViUInt32 numberOfBytes,
00609 ViStatus* status );
00610
00611 nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_read(
00612 nFANTOM100_iNXT nxtPtr,
00613 ViPBuf bufferPtr,
00614 ViUInt32 numberOfBytes,
00615 ViStatus* status );
00616
00617 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_bootIntoFirmwareDownloadMode(
00618 ViConstString resouceName,
00619 ViStatus* status );
00620
00621 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_setName(
00622 nFANTOM100_iNXT nxtPtr,
00623 ViConstString newName,
00624 ViStatus* status );
00625
00626 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_getDeviceInfo(
00627 nFANTOM100_iNXT nxtPtr,
00628 ViChar name[],
00629 ViByte bluetoothAddress[],
00630 ViUInt8 signalStrength[],
00631 ViUInt32* availableFlash,
00632 ViStatus* status );
00633
00634 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_eraseUserFlash(
00635 nFANTOM100_iNXT nxtPtr,
00636 ViStatus* status );
00637
00638 nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_pollAvailableLength(
00639 nFANTOM100_iNXT nxtPtr,
00640 ViUInt32 bufferIndex,
00641 ViStatus* status );
00642
00643 nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_readBufferData(
00644 nFANTOM100_iNXT nxtPtr,
00645 ViPBuf dataBuffer,
00646 ViUInt32 bufferIndex,
00647 ViUInt32 numberOfBytesToRead,
00648 ViStatus* status );
00649
00650 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_getResourceString(
00651 nFANTOM100_iNXT nxtPtr,
00652 ViChar resourceString[],
00653 ViStatus* status );
00654
00655 nFANTOM100_kExport <font class="keywordtype">void</font> _VI_FUNCC nFANTOM100_iNXT_bluetoothFactoryReset(
00656 nFANTOM100_iNXT nxtPtr,
00657 ViStatus* status );
00658
00659
00660 } <font class="comment">// extern "C"</font>
00661
00662
00663 <font class="comment">// inline functions and function macros...</font>
00664
00665
00666 <font class="preprocessor">#endif // ___fantom_iNXT_h___</font>
</font></pre></div><p>
&copy; Copyright 2005-2006, National Instruments Corporation. All rights reserved.
</p>
</body></html>