нужна помощь с отображением сообщения на дисплее полюса в Java - PullRequest
2 голосов
/ 05 января 2011

Я использую полюсный дисплей PL200 со следующими настройками * Тип символа: США / Европа (по умолчанию) * Командный режим: EPSON (по умолчанию) Бод * скорость: 9600, n, 8, 1 (по умолчанию?) * PassthruНет (по умолчанию)

Дисплей просто гаснет каждый раз, когда я запускаю свой код, и я получаю сообщение об исключении, например «устройство не распознает эту команду».

Я полагаю, что яне правильно понимаете команды, может ли кто-нибудь дать пример кода для записи на дисплей полюсов?

Код ...

try
    {
    CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM1");
        if (portIdentifier.isCurrentlyOwned())
        {
            System.out.println("Port in use!");
        }
        else {
        System.out.println(portIdentifier.getName());

        SerialPort serialPort = (SerialPort) portIdentifier.open("ListPortClass", 300);
        int b = serialPort.getBaudRate();
        System.out.println(Integer.toString(b));
        serialPort.setSerialPortParams(300, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
        OutputStream mOutputToPort = serialPort.getOutputStream();
        InputStream mInputFromPort = serialPort.getInputStream();
        String mValue = "AT\r";
        System.out.println("beginning to Write . \r\n");
        mOutputToPort.write(mValue.getBytes());
        System.out.println("AT Command Written to Port. \r\n");
        mOutputToPort.flush();
        System.out.println("Waiting for Reply \r\n");
        Thread.sleep(500);
        byte mBytesIn [] = new byte[20];
        mInputFromPort.read(mBytesIn);
        mInputFromPort.read(mBytesIn);
        String value = new String(mBytesIn);
        System.out.println("Response from Serial Device: "+value);
        mOutputToPort.close();
        mInputFromPort.close();
    }
    catch (Exception ex)
    {
        System.out.println("Exception : " + ex.getMessage());
    }

1 Ответ

2 голосов
/ 05 января 2011

Ваша скорость передачи может быть неправильной. Устройство работает на скорости 9600 или 19200 бод, но вы установили скорость порта 300 бод.

Я бы ожидал такую ​​строку:

serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, 
    SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

Я взял свою мудрость у этого ресурса - никогда не использовал это устройство. Насколько я понимаю, команды:

new byte[]{0x0C}  // clear display
new byte[]{0x1f, 0x24, 0x01, 0x02};  // move cursor to column 1, row 2 (example)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...