Go Down

Topic: OT: moduli usb/seriale CP2102 (Read 220 times) previous topic - next topic

bigjohnson

Jul 08, 2013, 06:43 pm Last Edit: Jul 08, 2013, 06:50 pm by bigjohnson Reason: 1
Un saluto a tutti,
sto provando a gestire in java i segnali di controllo del modulino in oggetto per avere 4 ingressi e due uscite digitali

CTS   IN
DCD   IN
DSR    IN
RI   IN
RTS   OUT
DTR   OUT

ho scritto un programmino per leggere gli ingressi con le librerie JSSC e rxtx ma con osx 10.6.8 non mi legge lo stato delle porte in ingresso, ho provato ad eseguire gli stessi programmi tramite un emulatore windows e lo stato delle porte lo legge.
Il programma che ho usato è questo:

Code: [Select]

import jssc.SerialPort;
import jssc.SerialPortException;

public class SerialTest2 {
  public static void main(String[] args) {
      try {
          //String portName = "/dev/tty.SLAB_USBtoUART";
          String portName = "COM6";
          System.out.println("Opening serial port " + portName);
          SerialPort serialPort = new SerialPort(portName);
          try {
              serialPort.openPort();
              serialPort.setParams(SerialPort.BAUDRATE_9600,
                               SerialPort.DATABITS_8,
                               SerialPort.STOPBITS_1,
                               SerialPort.PARITY_NONE);

          serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
          Boolean CTS = serialPort.isCTS();
          System.out.print("CTS is: ");
          if (CTS) {
                System.out.println("True");
          } else {
                System.out.println("False");
          }
         
          Boolean DSR = serialPort.isDSR();
          System.out.print("DSR is: ");
          if (DSR) {
                System.out.println("True");
          } else {
                System.out.println("False");
          }
          Boolean RI = serialPort.isRING();
          System.out.print("RI is: ");
          if (RI) {
                System.out.println("True");
          } else {
                System.out.println("False");
          }
         
          while (true) {
                Thread.sleep(500);
                Boolean myCTS = serialPort.isCTS();
                //if ( myCTS != CTS) {
                    if (myCTS == true ) {
                        System.out.println("CTS is: True");
                        CTS = true;
                    } else {
                        System.out.println("CTS is: False");
                        CTS = false;
                    }
                //}
               
                Boolean myDSR = serialPort.isDSR();
                if ( myDSR != DSR) {
                    if (myDSR == true ) {
                        System.out.println("DSR is: True");
                        DSR = true;
                    } else {
                        System.out.println("DSR is: False");
                        DSR = false;
                    }
                }
                Boolean myRI = serialPort.isRING();
                if ( myRI != RI) {
                    if (myRI == true ) {
                        System.out.println("RI is: True");
                        RI = true;
                    } else {
                        System.out.println("RI is: False");
                        RI = false;
                    }
                }

          }
                          }
           catch (SerialPortException ex) {
                           System.out.println(ex);
           }
      } catch (Exception e) {
          e.printStackTrace();
          System.exit(1);
      }
      System.exit(0);
  }
}


Code: [Select]

java -cp .:RXTXcomm.jar SerialTest2


C'è qualcuno che ha il mac e può fare qualche prova?
Grazie.

Alberto

Go Up