fix: decode base64-encoded file content

This commit is contained in:
mpmedia committed 2026-05-27 12:21:13 -05:00
1 parent 00d75e39f5
commit 36df8ff7b4
1 file changed
+384 -117
@@ -1,117 +1,384 @@
cGFja2FnZSBhbmRyb2lkLnNlcmlhbHBvcnQubWFuYWdlcjsKCmltcG9ydCBhbmRyb2lkLmNvbnRl package android.serialport.manager;
bnQuQ29udGV4dDsKaW1wb3J0IGFuZHJvaWQuc2VyaWFscG9ydC5tb2RlbC5QcmludGVyUmVxdWVz
dE1vZGVsOwppbXBvcnQgYW5kcm9pZC5zZXJpYWxwb3J0Lm1vZGVsLlByaW50ZXJSZXNwb25zZU1v import android.content.Context;
ZGVsOwppbXBvcnQgYW5kcm9pZC5zZXJpYWxwb3J0LnV0aWxzLkxvZ2dlcjsKaW1wb3J0IGFuZHJv import android.serialport.model.PrinterRequestModel;
aWQudXRpbC5Mb2c7CgpwdWJsaWMgY2xhc3MgVWFydFByb3RvY29sTWFuYWdlciB7CiAgICBwcml2 import android.serialport.model.PrinterResponseModel;
YXRlIGZpbmFsIENvbnRleHQgbUNvbnRleHQ7CiAgICBwcml2YXRlIHN0YXRpYyBVYXJ0UHJvdG9j import android.serialport.utils.Logger;
b2xNYW5hZ2VyIG1VYXJ0UHJvdG9jb2xNYW5hZ2VyOwoKICAgIC8vR2V0dGVyL1NldHRlciBWYXJp import android.util.Log;
YWJsZXMKICAgIHByaXZhdGUgZmluYWwgUHJpbnRlclJlcXVlc3RNb2RlbCBtUHJpbnRlclJlcXVl
c3RNb2RlbDsKCiAgICAvL1RvdGFsIGJ5dGVzCiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBU public class UartProtocolManager {
T1RBTF9CWVRFUyA9IDY0OwoKICAgIC8vVGFzayBJZHMKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwg private final Context mContext;
aW50IFVBUlRfUFJJTlRfUkVRVUVTVF9QUk9DRVNTID0gMTAxOwogICAgcHVibGljIHN0YXRpYyBm private static UartProtocolManager mUartProtocolManager;
aW5hbCBpbnQgVUFSVF9TVEFSVF9QUk9DRVNTID0gMTAyOwogICAgcHVibGljIHN0YXRpYyBmaW5h
bCBpbnQgVUFSVF9IRUFSVF9CRUFUX1BST0NFU1MgPSAxMDM7CiAgICBwdWJsaWMgc3RhdGljIGZp //Getter/Setter Variables
bmFsIGludCBVQVJUX0lNQUdFX0lORk9fUFJPQ0VTUyA9IDEwNDsKICAgIHB1YmxpYyBzdGF0aWMg private final PrinterRequestModel mPrinterRequestModel;
ZmluYWwgaW50IFVBUlRfR09fUFJJTlRfUFJPQ0VTUyA9IDEwNTsKICAgIHB1YmxpYyBzdGF0aWMg
ZmluYWwgaW50IFVBUlRfRU5EX09GX1BSSU5UX1BST0NFU1MgPSAxMDY7CiAgICBwdWJsaWMgc3Rh //Total bytes
dGljIGZpbmFsIGludCBVQVJUX1BSSU5URVJfQ09PTElOR19QUk9DRVNTID0gMTA3OwogICAgcHVi public static final int TOTAL_BYTES = 64;
bGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9QUklOVF9NT1JFX1BST0NFU1MgPSAxMDg7CiAgICBw
dWJsaWMgc3RhdGljIGZpbmFsIGludCBVQVJUX0FTS19GV19WRVJTSU9OX1BST0NFU1MgPSAxMDk7 //Task Ids
CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVQVJUX1BSSU5UX1JFU1RBUlRfUFJPQ0VTUyA9 public static final int UART_PRINT_REQUEST_PROCESS = 101;
IDIyMjsKCiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVQVJUX0ZXX1VQR1JBREVfUkVRVUVT public static final int UART_START_PROCESS = 102;
VF9QUk9DRVNTID0gMjAxOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9GV19HT19V public static final int UART_HEART_BEAT_PROCESS = 103;
UEdSQURFX1BST0NFU1MgPSAyMDI7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVQVJUX0ZX public static final int UART_IMAGE_INFO_PROCESS = 104;
X0dPX1VQR1JBREVfQUNLX1BST0NFU1MgPSAyMDM7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGlu public static final int UART_GO_PRINT_PROCESS = 105;
dCBVQVJUX0ZXX0VORF9PRl9VUEdSQURFX1BST0NFU1MgPSAyMDQ7CiAgICBwdWJsaWMgc3RhdGlj public static final int UART_END_OF_PRINT_PROCESS = 106;
IGZpbmFsIGludCBVQVJUX0ZXX0VORF9PRl9VUEdSQURFX0FDS19QUk9DRVNTID0gMjA1OwoKICAg public static final int UART_PRINTER_COOLING_PROCESS = 107;
IC8vUHJpbnQgU1MgQ29tbWFuZAogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9TTUFS public static final int UART_PRINT_MORE_PROCESS = 108;
VF9TSEVFVF9QUklOVF9QUk9DRVNTID0gMzAxOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQg public static final int UART_ASK_FW_VERSION_PROCESS = 109;
VUFSVF9TTUFSVF9TSEVFVF9FTkRfT0ZfUFJPQ0VTUyA9IDMwMjsKCiAgICAvL0ZhY3RvcnkgTW9k public static final int UART_PRINT_RESTART_PROCESS = 222;
ZQogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9GTV9SRVFVRVNUX0NNRF9QUk9DRVNT
ID0gMzAxOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9GTV9SRVFVRVNUX0FDS19Q public static final int UART_FW_UPGRADE_REQUEST_PROCESS = 201;
Uk9DRVNTID0gMzAyOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9GTV9CVVJOX0lO public static final int UART_FW_GO_UPGRADE_PROCESS = 202;
X0NNRF9QUk9DRVNTID0gMzAzOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9GTV9C public static final int UART_FW_GO_UPGRADE_ACK_PROCESS = 203;
VVJOX0lOX0FDS19QUk9DRVNTID0gMzA0OwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUFS public static final int UART_FW_END_OF_UPGRADE_PROCESS = 204;
VF9GTV9DQU1FUkFfVEVTVF9DTURfUFJPQ0VTUyA9IDMwNTsKICAgIHB1YmxpYyBzdGF0aWMgZmlu public static final int UART_FW_END_OF_UPGRADE_ACK_PROCESS = 205;
YWwgaW50IFVBUlRfRk1fQ0FNRVJBX1RFU1RfQUNLX1BST0NFU1MgPSAzMDY7CiAgICBwdWJsaWMg
c3RhdGljIGZpbmFsIGludCBVQVJUX0ZNX0ZRQ19DTURfUFJPQ0VTUyA9IDMwNzsKICAgIHB1Ymxp //Print SS Command
YyBzdGF0aWMgZmluYWwgaW50IFVBUlRfRk1fRlFDX0FDS19QUk9DRVNTID0gMzA4OwogICAgcHVi public static final int UART_SMART_SHEET_PRINT_PROCESS = 301;
bGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9GTV9TSElQUElOR19DTURfUFJPQ0VTUyA9IDMwOTsK public static final int UART_SMART_SHEET_END_OF_PROCESS = 302;
ICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVBUlRfRk1fU0hJUFBJTkdfQUNLX1BST0NFU1Mg
PSAzMTA7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVQVJUX0ZNX1ZFUl9BU0tfQ01EX1BS //Factory Mode
T0NFU1MgPSAzMTE7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVQVJUX0ZNX1ZFUl9BU0tf public static final int UART_FM_REQUEST_CMD_PROCESS = 301;
QUNLX1BST0NFU1MgPSAzMTI7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVQVJUX0ZNX1JF public static final int UART_FM_REQUEST_ACK_PROCESS = 302;
U0VUX0NNRF9QUk9DRVNTID0gMzEzOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUFSVF9G public static final int UART_FM_BURN_IN_CMD_PROCESS = 303;
TV9SRVNFVF9BQ0tfUFJPQ0VTUyA9IDMxNDsKCgogICAgLy9EZWZhdWx0IGJ5dGUKICAgIHB1Ymxp public static final int UART_FM_BURN_IN_ACK_PROCESS = 304;
YyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfQllURSA9IDB4MDA7CiAgICBwdWJsaWMgc3RhdGlj public static final int UART_FM_CAMERA_TEST_CMD_PROCESS = 305;
IGZpbmFsIGludCBTVEFSVF9DT0RFX09ORSA9IDB4MUI7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFs public static final int UART_FM_CAMERA_TEST_ACK_PROCESS = 306;
IGludCBTVEFSVF9DT0RFX1RXTyA9IDB4MkE7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBT public static final int UART_FM_FQC_CMD_PROCESS = 307;
VEFSVF9DT0RFX1RIUkVFID0gMHg0MzsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQVJU public static final int UART_FM_FQC_ACK_PROCESS = 308;
X0NPREVfRk9VUiA9IDB4NDE7CgoKCiAgICBwcml2YXRlIFVhcnRQcm90b2NvbE1hbmFnZXIoQ29u public static final int UART_FM_SHIPPING_CMD_PROCESS = 309;
dGV4dCBjb250ZXh0LCBCdWlsZGVyIGJ1aWxkZXIpIHsKICAgICAgICB0aGlzLm1Db250ZXh0ID0g public static final int UART_FM_SHIPPING_ACK_PROCESS = 310;
Y29udGV4dDsKICAgICAgICBtUHJpbnRlclJlcXVlc3RNb2RlbCA9IG5ldyBQcmludGVyUmVxdWVz public static final int UART_FM_VER_ASK_CMD_PROCESS = 311;
dE1vZGVsKCkuc2V0UHJvY2Vzc1Rhc2tJRChidWlsZGVyLmdldE1vZGVsKCkuZ2V0UHJvY2Vzc1Rh public static final int UART_FM_VER_ASK_ACK_PROCESS = 312;
c2tJRCgpKS5zZXRQYXlsb2FkKGJ1aWxkZXIuZ2V0TW9kZWwoKS5nZXRQYXlsb2FkKCkpLnNldE51 public static final int UART_FM_RESET_CMD_PROCESS = 313;
bWJlck9mQ29waWVzKGJ1aWxkZXIuZ2V0TW9kZWwoKS5nZXROdW1iZXJPZkNvcGllcygpKS5zZXRG public static final int UART_FM_RESET_ACK_PROCESS = 314;
aWxlTmFtZTEoYnVpbGRlci5nZXRNb2RlbCgpLmdldEZpbGVOYW1lMSgpKS5zZXRGaWxlTmFtZTMo
YnVpbGRlci5nZXRNb2RlbCgpLmdldEZpbGVOYW1lMygpKS5zZXRGaWxlTmFtZTQoYnVpbGRlci5n
ZXRNb2RlbCgpLmdldEZpbGVOYW1lNCgpKS5zZXRGaWxlTmFtZTUoYnVpbGRlci5nZXRNb2RlbCgp //Default byte
LmdldEZpbGVOYW1lNSgpKS5zZXRGaWxlTmFtZTYoYnVpbGRlci5nZXRNb2RlbCgpLmdldEZpbGVO public static final int DEFAULT_BYTE = 0x00;
YW1lNigpKS5zZXRGaWxlTmFtZTcoYnVpbGRlci5nZXRNb2RlbCgpLmdldEZpbGVOYW1lNygpKS5z public static final int START_CODE_ONE = 0x1B;
ZXRGaWxlTmFtZTgoYnVpbGRlci5nZXRNb2RlbCgpLmdldEZpbGVOYW1lOCgpKTsKICAgIH0KCiAg public static final int START_CODE_TWO = 0x2A;
ICBwdWJsaWMgc3RhdGljIFVhcnRQcm90b2NvbE1hbmFnZXIgZ2V0SW5zdGFuY2UoQ29udGV4dCBj public static final int START_CODE_THREE = 0x43;
b250ZXh0LCBCdWlsZGVyIGJ1aWxkZXIpIHsKICAgICAgICByZXR1cm4gbmV3IFVhcnRQcm90b2Nv public static final int START_CODE_FOUR = 0x41;
bE1hbmFnZXIoY29udGV4dCwgYnVpbGRlcik7CiAgICB9CgogICAgcHVibGljIENvbnRleHQgZ2V0
Q29udGV4dCgpIHsKICAgICAgICByZXR1cm4gbUNvbnRleHQ7CiAgICB9CgoKICAgIHB1YmxpYyBz
dGF0aWMgY2xhc3MgQnVpbGRlciB7CiAgICAgICAgcHJpdmF0ZSBmaW5hbCBDb250ZXh0IG1Db250
ZXh0OwogICAgICAgIHByaXZhdGUgUHJpbnRlclJlcXVlc3RNb2RlbCBtb2RlbDsKCiAgICAgICAg private UartProtocolManager(Context context, Builder builder) {
cHVibGljIEJ1aWxkZXIoQ29udGV4dCBjb250ZXh0KSB7CiAgICAgICAgICAgIHRoaXMubUNvbnRl this.mContext = context;
eHQgPSBjb250ZXh0OwogICAgICAgICAgICBtb2RlbCA9IG5ldyBQcmludGVyUmVxdWVzdE1vZGVs mPrinterRequestModel = new PrinterRequestModel().setProcessTaskID(builder.getModel().getProcessTaskID()).setPayload(builder.getModel().getPayload()).setNumberOfCopies(builder.getModel().getNumberOfCopies()).setFileName1(builder.getModel().getFileName1()).setFileName3(builder.getModel().getFileName3()).setFileName4(builder.getModel().getFileName4()).setFileName5(builder.getModel().getFileName5()).setFileName6(builder.getModel().getFileName6()).setFileName7(builder.getModel().getFileName7()).setFileName8(builder.getModel().getFileName8());
KCk7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgQnVpbGRlciBzZXRQcmludGVyUmVxdWVzdE1v }
ZGVsKFByaW50ZXJSZXF1ZXN0TW9kZWwgbW9kZWwpIHsKICAgICAgICAgICAgdGhpcy5tb2RlbCA9
IG1vZGVsOwogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CgogICAgICAgIHB1Ymxp public static UartProtocolManager getInstance(Context context, Builder builder) {
YyBQcmludGVyUmVxdWVzdE1vZGVsIGdldE1vZGVsKCkgewogICAgICAgICAgICByZXR1cm4gbW9k return new UartProtocolManager(context, builder);
ZWw7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgVWFydFByb3RvY29sTWFuYWdlciBidWlsZCgp }
IHsKICAgICAgICAgICAgcmV0dXJuIFVhcnRQcm90b2NvbE1hbmFnZXIuZ2V0SW5zdGFuY2UobUNv
bnRleHQsIHRoaXMpOwogICAgICAgIH0KCiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgU3RhcnQg public Context getContext() {
Q29kZSBhbmQgQ3VzdG9tZXIgQ29kZQogICAgICoKICAgICAqIEByZXR1cm4gYnl0ZSBhcnJheQog return mContext;
ICAgICovCiAgICBwdWJsaWMgYnl0ZVtdIGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKCkgewogICAg }
ICAgIHJldHVybiBuZXcgYnl0ZVtdeyhieXRlKSAweDFCLCAoYnl0ZSkgMHgyQSwgKGJ5dGUpIDB4
NDMsIChieXRlKSAweDQxfTsKICAgIH0KCiAgICBwdWJsaWMgYnl0ZVtdIGdldEhlYXJ0QmVhdFBy
b3RvY29sKCkgewogICAgICAgIC8vMHgxQgkweDJBCTB4NDMJMHg0MQkweDAwCTB4MDEJMHgwNAkw public static class Builder {
eDU1CiAgICAgICAgYnl0ZVtdIHF1ZXJ5RGF0YSA9IG5ldyBieXRlW1RPVEFMX0JZVEVTXTsKICAg private final Context mContext;
ICAgICBxdWVyeURhdGFbMF0gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzBdOwogICAgICAg private PrinterRequestModel model;
IHF1ZXJ5RGF0YVsxXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMV07CiAgICAgICAgcXVl
cnlEYXRhWzJdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVsyXTsKICAgICAgICBxdWVyeURh public Builder(Context context) {
dGFbM10gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzNdOwogICAgICAgIHF1ZXJ5RGF0YVs0 this.mContext = context;
XSA9IChieXRlKSAweDAwOwogICAgICAgIHF1ZXJ5RGF0YVs1XSA9IChieXRlKSAweDAxOwogICAg model = new PrinterRequestModel();
ICAgIHF1ZXJ5RGF0YVs2XSA9IChieXRlKSAweDA0OwogICAgICAgIHF1ZXJ5RGF0YVs3XSA9IChi }
eXRlKSAweDU1OwogICAgICAgIHF1ZXJ5RGF0YVs4XSA9IChieXRlKSAweDAwOwogICAgICAgIHF1
ZXJ5RGF0YVs5XSA9IChieXRlKSAweDAwOwogICAgICAgIHF1ZXJ5RGF0YVsxMF0gPSAoYnl0ZSkg public Builder setPrinterRequestModel(PrinterRequestModel model) {
MHgwMDsKICAgICAgICBxdWVyeURhdGFbMTFdID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcXVlcnlE this.model = model;
YXRhWzEyXSA9IChieXRlKSAweDAwOwogICAgICAgIHF1ZXJ5RGF0YVsxM10gPSAoYnl0ZSkgMHgw return this;
MDsKICAgICAgICBxdWVyeURhdGFbMTRdID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcXVlcnlEYXRh }
WzE1XSA9IChieXRlKSAweDAwOwoKICAgICAgICByZXR1cm4gcXVlcnlEYXRhOwogICAgfQoKICAg
IHB1YmxpYyBieXRlW10gZ2V0U3RhcnRVcFByb3RvY29sKCkgewogICAgICAgIGJ5dGVbXSBxdWVy public PrinterRequestModel getModel() {
eURhdGEgPSBuZXcgYnl0ZVtUT1RBTF9CWVRFU107CiAgICAgICAgcXVlcnlEYXRhWzBdID0gZ2V0 return model;
U3RhcnRBbmRDdXN0b21lckNvZGUoKVswXTsKICAgICAgICBxdWVyeURhdGFbMV0gPSBnZXRTdGFy }
dEFuZEN1c3RvbWVyQ29kZSgpWzFdOwogICAgICAgIHF1ZXJ5RGF0YVsyXSA9IGdldFN0YXJ0QW5k
Q3VzdG9tZXJDb2RlKClbMl07CiAgICAgICAgcXVlcnlEYXRhWzNdID0gZ2V0U3RhcnRBbmRDdXN0 public UartProtocolManager build() {
b21lckNvZGUoKVszXTsKICAgICAgICBxdWVyeURhdGFbNF0gPSAoYnl0ZSkgMHgwMTsKICAgICAg return UartProtocolManager.getInstance(mContext, this);
ICBxdWVyeURhdGFbNV0gPSAoYnl0ZSkgMHgwMTsKICAgICAgICBxdWVyeURhdGFbNl0gPSAoYnl0 }
ZSkgMHgwMTsKICAgICAgICBxdWVyeURhdGFbN10gPSAoYnl0ZSkgMHgwMDsKICAgICAgICByZXR1
cm4gcXVlcnlEYXRhOwogICAgfQoKICAgIHB1YmxpYyBieXRlW10gc2VuZFByaW50UmVxdWVzdFBy }
b3RvY29sKCkgewogICAgICAgIExvZ2dlci5kKCJOby5vZiBDb3A6ICIgKyBtUHJpbnRlclJlcXVl
c3RNb2RlbC5nZXROdW1iZXJPZkNvcGllcygpKTsKICAgICAgICBieXRlW10gcXVlcnlEYXRhID0g /**
bmV3IGJ5dGVbVE9UQUxfQllURVNdOwogICAgICAgIHF1ZXJ5RGF0YVswXSA9IGdldFN0YXJ0QW5k * Get Start Code and Customer Code
Q3VzdG9tZXJDb2RlKClbMF07CiAgICAgICAgcXVlcnlEYXRhWzFdID0gZ2V0U3RhcnRBbmRDdXN0 *
b21lckNvZGUoKVsxXTsKICAgICAgICBxdWVyeURhdGFbMl0gPSBnZXRTdGFydEFuZEN1c3RvbWVy * @return byte array
Q29kZSgpWzJdOwogICAgICAgIHF1ZXJ5RGF0YVszXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2Rl */
KClbM107CiAgICAgICAgcXVlcnlEYXRhWzRdID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcXVlcnlE public byte[] getStartAndCustomerCode() {
YXRhWzVdID0gKGJ5dGUpIDB4MDE7CiAgICAgICAgcXVlcnlEYXRhWzZdID0gKGJ5dGUpIDB4MDI7 return new byte[]{(byte) 0x1B, (byte) 0x2A, (byte) 0x43, (byte) 0x41};
CiAgICAgICAgcXVlcnlEYXRhWzddID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcXVlcnlEYXRhWzhd }
ID0gKGJ5dGUpIG1QcmludGVyUmVxdWVzdE1vZGVsLmdldE51bWJlck9mQ29waWVzKCk7CiAgICAg
ICAgcmV0dXJuIHF1ZXJ5RGF0YTsKICAgIH0KCiAgICBwdWJsaWMgYnl0ZVtdIHNlbmRJbWFnZUlu public byte[] getHeartBeatProtocol() {
Zm9Qcm90b2NvbCgpIHsKICAgICAgICBieXRlW10gcXVlcnlEYXRhID0gbmV3IGJ5dGVbVE9UQUxf //0x1B 0x2A 0x43 0x41 0x00 0x01 0x04 0x55
QllURVNdOwogICAgICAgIGlmIChtUHJpbnRlclJlcXVlc3RNb2RlbCAhPSBudWxsKSB7CiAgICAgICAgICAgIGJ5dGVbXSBhcnJheSA9IG1QcmludGVyUmVxdWVzdE1vZGVsLmdldEZpbGVOYW1lMSgpLmdldEJ5dGVzKCk7CiAgICAgICAgICAgIHF1ZXJ5RGF0YVswXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMF07CiAgICAgICAgICAgIHF1ZXJ5RGF0YVsxXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMV07CiAgICAgICAgICAgIHF1ZXJ5RGF0YVsyXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMl07CiAgICAgICAgICAgIHF1ZXJ5RGF0YVszXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbM107CiAgICAgICAgICAgIHF1ZXJ5RGF0YVs0XSA9IChieXRlKSAweDAwOwogICAgICAgICAgICBxdWVyeURhdGFbNV0gPSAoYnl0ZSkgMHgwMTsKICAgICAgICAgICAgcXVlcnlEYXRhWzZdID0gKGJ5dGUpIDB4MDI7CiAgICAgICAgICAgIHF1ZXJ5RGF0YVs3XSA9IChieXRlKSAweDAxOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1hdGgubWluKGFycmF5Lmxlbmd0aCwgOCk7IGkrKykgeyBxdWVyeURhdGFbOCArIGldID0gYXJyYXlbaV07IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHF1ZXJ5RGF0YTsKICAgIH0KCiAgICBwdWJsaWMgYnl0ZVtdIGdldEdvUHJpbnRBQ0tQcm90b2NvbCgpIHsKICAgICAgICBieXRlW10gcXVlcnlEYXRhID0gbmV3IGJ5dGVbVE9UQUxfQllURVNdOwogICAgICAgIHF1ZXJ5RGF0YVswXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMF07CiAgICAgICAgcXVlcnlEYXRhWzFdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVsxXTsKICAgICAgICBxdWVyeURhdGFbMl0gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzJdOwogICAgICAgIHF1ZXJ5RGF0YVszXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbM107CiAgICAgICAgcXVlcnlEYXRhWzRdID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcXVlcnlEYXRhWzVdID0gKGJ5dGUpIDB4MDE7CiAgICAgICAgcXVlcnlEYXRhWzZdID0gKGJ5dGUpIDB4MDI7CiAgICAgICAgcXVlcnlEYXRhWzddID0gKGJ5dGUpIDB4MDI7CiAgICAgICAgcmV0dXJuIHF1ZXJ5RGF0YTsKICAgIH0KCiAgICBwdWJsaWMgYnl0ZVtdIGdldEVuZE9mUHJpbnRBQ0tQcm90b2NvbCgpIHsKICAgICAgICBieXRlW10gcXVlcnlEYXRhID0gbmV3IGJ5dGVbVE9UQUxfQllURVNdOwogICAgICAgIHF1ZXJ5RGF0YVswXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMF07CiAgICAgICAgcXVlcnlEYXRhWzFdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVsxXTsKICAgICAgICBxdWVyeURhdGFbMl0gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzJdOwogICAgICAgIHF1ZXJ5RGF0YVszXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbM107CiAgICAgICAgcXVlcnlEYXRhWzRdID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcXVlcnlEYXRhWzVdID0gKGJ5dGUpIDB4MDE7CiAgICAgICAgcXVlcnlEYXRhWzZdID0gKGJ5dGUpIDB4MDI7CiAgICAgICAgcXVlcnlEYXRhWzddID0gKGJ5dGUpIDB4MDM7CiAgICAgICAgcmV0dXJuIHF1ZXJ5RGF0YTsKICAgIH0KCiAgICBwdWJsaWMgYnl0ZVtdIGdldEZXVXBncmFkZVJlcXVlc3RQcm90b2NvbCgpIHsKICAgICAgICBieXRlW10gcXVlcnlEYXRhID0gbmV3IGJ5dGVbVE9UQUxfQllURVNdOwogICAgICAgIHF1ZXJ5RGF0YVswXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMF07CiAgICAgICAgcXVlcnlEYXRhWzFdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVsxXTsKICAgICAgICBxdWVyeURhdGFbMl0gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzJdOwogICAgICAgIHF1ZXJ5RGF0YVszXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbM107CiAgICAgICAgcXVlcnlEYXRhWzRdID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcXVlcnlEYXRhWzVdID0gKGJ5dGUpIDB4MDE7CiAgICAgICAgcXVlcnlEYXRhWzZdID0gKGJ5dGUpIDB4MDM7CiAgICAgICAgcXVlcnlEYXRhWzddID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcmV0dXJuIHF1ZXJ5RGF0YTsKICAgIH0KCiAgICBwdWJsaWMgYnl0ZVtdIGdldEZXR29VcGdyYWRlQUNLUHJvdG9jb2woKSB7CiAgICAgICAgYnl0ZVtdIHF1ZXJ5RGF0YSA9IG5ldyBieXRlW1RPVEFMX0JZVEVTXTsKICAgICAgICBxdWVyeURhdGFbMF0gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzBdOwogICAgICAgIHF1ZXJ5RGF0YVsxXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMV07CiAgICAgICAgcXVlcnlEYXRhWzJdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVsyXTsKICAgICAgICBxdWVyeURhdGFbM10gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzNdOwogICAgICAgIHF1ZXJ5RGF0YVs0XSA9IChieXRlKSAweDAwOwogICAgICAgIHF1ZXJ5RGF0YVs1XSA9IChieXRlKSAweDAxOwogICAgICAgIHF1ZXJ5RGF0YVs2XSA9IChieXRlKSAweDAzOwogICAgICAgIHF1ZXJ5RGF0YVs3XSA9IChieXRlKSAweDAyOwogICAgICAgIHJldHVybiBxdWVyeURhdGE7CiAgICB9CgogICAgcHVibGljIGJ5dGVbXSBnZXRGV0VuZE9mVXBncmFkZUFDS1Byb3RvY29sKCkgewogICAgICAgIGJ5dGVbXSBxdWVyeURhdGEgPSBuZXcgYnl0ZVtUT1RBTF9CWVRFU107CiAgICAgICAgcXVlcnlEYXRhWzBdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVswXTsKICAgICAgICBxdWVyeURhdGFbMV0gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzFdOwogICAgICAgIHF1ZXJ5RGF0YVsyXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMl07CiAgICAgICAgcXVlcnlEYXRhWzNdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVszXTsKICAgICAgICBxdWVyeURhdGFbNF0gPSAoYnl0ZSkgMHgwMDsKICAgICAgICBxdWVyeURhdGFbNV0gPSAoYnl0ZSkgMHgwMTsKICAgICAgICBxdWVyeURhdGFbNl0gPSAoYnl0ZSkgMHgwMzsKICAgICAgICBxdWVyeURhdGFbN10gPSAoYnl0ZSkgMHgwMzsKICAgICAgICByZXR1cm4gcXVlcnlEYXRhOwogICAgfQoKICAgIHB1YmxpYyBieXRlW10gZ2V0UHJpbnRlckNvb2xpbmdBQ0tQcm90b2NvbCgpIHsKICAgICAgICBieXRlW10gcXVlcnlEYXRhID0gbmV3IGJ5dGVbVE9UQUxfQllURVNdOwogICAgICAgIHF1ZXJ5RGF0YVswXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbMF07CiAgICAgICAgcXVlcnlEYXRhWzFdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVsxXTsKICAgICAgICBxdWVyeURhdGFbMl0gPSBnZXRTdGFydEFuZEN1c3RvbWVyQ29kZSgpWzJdOwogICAgICAgIHF1ZXJ5RGF0YVszXSA9IGdldFN0YXJ0QW5kQ3VzdG9tZXJDb2RlKClbM107CiAgICAgICAgcXVlcnlEYXRhWzRdID0gKGJ5dGUpIDB4MDA7CiAgICAgICAgcXVlcnlEYXRhWzVdID0gKGJ5dGUpIDB4MDE7CiAgICAgICAgcXVlcnlEYXRhWzZdID0gKGJ5dGUpIDB4MDI7CiAgICAgICAgcXVlcnlEYXRhWzddID0gKGJ5dGUpIDB4MEY7CiAgICAgICAgcmV0dXJuIHF1ZXJ5RGF0YTsKICAgIH0KCiAgICBwdWJsaWMgYnl0ZVtdIGFza0Z3VmVyc2lvblByb3RvY29sKCkgewogICAgICAgIGJ5dGVbXSBxdWVyeURhdGEgPSBuZXcgYnl0ZVtUT1RBTF9CWVRFU107CiAgICAgICAgcXVlcnlEYXRhWzBdID0gZ2V0U3RhcnRBbmRDdXN0b21lckNvZGUoKVswXTsKICAgICAgICBxdWVyeURhdGFbMV0gPSBLine truncated byte[] queryData = new byte[TOTAL_BYTES];
kYXRlUHJvY2Vzc01hbmFnZXIuZ2V0SW5zdGFuY2UoZ2V0Q29udGV4dCgpKS5kb0ZXRW5kT2ZVcGdyYWRlUHJvY2VzcyhwYXlsb2FkKTsgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAodGFza0lkID09IFVBUlRfUFJJTlRFUl9DT09MSU5HX1BST0NFU1MpIHsgcmVzcG9uc2VNb2RlbCA9IFByaW50SW1hZ2VQcm9jZXNzTWFuYWdlci5nZXRJbnN0YW5jZShnZXRDb250ZXh0KCkpLmRvUHJpbnRlcklzQ29vbGluZ1Byb2Nlc3MocGF5bG9hZCk7IH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRhc2tJZCA9PSBVQVJUX0FTS19GV19WRVJTSU9OX1BST0NFU1MpIHsgcmVzcG9uc2VNb2RlbCA9IFByaW50SW1hZ2VQcm9jZXNzTWFuYWdlci5nZXRJbnN0YW5jZShnZXRDb250ZXh0KCkpLmRvRldWZXJzaW9uUHJvY2VzcyhwYXlsb2FkKTsgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAodGFza0lkID09IFVBUlRfU01BUlRfU0hFRVRfUFJJTlRfUFJPQ0VTUykgeyByZXNwb25zZU1vZGVsID0gUHJpbnRJbWFnZVByb2Nlc3NNYW5hZ2VyLmdldEluc3RhbmNlKGdldENvbnRleHQoKSkuZG9QcmludFNtYXJ0U2hlZXRQcm9jZXNzKHBheWxvYWQpOyB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXNrSWQgPT0gVUFSVF9TTUFSVF9TSEVFVF9FTkRfT0ZfUFJPQ0VTUykgeyByZXNwb25zZU1vZGVsID0gUHJpbnRJbWFnZVByb2Nlc3NNYW5hZ2VyLmdldEluc3RhbmNlKGdldENvbnRleHQoKSkuZG9FbmRPZlNtYXJ0U2hlZXRQcm9jZXNzKHBheWxvYWQpOyB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXNrSWQgPT0gVUFSVF9GTV9SRVFVRVNUX0NNRF9QUk9DRVNTKSB7IHJlc3BvbnNlTW9kZWwgPSBGYWN0b3J5TW9kZVByb2Nlc3NNYW5hZ2VyLmdldEluc3RhbmNlKGdldENvbnRleHQoKSkucGFyc2VGTVJlcXVlc3RBQ0tQcm9jZXNzKHBheWxvYWQpOyB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXNrSWQgPT0gVUFSVF9GTV9CVVJOX0lOX0NNRF9QUk9DRVNTKSB7IHJlc3BvbnNlTW9kZWwgPSBGYWN0b3J5TW9kZVByb2Nlc3NNYW5hZ2VyLmdldEluc3RhbmNlKGdldENvbnRleHQoKSkucGFyc2VCdXJuSW5BY2tQcm9jZXNzKHBheWxvYWQpOyB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXNrSWQgPT0gVUFSVF9GTV9GUUNfQ01EX1BST0NFU1MpIHsgcmVzcG9uc2VNb2RlbCA9IEZhY3RvcnlNb2RlUHJvY2Vzc01hbmFnZXIuZ2V0SW5zdGFuY2UoZ2V0Q29udGV4dCgpKS5wYXJzZUZRQ0Fja1Byb2Nlc3MocGF5bG9hZCk7IH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRhc2tJZCA9PSBVQVJUX0ZNX1NISVBQSU5HX0NNRF9QUk9DRVNTKSB7IHJlc3BvbnNlTW9kZWwgPSBGYWN0b3J5TW9kZVByb2Nlc3NNYW5hZ2VyLmdldEluc3RhbmNlKGdldENvbnRleHQoKSkucGFyc2VTaGlwcGluZ0Fja1Byb2Nlc3MocGF5bG9hZCk7IH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRhc2tJZCA9PSBVQVJUX0ZNX1ZFUl9BU0tfQ01EX1BST0NFU1MpIHsgcmVzcG9uc2VNb2RlbCA9IEZhY3RvcnlNb2RlUHJvY2Vzc01hbmFnZXIuZ2V0SW5zdGFuY2UoZ2V0Q29udGV4dCgpKS5wYXJzZVZlcnNpb25Bc2tBY2tQcm9jZXNzKHBheWxvYWQpOyB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXNrSWQgPT0gVUFSVF9GTV9SRVNFVF9DTURfUFJPQ0VTUykgeyByZXNwb25zZU1vZGVsID0gRmFjdG9yeU1vZGVQcm9jZXNzTWFuYWdlci5nZXRJbnN0YW5jZShnZXRDb250ZXh0KCkpLnBhcnNlVmVyc2lvbkFza0Fja1Byb2Nlc3MocGF5bG9hZCk7IH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRhc2tJZCA9PSBVQVJUX0ZNX0NBTUVSQV9URVNUX0NNRF9QUk9DRVNTKSB7IHJlc3BvbnNlTW9kZWwgPSBGYWN0b3J5TW9kZVByb2Nlc3NNYW5hZ2VyLmdldEluc3RhbmNlKGdldENvbnRleHQoKSkucGFyc2VDYW1lcmFBY2tQcm9jZXNzKHBheWxvYWQpOyB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlTW9kZWw7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0VGFza0lkTmFtZShpbnQgaWQpIHsKICAgICAgICBzd2l0Y2ggKGlkKSB7CiAgICAgICAgICAgIGNhc2UgVUFSVF9QUklOVF9SRVFVRVNUX1BST0NFU1M6IHJldHVybiAiVUFSVF9QUklOVF9SRVFVRVNUX1BST0NFU1MiOwogICAgICAgICAgICBjYXNlIFVBUlRfU1RBUlRfUFJPQ0VTUzogcmV0dXJuICJVQVJUX1NUQVJUX1BST0NFU1MiOwogICAgICAgICAgICBjYXNlIFVBUlRfSEVBUlRfQkVBVF9QUk9DRVNTOiByZXR1cm4gIlVBUlRfSEVBUlRfQkVBVF9QUk9DRVNTIjsKICAgICAgICAgICAgY2FzZSBVQVJUX0lNQUdFX0lORk9fUFJPQ0VTUzogcmV0dXJuICJVQVJUX0lNQUdFX0lORk9fUFJPQ0VTUyI7CiAgICAgICAgICAgIGNhc2UgVUFSVF9HT19QUklOVF9QUk9DRVNTOiByZXR1cm4gIlVBUlRfR09fUFJJTlRfUFJPQ0VTUyI7CiAgICAgICAgICAgIGNhc2UgVUFSVF9FTkRfT0ZfUFJJTlRfUFJPQ0VTUzogcmV0dXJuICJVQVJUX0VORF9PRl9QUklOVF9QUk9DRVNTIjsKICAgICAgICAgICAgY2FzZSBVQVJUX1BSSU5URVJfQ09PTElOR19QUk9DRVNTOiByZXR1cm4gIlVBUlRfUFJJTlRFUl9DT09MSU5HX1BST0NFU1MiOwogICAgICAgICAgICBjYXNlIFVBUlRfUFJJTlRfTU9SRV9QUk9DRVNTOiByZXR1cm4gIlVBUlRfUFJJTlRfTU9SRV9QUk9DRVNTIjsKICAgICAgICAgICAgY2FzZSBVQVJUX0FTS19GV19WRVJTSU9OX1BST0NFU1M6IHJldHVybiAiVUFSVF9BU0tfRldfVkVSU0lPTl9QUk9DRVNTIjsKICAgICAgICAgICAgY2FzZSBVQVJUX0ZXX1VQR1JBREVfUkVRVUVTVF9QUk9DRVNTOiByZXR1cm4gIlVBUlRfRldfVVBHUkFERV9SRVFVRVNUX1BST0NFU1MiOwogICAgICAgICAgICBjYXNlIFVBUlRfRldfR09fVVBHUkFERV9QUk9DRVNTOiByZXR1cm4gIlVBUlRfRldfR09fVVBHUkFERV9QUk9DRVNTIjsKICAgICAgICAgICAgY2FzZSBVQVJUX0ZXX0dPX1VQR1JBREVfQUNLX1BST0NFU1M6IHJldHVybiAiVUFSVF9GV19HT19VUEdSQURFX0FDS19QUk9DRVNTIjsKICAgICAgICAgICAgY2FzZSBVQVJUX0ZXX0VORF9PRl9VUEdSQURFX1BST0NFU1M6IHJldHVybiAiVUFSVF9GV19FTkRfT0ZfVVBHUkFERV9QUk9DRVNTIjsKICAgICAgICAgICAgY2FzZSBVQVJUX0ZXX0VORF9PRl9VUEdSQURFX0FDS19QUk9DRVNTOiByZXR1cm4gIlVBUlRfRldfRU5EX09GX1VQR1JBREVfQUNLX1BST0NFU1MiOwogICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gIlVOS05PV04iOwogICAgICAgIH0KICAgIH0KfQo= queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x04;
queryData[7] = (byte) 0x55;
queryData[8] = (byte) 0x00;
queryData[9] = (byte) 0x00;
queryData[10] = (byte) 0x00;
queryData[11] = (byte) 0x00;
queryData[12] = (byte) 0x00;
queryData[13] = (byte) 0x00;
queryData[14] = (byte) 0x00;
queryData[15] = (byte) 0x00;
return queryData;
}
public byte[] getStartUpProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x01;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x01;
queryData[7] = (byte) 0x00;
return queryData;
}
public byte[] sendPrintRequestProtocol() {
Logger.d("No.of Cop: " + mPrinterRequestModel.getNumberOfCopies());
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x02;
queryData[7] = (byte) 0x00;
queryData[8] = (byte) mPrinterRequestModel.getNumberOfCopies();
return queryData;
}
public byte[] sendImageInfoProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
if (mPrinterRequestModel != null) {
byte[] array = mPrinterRequestModel.getFileName1().getBytes();
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x02;
queryData[7] = (byte) 0x01;
for (int i = 0; i < Math.min(array.length, 8); i++) { queryData[8 + i] = array[i]; }
}
return queryData;
}
public byte[] getGoPrintACKProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x02;
queryData[7] = (byte) 0x02;
return queryData;
}
public byte[] getEndOfPrintACKProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x02;
queryData[7] = (byte) 0x03;
return queryData;
}
public byte[] getFWUpgradeRequestProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x03;
queryData[7] = (byte) 0x00;
return queryData;
}
public byte[] getFWGoUpgradeACKProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x03;
queryData[7] = (byte) 0x02;
return queryData;
}
public byte[] getFWEndOfUpgradeACKProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x03;
queryData[7] = (byte) 0x03;
return queryData;
}
public byte[] getPrinterCoolingACKProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x02;
queryData[7] = (byte) 0x0F;
return queryData;
}
public byte[] askFwVersionProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x03;
queryData[7] = (byte) 0xFF;
return queryData;
}
public byte[] sendPrintSmartSheetProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x01;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0x02;
queryData[7] = (byte) 0xAA;
return queryData;
}
public byte[] getFactoryModeRequestProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[0] = getStartAndCustomerCode()[0];
queryData[1] = getStartAndCustomerCode()[1];
queryData[2] = getStartAndCustomerCode()[2];
queryData[3] = getStartAndCustomerCode()[3];
queryData[4] = (byte) 0x00;
queryData[5] = (byte) 0x01;
queryData[6] = (byte) 0xF0;
queryData[7] = (byte) 0x00;
return queryData;
}
public byte[] getFactoryModeBurnInProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[6] = (byte) 0xF0; queryData[7] = (byte) 0x01;
return queryData;
}
public byte[] getFactoryModeCameraTestProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[6] = (byte) 0xF0; queryData[7] = (byte) 0x02;
return queryData;
}
public byte[] getFactoryModeFQCProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[6] = (byte) 0xF0; queryData[7] = (byte) 0x03;
return queryData;
}
public byte[] getFactoryModeShippingProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[6] = (byte) 0xF0; queryData[7] = (byte) 0x04;
return queryData;
}
public byte[] getFactoryModeVersionAskProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[6] = (byte) 0xF0; queryData[7] = (byte) 0x05;
return queryData;
}
public byte[] getFactoryModeResetProtocol() {
byte[] queryData = new byte[TOTAL_BYTES];
queryData[6] = (byte) 0xF0; queryData[7] = (byte) 0xFF;
return queryData;
}
public PrinterResponseModel findPrinterResponse() {
PrinterResponseModel responseModel = null;
if (mPrinterRequestModel != null) {
int taskId = mPrinterRequestModel.getProcessTaskID();
byte[] payload = mPrinterRequestModel.getPayload();
if (payload != null) {
if (taskId == UART_HEART_BEAT_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doHeartBeatProcess(payload); }
else if (taskId == UART_PRINT_REQUEST_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doPrintRequestACKProcess(payload); }
else if (taskId == UART_IMAGE_INFO_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doGoPrintACKPetProcess(payload); }
else if (taskId == UART_GO_PRINT_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doEndOfPrintProcess(payload); }
else if (taskId == UART_END_OF_PRINT_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doEndOfPrintProcess(payload); }
else if (taskId == UART_FW_UPGRADE_REQUEST_PROCESS) { responseModel = FWUpdateProcessManager.getInstance(getContext()).doFWUpgradeRequestACKPetProcess(payload); }
else if (taskId == UART_FW_GO_UPGRADE_PROCESS) { responseModel = FWUpdateProcessManager.getInstance(getContext()).doFWGoUpgradeProcess(payload); }
else if (taskId == UART_FW_END_OF_UPGRADE_PROCESS) { responseModel = FWUpdateProcessManager.getInstance(getContext()).doFWEndOfUpgradeProcess(payload); }
else if (taskId == UART_PRINTER_COOLING_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doPrinterIsCoolingProcess(payload); }
else if (taskId == UART_ASK_FW_VERSION_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doFWVersionProcess(payload); }
else if (taskId == UART_SMART_SHEET_PRINT_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doPrintSmartSheetProcess(payload); }
else if (taskId == UART_SMART_SHEET_END_OF_PROCESS) { responseModel = PrintImageProcessManager.getInstance(getContext()).doEndOfSmartSheetProcess(payload); }
else if (taskId == UART_FM_REQUEST_CMD_PROCESS) { responseModel = FactoryModeProcessManager.getInstance(getContext()).parseFMRequestACKProcess(payload); }
else if (taskId == UART_FM_BURN_IN_CMD_PROCESS) { responseModel = FactoryModeProcessManager.getInstance(getContext()).parseBurnInAckProcess(payload); }
else if (taskId == UART_FM_FQC_CMD_PROCESS) { responseModel = FactoryModeProcessManager.getInstance(getContext()).parseFQCAckProcess(payload); }
else if (taskId == UART_FM_SHIPPING_CMD_PROCESS) { responseModel = FactoryModeProcessManager.getInstance(getContext()).parseShippingAckProcess(payload); }
else if (taskId == UART_FM_VER_ASK_CMD_PROCESS) { responseModel = FactoryModeProcessManager.getInstance(getContext()).parseVersionAskAckProcess(payload); }
else if (taskId == UART_FM_RESET_CMD_PROCESS) { responseModel = FactoryModeProcessManager.getInstance(getContext()).parseVersionAskAckProcess(payload); }
else if (taskId == UART_FM_CAMERA_TEST_CMD_PROCESS) { responseModel = FactoryModeProcessManager.getInstance(getContext()).parseCameraAckProcess(payload); }
}
}
return responseModel;
}
public static String getTaskIdName(int id) {
switch (id) {
case UART_PRINT_REQUEST_PROCESS: return "UART_PRINT_REQUEST_PROCESS";
case UART_START_PROCESS: return "UART_START_PROCESS";
case UART_HEART_BEAT_PROCESS: return "UART_HEART_BEAT_PROCESS";
case UART_IMAGE_INFO_PROCESS: return "UART_IMAGE_INFO_PROCESS";
case UART_GO_PRINT_PROCESS: return "UART_GO_PRINT_PROCESS";
case UART_END_OF_PRINT_PROCESS: return "UART_END_OF_PRINT_PROCESS";
case UART_PRINTER_COOLING_PROCESS: return "UART_PRINTER_COOLING_PROCESS";
case UART_PRINT_MORE_PROCESS: return "UART_PRINT_MORE_PROCESS";
case UART_ASK_FW_VERSION_PROCESS: return "UART_ASK_FW_VERSION_PROCESS";
case UART_FW_UPGRADE_REQUEST_PROCESS: return "UART_FW_UPGRADE_REQUEST_PROCESS";
case UART_FW_GO_UPGRADE_PROCESS: return "UART_FW_GO_UPGRADE_PROCESS";
case UART_FW_GO_UPGRADE_ACK_PROCESS: return "UART_FW_GO_UPGRADE_ACK_PROCESS";
case UART_FW_END_OF_UPGRADE_PROCESS: return "UART_FW_END_OF_UPGRADE_PROCESS";
case UART_FW_END_OF_UPGRADE_ACK_PROCESS: return "UART_FW_END_OF_UPGRADE_ACK_PROCESS";
default: return "UNKNOWN";
}
}
}