fix: decode base64-encoded file content
This commit is contained in:
+310
-206
@@ -1,206 +1,310 @@
|
|||||||
cGFja2FnZSBhbmRyb2lkLnNlcmlhbHBvcnQubWFuYWdlcjsKCmltcG9ydCBhbmRyb2lkLmNvbnRl
|
package android.serialport.manager;
|
||||||
bnQuQ29udGV4dDsKaW1wb3J0IGFuZHJvaWQuc2VyaWFscG9ydC5tb2RlbC5QcmludGVyUmVzcG9u
|
|
||||||
c2VNb2RlbDsKaW1wb3J0IGFuZHJvaWQuc2VyaWFscG9ydC51dGlscy5CeXRlVXRpbDsKaW1wb3J0
|
import android.content.Context;
|
||||||
IGFuZHJvaWQuc2VyaWFscG9ydC51dGlscy5Mb2dnZXI7CgpwdWJsaWMgY2xhc3MgRmFjdG9yeU1v
|
import android.serialport.model.PrinterResponseModel;
|
||||||
ZGVQcm9jZXNzTWFuYWdlciB7CiAgICBwcml2YXRlIENvbnRleHQgbUNvbnRleHQ7CiAgICBwcml2
|
import android.serialport.utils.ByteUtil;
|
||||||
YXRlIHN0YXRpYyBGYWN0b3J5TW9kZVByb2Nlc3NNYW5hZ2VyIG1Qcm90b2NvbE1hbmFnZXI7CiAg
|
import android.serialport.utils.Logger;
|
||||||
ICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9UQUxfQllURVMgPSA2NDsKICAgIC8vUHJpbnQg
|
|
||||||
UmVxdWVzdCBBbnN3ZXIKICAgIC8vRmlsZSBBdmFpbGFibGUKICAgIHByaXZhdGUgZmluYWwgaW50
|
public class FactoryModeProcessManager {
|
||||||
IEZNX1JFUVVFU1RfQUxMT1cgPSAweDAxOwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgRk1fUkVRVUVT
|
private Context mContext;
|
||||||
VF9SRUpFQ1QgPSAweEZGOwoKICAgIHByaXZhdGUgZmluYWwgaW50IE5PTkVfRVJST1IgPSAweDAw
|
private static FactoryModeProcessManager mProtocolManager;
|
||||||
OwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgU1lTVEVNX09WRVJfSEVBVCA9IDB4MDU7CiAgICBwcml2
|
private static final int TOTAL_BYTES = 64;
|
||||||
YXRlIGZpbmFsIGludCBTWVNURU1fT1ZFUl9DT0xEID0gMHgwNjsKICAgIHByaXZhdGUgZmluYWwg
|
//Print Request Answer
|
||||||
aW50IERVUklOR19VUEdSQURJTkcgPSAweDBFOwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgRFVSSU5H
|
//File Available
|
||||||
X1BSSU5USU5HID0gMHgxMDsKCgogICAgLy9FbmQgb2YgcHJpbnRlcgogICAgcHJpdmF0ZSBmaW5h
|
private final int FM_REQUEST_ALLOW = 0x01;
|
||||||
bCBpbnQgRU5EX09GX1BSSU5UX1NVQ0NFU1MgPSAweDU1OwogICAgcHJpdmF0ZSBmaW5hbCBpbnQg
|
private final int FM_REQUEST_REJECT = 0xFF;
|
||||||
RU5EX09GX1BSSU5UX0VSUk9SID0gMHhBMDsKCiAgICAvL0ZXIFZhcmlhYmxlCiAgICAvL1VwZ3Jh
|
|
||||||
ZGUgRXJyb3IgTWVzc2FnZSAoZm9yIFVwZ3JhZGVFcnJNZXNzYWdlKQogICAgcHJpdmF0ZSBmaW5h
|
private final int NONE_ERROR = 0x00;
|
||||||
bCBpbnQgRklMRV9FUlJPUiA9IDB4MDE7CgogICAgLy9QYXBlciBUcmF5CiAgICBwcml2YXRlIGZp
|
private final int SYSTEM_OVER_HEAT = 0x05;
|
||||||
bmFsIGludCBQQVBFUl9UUkFZX0VNUFRZID0gMHgwMTsKCiAgICBwcml2YXRlIEZhY3RvcnlNb2Rl
|
private final int SYSTEM_OVER_COLD = 0x06;
|
||||||
UHJvY2Vzc01hbmFnZXIoQ29udGV4dCBjb250ZXh0KSB7CiAgICAgICAgbUNvbnRleHQgPSBjb250
|
private final int DURING_UPGRADING = 0x0E;
|
||||||
ZXh0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgRmFjdG9yeU1vZGVQcm9jZXNzTWFuYWdlciBn
|
private final int DURING_PRINTING = 0x10;
|
||||||
ZXRJbnN0YW5jZShDb250ZXh0IGNvbnRleHQpIHsKICAgICAgICBpZiAobVByb3RvY29sTWFuYWdl
|
|
||||||
ciA9PSBudWxsKSB7CiAgICAgICAgICAgIG1Qcm90b2NvbE1hbmFnZXIgPSBuZXcgRmFjdG9yeU1v
|
|
||||||
ZGVQcm9jZXNzTWFuYWdlcihjb250ZXh0KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1Qcm90
|
//End of printer
|
||||||
b2NvbE1hbmFnZXI7CiAgICB9CiAgICAvKioKICAgICAqIHBhcnNlIGZhY3RvcnkgbW9kZSByZXF1
|
private final int END_OF_PRINT_SUCCESS = 0x55;
|
||||||
ZXN0IGJ5dGUgcmVzcG9uc2UKICAgICAqCiAgICAgKiBAcGFyYW0gcGF5bG9hZCAtIFByaW50ZXIg
|
private final int END_OF_PRINT_ERROR = 0xA0;
|
||||||
cGF5bG9hZAogICAgICogQHJldHVybiAtIFByaW50ZXJSZXNwb25zZSBNb2RlbChJc1N1Y2Nlc3Ms
|
|
||||||
IE1lc3NhZ2UsIEVycm9yQ29kZSkKICAgICAqLwogICAgcHVibGljIFByaW50ZXJSZXNwb25zZU1v
|
//FW Variable
|
||||||
ZGVsIHBhcnNlRk1SZXF1ZXN0QUNLUHJvY2VzcyhieXRlW10gcGF5bG9hZCkgewogICAgICAgIC8v
|
//Upgrade Error Message (for UpgradeErrMessage)
|
||||||
MHgxQgkweDJBCTB4NDMJMHg0MQkweDAxCTB4MDEJMHhGMAkweDAwCUFsbG93OiAweDAxIFJlamVj
|
private final int FILE_ERROR = 0x01;
|
||||||
dDoweEZGCiAgICAgICAgUHJpbnRlclJlc3BvbnNlTW9kZWwgcmVzcG9uc2UgPSBudWxsOwogICAg
|
|
||||||
ICAgIGlmIChwYXlsb2FkICE9IG51bGwgJiYgcGF5bG9hZC5sZW5ndGggPT0gVE9UQUxfQllURVMp
|
//Paper Tray
|
||||||
IHsKICAgICAgICAgICAgZmluYWwgYnl0ZSByZXF1ZXN0QW5zd2VyID0gcGF5bG9hZFs4XTsKICAg
|
private final int PAPER_TRAY_EMPTY = 0x01;
|
||||||
ICAgICAgICAgcmVzcG9uc2UgPSBuZXcgUHJpbnRlclJlc3BvbnNlTW9kZWwoKTsKICAgICAgICAg
|
|
||||||
ICAgTG9nZ2VyLmQoIkZNICByZXF1ZXN0QW5zd2VyOiAiK0J5dGVVdGlsLmJ5dGVzVG9IZXhXaXRo
|
private FactoryModeProcessManager(Context context) {
|
||||||
U3BhY2UocmVxdWVzdEFuc3dlcikpOwogICAgICAgICAgICBpZiAocmVxdWVzdEFuc3dlciA9PSAo
|
mContext = context;
|
||||||
Ynl0ZSkgRk1fUkVRVUVTVF9SRUpFQ1QpIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1
|
}
|
||||||
Y2Nlc3MoZmFsc2UpOwogICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0TWVzc2FnZSgiRmFjdG9y
|
|
||||||
eSBNb2RlIFJlamVjdGVkIik7CiAgICAgICAgICAgIH1lbHNlIGlmIChyZXF1ZXN0QW5zd2VyID09
|
public static FactoryModeProcessManager getInstance(Context context) {
|
||||||
IEZNX1JFUVVFU1RfQUxMT1cpIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3Mo
|
if (mProtocolManager == null) {
|
||||||
dHJ1ZSk7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29kZShGTV9SRVFVRVNU
|
mProtocolManager = new FactoryModeProcessManager(context);
|
||||||
X0FMTE9XKTsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1lc3NhZ2UoIkZhY3RvcnkgTW9k
|
}
|
||||||
ZSBBbGxvd2VkIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXNwb25z
|
return mProtocolManager;
|
||||||
ZS5zZXRTdWNjZXNzKHRydWUpOwogICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0U3VjY2Vzc0Nv
|
}
|
||||||
ZGUoRk1fUkVRVUVTVF9BTExPVyk7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRNZXNzYWdl
|
/**
|
||||||
KCJGYWN0b3J5IE1vZGUgQWxsb3dlZCIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAg
|
* parse factory mode request byte response
|
||||||
IHJldHVybiByZXNwb25zZTsKICAgIH0KCiAgICAvKioKICAgICAqIHBhcnNlIGZhY3RvcnkgbW9k
|
*
|
||||||
ZSBidXJuLWluIGJ5dGUgcmVzcG9uc2UKICAgICAqCiAgICAgKiBAcGFyYW0gcGF5bG9hZCAtIFBy
|
* @param payload - Printer payload
|
||||||
aW50ZXIgcGF5bG9hZAogICAgICogQHJldHVybiAtIFByaW50ZXJSZXNwb25zZSBNb2RlbChJc1N1
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
Y2Nlc3MsIE1lc3NhZ2UsIEVycm9yQ29kZSkKICAgICAqLwogICAgcHVibGljIFByaW50ZXJSZXNw
|
*/
|
||||||
b25zZU1vZGVsIHBhcnNlQnVybkluQWNrUHJvY2VzcyhieXRlW10gcGF5bG9hZCkgewogICAgICAg
|
public PrinterResponseModel parseFMRequestACKProcess(byte[] payload) {
|
||||||
IC8vMHgxQgkweDJBCTB4NDMJMHg0MQkweDAxCTB4MDEJMHhGMAkweDAxCiAgICAgICAgYnl0ZSBv
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0xF0 0x00 Allow: 0x01 Reject:0xFF
|
||||||
bmVDaGFyICAgPSAweDFCOwogICAgICAgIGJ5dGUgdHdvQ2hhciAgID0gMHgyQTsKICAgICAgICBi
|
PrinterResponseModel response = null;
|
||||||
eXRlIHRocmVlQ2hhciA9IDB4NDM7CiAgICAgICAgYnl0ZSBmb3VyQ2hhciAgPSAweDQxOwogICAg
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
ICAgIGJ5dGUgZml2ZUNoYXIgID0gMHgwMTsKICAgICAgICBieXRlIHNpeENoYXIgICA9IDB4MDE7
|
final byte requestAnswer = payload[8];
|
||||||
CiAgICAgICAgYnl0ZSBzZXZlbkNoYXIgPSAoYnl0ZSkweEYwOwogICAgICAgIGJ5dGUgZWlnaHRD
|
response = new PrinterResponseModel();
|
||||||
aGFyID0gMHgwMTsKICAgICAgICBQcmludGVyUmVzcG9uc2VNb2RlbCByZXNwb25zZSA9IG51bGw7
|
Logger.d("FM requestAnswer: "+ByteUtil.bytesToHexWithSpace(requestAnswer));
|
||||||
CiAgICAgICAgaWYgKHBheWxvYWQgIT0gbnVsbCAmJiBwYXlsb2FkLmxlbmd0aCA9PSBUT1RBTF9C
|
if (requestAnswer == (byte) FM_REQUEST_REJECT) {
|
||||||
WVRFUykgewogICAgICAgICAgICByZXNwb25zZSA9IG5ldyBQcmludGVyUmVzcG9uc2VNb2RlbCgp
|
response.setSuccess(false);
|
||||||
OwogICAgICAgICAgICBpZiAob25lQ2hhciA9PSBwYXlsb2FkWzBdCiAgICAgICAgICAgICAgICAg
|
response.setMessage("Factory Mode Rejected");
|
||||||
ICAgJiYgdHdvQ2hhciA9PSBwYXlsb2FkWzFdCiAgICAgICAgICAgICAgICAgICAgJiYgdGhyZWVD
|
}else if (requestAnswer == FM_REQUEST_ALLOW) {
|
||||||
aGFyID09IHBheWxvYWRbMl0KICAgICAgICAgICAgICAgICAgICAmJiBmb3VyQ2hhciA9PSBwYXls
|
response.setSuccess(true);
|
||||||
b2FkWzNdCiAgICAgICAgICAgICAgICAgICAgJiYgZml2ZUNoYXIgPT0gcGF5bG9hZFs0XQogICAg
|
response.setSuccessCode(FM_REQUEST_ALLOW);
|
||||||
ICAgICAgICAgICAgICAgICYmIHNpeENoYXIgPT0gcGF5bG9hZFs1XQogICAgICAgICAgICAgICAg
|
response.setMessage("Factory Mode Allowed");
|
||||||
ICAgICYmIHNldmVuQ2hhciA9PSBwYXlsb2FkWzZdCiAgICAgICAgICAgICAgICAgICAgJiYgZWln
|
} else {
|
||||||
aHRDaGFyID09IHBheWxvYWRbN10pIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nl
|
response.setSuccess(true);
|
||||||
c3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29kZShGTV9SRVFV
|
response.setSuccessCode(FM_REQUEST_ALLOW);
|
||||||
RVNUX0FMTE9XKTsKICAgICAgICAgICAgICAgIExvZ2dlci5kKCAiQnVybkluQSBTdWNjZXNzIik7
|
response.setMessage("Factory Mode Allowed");
|
||||||
CiAgICAgICAgICAgIH0gZWxzZSAgewogICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0U3VjY2Vz
|
}
|
||||||
cyhmYWxzZSk7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRFcnJvckNvZGUoRk1fUkVRVUVT
|
}
|
||||||
VF9SRUpFQ1QpOwogICAgICAgICAgICAgICAgTG9nZ2VyLmQoICJCdXJuSW5BIFJlamVjdCIpOwog
|
return response;
|
||||||
ICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXNwb25zZTsKICAgIH0KICAgIC8q
|
}
|
||||||
KgogICAgICogcGFyc2UgZmFjdG9yeSBtb2RlIGNhbWVyYSBieXRlIHJlc3BvbnNlCiAgICAgKgog
|
|
||||||
ICAgICogQHBhcmFtIHBheWxvYWQgLSBQcmludGVyIHBheWxvYWQKICAgICAqIEByZXR1cm4gLSBQ
|
/**
|
||||||
cmludGVyUmVzcG9uc2UgTW9kZWwoSXNTdWNjZXNzLCBNZXNzYWdlLCBFcnJvckNvZGUpCiAgICAg
|
* parse factory mode burn-in byte response
|
||||||
Ki8KICAgIHB1YmxpYyBQcmludGVyUmVzcG9uc2VNb2RlbCBwYXJzZUNhbWVyYUFja1Byb2Nlc3Mo
|
*
|
||||||
Ynl0ZVtdIHBheWxvYWQpIHsKICAgICAgICAvLzB4MUIJMHgyQQkweDQzCTB4NDEJMHgwMQkweDAx
|
* @param payload - Printer payload
|
||||||
CTB4RjAJMHgwMgogICAgICAgIGJ5dGUgb25lQ2hhciAgID0gMHgxQjsKICAgICAgICBieXRlIHR3
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
b0NoYXIgICA9IDB4MkE7CiAgICAgICAgYnl0ZSB0aHJlZUNoYXIgPSAweDQzOwogICAgICAgIGJ5
|
*/
|
||||||
dGUgZm91ckNoYXIgID0gMHg0MTsKICAgICAgICBieXRlIGZpdmVDaGFyICA9IDB4MDE7CiAgICAg
|
public PrinterResponseModel parseBurnInAckProcess(byte[] payload) {
|
||||||
ICAgYnl0ZSBzaXhDaGFyICAgPSAweDAxOwogICAgICAgIGJ5dGUgc2V2ZW5DaGFyID0gKGJ5dGUp
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0xF0 0x01
|
||||||
MHhGMDsKICAgICAgICBieXRlIGVpZ2h0Q2hhciA9IDB4MDI7CiAgICAgICAgUHJpbnRlclJlc3Bv
|
byte oneChar = 0x1B;
|
||||||
bnNlTW9kZWwgcmVzcG9uc2UgPSBudWxsOwogICAgICAgIGlmIChwYXlsb2FkICE9IG51bGwgJiYg
|
byte twoChar = 0x2A;
|
||||||
cGF5bG9hZC5sZW5ndGggPT0gVE9UQUxfQllURVMpIHsKICAgICAgICAgICAgcmVzcG9uc2UgPSBu
|
byte threeChar = 0x43;
|
||||||
ZXcgUHJpbnRlclJlc3BvbnNlTW9kZWwoKTsKICAgICAgICAgICAgaWYgKG9uZUNoYXIgPT0gcGF5
|
byte fourChar = 0x41;
|
||||||
bG9hZFswXQogICAgICAgICAgICAgICAgICAgICYmIHR3b0NoYXIgPT0gcGF5bG9hZFsxXQogICAg
|
byte fiveChar = 0x01;
|
||||||
ICAgICAgICAgICAgICAgICYmIHRocmVlQ2hhciA9PSBwYXlsb2FkWzJdCiAgICAgICAgICAgICAg
|
byte sixChar = 0x01;
|
||||||
ICAgICAgJiYgZm91ckNoYXIgPT0gcGF5bG9hZFszXQogICAgICAgICAgICAgICAgICAgICYmIGZp
|
byte sevenChar = (byte)0xF0;
|
||||||
dmVDaGFyID09IHBheWxvYWRbNF0KICAgICAgICAgICAgICAgICAgICAmJiBzaXhDaGFyID09IHBh
|
byte eightChar = 0x01;
|
||||||
eWxvYWRbNV0KICAgICAgICAgICAgICAgICAgICAmJiBzZXZlbkNoYXIgPT0gcGF5bG9hZFs2XQog
|
PrinterResponseModel response = null;
|
||||||
ICAgICAgICAgICAgICAgICAgICYmIGVpZ2h0Q2hhciA9PSBwYXlsb2FkWzddKSB7CiAgICAgICAg
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
ICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzKHRydWUpOwogICAgICAgICAgICAgICAgcmVzcG9u
|
response = new PrinterResponseModel();
|
||||||
c2Uuc2V0U3VjY2Vzc0NvZGUoRk1fUkVRVUVTVF9BTExPVyk7CiAgICAgICAgICAgICAgICBMb2dn
|
if (oneChar == payload[0]
|
||||||
ZXIuZCggIkZNIENhbWVyYSBTdWNjZXNzIik7CiAgICAgICAgICAgIH0gZWxzZSAgewogICAgICAg
|
&& twoChar == payload[1]
|
||||||
ICAgICAgICAgcmVzcG9uc2Uuc2V0U3VjY2VzcyhmYWxzZSk7CiAgICAgICAgICAgICAgICByZXNw
|
&& threeChar == payload[2]
|
||||||
b25zZS5zZXRFcnJvckNvZGUoRk1fUkVRVUVTVF9SRUpFQ1QpOwogICAgICAgICAgICAgICAgTG9n
|
&& fourChar == payload[3]
|
||||||
Z2VyLmQoICJGTSBDYW1lcmEgUmVqZWN0Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAg
|
&& fiveChar == payload[4]
|
||||||
ICAgcmV0dXJuIHJlc3BvbnNlOwogICAgfQogICAgLyoqCiAgICAgKiBwYXJzZSBmYWN0b3J5IG1v
|
&& sixChar == payload[5]
|
||||||
ZGUgRlFDIGJ5dGUgcmVzcG9uc2UKICAgICAqCiAgICAgKiBAcGFyYW0gcGF5bG9hZCAtIFByaW50
|
&& sevenChar == payload[6]
|
||||||
ZXIgcGF5bG9hZAogICAgICogQHJldHVybiAtIFByaW50ZXJSZXNwb25zZSBNb2RlbChJc1N1Y2Nl
|
&& eightChar == payload[7]) {
|
||||||
c3MsIE1lc3NhZ2UsIEVycm9yQ29kZSkKICAgICAqLwogICAgcHVibGljIFByaW50ZXJSZXNwb25z
|
response.setSuccess(true);
|
||||||
ZU1vZGVsIHBhcnNlRlFDQWNrUHJvY2VzcyhieXRlW10gcGF5bG9hZCkgewogICAgICAgIC8vMHgx
|
response.setSuccessCode(FM_REQUEST_ALLOW);
|
||||||
QgkweDJBCTB4NDMJMHg0MQkweDAxCTB4MDEJMHhGMAkweDAzCiAgICAgICAgYnl0ZSBvbmVDaGFy
|
Logger.d( "BurnInA Success");
|
||||||
ICAgPSAweDFCOwogICAgICAgIGJ5dGUgdHdvQ2hhciAgID0gMHgyQTsKICAgICAgICBieXRlIHRo
|
} else {
|
||||||
cmVlQ2hhciA9IDB4NDM7CiAgICAgICAgYnl0ZSBmb3VyQ2hhciAgPSAweDQxOwogICAgICAgIGJ5
|
response.setSuccess(false);
|
||||||
dGUgZml2ZUNoYXIgID0gMHgwMTsKICAgICAgICBieXRlIHNpeENoYXIgICA9IDB4MDE7CiAgICAg
|
response.setErrorCode(FM_REQUEST_REJECT);
|
||||||
ICAgYnl0ZSBzZXZlbkNoYXIgPSAoYnl0ZSkweEYwOwogICAgICAgIGJ5dGUgZWlnaHRDaGFyID0g
|
Logger.d( "BurnInA Reject");
|
||||||
MHgwMzsKICAgICAgICBQcmludGVyUmVzcG9uc2VNb2RlbCByZXNwb25zZSA9IG51bGw7CiAgICAg
|
}
|
||||||
ICAgaWYgKHBheWxvYWQgIT0gbnVsbCAmJiBwYXlsb2FkLmxlbmd0aCA9PSBUT1RBTF9CWVRFU
|
}
|
||||||
ikgewogICAgICAgICAgICByZXNwb25zZSA9IG5ldyBQcmludGVyUmVzcG9uc2VNb2RlbCgpOwog
|
return response;
|
||||||
ICAgICAgICAgICBpZiAob25lQ2hhciA9PSBwYXlsb2FkWzBdCiAgICAgICAgICAgICAgICAgICAg
|
}
|
||||||
JiYgdHdvQ2hhciA9PSBwYXlsb2FkWzFdCiAgICAgICAgICAgICAgICAgICAgJiYgdGhyZWVDaGFy
|
/**
|
||||||
ID09IHBheWxvYWRbMl0KICAgICAgICAgICAgICAgICAgICAmJiBmb3VyQ2hhciA9PSBwYXlsb2Fk
|
* parse factory mode camera byte response
|
||||||
WzNdCiAgICAgICAgICAgICAgICAgICAgJiYgZml2ZUNoYXIgPT0gcGF5bG9hZFs0XQogICAgICAg
|
*
|
||||||
ICAgICAgICAgICAgICYmIHNpeENoYXIgPT0gcGF5bG9hZFs1XQogICAgICAgICAgICAgICAgICAg
|
* @param payload - Printer payload
|
||||||
ICYmIHNldmVuQ2hhciA9PSBwYXlsb2FkWzZdCiAgICAgICAgICAgICAgICAgICAgJiYgZWlnaHRD
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
aGFyID09IHBheWxvYWRbN10pIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3Mo
|
*/
|
||||||
dHJ1ZSk7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29kZShGTV9SRVFVRVNU
|
public PrinterResponseModel parseCameraAckProcess(byte[] payload) {
|
||||||
X0FMTE9XKTsKICAgICAgICAgICAgICAgIExvZ2dlci5kKCAiRk0gRlFDIFN1Y2Nlc3MiKTsKICAg
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0xF0 0x02
|
||||||
ICAgICAgICAgfSBlbHNlICB7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzKGZh
|
byte oneChar = 0x1B;
|
||||||
bHNlKTsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldEVycm9yQ29kZShGTV9SRVFVRVNUX1JF
|
byte twoChar = 0x2A;
|
||||||
SkVDVCk7CiAgICAgICAgICAgICAgICBMb2dnZXIuZCggIkZNIEZRQyBSZWplY3QiKTsKICAgICAg
|
byte threeChar = 0x43;
|
||||||
ICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzcG9uc2U7CiAgICB9CiAgICAvKioK
|
byte fourChar = 0x41;
|
||||||
ICAgICAqIHBhcnNlIGZhY3RvcnkgbW9kZSBzaGlwcGluZyBieXRlIHJlc3BvbnNlCiAgICAgKgog
|
byte fiveChar = 0x01;
|
||||||
ICAgICogQHBhcmFtIHBheWxvYWQgLSBQcmludGVyIHBheWxvYWQKICAgICAqIEByZXR1cm4gLSBQ
|
byte sixChar = 0x01;
|
||||||
cmludGVyUmVzcG9uc2UgTW9kZWwoSXNTdWNjZXNzLCBNZXNzYWdlLCBFcnJvckNvZGUpCiAgICAg
|
byte sevenChar = (byte)0xF0;
|
||||||
Ki8KICAgIHB1YmxpYyBQcmludGVyUmVzcG9uc2VNb2RlbCBwYXJzZVNoaXBwaW5nQWNrUHJvY2Vz
|
byte eightChar = 0x02;
|
||||||
cyhieXRlW10gcGF5bG9hZCkgewogICAgICAgIC8vMHgxQgkweDJBCTB4NDMJMHg0MQkweDAxCTB4
|
PrinterResponseModel response = null;
|
||||||
MDEJMHhGMAkweDA0CiAgICAgICAgYnl0ZSBvbmVDaGFyICAgPSAweDFCOwogICAgICAgIGJ5dGUg
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
dHdvQ2hhciAgID0gMHgyQTsKICAgICAgICBieXRlIHRocmVlQ2hhciA9IDB4NDM7CiAgICAgICAg
|
response = new PrinterResponseModel();
|
||||||
Ynl0ZSBmb3VyQ2hhciAgPSAweDQxOwogICAgICAgIGJ5dGUgZml2ZUNoYXIgID0gMHgwMTsKICAg
|
if (oneChar == payload[0]
|
||||||
ICAgICBieXRlIHNpeENoYXIgICA9IDB4MDE7CiAgICAgICAgYnl0ZSBzZXZlbkNoYXIgPSAoYnl0
|
&& twoChar == payload[1]
|
||||||
ZSkweEYwOwogICAgICAgIGJ5dGUgZWlnaHRDaGFyID0gMHgwNDsKICAgICAgICBQcmludGVyUmVz
|
&& threeChar == payload[2]
|
||||||
cG9uc2VNb2RlbCByZXNwb25zZSA9IG51bGw7CiAgICAgICAgaWYgKHBheWxvYWQgIT0gbnVsbCAm
|
&& fourChar == payload[3]
|
||||||
JiBwYXlsb2FkLmxlbmd0aCA9PSBUT1RBTF9CWVRFUykgewogICAgICAgICAgICByZXNwb25zZSA9
|
&& fiveChar == payload[4]
|
||||||
IG5ldyBQcmludGVyUmVzcG9uc2VNb2RlbCgpOwogICAgICAgICAgICBpZiAob25lQ2hhciA9PSBw
|
&& sixChar == payload[5]
|
||||||
YXlsb2FkWzBdCiAgICAgICAgICAgICAgICAgICAgJiYgdHdvQ2hhciA9PSBwYXlsb2FkWzFdCiAg
|
&& sevenChar == payload[6]
|
||||||
ICAgICAgICAgICAgICAgICAgJiYgdGhyZWVDaGFyID09IHBheWxvYWRbMl0KICAgICAgICAgICAg
|
&& eightChar == payload[7]) {
|
||||||
ICAgICAgICAmJiBmb3VyQ2hhciA9PSBwYXlsb2FkWzNdCiAgICAgICAgICAgICAgICAgICAgJiYg
|
response.setSuccess(true);
|
||||||
Zml2ZUNoYXIgPT0gcGF5bG9hZFs0XQogICAgICAgICAgICAgICAgICAgICYmIHNpeENoYXIgPT0g
|
response.setSuccessCode(FM_REQUEST_ALLOW);
|
||||||
cGF5bG9hZFs1XQogICAgICAgICAgICAgICAgICAgICYmIHNldmVuQ2hhciA9PSBwYXlsb2FkWzZd
|
Logger.d( "FM Camera Success");
|
||||||
CiAgICAgICAgICAgICAgICAgICAgJiYgZWlnaHRDaGFyID09IHBheWxvYWRbN10pIHsKICAgICAg
|
} else {
|
||||||
ICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXNw
|
response.setSuccess(false);
|
||||||
b25zZS5zZXRTdWNjZXNzQ29kZShGTV9SRVFVRVNUX0FMTE9XKTsKICAgICAgICAgICAgICAgIExv
|
response.setErrorCode(FM_REQUEST_REJECT);
|
||||||
Z2dlci5kKCAiRk0gU2hpcHBpbmcgU3VjY2VzcyIpOwogICAgICAgICAgICB9IGVsc2UgIHsKICAg
|
Logger.d( "FM Camera Reject");
|
||||||
ICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3MoZmFsc2UpOwogICAgICAgICAgICAgICAg
|
}
|
||||||
cmVzcG9uc2Uuc2V0RXJyb3JDb2RlKEZNX1JFUVVFU1RfUkVKRUNUKTsKICAgICAgICAgICAgICAg
|
}
|
||||||
IExvZ2dlci5kKCAiRk0gU2hpcHBpbmcgUmVqZWN0Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9
|
return response;
|
||||||
CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgfQoKICAgIC8qKgogICAgICogcGFyc2UgZmFj
|
}
|
||||||
dG9yeSBtb2RlIHZlcnNpb24gYXNrIGJ5dGUgcmVzcG9uc2UKICAgICAqCiAgICAgKiBAcGFyYW0g
|
/**
|
||||||
cGF5bG9hZCAtIFByaW50ZXIgcGF5bG9hZAogICAgICogQHJldHVybiAtIFByaW50ZXJSZXNwb25z
|
* parse factory mode FQC byte response
|
||||||
ZSBNb2RlbChJc1N1Y2Nlc3MsIE1lc3NhZ2UsIEVycm9yQ29kZSkKICAgICAqLwogICAgcHVibGlj
|
*
|
||||||
IFByaW50ZXJSZXNwb25zZU1vZGVsIHBhcnNlVmVyc2lvbkFza0Fja1Byb2Nlc3MoYnl0ZVtdIHBh
|
* @param payload - Printer payload
|
||||||
eWxvYWQpIHsKCiAgICAgICAgLy8weDFCCTB4MkEJMHg0MwkweDQxCTB4MDEJMHgwMQkweDAzCTB4
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
RkYKICAgICAgICAvLyAweDAwIC0gRHNwRndWZXJfSAogICAgICAgIC8vIDB4MDAgLSBEc3BGd1Zlcl9N
|
*/
|
||||||
CiAgICAgICAgLy8gMHgwMCAtIERzcEZ3VmVyX0wKICAgICAgICAvLyAweDAwIC0gSFdJRAogICAg
|
public PrinterResponseModel parseFQCAckProcess(byte[] payload) {
|
||||||
ICAgIC8vIDB4MDAgLSBUTUQKICAgICAgICBQcmludGVyUmVzcG9uc2VNb2RlbCByZXNwb25zZSA9
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0xF0 0x03
|
||||||
IG51bGw7CiAgICAgICAgaWYgKHBheWxvYWQgIT0gbnVsbCAmJiBwYXlsb2FkLmxlbmd0aCA9PSBU
|
byte oneChar = 0x1B;
|
||||||
T1RBTF9CWVRFUykgewoKICAgICAgICAgICAgYnl0ZSBkc3BIID0gcGF5bG9hZFs4XTsKICAgICAg
|
byte twoChar = 0x2A;
|
||||||
ICAgICAgYnl0ZSBkc3BNID0gcGF5bG9hZFs5XTsKICAgICAgICAgICAgYnl0ZSBkc3BMID0gcGF5
|
byte threeChar = 0x43;
|
||||||
bG9hZFsxMF07CiAgICAgICAgICAgIGJ5dGUgSFdJRCA9IHBheWxvYWRbMTFdOwogICAgICAgICAg
|
byte fourChar = 0x41;
|
||||||
ICBieXRlIFRNRCA9IHBheWxvYWRbMTJdOwogICAgICAgICAgICBieXRlIGlzUGFwZXJUcmF5RW1w
|
byte fiveChar = 0x01;
|
||||||
dHkgPSBwYXlsb2FkWzE0XTsKCiAgICAgICAgICAgIExvZ2dlci5kKCJGTSBkc3BIOiAiICsgQnl0
|
byte sixChar = 0x01;
|
||||||
ZVV0aWwuYnl0ZXNUb0hleFdpdGhTcGFjZShkc3BIKSk7CiAgICAgICAgICAgIExvZ2dlci5kKCJG
|
byte sevenChar = (byte)0xF0;
|
||||||
TSBkc3BNOiAiICsgQnl0ZVV0aWwuYnl0ZXNUb0hleFdpdGhTcGFjZShkc3BNKSk7CiAgICAgICAg
|
byte eightChar = 0x03;
|
||||||
ICAgIExvZ2dlci5kKCJGTSBkc3BMOiAiICsgQnl0ZVV0aWwuYnl0ZXNUb0hleFdpdGhTcGFjZShk
|
PrinterResponseModel response = null;
|
||||||
c3BMKSk7CiAgICAgICAgICAgIExvZ2dlci5kKCJGTSBIV0lEOiAiICsgQnl0ZVV0aWwuYnl0ZXNU
|
if (payload != null && payload.length == TOTAL_BYTER) {
|
||||||
b0hleFdpdGhTcGFjZShIV0lEKSk7CiAgICAgICAgICAgIExvZ2dlci5kKCJGTSBUTUQ6ICIgKyBC
|
response = new PrinterResponseModel();
|
||||||
eXRlVXRpbC5ieXRlc1RvSGV4V2l0aFNwYWNlKFRNRCkpOwogICAgICAgICAgICBMb2dnZXIuZCgi
|
if (oneChar == payload[0]
|
||||||
aXNQYXBlclRyYXlFbXB0eTogIiArIEJ5dGVVdGlsLmJ5dGVzVG9IZXhXaXRoU3BhY2UoaXNQYXBl
|
&& twoChar == payload[1]
|
||||||
clRyYXlFbXB0eSkpOwogICAgICAgICAgICByZXNwb25zZSA9IG5ldyBQcmludGVyUmVzcG9uc2VN
|
&& threeChar == payload[2]
|
||||||
b2RlbCgpOwogICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzKHRydWUpOwogICAgICAgICAg
|
&& fourChar == payload[3]
|
||||||
ICByZXNwb25zZS5zZXRNZXNzYWdlKCJGTSAgVmVyc2lvbiBQcm9jZXNzIik7CiAgICAgICAgICAg
|
&& fiveChar == payload[4]
|
||||||
IHJlc3BvbnNlLnNldFN1Y2Nlc3NDb2RlKEZNX1JFUVVFU1RfQUxMT1cpOwogICAgICAgICAgICBy
|
&& sixChar == payload[5]
|
||||||
ZXNwb25zZS5zZXREc3BIKGRzcEgpOwogICAgICAgICAgICByZXNwb25zZS5zZXREc3BNKGR
|
&& sevenChar == payload[6]
|
||||||
zcE0pOwogICAgICAgICAgICByZXNwb25zZS5zZXREc3BMKGR
|
&& eightChar == payload[7]) {
|
||||||
zcEwpOwogICAgICAgICAgICByZXNwb25zZS5zZXRIV0lEKEhXSUQpOwogICAgICAgICAgICByZXNw
|
response.setSuccess(true);
|
||||||
b25zZS5zZXRUTUQoVE1EKTsKICAgICAgICAgICAgcmVzcG9uc2Uuc2V0UGFwZXJUcmF5RW1wdHko
|
response.setSuccessCode(FM_REQUEST_ALLOW);
|
||||||
aXNQYXBlclRyYXlFbXB0eSA9PSBQQVBFUl9UUkFZX0VNUFRZKTsKCiAgICAgICAgfQogICAgICAg
|
Logger.d( "FM FQC Success");
|
||||||
IHJldHVybiByZXNwb25zZTsKICAgIH0KCiAgICAvKioKICAgICAqIHBhcnNlIGZhY3RvcnkgbW9k
|
} else {
|
||||||
ZSByZXNldCBieXRlIHJlc3BvbnNlCiAgICAgKgogICAgICogQHBhcmFtIHBheWxvYWQgLSBQcmlu
|
response.setSuccess(false);
|
||||||
dGVyIHBheWxvYWQKICAgICAqIEByZXR1cm4gLSBQcmludGVyUmVzcG9uc2UgTW9kZWwoSXNTdWNj
|
response.setErrorCode(FM_REQUEST_REJECT);
|
||||||
ZXNzLCBNZXNzYWdlLCBFcnJvckNvZGUpCiAgICAgKi8KICAgIHB1YmxpYyBQcmludGVyUmVzcG9u
|
Logger.d( "FM FQC Reject");
|
||||||
c2VNb2RlbCBwYXJzZVJlc2V0QWNrUHJvY2VzcyhieXRlW10gcGF5bG9hZCkgewogICAgICAgIC8v
|
}
|
||||||
MHgxQgkweDJBCTB4NDMJMHg0MQkweDAxCTB4MDEJMHhGMAkweEZGCiAgICAgICAgYnl0ZSBvbmVD
|
}
|
||||||
aGFyICAgPSAweDFCOwogICAgICAgIGJ5dGUgdHdvQ2hhciAgID0gMHgyQTsKICAgICAgICBieXRl
|
return response;
|
||||||
IHRocmVlQ2hhciA9IDB4NDM7CiAgICAgICAgYnl0ZSBmb3VyQ2hhciAgPSAweDQxOwogICAgICAg
|
}
|
||||||
IGJ5dGUgZml2ZUNoYXIgID0gMHgwMTsKICAgICAgICBieXRlIHNpeENoYXIgICA9IDB4MDE7CiAg
|
/**
|
||||||
ICAgICAgYnl0ZSBzZXZlbkNoYXIgPSAoYnl0ZSkweEYwOwogICAgICAgIGJ5dGUgZWlnaHRDaGFy
|
* parse factory mode shipping byte response
|
||||||
ID0gKGJ5dGUpMHhGRjsKICAgICAgICBQcmludGVyUmVzcG9uc2VNb2RlbCByZXNwb25zZSA9IG51
|
*
|
||||||
bGw7CiAgICAgICAgaWYgKHBheWxvYWQgIT0gbnVsbCAmJiBwYXlsb2FkLmxlbmd0aCA9PSBUT1RB
|
* @param payload - Printer payload
|
||||||
TF9CWVRFUykgewogICAgICAgICAgICByZXNwb25zZSA9IG5ldyBQcmludGVyUmVzcG9uc2VNb2Rl
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
bCgpOwogICAgICAgICAgICBpZiAob25lQ2hhciA9PSBwYXlsb2FkWzBdCiAgICAgICAgICAgICAg
|
*/
|
||||||
ICAgICAgJiYgdHdvQ2hhciA9PSBwYXlsb2FkWzFdCiAgICAgICAgICAgICAgICAgICAgJiYgdGhy
|
public PrinterResponseModel parseShippingAckProcess(byte[] payload) {
|
||||||
ZWVDaGFyID09IHBheWxvYWRbMl0KICAgICAgICAgICAgICAgICAgICAmJiBmb3VyQ2hhciA9PSBw
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0xF0 0x04
|
||||||
YXlsb2FkWzNdCiAgICAgICAgICAgICAgICAgICAgJiYgZml2ZUNoYXIgPT0gcGF5bG9hZFs0XQog
|
byte oneChar = 0x1B;
|
||||||
ICAgICAgICAgICAgICAgICAgICYmIHNpeENoYXIgPT0gcGF5bG9hZFs1XQogICAgICAgICAgICAg
|
byte twoChar = 0x2A;
|
||||||
ICAgICAgICYmIHNldmVuQ2hhciA9PSBwYXlsb2FkWzZdCiAgICAgICAgICAgICAgICAgICAgJiYg
|
byte threeChar = 0x43;
|
||||||
ZWlnaHRDaGFyID09IHBheWxvYWRbN10pIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1
|
byte fourChar = 0x41;
|
||||||
Y2Nlc3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29kZShGTV9S
|
byte fiveChar = 0x01;
|
||||||
RVFVRVNUX0FMTE9XKTsKICAgICAgICAgICAgICAgIExvZ2dlci5kKCAiRk0gUmVzZXQgU3VjY2Vz
|
byte sixChar = 0x01;
|
||||||
cyIpOwogICAgICAgICAgICB9IGVsc2UgIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1
|
byte sevenChar = (byte)0xF0;
|
||||||
Y2Nlc3MoZmFsc2UpOwogICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0RXJyb3JDb2RlKEZNX1JF
|
byte eightChar = 0x04;
|
||||||
UVVFU1RfUkVKRUNUKTsKICAgICAgICAgICAgICAgIExvZ2dlci5kKCAiRk0gUmVzZXQgUmVqZWN0
|
PrinterResponseModel response = null;
|
||||||
Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAg
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
fQp9Cg==
|
response = new PrinterResponseModel();
|
||||||
|
if (oneChar == payload[0]
|
||||||
|
&& twoChar == payload[1]
|
||||||
|
&& threeChar == payload[2]
|
||||||
|
&& fourChar == payload[3]
|
||||||
|
&& fiveChar == payload[4]
|
||||||
|
&& sixChar == payload[5]
|
||||||
|
&& sevenChar == payload[6]
|
||||||
|
&& eightChar == payload[7]) {
|
||||||
|
response.setSuccess(true);
|
||||||
|
response.setSuccessCode(FM_REQUEST_ALLOW);
|
||||||
|
Logger.d( "FM Shipping Success");
|
||||||
|
} else {
|
||||||
|
response.setSuccess(false);
|
||||||
|
response.setErrorCode(FM_REQUEST_REJECT);
|
||||||
|
Logger.d( "FM Shipping Reject");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* parse factory mode version ask byte response
|
||||||
|
*
|
||||||
|
* @param payload - Printer payload
|
||||||
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
|
*/
|
||||||
|
public PrinterResponseModel parseVersionAskAckProcess(byte[] payload) {
|
||||||
|
|
||||||
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0x03 0xFF
|
||||||
|
// 0x00 - DspFwVer_H
|
||||||
|
// 0x00 - DspFwVer_M
|
||||||
|
// 0x00 - DspFwVer_L
|
||||||
|
// 0x00 - HWID
|
||||||
|
// 0x00 - TMD
|
||||||
|
PrinterResponseModel response = null;
|
||||||
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
|
|
||||||
|
byte dspH = payload[8];
|
||||||
|
byte dspM = payload[9];
|
||||||
|
byte dspL = payload[10];
|
||||||
|
byte HWID = payload[11];
|
||||||
|
byte TMD = payload[12];
|
||||||
|
byte isPaperTrayEmpty = payload[14];
|
||||||
|
|
||||||
|
Logger.d("FM dspH: " + ByteUtil.bytesToHexWithSpace(dspH));
|
||||||
|
Logger.d("FM dspM: " + ByteUtil.bytesToHexWithSpace(dspM));
|
||||||
|
Logger.d("FM dspL: " + ByteUtil.bytesToHexWithSpace(dspL));
|
||||||
|
Logger.d("FM HWID: " + ByteUtil.bytesToHexWithSpace(HWID));
|
||||||
|
Logger.d("FM TMD: " + ByteUtil.bytesToHexWithSpace(TMD));
|
||||||
|
Logger.d("isPaperTrayEmpty: " + ByteUtil.bytesToHexWithSpace(isPaperTrayEmpty));
|
||||||
|
response = new PrinterResponseModel();
|
||||||
|
response.setSuccess(true);
|
||||||
|
response.setMessage("FM Version Process");
|
||||||
|
response.setSuccessCode(FM_REQUEST_ALLOW);
|
||||||
|
response.setDspH(dspH);
|
||||||
|
response.setDspM(dspM);
|
||||||
|
response.setDspL(dspL);
|
||||||
|
response.setHWID(HWID);
|
||||||
|
response.setTMD(TMD);
|
||||||
|
response.setPaperTrayEmpty(isPaperTrayEmpty == PAPER_TRAY_EMPTY);
|
||||||
|
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* parse factory mode reset byte response
|
||||||
|
*
|
||||||
|
* @param payload - Printer payload
|
||||||
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
|
*/
|
||||||
|
public PrinterResponseModel parseResetAckProcess(byte[] payload) {
|
||||||
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0xF0 0xFF
|
||||||
|
byte oneChar = 0x1B;
|
||||||
|
byte twoChar = 0x2A;
|
||||||
|
byte threeChar = 0x43;
|
||||||
|
byte fourChar = 0x41;
|
||||||
|
byte fiveChar = 0x01;
|
||||||
|
byte sixChar = 0x01;
|
||||||
|
byte sevenChar = (byte)0xF0;
|
||||||
|
byte eightChar = (byte)0xFF;
|
||||||
|
PrinterResponseModel response = null;
|
||||||
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
|
response = new PrinterResponseModel();
|
||||||
|
if (oneChar == payload[0]
|
||||||
|
&& twoChar == payload[1]
|
||||||
|
&& threeChar == payload[2]
|
||||||
|
&& fourChar == payload[3]
|
||||||
|
&& fiveChar == payload[4]
|
||||||
|
&& sixChar == payload[5]
|
||||||
|
&& sevenChar == payload[6]
|
||||||
|
&& eightChar == payload[7]) {
|
||||||
|
response.setSuccess(true);
|
||||||
|
response.setSuccessCode(FM_REQUEST_ALLOW);
|
||||||
|
Logger.d( "FM Reset Success");
|
||||||
|
} else {
|
||||||
|
response.setSuccess(false);
|
||||||
|
response.setErrorCode(FM_REQUEST_REJECT);
|
||||||
|
Logger.d( "FM Reset Reject");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user