????? ???


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
چگونه اطلاعات رو از پورت سریال و پارالل بخوانیم و روی آن ها بنویسیم؟
نویسنده پیام
milad_doorbash آفلاین
تازه وارد

ارسال‌ها: 4
موضوع‌ها: 0
تاریخ عضویت: شهریور ۱۳۸۹

تشکرها : 1
( 31 تشکر در 12 ارسال )
ارسال: #1
چگونه اطلاعات رو از پورت سریال و پارالل بخوانیم و روی آن ها بنویسیم؟
ابتدا javax.comm , javax.comm.properties & wn32com.dll را از لینک زیر دانلود کنید :

http://milimilimilson.persiangig.com/javaxcomm.zip

فایل زیپ را extract کنید حالا javax.comm and javax.comm.properties را در آدرسjdk/jre/lib و(در صورت وجود مشکل).../lib/ext آدرس قرار دهید و wn32com.dll رانیز در ادرسjdk/jre/bin قرار دهید
برای اینکه مطمئن بشین پکیج درست نصب شده از کد زیر استفاده کنین :
کد:
import javax.comm.*;
import java.util.*;

/** List all the ports available on the local machine. **/
public class ListPorts
{
public static void main (String args[])
{

Enumeration port_list = CommPortIdentifier.getPortIdentifiers();

while (port_list.hasMoreElements())
{
CommPortIdentifier port_id = (CommPortIdentifier)port_list.nextElement();

if (port_id.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
System.out.println ("Serial port: " + port_id.getName());
}
else if (port_id.getPortType() == CommPortIdentifier.PORT_PARALLEL)
{
System.out.println ("Parallel port: " + port_id.getName());
}
else
System.out.println ("Other port: " + port_id.getName());
}
} // main
} // class PortList
حالا برنامه رو بسازین و اجراش کنین ( مثل روش پایین )
C:>javac ListPorts.java

C:>java ListPorts
Serial port: COM7
Serial port: COM10
Serial port: COM3
Parallel port: LPT1
Parallel port: LPT2

اگه خروجی شما شبیه به این بود پکیج درست نصب شده است.

من یه برنامه نوشتم که بوسیله اون می تونین اطلاعات com4 رو بخونین و روی اون بنویسین ( می تونین به هر com port دیگه تغییرش بدین)

COM4chat.java :
کد:
import javax.comm.*;
import java.util.*;
import java.io.*;
public class COM4chat implements SerialPortEventListener{
static myFrame frame = new myFrame("COM4chat");

static CommPortIdentifier port_id;
static BufferedReader reader;
static OutputStreamWriter writer;
public static void main (String args[]){
frame.setVisible(true);
Enumeration port_list = CommPortIdentifier.getPortIdentifiers();
while (port_list.hasMoreElements()){
port_id = (CommPortIdentifier)port_list.nextElement();
if (port_id.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
if(port_id.getName().equals("COM4")){
break;
}
}
}
try{
SerialPort serialport = (SerialPort) port_id.open("COM4chat",2000);
serialport.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
reader = new BufferedReader(new InputStreamReader(serialport.getInputStream()));
writer = new OutputStreamWriter(serialport.getOutputStream());
serialport.notifyOnDataAvailable(true);
serialport.addEventListener(new SerialPortEventListener(){
public void serialEvent(SerialPortEvent event){
if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){
readThread t = new readThread();
t.start();



}else{

}
}
}
);
}catch(Exception e){
System.out.println(e);
}
}
public void serialEvent(SerialPortEvent event){
}
}
class readThread extends Thread{
int c;

public void run(){
try{
while((c = COM4chat.reader.read())!=-1){
COM4chat.frame.messages.append(""+(char)c);
}
}catch(Exception e){
System.exit(0);
}
System.exit(0);
}
}

myFrame.java :

کد:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
public class myFrame extends Frame implements WindowListener,KeyListener {
TextArea messages;
static TextField myMessage;
public myFrame(String title){
super(title);
setSize(300,239);
setResizable(false);
setLayout(new BorderLayout());
messages = new TextArea("",11,39,TextArea.SCROLLBARS_VERTICAL_ONLY);
myMessage = new TextField(38);
messages.setEditable(false);
myMessage.addKeyListener(this);
add(myMessage,BorderLayout.SOUTH);
add(messages,BorderLayout.NORTH);
myMessage.requestFocus();
addWindowListener(this);
}

public void windowOpened(WindowEvent e) {
}

public void windowClosing(WindowEvent e) {
System.exit(0);
}

public void windowClosed(WindowEvent e) {
}

public void windowIconified(WindowEvent e) {
}

public void windowDeiconified(WindowEvent e) {
}

public void windowActivated(WindowEvent e) {
}

public void windowDeactivated(WindowEvent e) {
}

public void keyTyped(KeyEvent e) {
}

public void keyPressed(KeyEvent e) {
if(e.getKeyChar()==' '){
if(myMessage.getText().isEmpty()==false){
try{
COM4chat.writer.write(myMessage.getText()+" ");
COM4chat.writer.flush();
messages.append("Me>>>"+myMessage.getText()+" ");
myMessage.setText("");
}catch(Exception w){
JOptionPane.showMessageDialog(null,"Connection Lost.Aborting...","COM4chat",1);
System.exit(0);


}
}
}
}

public void keyReleased(KeyEvent e) {
}
}

ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست
(آخرین ویرایش در این ارسال: ۱۱-شهریور-۱۳۸۹, ۱۶:۱۹:۵۴، توسط milad_doorbash.)
۱۱-شهریور-۱۳۸۹, ۰۲:۳۱:۵۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : milson, mhpc2009, 1نفر
akbar_net آفلاین
تازه وارد

ارسال‌ها: 3
موضوع‌ها: 0
تاریخ عضویت: خرداد ۱۳۹۰

تشکرها : 0
( 3 تشکر در 2 ارسال )
ارسال: #2
RE: چگونه اطلاعات رو از پورت سریال و پارالل بخوانیم و روی آن ها بنویسیم؟
مقاله زیر برای افرادی مناسب می باشد که قصد ارتباط با پورت سریال در سی شارپ را دارند .

به منظور ارتباط بين کامپيوتر و سخت افزار (سخت افزار هايي که توسط ميکروکنترلرهايي نظير ARM-PIC-AVR ... ) زبان برنامه نويسي c# کامپوننت بسيار مفيدي بنام serial port پيش بيني نموده است که براحتي طراحان سخت افزار و الکترونيک مي توانند با اين ابزار ارتباط برقرار کرده و اقدام به ارسال و دريافت ديتا با کمترين زحمت در برنامه نويسي داشته باشند.

مقاله زیر به طور کامل به این موضوع پرداخته است :

http://www.4shared.com/file/5F3BpaY6/serialC.html




۱۸-مرداد-۱۳۹۰, ۱۷:۱۰:۵۷
ارسال‌ها
پاسخ
تشکر شده توسط : mhpc2009
zfalahatpour آفلاین
تازه وارد

ارسال‌ها: 0
موضوع‌ها: 0
تاریخ عضویت: دى ۱۳۹۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #3
RE: چگونه اطلاعات رو از پورت سریال و پارالل بخوانیم و روی آن ها بنویسیم؟
بسم الله

سلام
ممنون از توضیحاتتون. من مراحلی که گفتین رو رفتم ولی این خطا رو به من میده:
Error loading win32com: java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.8.0_45\jre\bin\win32com.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

میدونید چه فایلی دانلود کنم که به برنامه من که 64بیتی هست بخوره؟
۱۶-مهر-۱۳۹۶, ۰۹:۴۸:۱۱
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  چگونه نام پارتیشن ها رو بدست آوریم؟ milad_doorbash 0 1,649 ۱۱-شهریور-۱۳۸۹, ۱۵:۵۶:۰۷
آخرین ارسال: milad_doorbash
  چگونه سورس فایل جاوا را از فایل jar و class بدست آوریم؟ milad_doorbash 0 2,531 ۱۱-شهریور-۱۳۸۹, ۰۳:۴۴:۱۶
آخرین ارسال: milad_doorbash
  چگونه یک بند (ترید) بسازیم؟ milad_doorbash 0 1,708 ۱۱-شهریور-۱۳۸۹, ۰۳:۳۴:۴۶
آخرین ارسال: milad_doorbash
  چگونه از صفحه عکس بگیریم عکس را به یک سرور ارسال کنیم و سرور چگونه عکس را دریافت کند milad_doorbash 0 2,625 ۱۱-شهریور-۱۳۸۹, ۰۳:۲۵:۲۰
آخرین ارسال: milad_doorbash
  چگونه برنامه کاربردی دیگر و فرمان های داس را اجرا کنیم و از داس خروجی بگیریم؟ milad_doorbash 0 2,622 ۱۱-شهریور-۱۳۸۹, ۰۳:۱۷:۲۱
آخرین ارسال: milad_doorbash
  چگونه برای ftp server فایل بفرستیم و از آن فایل دانلود کنیم؟ milad_doorbash 0 2,535 ۱۱-شهریور-۱۳۸۹, ۰۳:۰۰:۳۹
آخرین ارسال: milad_doorbash

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS