انجمن کاربران لینوکس ایران - تکنوتاکس سابق
ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا - نسخه قابل چاپ

+- انجمن کاربران لینوکس ایران - تکنوتاکس سابق (https://forum.sito.ir)
+-- انجمن: پرسش‌ها و پاسخ‌ها (https://forum.sito.ir/forumdisplay.php?fid=3)
+--- انجمن: لینوکس و برنامه نویسی (https://forum.sito.ir/forumdisplay.php?fid=13)
+--- موضوع: ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا (/showthread.php?tid=18324)



ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا - t3.nano - 2013-09-06

سلام دوستان
امیدوارم هر جا هستیدخوب و سلامت باشید
من سعی دارم برنامه ای برای اتصال به \ورت سریال در لینوکس با استفاده از زبان جاوا بنویسیم
پس از جستجو و مطالعه منابعُ دو فایل RXTXcomm.jar و comm.jar را به پروژه جاوا اضافه کردم و برنامه زیر را در mainبرنامه قرار میدهم
کد :
String wantedPortName = "/dev/ttya";
///dev/ttyS0 و /dev/ttyS1 نیز تست شد
Enumeration portIdentifiers = CommPortIdentifier.getPortIdentifiers();
CommPortIdentifier portId = null;  // will be set if port found
while (portIdentifiers.hasMoreElements())
{
    CommPortIdentifier pid = (CommPortIdentifier) portIdentifiers.nextElement();
    if(pid.getPortType() == CommPortIdentifier.PORT_SERIAL &&
       pid.getName().equals(wantedPortName))
    {
        portId = pid;
        break;
    }
}
if(portId == null)
{
    System.err.println("Could not find serial port " + wantedPortName);
    System.exit(1);
}
ولی متاسفانه خروجی تابع portIdentifiers.hasMoreElements() برابر falseمیباشد و بنابراین برنامه به درستی کار نمیکند
خواهش میکنم در صورت امکان راهنمایی بفرمایید
با تشکر
منابع مورد استفاده:
<!-- m --><a class="postlink" href="http://en.wikibooks.org/wiki/Serial_Programming/Serial_Java">http://en.wikibooks.org/wiki/Serial_Pro ... erial_Java</a><!-- m -->

<!-- m --><a class="postlink" href="http://www.agaveblue.org/howtos/Comm_How-To.shtml">http://www.agaveblue.org/howtos/Comm_How-To.shtml</a><!-- m -->

<!-- m --><a class="postlink" href="http://blog.omidbiz.com/omidplanet/entry/send_sms_via_java">http://blog.omidbiz.com/omidplanet/entr ... s_via_java</a><!-- m -->
<!-- m --><a class="postlink" href="http://www.geeksville.com/~kevinh/linuxcomm.html">http://www.geeksville.com/~kevinh/linuxcomm.html</a><!-- m -->
<!-- m --><a class="postlink" href="http://rxtx.qbang.org/wiki/index.php/Main_Page">http://rxtx.qbang.org/wiki/index.php/Main_Page</a><!-- m -->
<!-- m --><a class="postlink" href="http://rxtx.qbang.org/wiki/index.php/Installation_on_Linux">http://rxtx.qbang.org/wiki/index.php/In ... n_on_Linux</a><!-- m -->

اطلاعات : سیستم عامل : ubuntu 12
محیط برنامه نویسی : netbeans
نسخه جاوا : java-7-openjdk


Re: ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا - cnevis - 2013-09-08

اینها را با یوزر روت در شل تست کن ببین کدوم جواب میده.
کد :
echo "hello" > /dev/ttyS0
echo "hello" > /dev/ttyS1
echo "hello" > /dev/ttyS2
echo "hello" > /dev/ttyS3
echo "hello" > /dev/ttyS4

مثلا روی لپتاب من echo "hello" > /dev/ttyS4 کار میده و اگر بزنم cat /dev/ttyS4 رشته hello چاپ میشه


Re: ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا - t3.nano - 2013-09-08

سلام
ممنون از جوابی که دادین
خروجی دستوراتی که فرمودید به همراه یکسری دستورات زیر که فکر کردم ممکنه به درد بخورن را براتون گذاشتم
ممنون

کد :
t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/ttyS1
[sudo] password for t3nano:
echo: write error: Input/output error
t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/ttyS2
echo: write error: Input/output error
t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/ttyS3
echo: write error: Input/output error
t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/ttyS4
echo: write error: Input/output error
t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/ttyS5
echo: write error: Input/output error
t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/ttyS0
echo: write error: Input/output error
t3nano@t3nano-K42JP:~$ ls /dev/tty*
/dev/tty    /dev/tty23  /dev/tty39  /dev/tty54      /dev/ttyS10  /dev/ttyS26
/dev/tty0   /dev/tty24  /dev/tty4   /dev/tty55      /dev/ttyS11  /dev/ttyS27
/dev/tty1   /dev/tty25  /dev/tty40  /dev/tty56      /dev/ttyS12  /dev/ttyS28
/dev/tty10  /dev/tty26  /dev/tty41  /dev/tty57      /dev/ttyS13  /dev/ttyS29
/dev/tty11  /dev/tty27  /dev/tty42  /dev/tty58      /dev/ttyS14  /dev/ttyS3
/dev/tty12  /dev/tty28  /dev/tty43  /dev/tty59      /dev/ttyS15  /dev/ttyS30
/dev/tty13  /dev/tty29  /dev/tty44  /dev/tty6       /dev/ttyS16  /dev/ttyS31
/dev/tty14  /dev/tty3   /dev/tty45  /dev/tty60      /dev/ttyS17  /dev/ttyS4
/dev/tty15  /dev/tty30  /dev/tty46  /dev/tty61      /dev/ttyS18  /dev/ttyS5
/dev/tty16  /dev/tty31  /dev/tty47  /dev/tty62      /dev/ttyS19  /dev/ttyS6
/dev/tty17  /dev/tty32  /dev/tty48  /dev/tty63      /dev/ttyS2   /dev/ttyS7
/dev/tty18  /dev/tty33  /dev/tty49  /dev/tty7       /dev/ttyS20  /dev/ttyS8
/dev/tty19  /dev/tty34  /dev/tty5   /dev/tty8       /dev/ttyS21  /dev/ttyS9
/dev/tty2   /dev/tty35  /dev/tty50  /dev/tty9       /dev/ttyS22
/dev/tty20  /dev/tty36  /dev/tty51  /dev/ttyprintk  /dev/ttyS23
/dev/tty21  /dev/tty37  /dev/tty52  /dev/ttyS0      /dev/ttyS24
/dev/tty22  /dev/tty38  /dev/tty53  /dev/ttyS1      /dev/ttyS25
t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/tty0
bash: /dev/tty0: Permission denied

t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/tty
hello

t3nano@t3nano-K42JP:~$ sudo echo "hello" > /dev/tty5
bash: /dev/tty5: Permission denied
t3nano@t3nano-K42JP:~$ ^C
t3nano@t3nano-K42JP:~$ sudo adduser t3nano dialout
The user `t3nano' is already a member of `dialout'.



Re: ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا - mah454 - 2013-11-25

خروجی دستور زیر رو بزارید :
کد :
grep tty /var/log/message
البته امکان داره به جای فایل message شما syslog داشته باشید
کد :
grep tty /var/log/syslog