انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: 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
-
خروجی این دستور چیه؟
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
ولی اگر در برنامه بجای ttya از tty* استفاده کنم هیچ بهبودی حاصل نمیشه و باز هم مشکل قبلی را دارد
با تشکر
-
خروجی این:
ls -l /dev/ttyS0
-
ممنون از پیگیریتون
crw-rw---- 1 root dialout 4, 64 Sep 7 07:20 /dev/ttyS0
بازم تشکر میکنم که وقت میزارین و راهنمایی میکنین
-
برای اینکه بتونید به پورت سریال دسترسی داشته باشید، باید کاربر خودتون رو عضو گروه dialout بکنید.
-
ممنون از راهنماییتون
میتونین کمکم کنید یا لینکی بدید که بفهمم چطوری این کار را باید بکنم؟
مرسی
-
برای اینکه بتونید به پورت سریال دسترسی داشته باشید، باید کاربر خودتون رو عضو گروه 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'.
-
این برنامه رو کامپایل و اجرا کنید و ببینید خروجی برنامه چیه؟
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");
-
run:
Start
End
BUILD SUCCESSFUL (total time: 0 seconds)
ممنون
-
احتمالا مشکل از فایل javax.comm.properties هستش. محتویات این فایل چیه و اینکه توی جای درستی قرار گرفته؟
-
احتمالا مشکل از فایل javax.comm.properties هستش. محتویات این فایل چیه و اینکه توی جای درستی قرار گرفته؟
متاسفانه نتونستم این فایل را پیدا کنم - لطفا راهنمایی میکنید که چطوری میتونم این فایل را پیدا کنم؟
ممنون از زحماتی که میکشید