0

シナリオは次のとおりです。

1.コンピュータに GSM モデムが接続されています。動作しています。内蔵プログラムを介して SMS の読み取りと送信を行うことができます。
2. gsm モデムに割り当てられたポートは COM11 です。から見ましたDeviceManager -> modems -> myModem-> Advance -> AdvancePortSettings
3.受信メッセージを読み取る Java コードを作成します。

コードは次のとおりです。

public class PScanner implements SerialPortEventListener, Runnable {
    CommPortIdentifier pid = null;
    SerialPort sp;
    BufferedReader input;
    OutputStream output;

    public PScanner() {
        try {
            Enumeration e = CommPortIdentifier.getPortIdentifiers();
            while (e.hasMoreElements()) {
                CommPortIdentifier cpi = (CommPortIdentifier) e.nextElement();
                if (cpi.getName().equals("COM11")) {
                    pid = cpi;
                    break;
                }
            }
            sp = (SerialPort) pid.open(getClass().getName(), 2000);
            sp.setSerialPortParams(115200, SerialPort.DATABITS_8,
                    SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
            InputStream is = sp.getInputStream();
            input = new BufferedReader(new InputStreamReader(is));
            output = sp.getOutputStream();
            sp.addEventListener(this);
            sp.notifyOnDataAvailable(true);
            new Thread(this).start();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public synchronized void serialEvent(SerialPortEvent oEvent) {
        System.out.println("serialEvent CallBack");
    }

    public synchronized void close() {
        if (sp != null) {
            sp.removeEventListener();
            sp.close();
        }
    }

    @Override
    public void run() {
        try {
            Thread.sleep(20000);
        } catch (InterruptedException ex) {
            Logger.getLogger(PScanner.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            System.out.println("done");
        }
    }
}

GSM モデムで SMS を送信すると、serialEvent()コールバック メソッドが表示されません。誰が何が起こっているのか知っていますか?エラーや例外は発生しません。

4

2 に答える 2