4.10. IPeripheralCommandParser
added in version 1.6.0
An interface to provide functions to generate commands for the peripheral control.
This interface is only for models which support the peripheral. For the supporting models, refer to Supported Peripherals .
Constant
Name
Contents
Parse result constants
Method
Name
Contents
Generates a command to receive the response from the peripheral.
Analyzes the response of the command (command generated with the createSendCommands ) for the peripheral control.
4.10.1. ParseResult
added in version 1.6.0
Parse result constants
Declaration
enum ParseResult { Invalid, Success, Failure }
Constants
Name
Contents
Invalid
Parse invalid
Success
Parse success
Failure
Parse failure
4.10.2. createSendCommands
added in version 1.6.0
Generates a command to receive the response from the peripheral.
Declaration
byte[] createSendCommands();
Parameter
None
Return value
Contents
Type
Generated command.
byte[]
Examples
public void run() { Communication.Result communicateResult = Communication.Result.ErrorOpenPort; boolean result = false; synchronized (mLock) { try { if (mPort == null) { mPort = StarIOPort.getPort(mPortName, mPortSettings, mTimeout, mContext); } communicateResult = Communication.Result.ErrorWritePort; StarPrinterStatus status = mPort.retreiveStatus(); if (status.rawLength == 0) { throw new StarIOPortException("Unable to communicate with printer."); } communicateResult = Communication.Result.ErrorWritePort; byte[] sendData = mParser.createSendCommands(); mPort.writePort(sendData, 0, sendData.length); List<Byte> receiveDataList = new ArrayList<>(); byte[] readBuffer = new byte[1024]; long start = System.currentTimeMillis(); while (true) { if (1000 < (System.currentTimeMillis() - start)) { communicateResult = Communication.Result.ErrorReadPort; break; } try { Thread.sleep(10); } catch (InterruptedException ignore) { } int receiveSize = mPort.readPort(readBuffer, 0, readBuffer.length); if (0 < receiveSize) { for (int i = 0; i < receiveSize; i++) { receiveDataList.add(readBuffer[i]); } } else { continue; } byte[] receiveData = new byte[receiveDataList.size()]; int receiveDataLength = receiveDataList.size(); for (int i = 0; i < receiveDataLength; i++) { receiveData[i] = receiveDataList.get(i); } if (mParser.parse(receiveData, receiveDataLength) == ParseResult.Success) { result = true; communicateResult = Communication.Result.Success; break; } } ... } } }
Refer to Communication.java.
4.10.3. parse
added in version 1.6.0
Analyzes the response of the command (command generated with the createSendCommands ) for the peripheral control.
Declaration
ParseResult parse(byte[] response, int length);
Parameter
Name
Contents
Type
response
Command response
byte[]
length
Length of the command response
int
Return value
Contents
Type
Parse result
Examples
Refer to the example of the createSendCommands method.