| <!DOCTYPE html>
|
|
|
| <html lang="en">
|
| <head>
|
| <title>6.2 - Serial Transport — Apache MINA</title>
|
|
|
| <link href="/assets/css/common.css" rel="stylesheet" type="text/css"/>
|
| <link href="/assets/css/mina.css" rel="stylesheet" type="text/css"/>
|
| </head>
|
| <body>
|
| <script src="https://www.apachecon.com/event-images/snippet.js"></script>
|
| <div id="container">
|
| <div id="header">
|
| <div id="subProjectsNavBar">
|
| <a href="/">
|
|
|
| Apache MINA Project
|
|
|
| </a>
|
| |
|
| <a href="/mina-project/">
|
|
|
| <strong>MINA</strong>
|
|
|
| </a>
|
| |
|
| <a href="/asyncweb-project/">
|
|
|
| AsyncWeb
|
|
|
| </a>
|
| |
|
| <a href="/ftpserver-project/">
|
|
|
| FtpServer
|
|
|
| </a>
|
| |
|
| <a href="/sshd-project/">
|
|
|
| SSHD
|
|
|
| </a>
|
| |
|
| <a href="/vysper-project/">
|
|
|
| Vysper
|
|
|
| </a>
|
| </div>
|
| </div>
|
|
|
|
|
| <div id="content">
|
| <div id="leftColumn">
|
| <div id="navigation">
|
| <a class="acevent" data-format="wide" data-width="170"></a>
|
| <h5>Social Networks</h5>
|
| <ul>
|
| <li><a href="https://fosstodon.org/@apachemina">Apache MINA Mastodon</a></li>
|
| </ul>
|
| <h5>Latest Downloads</h5>
|
| <ul>
|
| <li><a href="/mina-project/downloads_2_0.html">Mina 2.0.25</a></li>
|
| <li><a href="/mina-project/downloads_2_1.html">Mina 2.1.8</a></li>
|
| <li><a href="/mina-project/downloads_2_2.html">Mina 2.2.3</a></li>
|
| <li><a href="/mina-project/downloads_old.html">Mina old versions</a></li>
|
| </ul>
|
| <h5>Documentation</h5>
|
| <ul>
|
| <li><a href="/mina-project/documentation.html" class="external-link" rel="nofollow">Base documentation</a></li>
|
| <li><a href="/mina-project/userguide/user-guide-toc.html" class="external-link" rel="nofollow">User guide</a></li>
|
| <li><a href="/mina-project/2.2-vs-2.1.html" class="external-link" rel="nofollow">2.2 vs 2.1</a></li>
|
| <li><a href="/mina-project/2.1-vs-2.0.html" class="external-link" rel="nofollow">2.1 vs 2.0</a></li>
|
| <li><a href="/mina-project/features.html" class="external-link" rel="nofollow">Features</a></li>
|
| <li><a href="/mina-project/road-map.html" class="external-link" rel="nofollow">Road Map</a></li>
|
| <li><a href="/mina-project/quick-start-guide.html" class="external-link" rel="nofollow">Quick Start Guide</a></li>
|
| <li><a href="/mina-project/faq.html" class="external-link" rel="nofollow">FAQ</a></li>
|
| </ul>
|
| <h5>Resources</h5>
|
| <ul>
|
| <li><a href="/mina-project/mailing-lists.html" class="external-link" rel="nofollow">Mailing lists & IRC</a></li>
|
| <li><a href="/mina-project/issue-tracking.html" class="external-link" rel="nofollow">Issue tracking</a></li>
|
| <li><a href="/mina-project/sources.html" class="external-link" rel="nofollow">Sources</a></li>
|
| <li><a href="/mina-project/gen-docs/latest-2.0/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc 2.0.25</a></li>
|
| <li><a href="/mina-project/gen-docs/latest-2.1/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc 2.1.8</a></li>
|
| <li><a href="/mina-project/gen-docs/latest-2.2/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc 2.2.3</a></li>
|
| <li><a href="/mina-project/gen-docs/latest-2.0/xref/index.html" class="external-link" rel="nofollow">API xref 2.0.25</a></li>
|
| <li><a href="/mina-project/gen-docs/latest-2.1/xref/index.html" class="external-link" rel="nofollow">API xref 2.1.8</a></li>
|
| <li><a href="/mina-project/gen-docs/latest-2.2/xref/index.html" class="external-link" rel="nofollow">API xref 2.2.3</a></li>
|
| <li><a href="/mina-project/performances.html" class="external-link" rel="nofollow">Performances</a></li>
|
| <li><a href="/mina-project/testimonials.html" class="external-link" rel="nofollow">Testimonials</a></li>
|
| <li><a href="/mina-project/conferences.html" class="external-link" rel="nofollow">Conferences</a></li>
|
| <li><a href="/mina-project/developer-guide.html" class="external-link" rel="nofollow">Developers Guide</a></li>
|
| <li><a href="/mina-project/related-projects.html" class="external-link" rel="nofollow">Related Projects</a></li>
|
| <li><a href="https://people.apache.org/~vgritsenko/stats/projects/mina.html" class="external-link" rel="nofollow">Statistics</a></li>
|
| </ul>
|
|
|
| <h5>Community</h5>
|
| <ul>
|
| <li><a href="https://www.apache.org/foundation/contributing.html" class="external-link" rel="nofollow">Contributing</a></li>
|
| <li><a href="/contributors.html" class="external-link" rel="nofollow">Team</a></li>
|
| <li><a href="/special-thanks.html" class="external-link" rel="nofollow">Special Thanks</a></li>
|
| <li><a href="https://www.apache.org/security/" class="external-link" rel="nofollow">Security</a></li>
|
| </ul>
|
|
|
| <h5>About Apache</h5>
|
| <ul>
|
| <li><a href="https://www.apache.org" class="external-link" rel="nofollow">Apache main site</a></li>
|
| <li><a href="https://www.apache.org/licenses/" class="external-link" rel="nofollow">License</a></li>
|
| <li><a href="https://www.apache.org/foundation/sponsorship.html" title="The ASF sponsorship program" class="external-link" rel="nofollow">Sponsorship program</a></li>
|
| <li><a href="https://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</a></li>
|
| </ul>
|
|
|
| <h3><a name="Navigation-Upcoming"></a>Upcoming</h3>
|
| <ul>
|
| <li>No event</li>
|
| </ul>
|
| </div>
|
| </div>
|
| <div id="rightColumn">
|
|
|
| <div class="nav">
|
| <div class="nav_prev">
|
|
|
|
|
| <a href="ch6.1-apr-transport.html">6.1 - APR Transport</a>
|
|
|
| </div>
|
| <div class="nav_up">
|
|
|
|
|
| <a href="ch6-transports.html">Chapter 6 - Transports</a>
|
|
|
| </div>
|
| <div class="nav_next">
|
|
|
|
|
| <a href="../ch7-handler/ch7-handler.html">Chapter 7 - Handler</a>
|
|
|
| </div>
|
| <div class="clearfix"></div>
|
| </div>
|
|
|
|
|
| |
| <h1 id="62---serial-transport">6.2 - Serial Transport</h1> |
| <p>With the MINA 2.0 you are able to connect to serial port like you use to connect to a TCP/IP port with MINA.</p> |
| <h2 id="getting-mina-20">Getting MINA 2.0</h2> |
| <p>You you can download the latest built version (2.0.2).</p> |
| <p>If you prefer to build the code from the trunk, and need assistance to do so, please consult the Developer Guide.</p> |
| <h2 id="prerequisite">Prerequisite</h2> |
| <div class="info" markdown="1"> |
| <strong>Useful Information</strong><br> |
| Before accessing serial port from a Java program you need a native library (.DLL or .so depending of your OS). MINA use the one from RXTX.org : <a href="ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip" class="external-link" rel="nofollow">ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip</a>. <br> |
| Just put the good .dll or .so in the jre/lib/i386/ path of your JDK/JRE or use the -Djava.library.path= argument for specify where you placed the native libraries |
| </div> |
| <div class="info" markdown="1"> |
| <strong>Useful Information</strong><br> |
| The <strong>mina-transport-serial</strong> jar is not included in the full distribution. You can download it from <a href="https://repo1.maven.org/maven2/org/apache/mina/mina-transport-serial/2.0.2/" class="external-link" rel="nofollow">here</a> |
| </div> |
| <h2 id="connecting-to-a-serial-port">Connecting to a serial port</h2> |
| <p>Serial communication for MINA provide only an IoConnector, due to the point-to-point nature of the communication media.</p> |
| <p>At this point you are supposed to have already read the MINA tutorial.</p> |
| <p>Now for connecting to a serial port you need a SerialConnector :</p> |
| <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java"><span style="color:#080;font-style:italic">// create your connector |
| </span><span style="color:#080;font-style:italic"></span>IoConnector connector <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">new</span> SerialConnector<span style="color:#666">(</span><span style="color:#666">)</span> |
| connector<span style="color:#666">.</span><span style="color:#b44">setHandler</span><span style="color:#666">(</span> <span style="color:#666">.</span><span style="color:#666">.</span><span style="color:#666">.</span> here your buisness logic IoHandler <span style="color:#666">.</span><span style="color:#666">.</span><span style="color:#666">.</span> <span style="color:#666">)</span><span style="color:#666">;</span> |
| </code></pre></div><p>Nothing very different of a SocketConnector.</p> |
| <p>Let’s create an address for connecting to our serial port.</p> |
| <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">SerialAddress portAddress<span style="color:#666">=</span><span style="color:#a2f;font-weight:bold">new</span> SerialAddress<span style="color:#666">(</span> <span style="color:#b44">"/dev/ttyS0"</span><span style="color:#666">,</span> 38400<span style="color:#666">,</span> 8<span style="color:#666">,</span> StopBits<span style="color:#666">.</span><span style="color:#b44">BITS_1</span><span style="color:#666">,</span> Parity<span style="color:#666">.</span><span style="color:#b44">NONE</span><span style="color:#666">,</span> FlowControl<span style="color:#666">.</span><span style="color:#b44">NONE</span> <span style="color:#666">)</span><span style="color:#666">;</span> |
| </code></pre></div><p>The first parameter is your port identifier. For Windows computer, the serial ports are called “COM1”, “COM2”, etc… For Linux and some other Unix : “/dev/ttyS0”, “/dev/ttyS1”, “/dev/ttyUSB0”.</p> |
| <p>The remaining parameters are depending of the device you are driving and the supposed communications characteristics.</p> |
| <ul> |
| <li>the baud rate</li> |
| <li>the data bits</li> |
| <li>the parity</li> |
| <li>the flow control mechanism</li> |
| </ul> |
| <p>Once it’s done, connect the connector to the address :</p> |
| <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">ConnectFuture future <span style="color:#666">=</span> connector<span style="color:#666">.</span><span style="color:#b44">connect</span><span style="color:#666">(</span> portAddress <span style="color:#666">)</span><span style="color:#666">;</span> |
| future<span style="color:#666">.</span><span style="color:#b44">await</span><span style="color:#666">(</span><span style="color:#666">)</span><span style="color:#666">;</span> |
| IoSession sessin <span style="color:#666">=</span> future<span style="color:#666">.</span><span style="color:#b44">getSession</span><span style="color:#666">(</span><span style="color:#666">)</span><span style="color:#666">;</span> |
| </code></pre></div><p>And voila ! Everything else is as usual, you can plug your filters and codecs. |
| for learn more about RS232 : <a href="http://en.wikipedia.org/wiki/RS232">http://en.wikipedia.org/wiki/RS232</a></p> |
| |
|
|
|
|
| <div class="nav">
|
| <div class="nav_prev">
|
|
|
|
|
| <a href="ch6.1-apr-transport.html">6.1 - APR Transport</a>
|
|
|
| </div>
|
| <div class="nav_up">
|
|
|
|
|
| <a href="ch6-transports.html">Chapter 6 - Transports</a>
|
|
|
| </div>
|
| <div class="nav_next">
|
|
|
|
|
| <a href="../ch7-handler/ch7-handler.html">Chapter 7 - Handler</a>
|
|
|
| </div>
|
| <div class="clearfix"></div>
|
| </div>
|
|
|
|
|
| </div>
|
| <div id="endContent"></div>
|
| </div>
|
|
|
| <div id="footer">
|
| © 2003-2024, <a href="https://www.apache.org">The Apache Software Foundation</a> - <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a><br />
|
| Apache MINA, MINA, Apache Vysper, Vysper, Apache SSHd, SSHd, Apache FtpServer, FtpServer, Apache AsyncWeb, AsyncWeb,
|
| Apache, the Apache feather logo, and the Apache Mina project logos are trademarks of The Apache Software Foundation.
|
| </div>
|
|
|
| </div>
|
|
|
| </body>
|
|
|
| </html>
|