انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: t3.nano در 15 شهریور 1392، 11:26 ب‌ظ

عنوان: ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: t3.nano در 15 شهریور 1392، 11:26 ب‌ظ
سلام دوستان
امیدوارم هر جا هستیدخوب و سلامت باشید
من سعی دارم برنامه ای برای اتصال به \ورت سریال در لینوکس با استفاده از زبان جاوا بنویسیم
پس از جستجو و مطالعه منابعُ دو فایل 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میباشد و بنابراین برنامه به درستی کار نمیکند
خواهش میکنم در صورت امکان راهنمایی بفرمایید
با تشکر
منابع مورد استفاده:
http://en.wikibooks.org/wiki/Serial_Programming/Serial_Java

http://www.agaveblue.org/howtos/Comm_How-To.shtml

http://blog.omidbiz.com/omidplanet/entry/send_sms_via_java
http://www.geeksville.com/~kevinh/linuxcomm.html
http://rxtx.qbang.org/wiki/index.php/Main_Page
http://rxtx.qbang.org/wiki/index.php/Installation_on_Linux

اطلاعات : سیستم عامل : ubuntu 12
محیط برنامه نویسی : netbeans
نسخه جاوا : java-7-openjdk
 
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: nixoeen در 15 شهریور 1392، 11:34 ب‌ظ
خروجی این دستور چیه؟
ls /dev/tty*
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: t3.nano در 16 شهریور 1392، 07:28 ق‌ظ
سلام
ممنون از پاسختون
خروجی را در زیر گذاشتم
/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

ولی اگر در برنامه بجای ttya از tty* استفاده کنم هیچ بهبودی حاصل نمیشه و باز هم مشکل قبلی را دارد
با تشکر
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: nixoeen در 16 شهریور 1392، 03:29 ب‌ظ
خروجی این:
ls -l /dev/ttyS0
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: t3.nano در 16 شهریور 1392، 05:17 ب‌ظ
ممنون از پیگیریتون
crw-rw---- 1 root dialout 4, 64 Sep  7 07:20 /dev/ttyS0
بازم تشکر میکنم که وقت میزارین و راهنمایی میکنین
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: nixoeen در 16 شهریور 1392، 05:19 ب‌ظ
برای اینکه بتونید به پورت سریال دسترسی داشته باشید، باید کاربر خودتون رو عضو گروه dialout بکنید.
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: t3.nano در 16 شهریور 1392، 05:48 ب‌ظ
ممنون از راهنماییتون
میتونین کمکم کنید یا لینکی بدید که بفهمم چطوری این کار را باید بکنم؟
مرسی
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: t3.nano در 16 شهریور 1392، 06:36 ب‌ظ
برای اینکه بتونید به پورت سریال دسترسی داشته باشید، باید کاربر خودتون رو عضو گروه dialout بکنید.
باز هم سلام
با استفاده از سه دستور زیر کاربر خود را عضو یdialout کردم
sudo adduser <the user you want to add> dialout
sudo reboot
id -Gn
ولی متاسفانه هنوز مشکل حل نشده - دستورات وپاسخهایی که گفتید را باز هم تست کردم و همینجا گذاشتم

ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 Sep  7 18:24 /dev/ttyS0

sudo adduser t3nano dialout
The user `t3nano' is already a member of `dialout'.
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: nixoeen در 16 شهریور 1392، 07:04 ب‌ظ
این برنامه رو کامپایل و اجرا کنید و ببینید خروجی برنامه چیه؟
Enumeration portIdentifiers = CommPortIdentifier.getPortIdentifiers();
System.out.println("Start");
while (portIdentifiers.hasMoreElements())
{
    CommPortIdentifier pid = (CommPortIdentifier) portIdentifiers.nextElement();
    System.out.println(pid.getName());
}
System.out.println("End");
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: t3.nano در 16 شهریور 1392، 07:19 ب‌ظ
run:
Start
End
BUILD SUCCESSFUL (total time: 0 seconds)

ممنون
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: nixoeen در 16 شهریور 1392، 07:25 ب‌ظ
احتمالا مشکل از فایل javax.comm.properties هستش. محتویات این فایل چیه و اینکه توی جای درستی قرار گرفته؟
عنوان: پاسخ : ارتباط با پورت سریال در لینوکس با استفاده از زبان جاوا
ارسال شده توسط: t3.nano در 17 شهریور 1392، 08:12 ق‌ظ
احتمالا مشکل از فایل javax.comm.properties هستش. محتویات این فایل چیه و اینکه توی جای درستی قرار گرفته؟
متاسفانه نتونستم این فایل را پیدا کنم - لطفا راهنمایی میکنید که چطوری میتونم این فایل را پیدا کنم؟
ممنون از زحماتی که میکشید