2016-08-31 10 views
0

Motorola MC3090シンボルデバイスを使用してバーコードを読み取るための小さなアプリケーションを作成しようとしています。アプリケーションは、デバイスではなくPC上で実行する必要があり、JAVAでコーディングする必要があります。モトローラモバイルデバイスからスキャンしたバーコードをインポート

バーコードは、DataWedge 3.3を使用してデバイス上でスキャンされます。

デバイスでワードパッドを使用すると、バーコードもスキャンされます。

ここで問題となるのは、これらのスキャンされたコードをPCに転送する方法です。

私はすでにPCはデバイスのポートを発見したかどうかを知るためにこのコードをテスト:

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. 

これは一つの問題です。

私は1つの別の方法で、直接1

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(); 
    } 
} 

を試してみてくださいしかし、その方法に問題がデバイスがPCに接続されていないので、私はファイルパスを知らないということです記憶装置のように。

PCにスキャンされたバーコードを取得する方法は何ですか?

答えて

0

AFAIK MC3000シリーズはWindows CE 4.2を実行しています。

シリアルアダプター(使用可能な場合)をデバイスに接続する以外は、シリアル接続はありません。

デバイスがWindows PC(USBまたはシリアル)に接続されている場合、デバイスはActiveSyncを起動し、PCとActiveSyncまたはWMDCをインストールしてデバイスとPCを接続する必要があります。 この接続は、C/C++ RAPI(Copy a file from PDA to PC via USB in javaも参照)またはネットワークを使用して使用できます。 ActiveSyncはPPP接続を作成し、デバイスはIPを取得します。または、Windows Mobile 6を実行する新しいデバイスでは、デバイス(RNDIS)に接続する仮想ネットワークアダプタを取得します。

ActiveSyncが接続されている場合は、PCとデバイス間で同期させるディレクトリなどを指定できます。または、PPPネットワークを使用してファイルやデータを転送します。

無線LANにデバイスを接続すると、実行中のデバイスがあればすべてが簡単になります。