<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://rxtx.qbang.org/wiki/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Rxtx - User contributions [en]</title>
		<link>http://rxtx.qbang.org/wiki/index.php/Special:Contributions/Ajmas</link>
		<description>From Rxtx</description>
		<language>en</language>
		<generator>MediaWiki 1.15.4</generator>
		<lastBuildDate>Wed, 10 Jun 2026 05:01:16 GMT</lastBuildDate>
		<item>
			<title>Development</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Development</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for content regarding programming rxtx and writing programs that use rxtx.  Feel free to add your own content and links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Retrieving Source Code]] - How to get the source code from CVS&lt;br /&gt;
*[[Development/Source Code|Source Code]] - explanation of the source code and conventions in use. &lt;br /&gt;
*[http://users.frii.com/jarvi/rxtx/doc/index.html gnu.io JavaDoc]&lt;br /&gt;
*[http://java.sun.com/products/javacomm/reference/api/index.html javax.comm JavaDoc] - provided as a point of comparison.&lt;br /&gt;
*[[Installers]]&lt;br /&gt;
*[[WebStart]]&lt;br /&gt;
*[[Examples]]&lt;/div&gt;</description>
			<pubDate>Fri, 25 Feb 2011 19:28:23 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Development</comments>		</item>
		<item>
			<title>Development/Source Code</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Development/Source_Code</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Created page with 'The latest source code is available from the repository and instructions on how to build and install are documented on the 'Installation' page.  Cu…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The latest source code is available from the [[Retrieving_Source_Code|repository]] and instructions on how to build and install are documented on the '[[Installation]]' page.&lt;br /&gt;
&lt;br /&gt;
Current minimum JVM targeted is Java 1.4, so this means no use of generics, amongst other things. The interface between Java and the native library is done using JNI.&lt;br /&gt;
&lt;br /&gt;
Below is an explanation of certain folders in the source tree:&lt;br /&gt;
&lt;br /&gt;
 MACOSX_IDE/     - XCode projects for building on MacOS X&lt;br /&gt;
 CNI/            -&lt;br /&gt;
 ReWrite2010/    - source code [[Development/ReWrite2010‎|Rewrite]]&lt;br /&gt;
 WinCE/          -&lt;br /&gt;
 contrib/        -&lt;br /&gt;
 debian/         - &lt;br /&gt;
 src/            - current source code: Java &amp;amp; C&lt;br /&gt;
&lt;br /&gt;
[[category:Development]]&lt;/div&gt;</description>
			<pubDate>Fri, 25 Feb 2011 19:25:18 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Development/Source_Code</comments>		</item>
		<item>
			<title>Development/ReWrite2010</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Development/ReWrite2010</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The intended objectives and architecture are documented in the RxTX_Rewrite.pdf document in the ReWrite2010 of the in the source repository. To summarise:&lt;br /&gt;
&lt;br /&gt;
Provide a reference implementation of the javax.comm package using open source code. The existing version 2.x source code will be completely re-written.&lt;br /&gt;
&lt;br /&gt;
Design Objectives:&lt;br /&gt;
* Reference implementation – strictly adheres to the javax.comm API.&lt;br /&gt;
* Small footprint - Java and C code should strive to be as small as possible.&lt;br /&gt;
* Good performance – Java code should provide the shortest path possible to the native code. Native code should provide the shortest path possible to the underlying system.&lt;br /&gt;
* Fault tolerant - Java and C code should handle I/O errors gracefully, providing good error recovery.&lt;br /&gt;
* Proven – Java unit tests should achieve 100% code coverage.&lt;br /&gt;
* Compatible – the rewrite should be a drop-in replacement for the javax.comm library.&lt;br /&gt;
&lt;br /&gt;
The rewrite was discussed in a [http://mailman.qbang.org/pipermail/rxtx/2010-September/8084235.html mailing-list thread].&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
To do...&lt;br /&gt;
&lt;br /&gt;
== What is left to be done and known issues ==&lt;br /&gt;
&lt;br /&gt;
* Java Unit Tests&lt;br /&gt;
* Native code for MacOS X and Unix systems&lt;br /&gt;
&lt;br /&gt;
== Building the code ==&lt;br /&gt;
&lt;br /&gt;
To do...&lt;br /&gt;
&lt;br /&gt;
[[category:development]]&lt;/div&gt;</description>
			<pubDate>Fri, 25 Feb 2011 16:16:58 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Development/ReWrite2010</comments>		</item>
		<item>
			<title>Development/ReWrite2010</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Development/ReWrite2010</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The intended objectives and architecture are documented in the RxTX_Rewrite.pdf document in the ReWrite2010 of the in the source repository. To summarise:&lt;br /&gt;
&lt;br /&gt;
Provide a reference implementation of the javax.comm package using open source code. The existing version 2.x source code will be completely re-written.&lt;br /&gt;
&lt;br /&gt;
Design Objectives:&lt;br /&gt;
* Reference implementation – strictly adheres to the javax.comm API.&lt;br /&gt;
* Small footprint - Java and C code should strive to be as small as possible.&lt;br /&gt;
* Good performance – Java code should provide the shortest path possible to the native code. Native code should provide the shortest path possible to the underlying system.&lt;br /&gt;
* Fault tolerant - Java and C code should handle I/O errors gracefully, providing good error recovery.&lt;br /&gt;
* Proven – Java unit tests should achieve 100% code coverage.&lt;br /&gt;
* Compatible – the rewrite should be a drop-in replacement for the javax.comm library.&lt;br /&gt;
&lt;br /&gt;
The rewrite was discussed in a [http://mailman.qbang.org/pipermail/rxtx/2010-September/8084235.html mailing-list thread].&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is left to be done and known issues ==&lt;br /&gt;
&lt;br /&gt;
* Java Unit Tests&lt;br /&gt;
* Native code for MacOS X and Unix systems&lt;br /&gt;
&lt;br /&gt;
== Building the code ==&lt;br /&gt;
&lt;br /&gt;
[[category:development]]&lt;/div&gt;</description>
			<pubDate>Fri, 25 Feb 2011 16:16:04 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Development/ReWrite2010</comments>		</item>
		<item>
			<title>Download</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Download</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;corrected file labelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Distributables ==&lt;br /&gt;
RXTX 2.1 Is the main development branch for RXTX. The namespace used is gnu.io.*. Unless you have any specific reasons, this is the recommended download. If you need to be comptable with javax.comm.* then download RXTX 2.0, but note that not much development effort is provided for this branch so you will be missing out on all the fixes that the main branch is getting.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that there was a change in the way things were distributed. 2.1 includes a binary package that contains the binaries for the various platforms and a source package. 2.0 on the other hand is a bit of a muddle. Things change, things improve.&lt;br /&gt;
&lt;br /&gt;
Binary version &amp;lt;strike&amp;gt;rxtx 2.0-7pre1 (stable)&amp;lt;/strike&amp;gt; is incomplete, at least for Windows. Use newer binary version such as &amp;lt;strong&amp;gt;rxtx 2.1-7r2 (stable)&amp;lt;/strong&amp;gt;, which does work on Windows.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-  style=&amp;quot;background-color: #ddddff&amp;quot;&lt;br /&gt;
! Release !! Binary !! Source &lt;br /&gt;
|-&lt;br /&gt;
| rxtx 2.1-7r2 (stable)&lt;br /&gt;
| [http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip rxtx-2.1-7-bins-r2.zip]&lt;br /&gt;
| [http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7r2.zip rxtx-2.1-7r2.zip]&lt;br /&gt;
|-&lt;br /&gt;
| rxtx 2.0-7pre2 (stable)&lt;br /&gt;
| [http://rxtx.qbang.org/pub/rxtx/rxtx-2.0-7pre1-i686-pc-linux-gnu.tar.gz Linux/x86] [http://rxtx.qbang.org/pub/rxtx/rxtx-2.0-7pre1-i386-pc-mingw32.zip Win32 (incomplete)]&lt;br /&gt;
| [http://rxtx.qbang.org/pub/rxtx/rxtx-2.0-7pre1.tar.gz source]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RXTX 2.2 will replace RXTX 2.1 once it is stable.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-  style=&amp;quot;background-color: #ddddff&amp;quot;&lt;br /&gt;
! Release !! Binary !! Source &lt;br /&gt;
|-&lt;br /&gt;
| rxtx 2.2pre2 (prerelease)&lt;br /&gt;
| [http://rxtx.qbang.org/pub/rxtx/rxtx-2.2pre2-bins.zip rxtx-2.2pre2-bins.zip]&lt;br /&gt;
| [http://rxtx.qbang.org/pub/rxtx/rxtx-2.2pre2.zip rxtx-2.2pre2.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
TODO: The 2.2pre2 bins contain the 2.2pre1 jar file and the 2.2pre2 native lib which causes a mismatch warning&lt;br /&gt;
&lt;br /&gt;
Other releases can be found in the [http://rxtx.qbang.org/pub/rxtx/ archive] and you can also check the change history in the [[change log]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-  style=&amp;quot;background-color: #ddddff&amp;quot;&lt;br /&gt;
!  UN-ZIP Procedure&lt;br /&gt;
|-&lt;br /&gt;
|cp/mv the download rxtx-[].zip  to rxtx-[].jar.gz;&lt;br /&gt;
|gunzip rxtx-[].jar.gz;&lt;br /&gt;
|jar -xf rxtx-[].jar;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ToyBox Distributables ==&lt;br /&gt;
&lt;br /&gt;
The ToyBox has about 35 platforms (and growing). If you have a toy (even an s390), we have the ToyBox. Find the OS, Libc, and CPU You are looking for. Please report any problems to the mail-list. Unix users can extract zip files with jar -xf foo.zip. It works fine and on all platforms we support. Distributables can be found in the [http://rxtx.qbang.org//ToyBox ToyBox directory].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Source Repository ==&lt;br /&gt;
&lt;br /&gt;
If you wish to get the latest code from CVS see [[Retrieving Source Code]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== x64 Binaries ==&lt;br /&gt;
&lt;br /&gt;
Should you wish to use RxTx on a x64 based computer, note that the downloads on this page will not work, for x64 compiled binaries go to: [http://www.cloudhopper.com/opensource/rxtx/ Cloudhopper RxTx page]. Binaries have been tested successfully on Windows Server 2008 R2, although they are slightly outdated (december 2008).&lt;/div&gt;</description>
			<pubDate>Sat, 19 Feb 2011 02:22:52 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Download</comments>		</item>
		<item>
			<title>FAQ</title>
			<link>http://rxtx.qbang.org/wiki/index.php/FAQ</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;/* Is there a way to access seria and parallel port with standard Java API ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== What is RXTX? ===&lt;br /&gt;
&lt;br /&gt;
RXTX is a Java library, using a native implementation (via JNI), providing serial and parallel communication for the Java Development Toolkit (JDK). All deliverables are under the GNU LGPL license. It is based on the specification for Sun's [http://java.sun.com/products/javacomm/index.jsp Java Communications API], though while many of the class descriptions are the same the package used it not, since gnu.io is used instead. A certain amount of compatibility is intended with API, though this project should be considered as a fork and therefore compatible in spirit, but not in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Do you have a Mailing List? ===&lt;br /&gt;
&lt;br /&gt;
Yes, see the [[mailing-list]] page for details.&lt;br /&gt;
&lt;br /&gt;
=== Where can I find information about how to write apps using RXTX? ===&lt;br /&gt;
&lt;br /&gt;
Take a look at the [[Examples]]&lt;br /&gt;
&lt;br /&gt;
=== What does RXTX install where? ===&lt;br /&gt;
&lt;br /&gt;
The RXTX installation procedures installs files directly underneath $JAVA_HOME, i.e. directly into the JDK distribution.&lt;br /&gt;
&lt;br /&gt;
In case you are using the Sun JDK:&lt;br /&gt;
&lt;br /&gt;
The 'gnu.io' Java .class files are all packed into:&lt;br /&gt;
&lt;br /&gt;
   $JAVA_HOME/jre/lib/ext/RXTXcomm.jar&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Library_(computer_science)#Shared_library Shared Object] files necessary to access OS-level functionality can be found underneath: &lt;br /&gt;
&lt;br /&gt;
   $JAVA_HOME/jre/lib/&amp;lt;architecture&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
and they are:&lt;br /&gt;
&lt;br /&gt;
  librxtxI2C-2.1-7.so&lt;br /&gt;
  librxtxI2C.la&lt;br /&gt;
  librxtxI2C.so -&amp;gt; librxtxI2C-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
  librxtxParallel-2.1-7.so&lt;br /&gt;
  librxtxParallel.la&lt;br /&gt;
  librxtxParallel.so -&amp;gt; librxtxParallel-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
  librxtxRaw-2.1-7.so&lt;br /&gt;
  librxtxRaw.la&lt;br /&gt;
  librxtxRaw.so -&amp;gt; librxtxRaw-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
  librxtxRS485-2.1-7.so&lt;br /&gt;
  librxtxRS485.la&lt;br /&gt;
  librxtxRS485.so -&amp;gt; librxtxRS485-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
  librxtxSerial-2.1-7.so&lt;br /&gt;
  librxtxSerial.la&lt;br /&gt;
  librxtxSerial.so -&amp;gt; librxtxSerial-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also see the '[[installation]]' page for more information.&lt;br /&gt;
&lt;br /&gt;
=== Is there a Change Log? ===&lt;br /&gt;
&lt;br /&gt;
Yes, see the '[[Change Log]]' page.&lt;br /&gt;
&lt;br /&gt;
=== What License does RXTX use? ===&lt;br /&gt;
&lt;br /&gt;
RXTX is license under the LGPL with an exception for linking over controlled interfaces, a copy of which can be found in the '[[License]]' page.  The exception allows people to use RXTX as a service plugin with Sun's CommAPI: 'A Controlled Interface.'&lt;br /&gt;
&lt;br /&gt;
=== What Platforms does RXTX run on? ===&lt;br /&gt;
&lt;br /&gt;
See the page entitled '[[Porting]]', for more information.&lt;br /&gt;
&lt;br /&gt;
== Problems and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== On MacOS X I get a 'PortInUseException', even though it isn't? ===&lt;br /&gt;
&lt;br /&gt;
Versions prior to 2.1-8 use lock files, which is not the MacOS X way of doing things, and therefore has issues. For this reason make sure that you have version 2.1-8 or higher, which makes use of [http://developer.apple.com/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/ I/O Kit]. At this point in time 2.1-8 is only availble from CVS, in source form. See the section [[Retrieving Source Code]], on getting the latest code - be sure to get the code from the 'gnu.io' branch.&lt;br /&gt;
&lt;br /&gt;
'TODO': Can anyone who knows how please make an easy download available like the 2.1-7 version?&lt;br /&gt;
&lt;br /&gt;
=== RXTX does not find my device, what's wrong? ===&lt;br /&gt;
&lt;br /&gt;
There may be a number of reasons, but most often it is because your operating system can't find it either. RXTX is built upon the functionality provided by your operating system, and therefore is dependent on its limitations. For this reason find out whether your system can find the port, if it can and you still can't work what is going on, then there may be some help on the [[Mailing-List]].&lt;br /&gt;
&lt;br /&gt;
=== RXTX installation fails with JDK 1.6 ===&lt;br /&gt;
&lt;br /&gt;
This applies to the source package of RXTX 2.1-7r2.&lt;br /&gt;
&lt;br /&gt;
After having run ''./configure; make; make install'', the following message appears:&lt;br /&gt;
&lt;br /&gt;
  make  all-am&lt;br /&gt;
  make[1]: Entering directory `/&amp;lt;mumble mumble your directory&amp;gt;/rxtx-2.1-7r2'&lt;br /&gt;
  make[1]: Nothing to be done for `all-am'.&lt;br /&gt;
  make[1]: Leaving directory `/&amp;lt;mumble mumble your directory&amp;gt;/rxtx-2.1-7r2'&lt;br /&gt;
  libtool: install: `x86_64-unknown-linux-gnu/librxtxRS485.la' is not a directory&lt;br /&gt;
  Try `libtool --help --mode=install' for more information.&lt;br /&gt;
  make: *** [install] Error 1&lt;br /&gt;
&lt;br /&gt;
This is caused by a missing case in the 'configure' script generated from 'configure.in', which&lt;br /&gt;
causes the variable RXTX_PATH to not be set which causes the above confusion.&lt;br /&gt;
You can change the 'configure' script directly. Look for the case instruction that matches JDK version strings:&lt;br /&gt;
&lt;br /&gt;
  1.2*|1.3*|1.4*|1.5*&lt;br /&gt;
&lt;br /&gt;
and extend it to&lt;br /&gt;
&lt;br /&gt;
  1.2*|1.3*|1.4*|1.5*|1.6*&lt;br /&gt;
&lt;br /&gt;
Note that there are matches for Linux, BSD, Solaris and Win32.&lt;br /&gt;
&lt;br /&gt;
Then run ''./configure; make; make install'' as usual.&lt;br /&gt;
&lt;br /&gt;
=== RXTX and the Equinox SST-4P/LP multiport card ===&lt;br /&gt;
&lt;br /&gt;
A note for those who want to install an Equinox board (in this case &amp;quot;SST-4P/LP&amp;quot;) and try to&lt;br /&gt;
run it with RXTX under Linux (in this case, Red Hat ES 4)&lt;br /&gt;
&lt;br /&gt;
Get the driver source from the [http://www.equinox.com/support/download-drivers/ www.equinox.com driver page] and&lt;br /&gt;
compile it as described therein.&lt;br /&gt;
&lt;br /&gt;
The four serial ports of the Equinox SST-4P are available as the device files:&lt;br /&gt;
&lt;br /&gt;
   /dev/ttyQ1a1 ... /dev/ttyQ1a4&lt;br /&gt;
&lt;br /&gt;
These device files are created by the 'ssmkn' (alias 'make device nodes') executable. &lt;br /&gt;
&lt;br /&gt;
In order to make things work, you have to:&lt;br /&gt;
&lt;br /&gt;
Modify the 'eqnx' startup script '/etc/rc.d/init.d/eqnx'&lt;br /&gt;
and make it set the permissions of the devices files in the&lt;br /&gt;
'start' section, immediately after the call to 'ssmkn':&lt;br /&gt;
&lt;br /&gt;
        # create device files&lt;br /&gt;
        /usr/bin/ssmkn&lt;br /&gt;
        # fix rights on device files&lt;br /&gt;
        LIST=`ls /dev/ttyQ*`&lt;br /&gt;
        for DEV in $LIST; do&lt;br /&gt;
          chown root.uucp $DEV&lt;br /&gt;
          chmod 660 $DEV&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
Modify 'src/RXTXCommDriver.java' in the RXTX distribution. Add&lt;br /&gt;
the 'ttyQ1a' radical to the list of port radicals that RXTX checks:&lt;br /&gt;
&lt;br /&gt;
        if(osName.equals(&amp;quot;Linux&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
           String[] Temp = {&lt;br /&gt;
                &amp;quot;ttyS&amp;quot;, // linux Serial Ports&lt;br /&gt;
                &amp;quot;ttySA&amp;quot;, // for the IPAQs&lt;br /&gt;
                &amp;quot;ttyUSB&amp;quot;, // for USB frobs&lt;br /&gt;
                &amp;quot;ttyQ1a&amp;quot; // Equinox&lt;br /&gt;
           };&lt;br /&gt;
           CandidatePortPrefixes=Temp;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
Then recompile and reinstall.&lt;br /&gt;
&lt;br /&gt;
=== Is there a way to access serial and parallel port with standard Java API ? ===&lt;br /&gt;
&lt;br /&gt;
Currently no. This includes all Java versions including JDK 1.6 and probably JDK 1.7 when it is released. The [http://java.sun.com/products/javacomm/ Java Communications] API is a Java extension providing the necessary support for serial and parallel communication. RxTx is the most complete and currently maintained implementation of this API.&lt;/div&gt;</description>
			<pubDate>Mon, 13 Apr 2009 17:07:06 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:FAQ</comments>		</item>
		<item>
			<title>JMRI</title>
			<link>http://rxtx.qbang.org/wiki/index.php/JMRI</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://jmri.sourceforge.net JMRI] uses RXTX to connect to the serial ports on model railroad hardware.&lt;br /&gt;
&lt;br /&gt;
JMRI was originally written to use the Sun javax.comm API, and still uses those classes.  We moved to RXTX for platforms where the Sun implementation wasn't available, or wasn't reliable.  Currently, we use RXTX for MacOS X, Linux, and certain flavors of Windows.&lt;br /&gt;
&lt;br /&gt;
The source tree is available from SourceForge either via&lt;br /&gt;
[http://jmri.sourceforge.net/doc/Technical/getcode.html anonymous download] or their&lt;br /&gt;
[http://cvs.sourceforge.net/viewcvs.py/jmri/jmri/ CVS web browser].&lt;br /&gt;
&lt;br /&gt;
[http://cvs.sourceforge.net/viewcvs.py/jmri/jmri/jmrix/nce/serialdriver/SerialDriverAdapter.java?view=markup Sample class using RXTX]&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:41:51 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:JMRI</comments>		</item>
		<item>
			<title>Using RXTX In Eclipse</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Using_RXTX_In_Eclipse</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is how I add and use RXTX in Eclipse for Win32 Projects, there are probably other ways but it works for me. [mailto:seaton@gateway.net.au]&lt;br /&gt;
&lt;br /&gt;
# Copy RXTXcomm.jar file and dll files to the lib directory of your project&lt;br /&gt;
# Under Project | Properties | Java Build Path | Libraries&lt;br /&gt;
# click Add JARs... Button&lt;br /&gt;
# Select the RXTXComm.jar from lib directory&lt;br /&gt;
# Jar should now be in the Build Path&lt;br /&gt;
# expand the RXTXComm.jar entry in the list and select &amp;quot;Native Library Location&amp;quot;&lt;br /&gt;
# Select the project lib directory and apply&lt;br /&gt;
&lt;br /&gt;
Be careful when using System.in.read() and rxtx in win32;  It can trip across a known JRE [http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4809647 deadlock] bug&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:40:50 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Using_RXTX_In_Eclipse</comments>		</item>
		<item>
			<title>Deploying JAVA with RXTX</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Deploying_JAVA_with_RXTX</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Saving the RXTX jar-file and DLL in the JRE is not optimal if you indend to distribute your JAVA application and do not want to bundle it with a customized JRE.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
For Windows, the [http://sourceforge.net/projects/janel Janel] JAVA launcher can be used.&lt;br /&gt;
* create a directory for your application, and save the Janel executable and lap-file to it;&lt;br /&gt;
* create a subfolder named &amp;quot;classes&amp;quot; and save the jar-file of your application as well as the RXTXcomm.jar in it;&lt;br /&gt;
* create a subfolder named &amp;quot;lib&amp;quot; and save the rxtxSerial.dll to it;&lt;br /&gt;
* make the following entries in the lap-file:&lt;br /&gt;
** &amp;quot;-Djava.class.path=;${SELF_HOME}\classes\YourApp.jar;${SELF_HOME}\classes\RXTXcomm.jar;&amp;quot;&lt;br /&gt;
** &amp;quot;janel.main.class=YourAppMainClass&amp;quot;&lt;br /&gt;
** &amp;quot;janel.library.path.dir=${SELF_HOME}\lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Simpler approach for Windows ==&lt;br /&gt;
&lt;br /&gt;
Using a simpler approach (confirmed to work when using NetBeans or Borland JBuilder):&lt;br /&gt;
*Add RXTXcomm.jar as a library&lt;br /&gt;
*compile (build) your application&lt;br /&gt;
*add the rxtxSerial.dll to the root of the distribution folder (*projectname*/dist when using NetBeans)&lt;br /&gt;
&lt;br /&gt;
== unjar ==&lt;br /&gt;
It should be possible to unjar the RXTXcomm.jar and then add the .classes into YourApp.jar. This should eliminate the secon .jar and the need to modify java.class.path. Please clarify the steps if you pursue this.&lt;br /&gt;
&lt;br /&gt;
I was successful in doing this on my Mac. First, unzip the RXTX.jar file. I didn't try unjar, as unzip worked fine. Then, place the gnu folder in the same folder as your application jar file. Execute the following command from the command line:&lt;br /&gt;
&lt;br /&gt;
jar uvf Your_Apps_Name_here.jar gnu &lt;br /&gt;
&lt;br /&gt;
to update the jar with the contents of the classes in the gnu folder. Your app will now run by double clicking on it, provided the .dll or .jnilib library is in the same folder. I would love to include the OS specific libraries in the jar for a single, monolithic package, but after researching this on the web, it is apparently very difficult at best and probably impossible.&lt;br /&gt;
&lt;br /&gt;
== Other Platforms ==&lt;br /&gt;
It would be great if someone with access to Linux boxes could provide us with similar recipes for their operating system.&lt;br /&gt;
&lt;br /&gt;
The above unjar instructions and subsequent jars worked fine for my app on both Mac and Windows machines.&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:40:07 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Deploying_JAVA_with_RXTX</comments>		</item>
		<item>
			<title>Examples</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Examples</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that all the examples below require that you import the gnu.io package.&lt;br /&gt;
&lt;br /&gt;
*[[Two way communcation with the serial port]]&lt;br /&gt;
*[[Event based two way Communication]]&lt;br /&gt;
*[[Parallel Communications]]&lt;br /&gt;
*[[Discovering comm ports]]&lt;br /&gt;
*[[Discovering available comm ports]]&lt;br /&gt;
*[[Writing &amp;quot;Hello World&amp;quot; to a USB to serial converter]]&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:39:31 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Examples</comments>		</item>
		<item>
			<title>Talk:Main Page</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Replacing page with ''''Note:''' Please post ask your questions on the mailing-list, that's what it is there for. Questions will NOT be answered in the discussion pages of the wiki.'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' Please post ask your questions on the [[mailing-list]], that's what it is there for. Questions will NOT be answered in the discussion pages of the wiki.&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:38:49 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</comments>		</item>
		<item>
			<title>Discovering comm ports</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Discovering_comm_ports</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This code snippet shows how to find out the available comms ports on your computer.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    static void listPorts()&lt;br /&gt;
    {&lt;br /&gt;
        java.util.Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();&lt;br /&gt;
        while ( portEnum.hasMoreElements() ) &lt;br /&gt;
        {&lt;br /&gt;
            CommPortIdentifier portIdentifier = (CommPortIdentifier) portEnum.nextElement();&lt;br /&gt;
            System.out.println(portIdentifier.getName()  +  &amp;quot; - &amp;quot; +  getPortTypeName(portIdentifier.getPortType()) );&lt;br /&gt;
        }        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    static String getPortTypeName ( int portType )&lt;br /&gt;
    {&lt;br /&gt;
        switch ( portType )&lt;br /&gt;
        {&lt;br /&gt;
            case CommPortIdentifier.PORT_I2C:&lt;br /&gt;
                return &amp;quot;I2C&amp;quot;;&lt;br /&gt;
            case CommPortIdentifier.PORT_PARALLEL:&lt;br /&gt;
                return &amp;quot;Parallel&amp;quot;;&lt;br /&gt;
            case CommPortIdentifier.PORT_RAW:&lt;br /&gt;
                return &amp;quot;Raw&amp;quot;;&lt;br /&gt;
            case CommPortIdentifier.PORT_RS485:&lt;br /&gt;
                return &amp;quot;RS485&amp;quot;;&lt;br /&gt;
            case CommPortIdentifier.PORT_SERIAL:&lt;br /&gt;
                return &amp;quot;Serial&amp;quot;;&lt;br /&gt;
            default:&lt;br /&gt;
                return &amp;quot;unknown type&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:36:48 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Discovering_comm_ports</comments>		</item>
		<item>
			<title>Installation on Toybox</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation_on_Toybox</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:35:54 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation_on_Toybox</comments>		</item>
		<item>
			<title>Rxtx:Community Portal</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Rxtx:Community_Portal</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:35:06 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Rxtx_talk:Community_Portal</comments>		</item>
		<item>
			<title>FAQ</title>
			<link>http://rxtx.qbang.org/wiki/index.php/FAQ</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== What RXTX? ===&lt;br /&gt;
&lt;br /&gt;
RXTX is a Java library, using a native implementation (via JNI), providing serial and parallel communication for the Java Development Toolkit (JDK). All deliverables are under the GNU LGPL license. It is based on the specification for Sun's [http://java.sun.com/products/javacomm/index.jsp Java Communications API], though while many of the class descriptions are the same the package used it not, since gnu.io is used instead. A certain amount of compatibility is intended with API, though this project should be considered as a fork and therefore compatible in spirit, but not in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Do you have a Mailing List? ===&lt;br /&gt;
&lt;br /&gt;
Yes, see the [[mailing-list]] page for details.&lt;br /&gt;
&lt;br /&gt;
=== Where can I find information about how to write apps using RXTX? ===&lt;br /&gt;
&lt;br /&gt;
Take a look at the [[Examples]]&lt;br /&gt;
&lt;br /&gt;
=== What does RXTX install where? ===&lt;br /&gt;
&lt;br /&gt;
The RXTX installation procedures installs files directly underneath $JAVA_HOME, i.e. directly into the JDK distribution.&lt;br /&gt;
&lt;br /&gt;
In case you are using the Sun JDK:&lt;br /&gt;
&lt;br /&gt;
The 'gnu.io' Java .class files are all packed into:&lt;br /&gt;
&lt;br /&gt;
   $JAVA_HOME/jre/lib/ext/RXTXcomm.jar&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Library_(computer_science)#Shared_library Shared Object] files necessary to access OS-level functionality can be found underneath: &lt;br /&gt;
&lt;br /&gt;
   $JAVA_HOME/jre/lib/&amp;lt;architecture&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
and they are:&lt;br /&gt;
&lt;br /&gt;
  librxtxI2C-2.1-7.so&lt;br /&gt;
  librxtxI2C.la&lt;br /&gt;
  librxtxI2C.so -&amp;gt; librxtxI2C-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
  librxtxParallel-2.1-7.so&lt;br /&gt;
  librxtxParallel.la&lt;br /&gt;
  librxtxParallel.so -&amp;gt; librxtxParallel-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
  librxtxRaw-2.1-7.so&lt;br /&gt;
  librxtxRaw.la&lt;br /&gt;
  librxtxRaw.so -&amp;gt; librxtxRaw-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
  librxtxRS485-2.1-7.so&lt;br /&gt;
  librxtxRS485.la&lt;br /&gt;
  librxtxRS485.so -&amp;gt; librxtxRS485-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
  librxtxSerial-2.1-7.so&lt;br /&gt;
  librxtxSerial.la&lt;br /&gt;
  librxtxSerial.so -&amp;gt; librxtxSerial-2.1-7.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also see the '[[installation]]' page for more information.&lt;br /&gt;
&lt;br /&gt;
=== Is there a Change Log? ===&lt;br /&gt;
&lt;br /&gt;
Yes, see the '[[Change Log]]' page.&lt;br /&gt;
&lt;br /&gt;
=== What License does RXTX use? ===&lt;br /&gt;
&lt;br /&gt;
RXTX is license under the LGPL with an exception for linking over controlled interfaces, a copy of which can be found in the '[[License]]' page.  The exception allows people to use RXTX as a service plugin with Sun's CommAPI: 'A Controlled Interface.'&lt;br /&gt;
&lt;br /&gt;
=== What Platforms does RXTX run on? ===&lt;br /&gt;
&lt;br /&gt;
See the page entitled '[[Porting]]', for more information.&lt;br /&gt;
&lt;br /&gt;
== Problems and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== On MacOS X I get a 'PortInUseException', even though it isn't? ===&lt;br /&gt;
&lt;br /&gt;
Versions prior to 2.1-8 use lock files, which is not the MacOS X way of doing things, and therefore has issues. For this reason make sure that you have version 2.1-8 or higher, which makes use of [http://developer.apple.com/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/ I/O Kit]. At this point in time 2.1-8 is only availble from CVS, in source form. See the section [[Retrieving Source Code]], on getting the latest code - be sure to get the code from the 'gnu.io' branch.&lt;br /&gt;
&lt;br /&gt;
'TODO': Can anyone who knows how please make an easy download available like the 2.1-7 version?&lt;br /&gt;
&lt;br /&gt;
=== RXTX does not find my device, what's wrong? ===&lt;br /&gt;
&lt;br /&gt;
There may be a number of reasons, but most often it is because your operating system can't find it either. RXTX is built upon the functionality provided by your operating system, and therefore is dependent on its limitations. For this reason find out whether your system can find the port, if it can and you still can't work what is going on, then there may be some help on the [[Mailing-List]].&lt;br /&gt;
&lt;br /&gt;
=== RXTX installation fails with JDK 1.6 ===&lt;br /&gt;
&lt;br /&gt;
This applies to the source package of RXTX 2.1-7r2.&lt;br /&gt;
&lt;br /&gt;
After having run ''./configure; make; make install'', the following message appears:&lt;br /&gt;
&lt;br /&gt;
  make  all-am&lt;br /&gt;
  make[1]: Entering directory `/&amp;lt;mumble mumble your directory&amp;gt;/rxtx-2.1-7r2'&lt;br /&gt;
  make[1]: Nothing to be done for `all-am'.&lt;br /&gt;
  make[1]: Leaving directory `/&amp;lt;mumble mumble your directory&amp;gt;/rxtx-2.1-7r2'&lt;br /&gt;
  libtool: install: `x86_64-unknown-linux-gnu/librxtxRS485.la' is not a directory&lt;br /&gt;
  Try `libtool --help --mode=install' for more information.&lt;br /&gt;
  make: *** [install] Error 1&lt;br /&gt;
&lt;br /&gt;
This is caused by a missing case in the 'configure' script generated from 'configure.in', which&lt;br /&gt;
causes the variable RXTX_PATH to not be set which causes the above confusion.&lt;br /&gt;
You can change the 'configure' script directly. Look for the case instruction that matches JDK version strings:&lt;br /&gt;
&lt;br /&gt;
  1.2*|1.3*|1.4*|1.5*&lt;br /&gt;
&lt;br /&gt;
and extend it to&lt;br /&gt;
&lt;br /&gt;
  1.2*|1.3*|1.4*|1.5*|1.6*&lt;br /&gt;
&lt;br /&gt;
Note that there are matches for Linux, BSD, Solaris and Win32.&lt;br /&gt;
&lt;br /&gt;
Then run ''./configure; make; make install'' as usual.&lt;br /&gt;
&lt;br /&gt;
=== RXTX and the Equinox SST-4P/LP multiport card ===&lt;br /&gt;
&lt;br /&gt;
A note for those who want to install an Equinox board (in this case &amp;quot;SST-4P/LP&amp;quot;) and try to&lt;br /&gt;
run it with RXTX under Linux (in this case, Red Hat ES 4)&lt;br /&gt;
&lt;br /&gt;
Get the driver source from the [http://www.equinox.com/support/download-drivers/ www.equinox.com driver page] and&lt;br /&gt;
compile it as described therein.&lt;br /&gt;
&lt;br /&gt;
The four serial ports of the Equinox SST-4P are available as the device files:&lt;br /&gt;
&lt;br /&gt;
   /dev/ttyQ1a1 ... /dev/ttyQ1a4&lt;br /&gt;
&lt;br /&gt;
These device files are created by the 'ssmkn' (alias 'make device nodes') executable. &lt;br /&gt;
&lt;br /&gt;
In order to make things work, you have to:&lt;br /&gt;
&lt;br /&gt;
Modify the 'eqnx' startup script '/etc/rc.d/init.d/eqnx'&lt;br /&gt;
and make it set the permissions of the devices files in the&lt;br /&gt;
'start' section, immediately after the call to 'ssmkn':&lt;br /&gt;
&lt;br /&gt;
        # create device files&lt;br /&gt;
        /usr/bin/ssmkn&lt;br /&gt;
        # fix rights on device files&lt;br /&gt;
        LIST=`ls /dev/ttyQ*`&lt;br /&gt;
        for DEV in $LIST; do&lt;br /&gt;
          chown root.uucp $DEV&lt;br /&gt;
          chmod 660 $DEV&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
Modify 'src/RXTXCommDriver.java' in the RXTX distribution. Add&lt;br /&gt;
the 'ttyQ1a' radical to the list of port radicals that RXTX checks:&lt;br /&gt;
&lt;br /&gt;
        if(osName.equals(&amp;quot;Linux&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
           String[] Temp = {&lt;br /&gt;
                &amp;quot;ttyS&amp;quot;, // linux Serial Ports&lt;br /&gt;
                &amp;quot;ttySA&amp;quot;, // for the IPAQs&lt;br /&gt;
                &amp;quot;ttyUSB&amp;quot;, // for USB frobs&lt;br /&gt;
                &amp;quot;ttyQ1a&amp;quot; // Equinox&lt;br /&gt;
           };&lt;br /&gt;
           CandidatePortPrefixes=Temp;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
Then recompile and reinstall.&lt;br /&gt;
&lt;br /&gt;
=== Is there a way to access seria and parallel port with standard Java API ? ===&lt;br /&gt;
&lt;br /&gt;
Answer wanted ...&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:34:07 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:FAQ</comments>		</item>
		<item>
			<title>Installation for Windows</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation_for_Windows</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RXTX installation procedure if you want to run RXTX enabled programs ==&lt;br /&gt;
&lt;br /&gt;
If you just want to run RXTX enabled programs, follow this procedure.&lt;br /&gt;
&lt;br /&gt;
Identify your Java Runtime Environment's folder. For version &amp;lt;code&amp;gt;1.6.0&amp;lt;/code&amp;gt;, this usually is&lt;br /&gt;
:&amp;lt;code&amp;gt;c:\Program Files\Java\jre1.6.0_01\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;rxtxParallel.dll&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;c:\Program Files\Java\jre1.6.0_01\bin\&amp;lt;/code&amp;gt;&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;rxtxSerial.dll&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;c:\Program Files\Java\jre1.6.0_01\bin\&amp;lt;/code&amp;gt;&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;RXTXcomm.jar&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;c:\Program Files\Java\jre1.6.0_01\lib\ext\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''NOTE: When installing on Windows XP Embedded, make sure you include crtdll.dll (in the C Runtime Component) as it is required by rxtxSerial.dll''&lt;br /&gt;
&lt;br /&gt;
==RXTX installation procedure if you want to develop or compile RXTX enabled programs ==&lt;br /&gt;
&lt;br /&gt;
If you want to develop and compile RXTX enabled programs, for example with the NetBeans IDE, follow this procedure.&lt;br /&gt;
&lt;br /&gt;
Identify your Java Development Kit's folder. For version &amp;lt;code&amp;gt;1.6.0&amp;lt;/code&amp;gt;, this usually is&lt;br /&gt;
:&amp;lt;code&amp;gt;c:\Program Files\Java\jdk1.6.0_01\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;rxtxParallel.dll&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;c:\Program Files\Java\jdk1.6.0_01\jre\bin\&amp;lt;/code&amp;gt;&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;rxtxSerial.dll&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;c:\Program Files\Java\jdk1.6.0_01\jre\bin\&amp;lt;/code&amp;gt;&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;RXTXcomm.jar&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;c:\Program Files\Java\jdk1.6.0_01\jre\lib\ext\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that there is an additional &amp;lt;code&amp;gt;\jre\&amp;lt;/code&amp;gt; subfolder in this path!&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:33:37 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation_for_Windows</comments>		</item>
		<item>
			<title>Help talk:Contents</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Help_talk:Contents</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:33:14 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Help_talk:Contents</comments>		</item>
		<item>
			<title>Discovering available comm ports</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Discovering_available_comm_ports</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This code snippet shows how to retrieve the available comms ports on your computer. A CommPort is available if it is not being used by another application. Note the difference between the two examples is that the version for JDK 5.0 up uses [http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html generics]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;JDK &amp;lt;= 1.4&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   /**&lt;br /&gt;
     * @return    A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used.&lt;br /&gt;
     */&lt;br /&gt;
    public static HashSet getAvailableSerialPorts() {&lt;br /&gt;
        HashSet h = new HashSet();&lt;br /&gt;
        Enumeration thePorts = CommPortIdentifier.getPortIdentifiers();&lt;br /&gt;
        while (thePorts.hasMoreElements()) {&lt;br /&gt;
            CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement();&lt;br /&gt;
            switch (com.getPortType()) {&lt;br /&gt;
            case CommPortIdentifier.PORT_SERIAL:&lt;br /&gt;
                try {&lt;br /&gt;
                    CommPort thePort = com.open(&amp;quot;CommUtil&amp;quot;, 50);&lt;br /&gt;
                    thePort.close();&lt;br /&gt;
                    h.add(com);&lt;br /&gt;
                } catch (PortInUseException e) {&lt;br /&gt;
                    System.out.println(&amp;quot;Port, &amp;quot;  + com.getName() +  &amp;quot;, is in use.&amp;quot;);&lt;br /&gt;
                } catch (Exception e) {&lt;br /&gt;
                    System.err.println(&amp;quot;Failed to open port &amp;quot; + com.getName());&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return h;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;JDK &amp;gt;= 5.0&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   /**&lt;br /&gt;
     * @return    A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used.&lt;br /&gt;
     */&lt;br /&gt;
    public static HashSet&amp;lt;CommPortIdentifier&amp;gt; getAvailableSerialPorts() {&lt;br /&gt;
        HashSet&amp;lt;CommPortIdentifier&amp;gt; h = new HashSet&amp;lt;CommPortIdentifier&amp;gt;();&lt;br /&gt;
        Enumeration thePorts = CommPortIdentifier.getPortIdentifiers();&lt;br /&gt;
        while (thePorts.hasMoreElements()) {&lt;br /&gt;
            CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement();&lt;br /&gt;
            switch (com.getPortType()) {&lt;br /&gt;
            case CommPortIdentifier.PORT_SERIAL:&lt;br /&gt;
                try {&lt;br /&gt;
                    CommPort thePort = com.open(&amp;quot;CommUtil&amp;quot;, 50);&lt;br /&gt;
                    thePort.close();&lt;br /&gt;
                    h.add(com);&lt;br /&gt;
                } catch (PortInUseException e) {&lt;br /&gt;
                    System.out.println(&amp;quot;Port, &amp;quot;  + com.getName() + &amp;quot;, is in use.&amp;quot;);&lt;br /&gt;
                } catch (Exception e) {&lt;br /&gt;
                    System.err.println(&amp;quot;Failed to open port &amp;quot; +  com.getName());&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return h;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Thu, 08 Jan 2009 18:31:28 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Discovering_available_comm_ports</comments>		</item>
		<item>
			<title>Event Based Two Way Communication</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Event_Based_Two_Way_Communication</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is a simple program that shows how to open a connection to a serial device and then interact with it (receiving data and sending data). One thing to note is that the package gnu.io is used instead of javax.comm, though other than the change in package name the API follows the [http://java.sun.com/products/javacomm/ Java Communication API]. To find the names of the available ports, see the [[Discovering comm ports]] example.&lt;br /&gt;
&lt;br /&gt;
This varies from the [[Two way communcation with the serial port|other]] 'Two Way Communication' example in that this uses an event to trigger the reading. One advantage of this approach is that you are not having to poll the device to see if data is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import gnu.io.CommPort;&lt;br /&gt;
import gnu.io.CommPortIdentifier;&lt;br /&gt;
import gnu.io.SerialPort;&lt;br /&gt;
import gnu.io.SerialPortEvent;&lt;br /&gt;
import gnu.io.SerialPortEventListener;&lt;br /&gt;
&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This version of the TwoWaySerialComm example makes use of the &lt;br /&gt;
 * SerialPortEventListener to avoid polling.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class TwoWaySerialComm&lt;br /&gt;
{&lt;br /&gt;
    public TwoWaySerialComm()&lt;br /&gt;
    {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void connect ( String portName ) throws Exception&lt;br /&gt;
    {&lt;br /&gt;
        CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);&lt;br /&gt;
        if ( portIdentifier.isCurrentlyOwned() )&lt;br /&gt;
        {&lt;br /&gt;
            System.out.println(&amp;quot;Error: Port is currently in use&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);&lt;br /&gt;
            &lt;br /&gt;
            if ( commPort instanceof SerialPort )&lt;br /&gt;
            {&lt;br /&gt;
                SerialPort serialPort = (SerialPort) commPort;&lt;br /&gt;
                serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);&lt;br /&gt;
                &lt;br /&gt;
                InputStream in = serialPort.getInputStream();&lt;br /&gt;
                OutputStream out = serialPort.getOutputStream();&lt;br /&gt;
                               &lt;br /&gt;
                (new Thread(new SerialWriter(out))).start();&lt;br /&gt;
                &lt;br /&gt;
                serialPort.addEventListener(new SerialReader(in));&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Error: Only serial ports are handled by this example.&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }     &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Handles the input coming from the serial port. A new line character&lt;br /&gt;
     * is treated as the end of a block in this example. &lt;br /&gt;
     */&lt;br /&gt;
    public static class SerialReader implements SerialPortEventListener &lt;br /&gt;
    {&lt;br /&gt;
        private InputStream in;&lt;br /&gt;
        private byte[] buffer = new byte[1024];&lt;br /&gt;
        &lt;br /&gt;
        public SerialReader ( InputStream in )&lt;br /&gt;
        {&lt;br /&gt;
            this.in = in;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void serialEvent(SerialPortEvent arg0) {&lt;br /&gt;
            int data;&lt;br /&gt;
          &lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                int len = 0;&lt;br /&gt;
                while ( ( data = in.read()) &amp;gt; -1 )&lt;br /&gt;
                {&lt;br /&gt;
                    if ( data != '\n' ) {&lt;br /&gt;
                        break;&lt;br /&gt;
                    }&lt;br /&gt;
                    buffer[len++] = (byte) data;&lt;br /&gt;
                }&lt;br /&gt;
                System.out.print(new String(buffer,0,len));&lt;br /&gt;
            }&lt;br /&gt;
            catch ( IOException e )&lt;br /&gt;
            {&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
                System.exit(-1);&lt;br /&gt;
            }             &lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /** */&lt;br /&gt;
    public static class SerialWriter implements Runnable &lt;br /&gt;
    {&lt;br /&gt;
        OutputStream out;&lt;br /&gt;
        &lt;br /&gt;
        public SerialWriter ( OutputStream out )&lt;br /&gt;
        {&lt;br /&gt;
            this.out = out;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void run ()&lt;br /&gt;
        {&lt;br /&gt;
            try&lt;br /&gt;
            {                &lt;br /&gt;
                int c = 0;&lt;br /&gt;
                while ( ( c = System.in.read()) &amp;gt; -1 )&lt;br /&gt;
                {&lt;br /&gt;
                    this.out.write(c);&lt;br /&gt;
                }                &lt;br /&gt;
            }&lt;br /&gt;
            catch ( IOException e )&lt;br /&gt;
            {&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
                System.exit(-1);&lt;br /&gt;
            }            &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    public static void main ( String[] args )&lt;br /&gt;
    {&lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            (new TwoWaySerialComm()).connect(&amp;quot;COM3&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        catch ( Exception e )&lt;br /&gt;
        {&lt;br /&gt;
            // TODO Auto-generated catch block&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 17 Aug 2008 15:14:27 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Event_Based_Two_Way_Communication</comments>		</item>
		<item>
			<title>Event based two way Communication</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Event_based_two_way_Communication</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Event based two way Communication moved to Event Based Two Way Communication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Event Based Two Way Communication]]&lt;/div&gt;</description>
			<pubDate>Sun, 17 Aug 2008 15:13:33 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Event_based_two_way_Communication</comments>		</item>
		<item>
			<title>Event Based Two Way Communication</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Event_Based_Two_Way_Communication</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Event based two way Communication moved to Event Based Two Way Communication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is a simple program that shows how to open a connection to a serial device and then interact with it (receiving data and sending data). One thing to note is that the package gnu.io is used instead of javax.comm, though other than the change in package name the API follows the [http://java.sun.com/products/javacomm/ Java Communication API]. To find the names of the available ports, see the [[Discovering comm ports]] example.&lt;br /&gt;
&lt;br /&gt;
This varies from the other 'Two Way Communication' example in that this uses an event to trigger the reading. One advantage of this approach is that you are not having to poll the device to see if data is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import gnu.io.CommPort;&lt;br /&gt;
import gnu.io.CommPortIdentifier;&lt;br /&gt;
import gnu.io.SerialPort;&lt;br /&gt;
import gnu.io.SerialPortEvent;&lt;br /&gt;
import gnu.io.SerialPortEventListener;&lt;br /&gt;
&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This version of the TwoWaySerialComm example makes use of the &lt;br /&gt;
 * SerialPortEventListener to avoid polling.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class TwoWaySerialComm&lt;br /&gt;
{&lt;br /&gt;
    public TwoWaySerialComm()&lt;br /&gt;
    {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void connect ( String portName ) throws Exception&lt;br /&gt;
    {&lt;br /&gt;
        CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);&lt;br /&gt;
        if ( portIdentifier.isCurrentlyOwned() )&lt;br /&gt;
        {&lt;br /&gt;
            System.out.println(&amp;quot;Error: Port is currently in use&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);&lt;br /&gt;
            &lt;br /&gt;
            if ( commPort instanceof SerialPort )&lt;br /&gt;
            {&lt;br /&gt;
                SerialPort serialPort = (SerialPort) commPort;&lt;br /&gt;
                serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);&lt;br /&gt;
                &lt;br /&gt;
                InputStream in = serialPort.getInputStream();&lt;br /&gt;
                OutputStream out = serialPort.getOutputStream();&lt;br /&gt;
                               &lt;br /&gt;
                (new Thread(new SerialWriter(out))).start();&lt;br /&gt;
                &lt;br /&gt;
                serialPort.addEventListener(new SerialReader(in));&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Error: Only serial ports are handled by this example.&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }     &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Handles the input coming from the serial port. A new line character&lt;br /&gt;
     * is treated as the end of a block in this example. &lt;br /&gt;
     */&lt;br /&gt;
    public static class SerialReader implements SerialPortEventListener &lt;br /&gt;
    {&lt;br /&gt;
        private InputStream in;&lt;br /&gt;
        private byte[] buffer = new byte[1024];&lt;br /&gt;
        &lt;br /&gt;
        public SerialReader ( InputStream in )&lt;br /&gt;
        {&lt;br /&gt;
            this.in = in;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void serialEvent(SerialPortEvent arg0) {&lt;br /&gt;
            int data;&lt;br /&gt;
          &lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                int len = 0;&lt;br /&gt;
                while ( ( data = in.read()) &amp;gt; -1 )&lt;br /&gt;
                {&lt;br /&gt;
                    if ( data != '\n' ) {&lt;br /&gt;
                        break;&lt;br /&gt;
                    }&lt;br /&gt;
                    buffer[len++] = (byte) data;&lt;br /&gt;
                }&lt;br /&gt;
                System.out.print(new String(buffer,0,len));&lt;br /&gt;
            }&lt;br /&gt;
            catch ( IOException e )&lt;br /&gt;
            {&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
                System.exit(-1);&lt;br /&gt;
            }             &lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /** */&lt;br /&gt;
    public static class SerialWriter implements Runnable &lt;br /&gt;
    {&lt;br /&gt;
        OutputStream out;&lt;br /&gt;
        &lt;br /&gt;
        public SerialWriter ( OutputStream out )&lt;br /&gt;
        {&lt;br /&gt;
            this.out = out;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void run ()&lt;br /&gt;
        {&lt;br /&gt;
            try&lt;br /&gt;
            {                &lt;br /&gt;
                int c = 0;&lt;br /&gt;
                while ( ( c = System.in.read()) &amp;gt; -1 )&lt;br /&gt;
                {&lt;br /&gt;
                    this.out.write(c);&lt;br /&gt;
                }                &lt;br /&gt;
            }&lt;br /&gt;
            catch ( IOException e )&lt;br /&gt;
            {&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
                System.exit(-1);&lt;br /&gt;
            }            &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    public static void main ( String[] args )&lt;br /&gt;
    {&lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            (new TwoWaySerialComm()).connect(&amp;quot;COM3&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        catch ( Exception e )&lt;br /&gt;
        {&lt;br /&gt;
            // TODO Auto-generated catch block&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 17 Aug 2008 15:13:33 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Event_Based_Two_Way_Communication</comments>		</item>
		<item>
			<title>Examples</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Examples</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that all the examples below require that you import the gnu.io package.&lt;br /&gt;
&lt;br /&gt;
*[[Two way communcation with the serial port]]&lt;br /&gt;
*[[Event based two way Communication]]&lt;br /&gt;
*[[Parallel Communications]]&lt;br /&gt;
*[[Discovering comm ports]]&lt;br /&gt;
*[[Discovering available comm ports]]&lt;br /&gt;
*[[Writing &amp;quot;Hello World&amp;quot; to a USB to serial converter]]&lt;/div&gt;</description>
			<pubDate>Sun, 17 Aug 2008 15:13:13 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Examples</comments>		</item>
		<item>
			<title>Examples</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Examples</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that all the examples below require that you import the gnu.io package.&lt;br /&gt;
&lt;br /&gt;
*[[Two way communcation with the serial port]]&lt;br /&gt;
*[[Event based two way communication]]&lt;br /&gt;
*[[Parallel Communications]]&lt;br /&gt;
*[[Discovering comm ports]]&lt;br /&gt;
*[[Discovering available comm ports]]&lt;br /&gt;
*[[Writing &amp;quot;Hello World&amp;quot; to a USB to serial converter]]&lt;/div&gt;</description>
			<pubDate>Sun, 17 Aug 2008 15:13:03 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Examples</comments>		</item>
		<item>
			<title>Event Based Two Way Communication</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Event_Based_Two_Way_Communication</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;New page: Below is a simple program that shows how to open a connection to a serial device and then interact with it (receiving data and sending data). One thing to note is that the package gnu.io i...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is a simple program that shows how to open a connection to a serial device and then interact with it (receiving data and sending data). One thing to note is that the package gnu.io is used instead of javax.comm, though other than the change in package name the API follows the [http://java.sun.com/products/javacomm/ Java Communication API]. To find the names of the available ports, see the [[Discovering comm ports]] example.&lt;br /&gt;
&lt;br /&gt;
This varies from the other 'Two Way Communication' example in that this uses an event to trigger the reading. One advantage of this approach is that you are not having to poll the device to see if data is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import gnu.io.CommPort;&lt;br /&gt;
import gnu.io.CommPortIdentifier;&lt;br /&gt;
import gnu.io.SerialPort;&lt;br /&gt;
import gnu.io.SerialPortEvent;&lt;br /&gt;
import gnu.io.SerialPortEventListener;&lt;br /&gt;
&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This version of the TwoWaySerialComm example makes use of the &lt;br /&gt;
 * SerialPortEventListener to avoid polling.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class TwoWaySerialComm&lt;br /&gt;
{&lt;br /&gt;
    public TwoWaySerialComm()&lt;br /&gt;
    {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void connect ( String portName ) throws Exception&lt;br /&gt;
    {&lt;br /&gt;
        CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);&lt;br /&gt;
        if ( portIdentifier.isCurrentlyOwned() )&lt;br /&gt;
        {&lt;br /&gt;
            System.out.println(&amp;quot;Error: Port is currently in use&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);&lt;br /&gt;
            &lt;br /&gt;
            if ( commPort instanceof SerialPort )&lt;br /&gt;
            {&lt;br /&gt;
                SerialPort serialPort = (SerialPort) commPort;&lt;br /&gt;
                serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);&lt;br /&gt;
                &lt;br /&gt;
                InputStream in = serialPort.getInputStream();&lt;br /&gt;
                OutputStream out = serialPort.getOutputStream();&lt;br /&gt;
                               &lt;br /&gt;
                (new Thread(new SerialWriter(out))).start();&lt;br /&gt;
                &lt;br /&gt;
                serialPort.addEventListener(new SerialReader(in));&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Error: Only serial ports are handled by this example.&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }     &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Handles the input coming from the serial port. A new line character&lt;br /&gt;
     * is treated as the end of a block in this example. &lt;br /&gt;
     */&lt;br /&gt;
    public static class SerialReader implements SerialPortEventListener &lt;br /&gt;
    {&lt;br /&gt;
        private InputStream in;&lt;br /&gt;
        private byte[] buffer = new byte[1024];&lt;br /&gt;
        &lt;br /&gt;
        public SerialReader ( InputStream in )&lt;br /&gt;
        {&lt;br /&gt;
            this.in = in;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void serialEvent(SerialPortEvent arg0) {&lt;br /&gt;
            int data;&lt;br /&gt;
          &lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                int len = 0;&lt;br /&gt;
                while ( ( data = in.read()) &amp;gt; -1 )&lt;br /&gt;
                {&lt;br /&gt;
                    if ( data != '\n' ) {&lt;br /&gt;
                        break;&lt;br /&gt;
                    }&lt;br /&gt;
                    buffer[len++] = (byte) data;&lt;br /&gt;
                }&lt;br /&gt;
                System.out.print(new String(buffer,0,len));&lt;br /&gt;
            }&lt;br /&gt;
            catch ( IOException e )&lt;br /&gt;
            {&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
                System.exit(-1);&lt;br /&gt;
            }             &lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /** */&lt;br /&gt;
    public static class SerialWriter implements Runnable &lt;br /&gt;
    {&lt;br /&gt;
        OutputStream out;&lt;br /&gt;
        &lt;br /&gt;
        public SerialWriter ( OutputStream out )&lt;br /&gt;
        {&lt;br /&gt;
            this.out = out;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void run ()&lt;br /&gt;
        {&lt;br /&gt;
            try&lt;br /&gt;
            {                &lt;br /&gt;
                int c = 0;&lt;br /&gt;
                while ( ( c = System.in.read()) &amp;gt; -1 )&lt;br /&gt;
                {&lt;br /&gt;
                    this.out.write(c);&lt;br /&gt;
                }                &lt;br /&gt;
            }&lt;br /&gt;
            catch ( IOException e )&lt;br /&gt;
            {&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
                System.exit(-1);&lt;br /&gt;
            }            &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    public static void main ( String[] args )&lt;br /&gt;
    {&lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            (new TwoWaySerialComm()).connect(&amp;quot;COM3&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        catch ( Exception e )&lt;br /&gt;
        {&lt;br /&gt;
            // TODO Auto-generated catch block&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 17 Aug 2008 15:12:27 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Event_Based_Two_Way_Communication</comments>		</item>
		<item>
			<title>Examples</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Examples</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that all the examples below require that you import the gnu.io package.&lt;br /&gt;
&lt;br /&gt;
*[[Two way communcation with the serial port]]&lt;br /&gt;
*[[Event based two way Communication]]&lt;br /&gt;
*[[Parallel Communications]]&lt;br /&gt;
*[[Discovering comm ports]]&lt;br /&gt;
*[[Discovering available comm ports]]&lt;br /&gt;
*[[Writing &amp;quot;Hello World&amp;quot; to a USB to serial converter]]&lt;/div&gt;</description>
			<pubDate>Sun, 17 Aug 2008 15:10:31 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Examples</comments>		</item>
		<item>
			<title>Development</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Development</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for content regarding programming rxtx and writing programs that use rxtx.  Feel free to add your own content and links.&lt;br /&gt;
&lt;br /&gt;
*[[Retrieving Source Code]] - How to get the source code from CVS&lt;br /&gt;
*[http://users.frii.com/jarvi/rxtx/doc/index.html gnu.io JavaDoc]&lt;br /&gt;
*[http://java.sun.com/products/javacomm/reference/api/index.html javax.comm JavaDoc] - provided as a point of comparison.&lt;br /&gt;
*[[Installers]]&lt;br /&gt;
*[[WebStart]]&lt;br /&gt;
*[[Examples]]&lt;/div&gt;</description>
			<pubDate>Sun, 17 Aug 2008 01:07:51 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Development</comments>		</item>
		<item>
			<title>Discovering available comm ports</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Discovering_available_comm_ports</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Changed protection level for &amp;quot;Discovering available comm ports&amp;quot;: providing access to registered users - spammer issue has been reduced [edit=autoconfirmed:move=autoconfirmed]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This code snippet shows how to retrieve the available comms ports on your computer. A CommPort is available if it is not being used by another application. Note the difference between the two examples is that the version for JDK 5.0 up uses [http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html generics]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;JDK &amp;lt;= 1.4&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   /**&lt;br /&gt;
     * @return    A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used.&lt;br /&gt;
     */&lt;br /&gt;
    public static HashSet getAvailableSerialPorts() {&lt;br /&gt;
        HashSet h = new HashSet();&lt;br /&gt;
        Enumeration thePorts = CommPortIdentifier.getPortIdentifiers();&lt;br /&gt;
        while (thePorts.hasMoreElements()) {&lt;br /&gt;
            CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement();&lt;br /&gt;
            switch (com.getPortType()) {&lt;br /&gt;
            case CommPortIdentifier.PORT_SERIAL:&lt;br /&gt;
                try {&lt;br /&gt;
                    CommPort thePort = com.open(&amp;quot;CommUtil&amp;quot;, 50);&lt;br /&gt;
                    thePort.close();&lt;br /&gt;
                    h.add(com);&lt;br /&gt;
                } catch (PortInUseException e) {&lt;br /&gt;
                    System.out.println(&amp;quot;Port, &amp;quot;   com.getName()   &amp;quot;, is in use.&amp;quot;);&lt;br /&gt;
                } catch (Exception e) {&lt;br /&gt;
                    System.err.println(&amp;quot;Failed to open port &amp;quot;   com.getName());&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return h;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;JDK &amp;gt;= 5.0&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   /**&lt;br /&gt;
     * @return    A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used.&lt;br /&gt;
     */&lt;br /&gt;
    public static HashSet&amp;lt;CommPortIdentifier&amp;gt; getAvailableSerialPorts() {&lt;br /&gt;
        HashSet&amp;lt;CommPortIdentifier&amp;gt; h = new HashSet&amp;lt;CommPortIdentifier&amp;gt;();&lt;br /&gt;
        Enumeration thePorts = CommPortIdentifier.getPortIdentifiers();&lt;br /&gt;
        while (thePorts.hasMoreElements()) {&lt;br /&gt;
            CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement();&lt;br /&gt;
            switch (com.getPortType()) {&lt;br /&gt;
            case CommPortIdentifier.PORT_SERIAL:&lt;br /&gt;
                try {&lt;br /&gt;
                    CommPort thePort = com.open(&amp;quot;CommUtil&amp;quot;, 50);&lt;br /&gt;
                    thePort.close();&lt;br /&gt;
                    h.add(com);&lt;br /&gt;
                } catch (PortInUseException e) {&lt;br /&gt;
                    System.out.println(&amp;quot;Port, &amp;quot;   com.getName()   &amp;quot;, is in use.&amp;quot;);&lt;br /&gt;
                } catch (Exception e) {&lt;br /&gt;
                    System.err.println(&amp;quot;Failed to open port &amp;quot;   com.getName());&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return h;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Thu, 24 Jul 2008 01:09:34 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Discovering_available_comm_ports</comments>		</item>
		<item>
			<title>User:Ajmas</title>
			<link>http://rxtx.qbang.org/wiki/index.php/User:Ajmas</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=User Details=&lt;br /&gt;
Real Name: André-John Mas&lt;br /&gt;
&lt;br /&gt;
=Scratch=&lt;br /&gt;
&lt;br /&gt;
==Spaceball 5000==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
Because of my interest in 3D input devices I decided to purchase myself, a serial based, Spaceball 5000. I chose this model because it had a spherical grip and was in a suitable price range for the hobby developer, when bought off eBay. Having a serial based deviced was not an issue, since I already had a PL2303 based USB to RS232 adaptor and the an appropriate driver (http://sourceforge.net/projects/osx-pl2303/). The problem was that there were no drivers for my operating system (MacOS X), and the communication protocol was not document anywhere that I had access to. I had found some source for the Spaceball 3003 and the Spaceball 4000, but a forum I came across indicated that the communication protocol was not the same for the Spaceball 5000.&lt;br /&gt;
&lt;br /&gt;
The first thing I tried was running the ‘screen’ tool from the command line to see what was being sent to the computer. Doing this revealed that data for the key presses were being sent back to the computer, but no information on the ball movement. Further research on the web confirmed that the ball would not sent back any data until it was initialised.&lt;br /&gt;
&lt;br /&gt;
The solution to my problem was to somehow know what communication was being performed in a normal scenario. To do this I got out my old Windows PC, running MS Windows 2000, downloaded and installed the driver. After confirming that it was working I got myself a copy of ‘portmon’ from Microsoft. Running portmon after reconnecting the Spaceball allowed me to see what initial handshake was being performed and what data it was being sent back.&lt;br /&gt;
&lt;br /&gt;
Follows are the details on what I found out, but it is far from complete.&lt;br /&gt;
&lt;br /&gt;
===Details===&lt;br /&gt;
&lt;br /&gt;
Serial port configuration: 9600 baud, parity: none, word length: 8&lt;br /&gt;
&lt;br /&gt;
A packet starts with a packet type id, is terminated by byte of value 13 (carriage return). The length of the packet depends on the packet type.&lt;br /&gt;
&lt;br /&gt;
Getting version:&lt;br /&gt;
* Send request: vQ&lt;br /&gt;
* Response: v  SPACEBALL Version 8.20  3Dconnexion GmbH 05/11/02&lt;br /&gt;
&lt;br /&gt;
Readying the ball&lt;br /&gt;
* Send requests: m3, q00, pAA, n?&lt;br /&gt;
* Response: none&lt;br /&gt;
&lt;br /&gt;
Key input:&lt;br /&gt;
* Send request: none&lt;br /&gt;
* Response: k000&lt;br /&gt;
	&lt;br /&gt;
Ball input&lt;br /&gt;
* Send request: none&lt;br /&gt;
* Response: dH000H000H000H000H000H000&lt;/div&gt;</description>
			<pubDate>Mon, 14 Jul 2008 15:00:02 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/User_talk:Ajmas</comments>		</item>
		<item>
			<title>Development</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Development</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Reverted edits by LidelSitac (Talk); changed back to last version by Ajmas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for content regarding programming rxtx and writing programs that use rxtx.  Feel free to add your own content and links.&lt;br /&gt;
&lt;br /&gt;
*[[Retrieving Source Code]] - How to get the source code from CVS&lt;br /&gt;
*[http://users.frii.com/jarvi/rxtx/doc/index.html gnu.io JavaDoc]&lt;br /&gt;
*[[Installers]]&lt;br /&gt;
*[[WebStart]]&lt;br /&gt;
*[[Examples]]&lt;/div&gt;</description>
			<pubDate>Mon, 14 Jul 2008 14:46:50 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Development</comments>		</item>
		<item>
			<title>JMRI</title>
			<link>http://rxtx.qbang.org/wiki/index.php/JMRI</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Reverted edits by TroccOeltr (Talk); changed back to last version by Rxtxsysop&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://jmri.sourceforge.net JMRI] uses RXTX to connect to the serial ports on model railroad hardware.&lt;br /&gt;
&lt;br /&gt;
JMRI was originally written to use the Sun javax.comm API, and still uses those classes.  We moved to RXTX for platforms where the Sun implementation wasn't available, or wasn't reliable.  Currently, we use RXTX for MacOS X, Linux, and certain flavors of Windows.&lt;br /&gt;
&lt;br /&gt;
The source tree is available from SourceForge either via&lt;br /&gt;
[http://jmri.sourceforge.net/doc/Technical/getcode.html anonymous download] or their&lt;br /&gt;
[http://cvs.sourceforge.net/viewcvs.py/jmri/jmri/ CVS web browser].&lt;br /&gt;
&lt;br /&gt;
[http://cvs.sourceforge.net/viewcvs.py/jmri/jmri/jmrix/nce/serialdriver/SerialDriverAdapter.java?view=markup Sample class using RXTX]&lt;/div&gt;</description>
			<pubDate>Mon, 14 Jul 2008 14:46:38 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:JMRI</comments>		</item>
		<item>
			<title>Examples</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Examples</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Reverted edits by AlpasEllid (Talk); changed back to last version by Ajmas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that all the examples below require that you import the gnu.io package.&lt;br /&gt;
&lt;br /&gt;
*[[Two way communcation with the serial port]]&lt;br /&gt;
*[[Parallel Communications]]&lt;br /&gt;
*[[Discovering comm ports]]&lt;br /&gt;
*[[Discovering available comm ports]]&lt;br /&gt;
*[[Writing &amp;quot;Hello World&amp;quot; to a USB to serial converter]]&lt;/div&gt;</description>
			<pubDate>Mon, 14 Jul 2008 14:45:33 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Examples</comments>		</item>
		<item>
			<title>User:Ajmas</title>
			<link>http://rxtx.qbang.org/wiki/index.php/User:Ajmas</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;New page: ==Spaceball 5000== ===Introduction===  Because of my interest in 3D input devices I decided to purchase myself, a serial based, Spaceball 5000. I chose this model because it had a spherica...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Spaceball 5000==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
Because of my interest in 3D input devices I decided to purchase myself, a serial based, Spaceball 5000. I chose this model because it had a spherical grip and was in a suitable price range for the hobby developer, when bought off eBay. Having a serial based deviced was not an issue, since I already had a PL2303 based USB to RS232 adaptor and the an appropriate driver (http://sourceforge.net/projects/osx-pl2303/). The problem was that there were no drivers for my operating system (MacOS X), and the communication protocol was not document anywhere that I had access to. I had found some source for the Spaceball 3003 and the Spaceball 4000, but a forum I came across indicated that the communication protocol was not the same for the Spaceball 5000.&lt;br /&gt;
&lt;br /&gt;
The first thing I tried was running the ‘screen’ tool from the command line to see what was being sent to the computer. Doing this revealed that data for the key presses were being sent back to the computer, but no information on the ball movement. Further research on the web confirmed that the ball would not sent back any data until it was initialised.&lt;br /&gt;
&lt;br /&gt;
The solution to my problem was to somehow know what communication was being performed in a normal scenario. To do this I got out my old Windows PC, running MS Windows 2000, downloaded and installed the driver. After confirming that it was working I got myself a copy of ‘portmon’ from Microsoft. Running portmon after reconnecting the Spaceball allowed me to see what initial handshake was being performed and what data it was being sent back.&lt;br /&gt;
&lt;br /&gt;
Follows are the details on what I found out, but it is far from complete.&lt;br /&gt;
&lt;br /&gt;
===Details===&lt;br /&gt;
&lt;br /&gt;
Serial port configuration: 9600 baud, parity: none, word length: 8&lt;br /&gt;
&lt;br /&gt;
A packet starts with a packet type id, is terminated by byte of value 13 (carriage return). The length of the packet depends on the packet type.&lt;br /&gt;
&lt;br /&gt;
Getting version:&lt;br /&gt;
* Send request: vQ&lt;br /&gt;
* Response: v  SPACEBALL Version 8.20  3Dconnexion GmbH 05/11/02&lt;br /&gt;
&lt;br /&gt;
Readying the ball&lt;br /&gt;
* Send requests: m3, q00, pAA, n?&lt;br /&gt;
* Response: none&lt;br /&gt;
&lt;br /&gt;
Key input:&lt;br /&gt;
* Send request: none&lt;br /&gt;
* Response: k000&lt;br /&gt;
	&lt;br /&gt;
Ball input&lt;br /&gt;
* Send request: none&lt;br /&gt;
* Response: dH000H000H000H000H000H000&lt;/div&gt;</description>
			<pubDate>Tue, 01 Jul 2008 17:29:28 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/User_talk:Ajmas</comments>		</item>
		<item>
			<title>Main Page</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Main_Page</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the RXTX wiki!&lt;br /&gt;
&lt;br /&gt;
This Wiki is intended to be by and for RXTX users and developers. There is already a lot of information provided, but feel free to add your own content. Note that you will need to create an account before editing pages, as part of an effort to battle spambots.&lt;br /&gt;
&lt;br /&gt;
*[http://www.rxtx.org RXTX home page]&lt;br /&gt;
*[[FAQ]]&lt;br /&gt;
*[[Installation]]&lt;br /&gt;
*[[Using RXTX]]&lt;br /&gt;
*[[Development]]&lt;br /&gt;
*[http://bugzilla.qbang.org Reporting Bugs]&lt;br /&gt;
*[[Projects | Projects using RXTX]]&lt;br /&gt;
&lt;br /&gt;
If after checking through the Wiki you don't find an answer to your question, then you can ask your question on the [[mailing-list]]. Posting questions in the talk pages is not the right place to ask your questions.&lt;br /&gt;
&lt;br /&gt;
There is also the [http://users.frii.com/jarvi/rxtx/ original RXTX website], which is still around, though most of the information has been migrated to the Wiki.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background-color: #ffffdd&amp;quot; &lt;br /&gt;
|Send mail to [mailto:tjarvi@qbang.org Trent] if you spot spambot activity.&lt;br /&gt;
|}&lt;/div&gt;</description>
			<pubDate>Sun, 20 Apr 2008 22:07:23 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</comments>		</item>
		<item>
			<title>Talk:Main Page</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;/* Lock Files and  serialPort.close() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In linux I am unsatisfied link error. I donot know what is problem. Can anyone help me&lt;br /&gt;
&lt;br /&gt;
== LINUX + WINDOWS ==&lt;br /&gt;
&lt;br /&gt;
Hello, I'm new on this subject.&lt;br /&gt;
I'm not sure if I've understood everything.&lt;br /&gt;
&lt;br /&gt;
Is it now posible to write an application using RXTX, and then run it on Linux&lt;br /&gt;
AND Windows?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
Japetos&lt;br /&gt;
&lt;br /&gt;
== Linux + WINDOWS ==&lt;br /&gt;
&lt;br /&gt;
RXTX is tested on Linux, Solaris and Windows.  The package is also tested by the Mac OSX community.&lt;br /&gt;
&lt;br /&gt;
Other systems should work but are not tested as much.&lt;br /&gt;
&lt;br /&gt;
So the answer to your question is yes.&lt;br /&gt;
&lt;br /&gt;
== Maximum baud rate ==&lt;br /&gt;
&lt;br /&gt;
I need to talk 4Mbit/s between a Java application and a CDC virtual serial port (COM4). The Windows driver supports the 4Mbit/s speed.&lt;br /&gt;
&lt;br /&gt;
Can I open a serial port with RXTX with higher speed than 115kbps?&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
I highly recommend you join the mailing-list, since you will get more answers there.&lt;br /&gt;
&lt;br /&gt;
== Lock Files and  serialPort.close() ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
I am running into the lock file permission problems, even though I've added my user to the uucp group.  using Debian Sarge.&lt;br /&gt;
&lt;br /&gt;
when I run my app as root, it clears out any stake lock files, but when it tries to close the serialPort with serialPort.close() it just stalls.&lt;br /&gt;
&lt;br /&gt;
the next time a scheduled read happens, I see this error:&lt;br /&gt;
&lt;br /&gt;
RXTX fhs_lock() Error: creating lock file: /var/lock/LCK..ttyS0: File exists&lt;br /&gt;
&lt;br /&gt;
which makes sense. but why can't I close the serial port when running even as root?&lt;br /&gt;
&lt;br /&gt;
thanks - trying to port from javax.comm, which does work for this stuff (but maybe not for other issues..)&lt;br /&gt;
&lt;br /&gt;
thanks, John&lt;br /&gt;
&lt;br /&gt;
'''Answer:''' Please post ask your questions on the [[mailing-list]], that's what it is there for.&lt;/div&gt;</description>
			<pubDate>Sun, 20 Apr 2008 22:05:39 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</comments>		</item>
		<item>
			<title>Talk:Main Page</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;/* Lock Files and  serialPort.close() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In linux I am unsatisfied link error. I donot know what is problem. Can anyone help me&lt;br /&gt;
&lt;br /&gt;
== LINUX + WINDOWS ==&lt;br /&gt;
&lt;br /&gt;
Hello, I'm new on this subject.&lt;br /&gt;
I'm not sure if I've understood everything.&lt;br /&gt;
&lt;br /&gt;
Is it now posible to write an application using RXTX, and then run it on Linux&lt;br /&gt;
AND Windows?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
Japetos&lt;br /&gt;
&lt;br /&gt;
== Linux + WINDOWS ==&lt;br /&gt;
&lt;br /&gt;
RXTX is tested on Linux, Solaris and Windows.  The package is also tested by the Mac OSX community.&lt;br /&gt;
&lt;br /&gt;
Other systems should work but are not tested as much.&lt;br /&gt;
&lt;br /&gt;
So the answer to your question is yes.&lt;br /&gt;
&lt;br /&gt;
== Maximum baud rate ==&lt;br /&gt;
&lt;br /&gt;
I need to talk 4Mbit/s between a Java application and a CDC virtual serial port (COM4). The Windows driver supports the 4Mbit/s speed.&lt;br /&gt;
&lt;br /&gt;
Can I open a serial port with RXTX with higher speed than 115kbps?&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
I highly recommend you join the mailing-list, since you will get more answers there.&lt;br /&gt;
&lt;br /&gt;
== Lock Files and  serialPort.close() ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
I am running into the lock file permission problems, even though I've added my user to the uucp group.  using Debian Sarge.&lt;br /&gt;
&lt;br /&gt;
when I run my app as root, it clears out any stake lock files, but when it tries to close the serialPort with serialPort.close() it just stalls.&lt;br /&gt;
&lt;br /&gt;
the next time a scheduled read happens, I see this error:&lt;br /&gt;
&lt;br /&gt;
RXTX fhs_lock() Error: creating lock file: /var/lock/LCK..ttyS0: File exists&lt;br /&gt;
&lt;br /&gt;
which makes sense. but why can't I close the serial port when running even as root?&lt;br /&gt;
&lt;br /&gt;
thanks - trying to port from javax.comm, which does work for this stuff (but maybe not for other issues..)&lt;br /&gt;
&lt;br /&gt;
thanks, John&lt;br /&gt;
&lt;br /&gt;
Please post ask your questions on the [[mailing-list]], that's what it is there for.&lt;/div&gt;</description>
			<pubDate>Sun, 20 Apr 2008 22:05:19 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</comments>		</item>
		<item>
			<title>Mailing list</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Mailing_list</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;New page: see Mailing-List.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;see [[Mailing-List]].&lt;/div&gt;</description>
			<pubDate>Sun, 20 Apr 2008 22:03:38 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Mailing_list</comments>		</item>
		<item>
			<title>Talk:Using RXTX</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Talk:Using_RXTX</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;/* error with finding files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== error with finding files ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
 I followed the linux installation of the rxtx libraries, and placed the librxtxSerial.so and the RXTXcomm.jar in the right directories.&lt;br /&gt;
&lt;br /&gt;
I have set the CLASSPATH, the JAVA_HOME and the LD_LIBRARY_PATH directories ok.&lt;br /&gt;
&lt;br /&gt;
but when I run the following application, I seem to not find the right library. is there any reason for this?&lt;br /&gt;
&lt;br /&gt;
thanks, John&lt;br /&gt;
&lt;br /&gt;
/usr/lib/jvm/java-1.5.0-sun-1.5.0.10/jre/bin/java -Djava.library.path=lib SerialAITest /dev/ttyS0 1 11 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exception in thread &amp;quot;main&amp;quot; java.lang.NoClassDefFoundError: javax/comm/SerialPortEventListener&lt;br /&gt;
	at java.lang.ClassLoader.defineClass1(Native Method)&lt;br /&gt;
	at java.lang.ClassLoader.defineClass(ClassLoader.java:620)&lt;br /&gt;
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)&lt;br /&gt;
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)&lt;br /&gt;
	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)&lt;br /&gt;
	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)&lt;br /&gt;
	at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)&lt;br /&gt;
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)&lt;br /&gt;
	at java.lang.ClassLoader.loadClass(ClassLoader.java:299)&lt;br /&gt;
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)&lt;br /&gt;
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)&lt;br /&gt;
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)&lt;br /&gt;
&lt;br /&gt;
Please post questions to the [[mailing list]].&lt;/div&gt;</description>
			<pubDate>Sun, 20 Apr 2008 22:03:05 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Using_RXTX</comments>		</item>
		<item>
			<title>Talk:Main Page</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In linux I am unsatisfied link error. I donot know what is problem. Can anyone help me&lt;br /&gt;
&lt;br /&gt;
== LINUX + WINDOWS ==&lt;br /&gt;
&lt;br /&gt;
Hello, I'm new on this subject.&lt;br /&gt;
I'm not sure if I've understood everything.&lt;br /&gt;
&lt;br /&gt;
Is it now posible to write an application using RXTX, and then run it on Linux&lt;br /&gt;
AND Windows?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
Japetos&lt;br /&gt;
&lt;br /&gt;
== Linux + WINDOWS ==&lt;br /&gt;
&lt;br /&gt;
RXTX is tested on Linux, Solaris and Windows.  The package is also tested by the Mac OSX community.&lt;br /&gt;
&lt;br /&gt;
Other systems should work but are not tested as much.&lt;br /&gt;
&lt;br /&gt;
So the answer to your question is yes.&lt;br /&gt;
&lt;br /&gt;
== Maximum baud rate ==&lt;br /&gt;
&lt;br /&gt;
I need to talk 4Mbit/s between a Java application and a CDC virtual serial port (COM4). The Windows driver supports the 4Mbit/s speed.&lt;br /&gt;
&lt;br /&gt;
Can I open a serial port with RXTX with higher speed than 115kbps?&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
I highly recommend you join the mailing-list, since you will get more answers there.&lt;/div&gt;</description>
			<pubDate>Thu, 03 Apr 2008 17:06:30 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Main_Page</comments>		</item>
		<item>
			<title>Installation on MS-Windows</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation_on_MS-Windows</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;/* cross-compiling from Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The instuctions below are a little dated, and have been copied over from the old docs. Please can someone update them:&lt;br /&gt;
&lt;br /&gt;
== Installing From Source==&lt;br /&gt;
&lt;br /&gt;
Get the Sun CommAPI if you want a plug-in solution.  The code  is provided for people that may have demanding needs and coding ability. &lt;br /&gt;
&lt;br /&gt;
There is only serial port code at this time.&lt;br /&gt;
&lt;br /&gt;
Three ways of compiling win32 libraries are offered:&lt;br /&gt;
&lt;br /&gt;
 mingw32 tools in DOS&lt;br /&gt;
 lcc tools in DOS&lt;br /&gt;
 cross-compiling from Linux&lt;br /&gt;
&lt;br /&gt;
=== mingw32 tools in DOS ===&lt;br /&gt;
&lt;br /&gt;
Install mingw32  http://www.mingw.org&lt;br /&gt;
Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
Make sure the ming32\bin and jdk\bin directories are in your path. In the rxtx top directory to the following:&lt;br /&gt;
 mkdir build&lt;br /&gt;
 copy Makefile.mingw32 build\Makefile&lt;br /&gt;
 cd build&lt;br /&gt;
edit the Makefile and make sure the directories are correct. &lt;br /&gt;
execute the following:&lt;br /&gt;
			make&lt;br /&gt;
			make install&lt;br /&gt;
	&lt;br /&gt;
=== lcc tools in DOS ===&lt;br /&gt;
&lt;br /&gt;
Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
Install lcc http://www.cs.virginia.edu/~lcc-win32/&lt;br /&gt;
&lt;br /&gt;
A make file (Makefile.lcc) for compiling rxtx with lcc contributed by Valentin Pavlov&lt;br /&gt;
&lt;br /&gt;
You will need a config.h file in the src directory.  Other builds usually generate them automatically.  The following should work.&lt;br /&gt;
&lt;br /&gt;
 #define HAVE_FCNTL_H&lt;br /&gt;
 #define HAVE_SIGNAL_H&lt;br /&gt;
 #undef HAVE_SYS_FCNTL_H&lt;br /&gt;
 #undef HAVE_SYS_FILE_H&lt;br /&gt;
 #undef HAVE_SYS_SIGNAL_H&lt;br /&gt;
 #undef HAVE_TERMIOS_H&lt;br /&gt;
 #undef HAVE_SYS_TIME_H&lt;br /&gt;
&lt;br /&gt;
if you know how to create the above in a dos Makefile send in the changes.&lt;br /&gt;
&lt;br /&gt;
the following commands should then work fine on the command line.&lt;br /&gt;
&lt;br /&gt;
 cd src&lt;br /&gt;
 make -f ..\Makefile.lcc&lt;br /&gt;
&lt;br /&gt;
=== cross-compiling from Linux ===&lt;br /&gt;
&lt;br /&gt;
Grab ming32:&lt;br /&gt;
&lt;br /&gt;
Wayne Roberts contributed the version used by the maintainer. (Wayne is largely responsible for bringing rxtx back to win32.)&lt;br /&gt;
 http://www.linuxgrrls.org/~taj/crossmingw32-2.95-1.i386.rpm&lt;br /&gt;
A more current version can be obtained:&lt;br /&gt;
 http://www.devolution.com/~slouken/SDL/Xmingw32/crossgcc/index.html&lt;br /&gt;
prebuilt Binaries:&lt;br /&gt;
 http://www.devolution.com/~slouken/SDL/Xmingw32/mingw32-linux-x86-glibc-2.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
I built the dll with jdk-1.2.2 for linux using jdk-1.2.2 include files from the win32 JDK.&lt;br /&gt;
&lt;br /&gt;
Make sure that ming32 bin dir is the first in your path (at least before /usr/bin/gcc)&lt;br /&gt;
&lt;br /&gt;
 $ export PATH=&amp;quot; \&lt;br /&gt;
    /usr/local/cross-tools/i386-mingw32/bin/: \&lt;br /&gt;
    $PATH:/usr/X11R6/bin:/usr/local/java/bin: \&lt;br /&gt;
    /usr/local/java/jre/bin/:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Place Sun jdk 1.2.2 win32 include files in a known location.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir /home/jarvi/win32java&lt;br /&gt;
 $ cp -r /mnt/win98//java/include /home/jarvi/win32java&lt;br /&gt;
&lt;br /&gt;
If you are developing win32 support you may want to export the location to make the config script non interactive&lt;br /&gt;
&lt;br /&gt;
 $ export WIN32INCLUDE=/home/jarvi/tools/win32-include&lt;br /&gt;
&lt;br /&gt;
run configure to generate a Makefile&lt;br /&gt;
&lt;br /&gt;
 $ cd /home/jarvi/rxtx-*&lt;br /&gt;
 $ mkdir build&lt;br /&gt;
 $ cd build&lt;br /&gt;
 $ ../configure --target=i386-mingw32  \&lt;br /&gt;
   --host=i386-redhat-linux&lt;br /&gt;
&lt;br /&gt;
build the class files and dll.&lt;br /&gt;
&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
the files will be located in&lt;br /&gt;
&lt;br /&gt;
 rxtx-*/build/...&lt;br /&gt;
&lt;br /&gt;
If you're looking at rxtx as an example of cross-compiling you may be interested in looking at the examples provided at:&lt;br /&gt;
&lt;br /&gt;
 ftp.xraylith.wisc.edu&lt;br /&gt;
 /pub/khan/gnu-win32/mingw32/misc/java-jni-examples.zip&lt;br /&gt;
&lt;br /&gt;
=== Building with Eclipse/CDT ===&lt;br /&gt;
These builds instructions currently depend on a [http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2/Makefile makefile] available from CodeSkin.&lt;br /&gt;
&lt;br /&gt;
* Install Eclipse with CDT and Subclipse. Subclipse is the eclipse interface to subversion and instructions for installing it are at http://subclipse.tigris.org/install.html&lt;br /&gt;
* Install MinGW&lt;br /&gt;
* In Eclipse, select &amp;quot;New Project &amp;gt; Checkout Projects from SVN&amp;quot; and choose this repository location: http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2.&lt;br /&gt;
* Check out as a &amp;quot;project configured using the New Project Wizard&amp;quot; and choose &amp;quot;Java Project&amp;quot;.&lt;br /&gt;
* Once the project has been created, right-click on the project, select &amp;quot;new&amp;gt;other&amp;gt;C++&amp;gt;Convert to a C/C++ Make Project&amp;quot;&lt;br /&gt;
* Right-click on project again and select &amp;quot;properties&amp;gt;C/C++Build&amp;quot; and change &amp;quot;Build command&amp;quot; to&lt;br /&gt;
 C:\MinGW\bin\mingw32-make&lt;br /&gt;
* Finally, hit &amp;quot;Build All&amp;quot;, which should create RXTXcomm.jar and rxtxSerial.dll&lt;br /&gt;
&lt;br /&gt;
== Installing Binaries ==&lt;br /&gt;
&lt;br /&gt;
To do...&lt;br /&gt;
&lt;br /&gt;
Consider merging with [[Installation for Windows]].&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
&lt;br /&gt;
Follows are some links that might be useful:&lt;br /&gt;
&lt;br /&gt;
* http://www.codeskin.com/c2oooProg_faq.html#rxtx&lt;br /&gt;
* http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2/Makefile&lt;/div&gt;</description>
			<pubDate>Fri, 21 Mar 2008 14:14:19 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation_on_MS-Windows</comments>		</item>
		<item>
			<title>Installation on MS-Windows</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation_on_MS-Windows</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;reformatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The instuctions below are a little dated, and have been copied over from the old docs. Please can someone update them:&lt;br /&gt;
&lt;br /&gt;
== Installing From Source==&lt;br /&gt;
&lt;br /&gt;
Get the Sun CommAPI if you want a plug-in solution.  The code  is provided for people that may have demanding needs and coding ability. &lt;br /&gt;
&lt;br /&gt;
There is only serial port code at this time.&lt;br /&gt;
&lt;br /&gt;
Three ways of compiling win32 libraries are offered:&lt;br /&gt;
&lt;br /&gt;
 mingw32 tools in DOS&lt;br /&gt;
 lcc tools in DOS&lt;br /&gt;
 cross-compiling from Linux&lt;br /&gt;
&lt;br /&gt;
=== mingw32 tools in DOS ===&lt;br /&gt;
&lt;br /&gt;
Install mingw32  http://www.mingw.org&lt;br /&gt;
Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
Make sure the ming32\bin and jdk\bin directories are in your path. In the rxtx top directory to the following:&lt;br /&gt;
 mkdir build&lt;br /&gt;
 copy Makefile.mingw32 build\Makefile&lt;br /&gt;
 cd build&lt;br /&gt;
edit the Makefile and make sure the directories are correct. &lt;br /&gt;
execute the following:&lt;br /&gt;
			make&lt;br /&gt;
			make install&lt;br /&gt;
	&lt;br /&gt;
=== lcc tools in DOS ===&lt;br /&gt;
&lt;br /&gt;
Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
Install lcc http://www.cs.virginia.edu/~lcc-win32/&lt;br /&gt;
&lt;br /&gt;
A make file (Makefile.lcc) for compiling rxtx with lcc contributed by Valentin Pavlov&lt;br /&gt;
&lt;br /&gt;
You will need a config.h file in the src directory.  Other builds usually generate them automatically.  The following should work.&lt;br /&gt;
&lt;br /&gt;
 #define HAVE_FCNTL_H&lt;br /&gt;
 #define HAVE_SIGNAL_H&lt;br /&gt;
 #undef HAVE_SYS_FCNTL_H&lt;br /&gt;
 #undef HAVE_SYS_FILE_H&lt;br /&gt;
 #undef HAVE_SYS_SIGNAL_H&lt;br /&gt;
 #undef HAVE_TERMIOS_H&lt;br /&gt;
 #undef HAVE_SYS_TIME_H&lt;br /&gt;
&lt;br /&gt;
if you know how to create the above in a dos Makefile send in the changes.&lt;br /&gt;
&lt;br /&gt;
the following commands should then work fine on the command line.&lt;br /&gt;
&lt;br /&gt;
 cd src&lt;br /&gt;
 make -f ..\Makefile.lcc&lt;br /&gt;
&lt;br /&gt;
=== cross-compiling from Linux ===&lt;br /&gt;
&lt;br /&gt;
Grab ming32:&lt;br /&gt;
&lt;br /&gt;
Wayne Roberts contributed the version used by the maintainer. (Wayne is largely responsible for bringing rxtx back to win32.)&lt;br /&gt;
 http://www.linuxgrrls.org/~taj/crossmingw32-2.95-1.i386.rpm&lt;br /&gt;
A more current version can be obtained:&lt;br /&gt;
 http://www.devolution.com/~slouken/SDL/Xmingw32/crossgcc/index.html&lt;br /&gt;
prebuilt Binaries:&lt;br /&gt;
 http://www.devolution.com/~slouken/SDL/Xmingw32/mingw32-linux-x86-glibc-2.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
I built the dll with jdk-1.2.2 for linux using jdk-1.2.2 include files from the win32 JDK.&lt;br /&gt;
&lt;br /&gt;
Make sure that ming32 bin dir is the first in your path (at least before /usr/bin/gcc)&lt;br /&gt;
&lt;br /&gt;
 $ export PATH=&amp;quot; \&lt;br /&gt;
    /usr/local/cross-tools/i386-mingw32/bin/: \&lt;br /&gt;
    $PATH:/usr/X11R6/bin:/usr/local/java/bin: \&lt;br /&gt;
    /usr/local/java/jre/bin/:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Place Sun jdk 1.2.2 win32 include files in a known location.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir /home/jarvi/win32java&lt;br /&gt;
 $ cp -r /mnt/win98//java/include /home/jarvi/win32java&lt;br /&gt;
&lt;br /&gt;
If you are developing win32 support you may want to export the location to make the config script non interactive&lt;br /&gt;
&lt;br /&gt;
 $ export WIN32INCLUDE=/home/jarvi/tools/win32-include&lt;br /&gt;
&lt;br /&gt;
run configure to generate a Makefile&lt;br /&gt;
&lt;br /&gt;
 $ cd /home/jarvi/rxtx-*&lt;br /&gt;
 $ mkdir build&lt;br /&gt;
 $ cd build&lt;br /&gt;
 $ ../configure --target=i386-mingw32  \&lt;br /&gt;
	--host=i386-redhat-linux&lt;br /&gt;
&lt;br /&gt;
build the class files and dll.&lt;br /&gt;
&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
the files will be located in&lt;br /&gt;
&lt;br /&gt;
 rxtx-*/build/...&lt;br /&gt;
&lt;br /&gt;
If you're looking at rxtx as an example of cross-compiling you may be interested in looking at the examples provided at:&lt;br /&gt;
&lt;br /&gt;
 ftp.xraylith.wisc.edu&lt;br /&gt;
 /pub/khan/gnu-win32/mingw32/misc/java-jni-examples.zip&lt;br /&gt;
&lt;br /&gt;
=== Building with Eclipse/CDT ===&lt;br /&gt;
These builds instructions currently depend on a [http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2/Makefile makefile] available from CodeSkin.&lt;br /&gt;
&lt;br /&gt;
* Install Eclipse with CDT and Subclipse. Subclipse is the eclipse interface to subversion and instructions for installing it are at http://subclipse.tigris.org/install.html&lt;br /&gt;
* Install MinGW&lt;br /&gt;
* In Eclipse, select &amp;quot;New Project &amp;gt; Checkout Projects from SVN&amp;quot; and choose this repository location: http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2.&lt;br /&gt;
* Check out as a &amp;quot;project configured using the New Project Wizard&amp;quot; and choose &amp;quot;Java Project&amp;quot;.&lt;br /&gt;
* Once the project has been created, right-click on the project, select &amp;quot;new&amp;gt;other&amp;gt;C++&amp;gt;Convert to a C/C++ Make Project&amp;quot;&lt;br /&gt;
* Right-click on project again and select &amp;quot;properties&amp;gt;C/C++Build&amp;quot; and change &amp;quot;Build command&amp;quot; to&lt;br /&gt;
 C:\MinGW\bin\mingw32-make&lt;br /&gt;
* Finally, hit &amp;quot;Build All&amp;quot;, which should create RXTXcomm.jar and rxtxSerial.dll&lt;br /&gt;
&lt;br /&gt;
== Installing Binaries ==&lt;br /&gt;
&lt;br /&gt;
To do...&lt;br /&gt;
&lt;br /&gt;
Consider merging with [[Installation for Windows]].&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
&lt;br /&gt;
Follows are some links that might be useful:&lt;br /&gt;
&lt;br /&gt;
* http://www.codeskin.com/c2oooProg_faq.html#rxtx&lt;br /&gt;
* http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2/Makefile&lt;/div&gt;</description>
			<pubDate>Fri, 21 Mar 2008 14:13:40 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation_on_MS-Windows</comments>		</item>
		<item>
			<title>Installation on MS-Windows</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation_on_MS-Windows</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;reformatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The instuctions below are a little dated, and have been copied over from the old docs. Please can someone update them:&lt;br /&gt;
&lt;br /&gt;
== Installing From Source==&lt;br /&gt;
&lt;br /&gt;
Get the Sun CommAPI if you want a plug-in solution.  The code  is provided for people that may have demanding needs and coding ability. &lt;br /&gt;
&lt;br /&gt;
There is only serial port code at this time.&lt;br /&gt;
&lt;br /&gt;
Three ways of compiling win32 libraries are offered:&lt;br /&gt;
&lt;br /&gt;
 mingw32 tools in DOS&lt;br /&gt;
 lcc tools in DOS&lt;br /&gt;
 cross-compiling from Linux&lt;br /&gt;
&lt;br /&gt;
===== mingw32 tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
Install mingw32  http://www.mingw.org&lt;br /&gt;
Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
Make sure the ming32\bin and jdk\bin directories are in your path. In the rxtx top directory to the following:&lt;br /&gt;
 mkdir build&lt;br /&gt;
 copy Makefile.mingw32 build\Makefile&lt;br /&gt;
 cd build&lt;br /&gt;
edit the Makefile and make sure the directories are correct. &lt;br /&gt;
execute the following:&lt;br /&gt;
			make&lt;br /&gt;
			make install&lt;br /&gt;
	&lt;br /&gt;
===== lcc tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
Install lcc http://www.cs.virginia.edu/~lcc-win32/&lt;br /&gt;
&lt;br /&gt;
A make file (Makefile.lcc) for compiling rxtx with lcc contributed by Valentin Pavlov&lt;br /&gt;
&lt;br /&gt;
You will need a config.h file in the src directory.  Other builds usually generate them automatically.  The following should work.&lt;br /&gt;
&lt;br /&gt;
 #define HAVE_FCNTL_H&lt;br /&gt;
 #define HAVE_SIGNAL_H&lt;br /&gt;
 #undef HAVE_SYS_FCNTL_H&lt;br /&gt;
 #undef HAVE_SYS_FILE_H&lt;br /&gt;
 #undef HAVE_SYS_SIGNAL_H&lt;br /&gt;
 #undef HAVE_TERMIOS_H&lt;br /&gt;
 #undef HAVE_SYS_TIME_H&lt;br /&gt;
&lt;br /&gt;
if you know how to create the above in a dos Makefile send in the changes.&lt;br /&gt;
&lt;br /&gt;
the following commands should then work fine on the command line.&lt;br /&gt;
&lt;br /&gt;
 cd src&lt;br /&gt;
 make -f ..\Makefile.lcc&lt;br /&gt;
&lt;br /&gt;
===== cross-compiling from Linux =====&lt;br /&gt;
&lt;br /&gt;
Grab ming32:&lt;br /&gt;
&lt;br /&gt;
Wayne Roberts contributed the version used by the maintainer. (Wayne is largely responsible for bringing rxtx back to win32.)&lt;br /&gt;
 http://www.linuxgrrls.org/~taj/crossmingw32-2.95-1.i386.rpm&lt;br /&gt;
A more current version can be obtained:&lt;br /&gt;
 http://www.devolution.com/~slouken/SDL/Xmingw32/crossgcc/index.html&lt;br /&gt;
prebuilt Binaries:&lt;br /&gt;
 http://www.devolution.com/~slouken/SDL/Xmingw32/mingw32-linux-x86-glibc-2.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
I built the dll with jdk-1.2.2 for linux using jdk-1.2.2 include files from the win32 JDK.&lt;br /&gt;
&lt;br /&gt;
Make sure that ming32 bin dir is the first in your path (at least before /usr/bin/gcc)&lt;br /&gt;
&lt;br /&gt;
 $ export PATH=&amp;quot; \&lt;br /&gt;
    /usr/local/cross-tools/i386-mingw32/bin/: \&lt;br /&gt;
    $PATH:/usr/X11R6/bin:/usr/local/java/bin: \&lt;br /&gt;
    /usr/local/java/jre/bin/:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Place Sun jdk 1.2.2 win32 include files in a known location.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir /home/jarvi/win32java&lt;br /&gt;
 $ cp -r /mnt/win98//java/include /home/jarvi/win32java&lt;br /&gt;
&lt;br /&gt;
If you are developing win32 support you may want to export the location to make the config script non interactive&lt;br /&gt;
&lt;br /&gt;
 $ export WIN32INCLUDE=/home/jarvi/tools/win32-include&lt;br /&gt;
&lt;br /&gt;
run configure to generate a Makefile&lt;br /&gt;
&lt;br /&gt;
 $ cd /home/jarvi/rxtx-*&lt;br /&gt;
 $ mkdir build&lt;br /&gt;
 $ cd build&lt;br /&gt;
 $ ../configure --target=i386-mingw32  \&lt;br /&gt;
	--host=i386-redhat-linux&lt;br /&gt;
&lt;br /&gt;
build the class files and dll.&lt;br /&gt;
&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
the files will be located in&lt;br /&gt;
&lt;br /&gt;
 rxtx-*/build/...&lt;br /&gt;
&lt;br /&gt;
If you're looking at rxtx as an example of cross-compiling you may be interested in looking at the examples provided at:&lt;br /&gt;
&lt;br /&gt;
 ftp.xraylith.wisc.edu&lt;br /&gt;
 /pub/khan/gnu-win32/mingw32/misc/java-jni-examples.zip&lt;br /&gt;
&lt;br /&gt;
=== Building with Eclipse/CDT ===&lt;br /&gt;
These builds instructions currently depend on a [http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2/Makefile makefile] available from CodeSkin.&lt;br /&gt;
&lt;br /&gt;
* Install Eclipse with CDT and Subclipse. Subclipse is the eclipse interface to subversion and instructions for installing it are at http://subclipse.tigris.org/install.html&lt;br /&gt;
* Install MinGW&lt;br /&gt;
* In Eclipse, select &amp;quot;New Project &amp;gt; Checkout Projects from SVN&amp;quot; and choose this repository location: http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2.&lt;br /&gt;
* Check out as a &amp;quot;project configured using the New Project Wizard&amp;quot; and choose &amp;quot;Java Project&amp;quot;.&lt;br /&gt;
* Once the project has been created, right-click on the project, select &amp;quot;new&amp;gt;other&amp;gt;C++&amp;gt;Convert to a C/C++ Make Project&amp;quot;&lt;br /&gt;
* Right-click on project again and select &amp;quot;properties&amp;gt;C/C++Build&amp;quot; and change &amp;quot;Build command&amp;quot; to&lt;br /&gt;
 C:\MinGW\bin\mingw32-make&lt;br /&gt;
* Finally, hit &amp;quot;Build All&amp;quot;, which should create RXTXcomm.jar and rxtxSerial.dll&lt;br /&gt;
&lt;br /&gt;
== Installing Binaries ==&lt;br /&gt;
&lt;br /&gt;
To do...&lt;br /&gt;
&lt;br /&gt;
Consider merging with [[Installation for Windows]].&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
&lt;br /&gt;
Follows are some links that might be useful:&lt;br /&gt;
&lt;br /&gt;
* http://www.codeskin.com/c2oooProg_faq.html#rxtx&lt;br /&gt;
* http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2/Makefile&lt;/div&gt;</description>
			<pubDate>Fri, 21 Mar 2008 14:11:23 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation_on_MS-Windows</comments>		</item>
		<item>
			<title>Installation on MS-Windows</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation_on_MS-Windows</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;/* Installing From Source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The instuctions below are a little dated, and have been copied over from the old docs. Please can someone update them:&lt;br /&gt;
&lt;br /&gt;
== Installing From Source==&lt;br /&gt;
==== Compiling for Win32 support ====&lt;br /&gt;
&lt;br /&gt;
		Get the Sun CommAPI if you want a plug-in solution.  The code &lt;br /&gt;
		is provided for people that may have demanding needs and coding&lt;br /&gt;
		ability. &lt;br /&gt;
&lt;br /&gt;
		There is only serial port code at this time.&lt;br /&gt;
&lt;br /&gt;
		Three ways of compiling win32 libraries are offered:&lt;br /&gt;
&lt;br /&gt;
			mingw32 tools in DOS&lt;br /&gt;
			lcc tools in DOS&lt;br /&gt;
			cross-compiling from Linux&lt;br /&gt;
===== mingw32 tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
		Install mingw32  http://www.mingw.org&lt;br /&gt;
		Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
		Make sure the ming32\bin and jdk\bin directories are in your&lt;br /&gt;
		path.&lt;br /&gt;
		In the rxtx top directory to the following:&lt;br /&gt;
		mkdir build&lt;br /&gt;
		copy Makefile.mingw32 build\Makefile&lt;br /&gt;
		cd build&lt;br /&gt;
		edit the Makefile and make sure the directories are correct.&lt;br /&gt;
		execute the following:&lt;br /&gt;
			make&lt;br /&gt;
			make install&lt;br /&gt;
	&lt;br /&gt;
===== lcc tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
		Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
		Install lcc http://www.cs.virginia.edu/~lcc-win32/&lt;br /&gt;
&lt;br /&gt;
		A make file (Makefile.lcc) for compiling rxtx with lcc&lt;br /&gt;
		contributed by Valentin Pavlov&lt;br /&gt;
&lt;br /&gt;
		You will need a config.h file in the src directory.  Other&lt;br /&gt;
		builds usually generate them automatically.  The following&lt;br /&gt;
		should work.&lt;br /&gt;
&lt;br /&gt;
		#define HAVE_FCNTL_H&lt;br /&gt;
		#define HAVE_SIGNAL_H&lt;br /&gt;
		#undef HAVE_SYS_FCNTL_H&lt;br /&gt;
		#undef HAVE_SYS_FILE_H&lt;br /&gt;
		#undef HAVE_SYS_SIGNAL_H&lt;br /&gt;
		#undef HAVE_TERMIOS_H&lt;br /&gt;
		#undef HAVE_SYS_TIME_H&lt;br /&gt;
&lt;br /&gt;
		if you know how to create the above in a dos Makefile send in			the changes.&lt;br /&gt;
&lt;br /&gt;
		the following commands should then work fine on the command&lt;br /&gt;
		line.&lt;br /&gt;
&lt;br /&gt;
		cd src&lt;br /&gt;
		make -f ..\Makefile.lcc&lt;br /&gt;
&lt;br /&gt;
===== cross-compiling from Linux =====&lt;br /&gt;
&lt;br /&gt;
		Grab ming32:&lt;br /&gt;
&lt;br /&gt;
		Wayne Roberts contributed the version used by the maintainer.&lt;br /&gt;
		(Wayne is largely responsible for bringing rxtx back to win32.)&lt;br /&gt;
		http://www.linuxgrrls.org/~taj/crossmingw32-2.95-1.i386.rpm&lt;br /&gt;
		A more current version can be obtained:&lt;br /&gt;
		http://www.devolution.com/~slouken/SDL/Xmingw32/crossgcc/index.html&lt;br /&gt;
		prebuilt Binaries:&lt;br /&gt;
		http://www.devolution.com/~slouken/SDL/Xmingw32/mingw32-linux-x86-glibc-2.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
		I built the dll with jdk-1.2.2 for linux using jdk-1.2.2 &lt;br /&gt;
		include files from the win32 JDK.&lt;br /&gt;
&lt;br /&gt;
		Make sure that ming32 bin dir is the first in your path (at &lt;br /&gt;
		least before /usr/bin/gcc)&lt;br /&gt;
&lt;br /&gt;
			$ export PATH=&amp;quot; \&lt;br /&gt;
				/usr/local/cross-tools/i386-mingw32/bin/: \&lt;br /&gt;
				$PATH:/usr/X11R6/bin:/usr/local/java/bin: \&lt;br /&gt;
				/usr/local/java/jre/bin/:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		Place Sun jdk 1.2.2 win32 include files in a known location.&lt;br /&gt;
&lt;br /&gt;
			$ mkdir /home/jarvi/win32java&lt;br /&gt;
			$ cp -r /mnt/win98//java/include /home/jarvi/win32java&lt;br /&gt;
&lt;br /&gt;
			If you are developing win32 support you may want to&lt;br /&gt;
			export the location to make the config script&lt;br /&gt;
			non interactive&lt;br /&gt;
&lt;br /&gt;
			$ export WIN32INCLUDE=/home/jarvi/tools/win32-include&lt;br /&gt;
&lt;br /&gt;
		run configure to generate a Makefile&lt;br /&gt;
&lt;br /&gt;
			$ cd /home/jarvi/rxtx-*&lt;br /&gt;
			$ mkdir build&lt;br /&gt;
			$ cd build&lt;br /&gt;
			$ ../configure --target=i386-mingw32  \&lt;br /&gt;
				--host=i386-redhat-linux&lt;br /&gt;
&lt;br /&gt;
		build the class files and dll.&lt;br /&gt;
&lt;br /&gt;
			$ make&lt;br /&gt;
&lt;br /&gt;
		the files will be located in&lt;br /&gt;
&lt;br /&gt;
			rxtx-*/build/...&lt;br /&gt;
&lt;br /&gt;
		If you're looking at rxtx as an example of cross-compiling you &lt;br /&gt;
		may be interested in looking at the examples provided at:&lt;br /&gt;
&lt;br /&gt;
			ftp.xraylith.wisc.edu&lt;br /&gt;
			/pub/khan/gnu-win32/mingw32/misc/java-jni-examples.zip&lt;br /&gt;
&lt;br /&gt;
=== Building with Eclipse/CDT ===&lt;br /&gt;
These builds instructions currently depend on a patch available from CodeSkin.&lt;br /&gt;
&lt;br /&gt;
* Install Eclipse with CDT&lt;br /&gt;
* Install MinGW&lt;br /&gt;
* In Eclipse, select &amp;quot;New Project &amp;gt; Checkout Projects from SVN&amp;quot; and choose this repository location: http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2-DTR-patch.&lt;br /&gt;
* Check out as a &amp;quot;project configured using the New Project Wizard&amp;quot; and choose &amp;quot;Java Project&amp;quot;.&lt;br /&gt;
* Once the project has been created, right-click on the project, select &amp;quot;new&amp;gt;other&amp;gt;Convert to a C/C++ Make Project&amp;quot;&lt;br /&gt;
* Right-click on project again and select &amp;quot;properties&amp;gt;C/C++Build&amp;quot; and change &amp;quot;Build command&amp;quot; to&lt;br /&gt;
 C:\MinGW\bin\mingw32-make&lt;br /&gt;
* Finally, hit &amp;quot;Build All&amp;quot;, which should create RXTXcomm.jar and rxtxSerial.dll&lt;br /&gt;
&lt;br /&gt;
== Installing Binaries ==&lt;br /&gt;
&lt;br /&gt;
To do...&lt;br /&gt;
&lt;br /&gt;
Consider merging with [[Installation for Windows]].&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
&lt;br /&gt;
Follows are some links that might be useful:&lt;br /&gt;
&lt;br /&gt;
* http://www.codeskin.com/c2oooProg_faq.html#rxtx&lt;br /&gt;
* http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2-DTR-patch/Makefile&lt;/div&gt;</description>
			<pubDate>Thu, 28 Feb 2008 01:53:06 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation_on_MS-Windows</comments>		</item>
		<item>
			<title>Installation on MS-Windows</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation_on_MS-Windows</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The instuctions below are a little dated, and have been copied over from the old docs. Please can someone update them:&lt;br /&gt;
&lt;br /&gt;
== Installing From Source==&lt;br /&gt;
==== Compiling for Win32 support ====&lt;br /&gt;
&lt;br /&gt;
		Get the Sun CommAPI if you want a plug-in solution.  The code &lt;br /&gt;
		is provided for people that may have demanding needs and coding&lt;br /&gt;
		ability. &lt;br /&gt;
&lt;br /&gt;
		There is only serial port code at this time.&lt;br /&gt;
&lt;br /&gt;
		Three ways of compiling win32 libraries are offered:&lt;br /&gt;
&lt;br /&gt;
			mingw32 tools in DOS&lt;br /&gt;
			lcc tools in DOS&lt;br /&gt;
			cross-compiling from Linux&lt;br /&gt;
===== mingw32 tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
		Install mingw32  http://www.mingw.org&lt;br /&gt;
		Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
		Make sure the ming32\bin and jdk\bin directories are in your&lt;br /&gt;
		path.&lt;br /&gt;
		In the rxtx top directory to the following:&lt;br /&gt;
		mkdir build&lt;br /&gt;
		copy Makefile.mingw32 build\Makefile&lt;br /&gt;
		cd build&lt;br /&gt;
		edit the Makefile and make sure the directories are correct.&lt;br /&gt;
		execute the following:&lt;br /&gt;
			make&lt;br /&gt;
			make install&lt;br /&gt;
	&lt;br /&gt;
===== lcc tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
		Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
		Install lcc http://www.cs.virginia.edu/~lcc-win32/&lt;br /&gt;
&lt;br /&gt;
		A make file (Makefile.lcc) for compiling rxtx with lcc&lt;br /&gt;
		contributed by Valentin Pavlov&lt;br /&gt;
&lt;br /&gt;
		You will need a config.h file in the src directory.  Other&lt;br /&gt;
		builds usually generate them automatically.  The following&lt;br /&gt;
		should work.&lt;br /&gt;
&lt;br /&gt;
		#define HAVE_FCNTL_H&lt;br /&gt;
		#define HAVE_SIGNAL_H&lt;br /&gt;
		#undef HAVE_SYS_FCNTL_H&lt;br /&gt;
		#undef HAVE_SYS_FILE_H&lt;br /&gt;
		#undef HAVE_SYS_SIGNAL_H&lt;br /&gt;
		#undef HAVE_TERMIOS_H&lt;br /&gt;
		#undef HAVE_SYS_TIME_H&lt;br /&gt;
&lt;br /&gt;
		if you know how to create the above in a dos Makefile send in			the changes.&lt;br /&gt;
&lt;br /&gt;
		the following commands should then work fine on the command&lt;br /&gt;
		line.&lt;br /&gt;
&lt;br /&gt;
		cd src&lt;br /&gt;
		make -f ..\Makefile.lcc&lt;br /&gt;
&lt;br /&gt;
===== cross-compiling from Linux =====&lt;br /&gt;
&lt;br /&gt;
		Grab ming32:&lt;br /&gt;
&lt;br /&gt;
		Wayne Roberts contributed the version used by the maintainer.&lt;br /&gt;
		(Wayne is largely responsible for bringing rxtx back to win32.)&lt;br /&gt;
		http://www.linuxgrrls.org/~taj/crossmingw32-2.95-1.i386.rpm&lt;br /&gt;
		A more current version can be obtained:&lt;br /&gt;
		http://www.devolution.com/~slouken/SDL/Xmingw32/crossgcc/index.html&lt;br /&gt;
		prebuilt Binaries:&lt;br /&gt;
		http://www.devolution.com/~slouken/SDL/Xmingw32/mingw32-linux-x86-glibc-2.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
		I built the dll with jdk-1.2.2 for linux using jdk-1.2.2 &lt;br /&gt;
		include files from the win32 JDK.&lt;br /&gt;
&lt;br /&gt;
		Make sure that ming32 bin dir is the first in your path (at &lt;br /&gt;
		least before /usr/bin/gcc)&lt;br /&gt;
&lt;br /&gt;
			$ export PATH=&amp;quot; \&lt;br /&gt;
				/usr/local/cross-tools/i386-mingw32/bin/: \&lt;br /&gt;
				$PATH:/usr/X11R6/bin:/usr/local/java/bin: \&lt;br /&gt;
				/usr/local/java/jre/bin/:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		Place Sun jdk 1.2.2 win32 include files in a known location.&lt;br /&gt;
&lt;br /&gt;
			$ mkdir /home/jarvi/win32java&lt;br /&gt;
			$ cp -r /mnt/win98//java/include /home/jarvi/win32java&lt;br /&gt;
&lt;br /&gt;
			If you are developing win32 support you may want to&lt;br /&gt;
			export the location to make the config script&lt;br /&gt;
			non interactive&lt;br /&gt;
&lt;br /&gt;
			$ export WIN32INCLUDE=/home/jarvi/tools/win32-include&lt;br /&gt;
&lt;br /&gt;
		run configure to generate a Makefile&lt;br /&gt;
&lt;br /&gt;
			$ cd /home/jarvi/rxtx-*&lt;br /&gt;
			$ mkdir build&lt;br /&gt;
			$ cd build&lt;br /&gt;
			$ ../configure --target=i386-mingw32  \&lt;br /&gt;
				--host=i386-redhat-linux&lt;br /&gt;
&lt;br /&gt;
		build the class files and dll.&lt;br /&gt;
&lt;br /&gt;
			$ make&lt;br /&gt;
&lt;br /&gt;
		the files will be located in&lt;br /&gt;
&lt;br /&gt;
			rxtx-*/build/...&lt;br /&gt;
&lt;br /&gt;
		If you're looking at rxtx as an example of cross-compiling you &lt;br /&gt;
		may be interested in looking at the examples provided at:&lt;br /&gt;
&lt;br /&gt;
			ftp.xraylith.wisc.edu&lt;br /&gt;
			/pub/khan/gnu-win32/mingw32/misc/java-jni-examples.zip&lt;br /&gt;
&lt;br /&gt;
== Installing Binaries ==&lt;br /&gt;
&lt;br /&gt;
To do...&lt;br /&gt;
&lt;br /&gt;
Consider merging with [[Installation for Windows]].&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
&lt;br /&gt;
Follows are some links that might be useful:&lt;br /&gt;
&lt;br /&gt;
* http://www.codeskin.com/c2oooProg_faq.html#rxtx&lt;br /&gt;
* http://www.codeskin.com/pubsvn/rxtx/tags/rxtx-2.1-7r2-DTR-patch/Makefile&lt;/div&gt;</description>
			<pubDate>Thu, 28 Feb 2008 01:42:43 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation_on_MS-Windows</comments>		</item>
		<item>
			<title>User talk:203.88.192.104</title>
			<link>http://rxtx.qbang.org/wiki/index.php/User_talk:203.88.192.104</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Reverted edits by C4telCacor (Talk); changed back to last version by Ajmas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Wed, 20 Feb 2008 15:42:31 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/User_talk:203.88.192.104</comments>		</item>
		<item>
			<title>Help:Contents</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Help:Contents</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Protected &amp;quot;Help:Contents&amp;quot; [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Wed, 20 Feb 2008 03:35:35 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Help_talk:Contents</comments>		</item>
		<item>
			<title>WebStart</title>
			<link>http://rxtx.qbang.org/wiki/index.php/WebStart</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Using Java [http://java.sun.com/products/javawebstart/ Web Start] technology, standalone Java software applications can be deployed with a single click over the network. This page explains what you need to do to make you application web startable.&lt;br /&gt;
&lt;br /&gt;
The first thing to do is create two JNLP files, one for the libraries and one for your application. While this approach is not strictly necessary, it helps provide a separation between what is usable between projects and what is specific to a given project. Below are two sample JNLP files that you can use as a starting point. &lt;br /&gt;
  &lt;br /&gt;
JNLP For your application:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
	&amp;lt;jnlp codebase=&amp;quot;http://myserver/webstart/applications&amp;quot;&lt;br /&gt;
		  href=&amp;quot;gpsviewer.jnlp&amp;quot;&amp;gt;&lt;br /&gt;
	  &amp;lt;information&amp;gt;&lt;br /&gt;
		&amp;lt;title&amp;gt;GPSViewer&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;vendor&amp;gt;ajmas&amp;lt;/vendor&amp;gt;&lt;br /&gt;
		&amp;lt;homepage href=&amp;quot;http://mysite/&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Program displaying data from NMEA compatible GPS device&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;description kind=&amp;quot;short&amp;quot;&amp;gt;Displays data from a NMEA GPS device&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;offline-allowed/&amp;gt;&lt;br /&gt;
	  &amp;lt;/information&amp;gt;&lt;br /&gt;
	  &amp;lt;security&amp;gt;&lt;br /&gt;
		  &amp;lt;all-permissions/&amp;gt;&lt;br /&gt;
	  &amp;lt;/security&amp;gt;&lt;br /&gt;
		&amp;lt;resources&amp;gt;&lt;br /&gt;
		  &amp;lt;j2se href=&amp;quot;http://java.sun.com/products/autodl/j2se&amp;quot; version=&amp;quot;1.5+&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;geonavapps.jar&amp;quot; main=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;geonav.jar&amp;quot; main=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;extension name=&amp;quot;rxtx&amp;quot; href=&amp;quot;http://myserver/webstart/rxtx/rxtx.jnlp&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	  &amp;lt;application-desc main-class=&amp;quot;osj.geonav.gpsviewer.GPSViewer&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/jnlp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JNLP for library:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
	&amp;lt;jnlp codebase=&amp;quot;http://myserver/webstart/rxtx/&amp;quot;&lt;br /&gt;
		  href=&amp;quot;rxtx.jnlp&amp;quot;&amp;gt;&lt;br /&gt;
	  &amp;lt;information&amp;gt;&lt;br /&gt;
		&amp;lt;title&amp;gt;RXTX&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;vendor&amp;gt;ajmas&amp;lt;/vendor&amp;gt;&lt;br /&gt;
		&amp;lt;homepage href=&amp;quot;http://www.rxtx.org&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Java API for serial port communication&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;description kind=&amp;quot;short&amp;quot;&amp;gt;Java API for serial port communication.&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;offline-allowed/&amp;gt;&lt;br /&gt;
	  &amp;lt;/information&amp;gt;&lt;br /&gt;
	  &amp;lt;security&amp;gt;&lt;br /&gt;
		  &amp;lt;all-permissions/&amp;gt;&lt;br /&gt;
	  &amp;lt;/security&amp;gt;&lt;br /&gt;
		&amp;lt;resources&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;rxtx-comm.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Windows&amp;quot; arch=&amp;quot;x86&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-windows-i586.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;i686&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;    &lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;i386&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;x86&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Mac OS X&amp;quot; &amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-macosx-universal.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
	  &amp;lt;component-desc /&amp;gt;&lt;br /&gt;
	&amp;lt;/jnlp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 'codebase' attribute is an absolute URL and generally points back to the file that contains it, so if your JNLP is located at&lt;br /&gt;
&lt;br /&gt;
 http://www.mysite.com/myapp.jnlp&lt;br /&gt;
&lt;br /&gt;
then the codebase URL should match.&lt;br /&gt;
&lt;br /&gt;
The native libraries are all added to individual archives for each platform, the library file being without a path prefix. For example the contents of the 'rxtx-comm-natives-macosx-universal.jar' would be something as follows:&lt;br /&gt;
&lt;br /&gt;
  META-INF/MANIFEST.MF&lt;br /&gt;
  META-INF/&lt;br /&gt;
  librxtxSerial.jnilib&lt;br /&gt;
&lt;br /&gt;
All the Java archives referenced by the JNLP files should be signed, so that the application and libraries can access native functions, such as accessing the serial port. See the section on signing your Jars.&lt;br /&gt;
&lt;br /&gt;
== Signing Your Jars ==&lt;br /&gt;
&lt;br /&gt;
=== Generating the Keys ===&lt;br /&gt;
 &lt;br /&gt;
The following instructions explain how to sign a JAR using a self signed certificate.&lt;br /&gt;
&lt;br /&gt;
To generate the key:&lt;br /&gt;
&lt;br /&gt;
 keytool -genkey -alias alias-name -keystore keystore-name&lt;br /&gt;
&lt;br /&gt;
The alias-name and keystore-name are optional and if not provided default to ''mykey'' and .keystore (in your home directory). If the keystore that is specified does not exist, then it will be created, otherwise it will modify the existing keystore. After typing this command, you will be asked for the keystore password (or to create one if the keystore does not yet exist). At this point you will be asked some questions:&lt;br /&gt;
&lt;br /&gt;
    What is your first and last name?&lt;br /&gt;
      [Unknown]:  your name &lt;br /&gt;
    What is the name of your organizational unit?&lt;br /&gt;
      [Unknown]:   &lt;br /&gt;
    What is the name of your organization?&lt;br /&gt;
      [Unknown]:  My Company &lt;br /&gt;
    What is the name of your City or Locality?&lt;br /&gt;
      [Unknown]:  Montreal &lt;br /&gt;
    What is the name of your State or Province?&lt;br /&gt;
      [Unknown]:  QC &lt;br /&gt;
    What is the two-letter country code for this unit?&lt;br /&gt;
      [Unknown]:  CA &lt;br /&gt;
    Is &amp;lt;CN=your name, OU=Unknown, O=My Company,&lt;br /&gt;
        L=Montreal, ST=QC, C=CA&amp;gt; correct?&lt;br /&gt;
      [no]:  y &lt;br /&gt;
&lt;br /&gt;
After having specifed yes, you can either specify a different password for the key, or use the same one as the key store.&lt;br /&gt;
&lt;br /&gt;
Note that that the key is valid for 90 days by default, and if you wish for a longer period then you should use the ''-validity'' option.&lt;br /&gt;
&lt;br /&gt;
===Signing the Jar ===&lt;br /&gt;
&lt;br /&gt;
To sign the Jar use the following ''jarsigner'' command:&lt;br /&gt;
&lt;br /&gt;
   jarsigner -keystore keystore-name -storepass keystore-password &lt;br /&gt;
             -keypass key-password jar-file alias-name&lt;br /&gt;
&lt;br /&gt;
For example, if your keystore name is 'myKeyStore', with both keystore password and key passwords being pass123, the jar you wish to sign being myapp.jar and the key name being 'mykey', then you would use the command as follows:&lt;br /&gt;
&lt;br /&gt;
   jarsigner -keystore myKeyStore -storepass pass123 &lt;br /&gt;
             -keypass pass123 myapp.jar mykey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related Link ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.princeton.edu/introcs/85application/jar/sign.html JAR Signing]&lt;br /&gt;
* [http://www.autexier.de/jmau/dev/webstart/ Javer WebStart Tutorial]&lt;/div&gt;</description>
			<pubDate>Wed, 20 Feb 2008 03:34:14 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:WebStart</comments>		</item>
		<item>
			<title>WebStart</title>
			<link>http://rxtx.qbang.org/wiki/index.php/WebStart</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is currently a stub for information on WebStart (JNLP) and RxTx.&lt;br /&gt;
&lt;br /&gt;
'''To Do'''&lt;br /&gt;
&lt;br /&gt;
* Skeleton JNLP for Application and Libraries&lt;br /&gt;
* Signing&lt;br /&gt;
* Possibly an Ant build file&lt;br /&gt;
* Gotchas&lt;br /&gt;
&lt;br /&gt;
Using Java [http://java.sun.com/products/javawebstart/ Web Start] technology, standalone Java software applications can be deployed with a single click over the network.&lt;br /&gt;
&lt;br /&gt;
JNLP For your application:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
	&amp;lt;jnlp codebase=&amp;quot;http://myserver/webstart/applications&amp;quot;&lt;br /&gt;
		  href=&amp;quot;gpsviewer.jnlp&amp;quot;&amp;gt;&lt;br /&gt;
	  &amp;lt;information&amp;gt;&lt;br /&gt;
		&amp;lt;title&amp;gt;GPSViewer&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;vendor&amp;gt;ajmas&amp;lt;/vendor&amp;gt;&lt;br /&gt;
		&amp;lt;homepage href=&amp;quot;http://mysite/&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Program displaying data from NMEA compatible GPS device&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;description kind=&amp;quot;short&amp;quot;&amp;gt;Displays data from a NMEA GPS device&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;offline-allowed/&amp;gt;&lt;br /&gt;
	  &amp;lt;/information&amp;gt;&lt;br /&gt;
	  &amp;lt;security&amp;gt;&lt;br /&gt;
		  &amp;lt;all-permissions/&amp;gt;&lt;br /&gt;
	  &amp;lt;/security&amp;gt;&lt;br /&gt;
		&amp;lt;resources&amp;gt;&lt;br /&gt;
		  &amp;lt;j2se href=&amp;quot;http://java.sun.com/products/autodl/j2se&amp;quot; version=&amp;quot;1.5+&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;geonavapps.jar&amp;quot; main=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;geonav.jar&amp;quot; main=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;extension name=&amp;quot;rxtx&amp;quot; href=&amp;quot;http://myserver/webstart/rxtx/rxtx.jnlp&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	  &amp;lt;application-desc main-class=&amp;quot;osj.geonav.gpsviewer.GPSViewer&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/jnlp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JNLP for library:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
	&amp;lt;jnlp codebase=&amp;quot;http://myserver/webstart/rxtx/&amp;quot;&lt;br /&gt;
		  href=&amp;quot;rxtx.jnlp&amp;quot;&amp;gt;&lt;br /&gt;
	  &amp;lt;information&amp;gt;&lt;br /&gt;
		&amp;lt;title&amp;gt;RXTX&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;vendor&amp;gt;ajmas&amp;lt;/vendor&amp;gt;&lt;br /&gt;
		&amp;lt;homepage href=&amp;quot;http://www.rxtx.org&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Java API for serial port communication&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;description kind=&amp;quot;short&amp;quot;&amp;gt;Java API for serial port communication.&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;offline-allowed/&amp;gt;&lt;br /&gt;
	  &amp;lt;/information&amp;gt;&lt;br /&gt;
	  &amp;lt;security&amp;gt;&lt;br /&gt;
		  &amp;lt;all-permissions/&amp;gt;&lt;br /&gt;
	  &amp;lt;/security&amp;gt;&lt;br /&gt;
		&amp;lt;resources&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;rxtx-comm.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Windows&amp;quot; arch=&amp;quot;x86&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-windows-i586.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;i686&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;    &lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;i386&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;x86&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Mac OS X&amp;quot; &amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-macosx-universal.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
	  &amp;lt;component-desc /&amp;gt;&lt;br /&gt;
	&amp;lt;/jnlp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Tue, 19 Feb 2008 23:06:09 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:WebStart</comments>		</item>
		<item>
			<title>Help:Contents</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Help:Contents</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;Reverted edits by GetgeTc4to (Talk); changed back to last version by Ajmas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Tue, 19 Feb 2008 22:08:09 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Help_talk:Contents</comments>		</item>
		<item>
			<title>WebStart</title>
			<link>http://rxtx.qbang.org/wiki/index.php/WebStart</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is currently a stub for information on WebStart (JNLP) and RxTx.&lt;br /&gt;
&lt;br /&gt;
'''To Do'''&lt;br /&gt;
&lt;br /&gt;
* Skeleton JNLP for Application and Libraries&lt;br /&gt;
* Signing&lt;br /&gt;
* Possibly an Ant build file&lt;br /&gt;
* Gotchas&lt;br /&gt;
&lt;br /&gt;
JNLP For your application:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
	&amp;lt;jnlp codebase=&amp;quot;http://myserver/webstart/applications&amp;quot;&lt;br /&gt;
		  href=&amp;quot;gpsviewer.jnlp&amp;quot;&amp;gt;&lt;br /&gt;
	  &amp;lt;information&amp;gt;&lt;br /&gt;
		&amp;lt;title&amp;gt;GPSViewer&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;vendor&amp;gt;ajmas&amp;lt;/vendor&amp;gt;&lt;br /&gt;
		&amp;lt;homepage href=&amp;quot;http://mysite/&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Program displaying data from NMEA compatible GPS device&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;description kind=&amp;quot;short&amp;quot;&amp;gt;Displays data from a NMEA GPS device&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;offline-allowed/&amp;gt;&lt;br /&gt;
	  &amp;lt;/information&amp;gt;&lt;br /&gt;
	  &amp;lt;security&amp;gt;&lt;br /&gt;
		  &amp;lt;all-permissions/&amp;gt;&lt;br /&gt;
	  &amp;lt;/security&amp;gt;&lt;br /&gt;
		&amp;lt;resources&amp;gt;&lt;br /&gt;
		  &amp;lt;j2se href=&amp;quot;http://java.sun.com/products/autodl/j2se&amp;quot; version=&amp;quot;1.5+&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;geonavapps.jar&amp;quot; main=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;geonav.jar&amp;quot; main=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
		  &amp;lt;extension name=&amp;quot;rxtx&amp;quot; href=&amp;quot;http://myserver/webstart/rxtx/rxtx.jnlp&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	  &amp;lt;application-desc main-class=&amp;quot;osj.geonav.gpsviewer.GPSViewer&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/jnlp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JNLP for library:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
	&amp;lt;jnlp codebase=&amp;quot;http://myserver/webstart/rxtx/&amp;quot;&lt;br /&gt;
		  href=&amp;quot;rxtx.jnlp&amp;quot;&amp;gt;&lt;br /&gt;
	  &amp;lt;information&amp;gt;&lt;br /&gt;
		&amp;lt;title&amp;gt;RXTX&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;vendor&amp;gt;ajmas&amp;lt;/vendor&amp;gt;&lt;br /&gt;
		&amp;lt;homepage href=&amp;quot;http://www.rxtx.org&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Java API for serial port communication&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;description kind=&amp;quot;short&amp;quot;&amp;gt;Java API for serial port communication.&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;offline-allowed/&amp;gt;&lt;br /&gt;
	  &amp;lt;/information&amp;gt;&lt;br /&gt;
	  &amp;lt;security&amp;gt;&lt;br /&gt;
		  &amp;lt;all-permissions/&amp;gt;&lt;br /&gt;
	  &amp;lt;/security&amp;gt;&lt;br /&gt;
		&amp;lt;resources&amp;gt;&lt;br /&gt;
		  &amp;lt;jar href=&amp;quot;rxtx-comm.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Windows&amp;quot; arch=&amp;quot;x86&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-windows-i586.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;i686&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;    &lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;i386&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Linux&amp;quot; arch=&amp;quot;x86&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-linux-i686-32.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
		&amp;lt;resources os=&amp;quot;Mac OS X&amp;quot; &amp;gt;&lt;br /&gt;
		  &amp;lt;nativelib href=&amp;quot;rxtx-comm-natives-macosx-universal.jar&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/resources&amp;gt;&lt;br /&gt;
	  &amp;lt;component-desc /&amp;gt;&lt;br /&gt;
	&amp;lt;/jnlp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Tue, 19 Feb 2008 03:11:42 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:WebStart</comments>		</item>
		<item>
			<title>WebStart</title>
			<link>http://rxtx.qbang.org/wiki/index.php/WebStart</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;New page: This page is currently a stub for information on WebStart (JNLP) and RxTx.  '''To Do'''  * Skeleton JNLP for Application and Libraries * Signing * Possibly an Ant build file * Gotchas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is currently a stub for information on WebStart (JNLP) and RxTx.&lt;br /&gt;
&lt;br /&gt;
'''To Do'''&lt;br /&gt;
&lt;br /&gt;
* Skeleton JNLP for Application and Libraries&lt;br /&gt;
* Signing&lt;br /&gt;
* Possibly an Ant build file&lt;br /&gt;
* Gotchas&lt;/div&gt;</description>
			<pubDate>Tue, 19 Feb 2008 01:07:38 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:WebStart</comments>		</item>
		<item>
			<title>Development</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Development</link>
			<description>&lt;p&gt;Ajmas:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for content regarding programming rxtx and writing programs that use rxtx.  Feel free to add your own content and links.&lt;br /&gt;
&lt;br /&gt;
*[[Retrieving Source Code]] - How to get the source code from CVS&lt;br /&gt;
*[http://users.frii.com/jarvi/rxtx/doc/index.html gnu.io JavaDoc]&lt;br /&gt;
*[[Installers]]&lt;br /&gt;
*[[WebStart]]&lt;br /&gt;
*[[Examples]]&lt;/div&gt;</description>
			<pubDate>Tue, 19 Feb 2008 01:04:20 GMT</pubDate>			<dc:creator>Ajmas</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Development</comments>		</item>
	</channel>
</rss>