Ich versuche, eine kleine Anwendung zum Lesen von BarCode mit Motorola MC3090 Symbol Gerät zu schreiben. Die Anwendung muss auf einem PC, nicht auf dem Gerät laufen und muss mit JAVA codiert sein.Import Barcode gescannt von Motorola Mobilgerät
Der Barcode wird mit DataWedge 3.3 auf dem Gerät gescannt.
Wenn ich WordPad auf dem Gerät verwende, werden auch Barcodes gescannt.
Jetzt ist das Problem, wie diese scared Barecode auf den PC übertragen werden.
ich diesen Code bereits testen, um zu wissen, ob der PC den Port des Gerätes gefunden:
CODE
import java.io.*;
import java.util.*;
import javax.comm.*;
public class SimpleRead implements Runnable, SerialPortEventListener {
static CommPortIdentifier portId;
static Enumeration portList;
InputStream inputStream;
SerialPort serialPort;
Thread readThread;
public static void main(String[] args) {
boolean portFound = false;
String defaultPort = "COM1";
if (args.length > 0) {
defaultPort = args[0];
}
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
System.out.println("port existed");
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals(defaultPort)) {
System.out.println("Found port: " + defaultPort);
portFound = true;
SimpleRead reader = new SimpleRead();
}
}
}
if (!portFound) {
System.out.println("port " + defaultPort + " not found.");
}
}
public SimpleRead() {
try {
serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
} catch (PortInUseException e) {
}
try {
inputStream = serialPort.getInputStream();
} catch (IOException e) {
}
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {
}
serialPort.notifyOnDataAvailable(true);
try {
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
}
readThread = new Thread(this);
readThread.start();
}
public void run() {
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
}
}
public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
byte[] readBuffer = new byte[20];
try {
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
System.out.print("The Read Bytes from SerialPort are");
System.out.write(readBuffer);
System.out.println();
}
System.out.print(new String(readBuffer));
} catch (IOException e) {
}
break;
}
}
}
OUTPUT
port COM1 not found.
Problem Dies ist einer.
Ich versuche, eine weitere Art und Weise, ein direkter
CODE
public static void main(String[] args) {
String filePath = "??????????";
readFile(filePath);
}
public static void readFile(String filePath){
try {
Scanner scanner = new Scanner(new File(filePath));
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Aber das Problem mit dieser Art und Weise ist, dass ich weiß nicht, den Dateipfad, da die Geräte nicht auf dem PC verbunden ist, wie ein Speichergerät.
Wie kann man den auf den PC gescannten Barcode abrufen?