fix: decode base64-encoded file content
This commit is contained in:
@@ -1,129 +1,184 @@
|
|||||||
cGFja2FnZSBhbmRyb2lkLnNlcmlhbHBvcnQubWFuYWdlcjsKCmltcG9ydCBhbmRyb2lkLmNvbnRl
|
package android.serialport.manager;
|
||||||
bnQuQ29udGV4dDsKaW1wb3J0IGFuZHJvaWQuc2VyaWFscG9ydC5tb2RlbC5QcmludGVyUmVzcG9u
|
|
||||||
c2VNb2RlbDsKaW1wb3J0IGFuZHJvaWQuc2VyaWFscG9ydC51dGlscy5CeXRlVXRpbDsKaW1wb3J0
|
import android.content.Context;
|
||||||
IGFuZHJvaWQuc2VyaWFscG9ydC51dGlscy5Mb2dnZXI7CmltcG9ydCBhbmRyb2lkLnV0aWwuTG9n
|
import android.serialport.model.PrinterResponseModel;
|
||||||
OwppbXBvcnQgYW5kcm9pZC53aWRnZXQuVG9hc3Q7CgpwdWJsaWMgY2xhc3MgRldVcGRhdGVQcm9j
|
import android.serialport.utils.ByteUtil;
|
||||||
ZXNzTWFuYWdlciB7CiAgICBwcml2YXRlIENvbnRleHQgbUNvbnRleHQ7CiAgICBwcml2YXRlIHN0
|
import android.serialport.utils.Logger;
|
||||||
YXRpYyBGV1VwZGF0ZVByb2Nlc3NNYW5hZ2VyIG1Qcm90b2NvbE1hbmFnZXI7CiAgICBwcml2YXRl
|
import android.util.Log;
|
||||||
IHN0YXRpYyBmaW5hbCBpbnQgVE9UQUxfQllURVMgPSA2NDsKICAgIC8vUHJpbnQgUmVxdWVzdCBB
|
import android.widget.Toast;
|
||||||
bnN3ZXIKICAgIC8vRmlsZSBBdmFpbGFibGUKICAgIHByaXZhdGUgZmluYWwgaW50IFBSSU5UX1JF
|
|
||||||
UVVFU1RfQUxMT1cgPSAweDAxOwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgUFJJTlRfUkVRVUVTVF9S
|
public class FWUpdateProcessManager {
|
||||||
RUpFQ1QgPSAweEZGOwoKICAgIHByaXZhdGUgZmluYWwgaW50IE5PTkVfRVJST1IgPSAweDAwOwog
|
private Context mContext;
|
||||||
ICAgcHJpdmF0ZSBmaW5hbCBpbnQgU1lTVEVNX09WRVJfSEVBVCA9IDB4MDU7CiAgICBwcml2YXRl
|
private static FWUpdateProcessManager mProtocolManager;
|
||||||
IGZpbmFsIGludCBTWVNURU1fT1ZFUl9DT0xEID0gMHgwNjsKICAgIHByaXZhdGUgZmluYWwgaW50
|
private static final int TOTAL_BYTES = 64;
|
||||||
IERVUklOR19VUEdSQURJTkcgPSAweDBFOwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgRFVSSU5HX1BS
|
//Print Request Answer
|
||||||
SU5USU5HID0gMHgxMDsKCgogICAgLy9FbmQgb2YgcHJpbnRlcgogICAgcHJpdmF0ZSBmaW5hbCBp
|
//File Available
|
||||||
bnQgRU5EX09GX1BSSU5UX1NVQ0NFU1MgPSAweDU1OwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgRU5E
|
private final int PRINT_REQUEST_ALLOW = 0x01;
|
||||||
X09GX1BSSU5UX0VSUk9SID0gMHhBMDsKCiAgICAvL0ZXIFZhcmlhYmxlCiAgICAvL1VwZ3JhZGUg
|
private final int PRINT_REQUEST_REJECT = 0xFF;
|
||||||
RXJyb3IgTWVzc2FnZSAoZm9yIFVwZ3JhZGVFcnJNZXNzYWdlKQogICAgcHJpdmF0ZSBmaW5hbCBp
|
|
||||||
bnQgRklMRV9FUlJPUiA9IDB4MDE7CgogICAgcHJpdmF0ZSBGV1VwZGF0ZVByb2Nlc3NNYW5hZ2Vy
|
private final int NONE_ERROR = 0x00;
|
||||||
KENvbnRleHQgY29udGV4dCkgewogICAgICAgIG1Db250ZXh0ID0gY29udGV4dDsKICAgIH0KCiAg
|
private final int SYSTEM_OVER_HEAT = 0x05;
|
||||||
ICBwdWJsaWMgc3RhdGljIEZXVXBkYXRlUHJvY2Vzc01hbmFnZXIgZ2V0SW5zdGFuY2UoQ29udGV4
|
private final int SYSTEM_OVER_COLD = 0x06;
|
||||||
dCBjb250ZXh0KSB7CiAgICAgICAgaWYgKG1Qcm90b2NvbE1hbmFnZXIgPT0gbnVsbCkgewogICAg
|
private final int DURING_UPGRADING = 0x0E;
|
||||||
ICAgICAgICBtUHJvdG9jb2xNYW5hZ2VyID0gbmV3IEZXVXBkYXRlUHJvY2Vzc01hbmFnZXIoY29u
|
private final int DURING_PRINTING = 0x10;
|
||||||
dGV4dCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtUHJvdG9jb2xNYW5hZ2VyOwogICAgfQog
|
|
||||||
ICAgLyoqCiAgICAgKiBTdGFydCBGVyB1cGdyYWRlIHJlcXVlc3QgcmVzcG9uc2UgYXMgcGVyIHBy
|
|
||||||
aW50ZXIgYWNrbm93bGVkZ21lbnQKICAgICAqCiAgICAgKiBAcGFyYW0gcGF5bG9hZCAtIFByaW50
|
//End of printer
|
||||||
ZXIgcGF5bG9hZAogICAgICogQHJldHVybiAtIFByaW50ZXJSZXNwb25zZSBNb2RlbChJc1N1Y2Nl
|
private final int END_OF_PRINT_SUCCESS = 0x55;
|
||||||
c3MsIE1lc3NhZ2UsIEVycm9yQ29kZSkKICAgICAqLwogICAgcHVibGljIFByaW50ZXJSZXNwb25z
|
private final int END_OF_PRINT_ERROR = 0xA0;
|
||||||
ZU1vZGVsIGRvRldVcGdyYWRlUmVxdWVzdEFDS1Byb2Nlc3MoYnl0ZVtdIHBheWxvYWQpIHsKICAg
|
|
||||||
ICAgICAvLzB4MUIJMHgyQQkweDQzCTB4NDEJMHgwMQkweDAxCTB4MDMJMHgwMAlhbGxvdzogMHgw
|
//FW Variable
|
||||||
MSByZWplY3Q6IDB4RkYJUmVhc29uCiAgICAgICAgUHJpbnRlclJlc3BvbnNlTW9kZWwgcmVzcG9u
|
//Upgrade Error Message (for UpgradeErrMessage)
|
||||||
c2UgPSBudWxsOwogICAgICAgIGlmIChwYXlsb2FkICE9IG51bGwgJiYgcGF5bG9hZC5sZW5ndGgg
|
private final int FILE_ERROR = 0x01;
|
||||||
PT0gVE9UQUxfQllURVMpIHsKICAgICAgICAgICAgZmluYWwgYnl0ZSByZXF1ZXN0QW5zd2VyID0g
|
|
||||||
cGF5bG9hZFs4XTsKICAgICAgICAgICAgZmluYWwgYnl0ZSByZWFzb24gPSBwYXlsb2FkWzldOwog
|
private FWUpdateProcessManager(Context context) {
|
||||||
ICAgICAgICAgICByZXNwb25zZSA9IG5ldyBQcmludGVyUmVzcG9uc2VNb2RlbCgpOwogICAgICAg
|
mContext = context;
|
||||||
ICAgICBMb2dnZXIuZCgiRldVcGdyYWRlIHJlcXVlc3RBbnN3ZXI6ICIrQnl0ZVV0aWwuYnl0ZXNU
|
}
|
||||||
b0hleFdpdGhTcGFjZShyZXF1ZXN0QW5zd2VyKSk7CiAgICAgICAgICAgIExvZ2dlci5kKCJGV1Vw
|
|
||||||
Z3JhZGUgcmVhc29uOiAiK0J5dGVVdGlsLmJ5dGVzVG9IZXhXaXRoU3BhY2UocmVhc29uKSk7CiAg
|
public static FWUpdateProcessManager getInstance(Context context) {
|
||||||
ICAgICAgICAgIGlmIChyZXF1ZXN0QW5zd2VyID09IChieXRlKSBQUklOVF9SRVFVRVNUX1JFSkVD
|
if (mProtocolManager == null) {
|
||||||
VCkgewogICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0U3VjY2VzcyhmYWxzZSk7CiAgICAgICAg
|
mProtocolManager = new FWUpdateProcessManager(context);
|
||||||
ICAgICAgICBzd2l0Y2ggKHJlYXNvbikgewogICAgICAgICAgICAgICAgICAgIC8vMHgwNSBTeXN0
|
}
|
||||||
ZW0gT3ZlckhlYXQKICAgICAgICAgICAgICAgICAgICAvLzB4MDYgU3lzdGVtIE92ZXJDb2xkCiAg
|
return mProtocolManager;
|
||||||
ICAgICAgICAgICAgICAgICAgLy8weDBFIER1cmluZyBVcGdyYWRpbmcKICAgICAgICAgICAgICAg
|
}
|
||||||
ICAgICAvLzB4MTAgRHVyaW5nIFByaW50aW5nCiAgICAgICAgICAgICAgICAgICAgY2FzZSBTWVNU
|
/**
|
||||||
RU1fT1ZFUl9IRUFUOgogICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRFcnJvckNv
|
* Start FW upgrade request response as per printer acknowledgment
|
||||||
ZGUoU1lTVEVNX09WRVJfSEVBVCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNl
|
*
|
||||||
dE1lc3NhZ2UoIlN5c3RlbSBPdmVyIEhlYXQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJl
|
* @param payload - Printer payload
|
||||||
YWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSBTWVNURU1fT1ZFUl9DT0xEOgogICAgICAgICAg
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
ICAgICAgICAgICAgICByZXNwb25zZS5zZXRFcnJvckNvZGUoU1lTVEVNX09WRVJfQ09MRCk7CiAg
|
*/
|
||||||
ICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1lc3NhZ2UoIlN5c3RlbSBPdmVyIENv
|
public PrinterResponseModel doFWUpgradeRequestACKProcess(byte[] payload) {
|
||||||
bGQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0x03 0x00 allow: 0x01 reject: 0xFF Reason
|
||||||
Y2FzZSBEVVJJTkdfVVBHUkFESU5HOgogICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5z
|
PrinterResponseModel response = null;
|
||||||
ZXRFcnJvckNvZGUoRFVSSU5HX1VQR1JBRElORyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJl
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
c3BvbnNlLnNldE1lc3NhZ2UoIkR1cmluZyBVcGdyYWRpbmciKTsKICAgICAgICAgICAgICAgICAg
|
final byte requestAnswer = payload[8];
|
||||||
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSBEVVJJTkdfUFJJTlRJTkc6CiAg
|
final byte reason = payload[9];
|
||||||
ICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldEVycm9yQ29kZShEVVJJTkdfUFJJTlRJ
|
response = new PrinterResponseModel();
|
||||||
TkcpOwogICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRNZXNzYWdlKCJEdXJpbmcg
|
Logger.d("FWUpgrade requestAnswer: "+ByteUtil.bytesToHexWithSpace(requestAnswer));
|
||||||
UHJpbnRpbmciKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
|
Logger.d("FWUpgrade reason: "+ByteUtil.bytesToHexWithSpace(reason));
|
||||||
ICB9CiAgICAgICAgICAgIH1lbHNlIGlmIChyZXF1ZXN0QW5zd2VyID09IFBSSU5UX1JFUVVFU1Rf
|
if (requestAnswer == (byte) PRINT_REQUEST_REJECT) {
|
||||||
QUxMT1cpIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3ModHJ1ZSk7CiAgICAg
|
response.setSuccess(false);
|
||||||
ICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29kZShQUklOVF9SRVFVRVNUX0FMTE9XKTsK
|
switch (reason) {
|
||||||
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3Mo
|
//0x05 System OverHeat
|
||||||
dHJ1ZSk7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29kZShQUklOVF9SRVFV
|
//0x06 System OverCold
|
||||||
RVNUX0FMTE9XKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzcG9u
|
//0x0E During Upgrading
|
||||||
c2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBTdGFydCBGVyBnbyB1cGdyYWRlIHJlc3BvbnNlIGFz
|
//0x10 During Printing
|
||||||
IHBlciBwcmludGVyIGFja25vd2xlZGdtZW50CiAgICAgKgogICAgICogQHBhcmFtIHBheWxvYWQg
|
case SYSTEM_OVER_HEAT:
|
||||||
LSBQcmludGVyIHBheWxvYWQKICAgICAqIEByZXR1cm4gLSBQcmludGVyUmVzcG9uc2UgTW9kZWwo
|
response.setErrorCode(SYSTEM_OVER_HEAT);
|
||||||
SXNTdWNjZXNzLCBNZXNzYWdlLCBFcnJvckNvZGUpCiAgICAgKi8KICAgIHB1YmxpYyBQcmludGVy
|
response.setMessage("System Over Heat");
|
||||||
UmVzcG9uc2VNb2RlbCBkb0ZXR29VcGdyYWRlUHJvY2VzcyhieXRlW10gcGF5bG9hZCkgewogICAg
|
break;
|
||||||
ICAgIC8vMHgxQgkweDJBCTB4NDMJMHg0MQkweDAxCTB4MDEJMHgwMwkweDAyCiAgICAgICAgLy8w
|
case SYSTEM_OVER_COLD:
|
||||||
eDFCCTB4MkEJMHg0MwkweDQxCTB4MDAJMHgwMQkweDAzCTB4MDIKICAgICAgICAvLzFCIDJBIDQz
|
response.setErrorCode(SYSTEM_OVER_COLD);
|
||||||
IDQxIDAxIDAxIDAzIDAyIDAwIDAwIDAwIDAgICAgICAgCiAgICAgICAgLy8xQiAyQSA0MyA0MSAwMSAw
|
response.setMessage("System Over Cold");
|
||||||
MSAwMyAwMyBBMCAwMCAwMCAwMCAwCiAgICAgICAgYnl0ZSBvbmVDaGFyICAgPSAweDFCOwogICAg
|
break;
|
||||||
ICAgIGJ5dGUgdHdvQ2hhciAgID0gMHgyQTsKICAgICAgICBieXRlIHRocmVlQ2hhciA9IDB4NDM7
|
case DURING_UPGRADING:
|
||||||
CiAgICAgICAgYnl0ZSBmb3VyQ2hhciAgPSAweDQxOwogICAgICAgIGJ5dGUgZml2ZUNoYXIgID0g
|
response.setErrorCode(DURING_UPGRADING);
|
||||||
MHgwMTsKICAgICAgICBieXRlIHNpeENoYXIgICA9IDB4MDE7CiAgICAgICAgYnl0ZSBzZXZlbkNo
|
response.setMessage("During Upgrading");
|
||||||
YXIgPSAweDAzOwogICAgICAgIGJ5dGUgZWlnaHRDaGFyID0gMHgwMjsKICAgICAgICBQcmludGVy
|
break;
|
||||||
UmVzcG9uc2VNb2RlbCByZXNwb25zZSA9IG51bGw7CiAgICAgICAgaWYgKHBheWxvYWQgIT0gbnVs
|
case DURING_PRINTING:
|
||||||
bCAmJiBwYXlsb2FkLmxlbmd0aCA9PSBUT1RBTF9CWVRFUykgewogICAgICAgICAgIHJlc3BvbnNl
|
response.setErrorCode(DURING_PRINTING);
|
||||||
ID0gbmV3IFByaW50ZXJSZXNwb25zZU1vZGVsKCk7CiAgICAgICAgICAgIGlmIChvbmVDaGFyID09
|
response.setMessage("During Printing");
|
||||||
IHBheWxvYWRbMF0KICAgICAgICAgICAgICAgICAgICAmJiB0d29DaGFyID09IHBheWxvYWRbMV0K
|
break;
|
||||||
ICAgICAgICAgICAgICAgICAgICAmJiB0aHJlZUNoYXIgPT0gcGF5bG9hZFsyXQogICAgICAgICAg
|
}
|
||||||
ICAgICAgICAgICYmIGZvdXJDaGFyID09IHBheWxvYWRbM10KICAgICAgICAgICAgICAgICAgICAm
|
}else if (requestAnswer == PRINT_REQUEST_ALLOW) {
|
||||||
JiBmaXZlQ2hhciA9PSBwYXlsb2FkWzRdCiAgICAgICAgICAgICAgICAgICAgJiYgc2l4Q2hhciA9
|
response.setSuccess(true);
|
||||||
PSBwYXlsb2FkWzVdCiAgICAgICAgICAgICAgICAgICAgJiYgc2V2ZW5DaGFyID09IHBheWxvYWRb
|
response.setSuccessCode(PRINT_REQUEST_ALLOW);
|
||||||
Nl0KICAgICAgICAgICAgICAgICAgICAmJiBlaWdodENoYXIgPT0gcGF5bG9hZFs3XSkgewogICAg
|
} else {
|
||||||
ICAgICAgICAgICAgcmVzcG9uc2Uuc2V0U3VjY2Vzcyh0cnVlKTsKICAgICAgICAgICAgICAgIHJl
|
response.setSuccess(true);
|
||||||
c3BvbnNlLnNldFN1Y2Nlc3NDb2RlKFBSSU5UX1JFUVVFU1RfQUxMT1cpOwogICAgICAgICAgICAg
|
response.setSuccessCode(PRINT_REQUEST_ALLOW);
|
||||||
ICAgTG9nZ2VyLmQoICJvRldHb1VwZ3JhZGVQcm9jZXNzIFN1Y2Nlc3MiKTsKICAgICAgICAgICAg
|
}
|
||||||
fSBlbHNlICB7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzKGZhbHNlKTsKICAg
|
}
|
||||||
ICAgICAgICAgICAgIHJlc3BvbnNlLnNldEVycm9yQ29kZShQUklOVF9SRVFVRVNUX1JFSkVDVCk7
|
return response;
|
||||||
CiAgICAgICAgICAgICAgICBMb2dnZXIuZCggIm9GV0dvVXBncmFkZVByb2Nlc3MgUmVqZWN0Iik7
|
}
|
||||||
CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgfQog
|
|
||||||
ICAgLyoqCiAgICAgKiBTdGFydCBFbmQgb2YgIHVwZ3JhZGUgY29tbWFuZCByZXNwb25zZSBhcyBw
|
/**
|
||||||
ZXIgcHJpbnRlciBhY2tub3dsZWRnbWVudAogICAgICoKICAgICAqIEBwYXJhbSBwYXlsb2FkIC0g
|
* Start FW go upgrade response as per printer acknowledgment
|
||||||
UHJpbnRlciBwYXlsb2FkCiAgICAgKiBAcmV0dXJuIC0gUHJpbnRlclJlc3BvbnNlIE1vZGVsKElz
|
*
|
||||||
U3VjY2VzcywgTWVzc2FnZSwgRXJyb3JDb2RlKQogICAgICovCiAgICBwdWJsaWMgUHJpbnRlclJl
|
* @param payload - Printer payload
|
||||||
c3BvbnNlTW9kZWwgZG9GV0VuZE9mVXBncmFkZVByb2Nlc3MoYnl0ZVtdIHBheWxvYWQpIHsKICAg
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
ICAgICAvLzB4MUIJMHgyQQkweDQzCTB4NDEJMHgwMQkweDAxCTB4MDMJMHgwMwlTdWNjZXNzOiAw
|
*/
|
||||||
eDU1IEVycm9yOiAweEEwCUVycm9yCiAgICAgICAgUHJpbnRlclJlc3BvbnNlTW9kZWwgcmVzcG9u
|
public PrinterResponseModel doFWGoUpgradeProcess(byte[] payload) {
|
||||||
c2UgPSBudWxsOwogICAgICAgIGlmIChwYXlsb2FkICE9IG51bGwgJiYgcGF5bG9hZC5sZW5ndGgg
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0x03 0x02
|
||||||
PT0gVE9UQUxfQllURVMpIHsKICAgICAgICAgICAgZmluYWwgYnl0ZSBwcmludFJlc3VsdCA9IHBh
|
//0x1B 0x2A 0x43 0x41 0x00 0x01 0x03 0x02
|
||||||
eWxvYWRbOF07CiAgICAgICAgICAgIExvZ2dlci5kKCAicHJpbnRSZXN1bHQ6ICIgKyBwcmludFJl
|
//1B 2A 43 41 01 01 03 02 00 00 00 0
|
||||||
c3VsdCk7CiAgICAgICAgICAgIHJlc3BvbnNlID0gbmV3IFByaW50ZXJSZXNwb25zZU1vZGVsKCk7
|
//1B 2A 43 41 01 01 03 03 A0 00 00 00 0
|
||||||
CiAgICAgICAgICAgIGlmIChwcmludFJlc3VsdCA9PSBFTkRfT0ZfUFJJTlRfU1VDQ0VTUykgewog
|
byte oneChar = 0x1B;
|
||||||
ICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0U3VjY2Vzcyh0cnVlKTsKICAgICAgICAgICAgICAg
|
byte twoChar = 0x2A;
|
||||||
IHJlc3BvbnNlLnNldE1lc3NhZ2UoIkVuZCBvZiBQcmludCBTdWNjZXNzIik7CiAgICAgICAgICAg
|
byte threeChar = 0x43;
|
||||||
ICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29kZShFTkRfT0ZfUFJJTlRfU1VDQ0VTUyk7CiAgICAg
|
byte fourChar = 0x41;
|
||||||
ICAgICAgIH0gZWxzZSBpZiAocHJpbnRSZXN1bHQgPT0gKGJ5dGUpIEVORF9PRl9QUklOVF9FUlJP
|
byte fiveChar = 0x01;
|
||||||
UikgewogICAgICAgICAgICAgICAgZmluYWwgYnl0ZSByZWFzb24gPSBwYXlsb2FkWzldOwogICAg
|
byte sixChar = 0x01;
|
||||||
ICAgICAgICAgICAgcmVzcG9uc2Uuc2V0U3VjY2VzcyhmYWxzZSk7CgogICAgICAgICAgICAgICAg
|
byte sevenChar = 0x03;
|
||||||
c3dpdGNoIChyZWFzb24pIHsKICAgICAgICAgICAgICAgICAgICBjYXNlIE5PTkVfRVJST1I6CiAg
|
byte eightChar = 0x02;
|
||||||
ICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldEVycm9yQ29kZShOT05FX0VSUk9SKTsK
|
PrinterResponseModel response = null;
|
||||||
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0TWVzc2FnZSgiTm9uZSBFcnJvciIp
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlIEZJ
|
response = new PrinterResponseModel();
|
||||||
TEVfRVJST1I6CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldEVycm9yQ29kZShG
|
if (oneChar == payload[0]
|
||||||
SUFMRV9FUlJPUik7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1lc3NhZ2Uo
|
&& twoChar == payload[1]
|
||||||
IkZpbGUgRXJyb3IiKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
|
&& threeChar == payload[2]
|
||||||
ICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwog
|
&& fourChar == payload[3]
|
||||||
ICAgfQoKICAgIC8qKgogICAgICogU3RhcnQgRW5kIG9mICB1cGdyYWRlIGNvbW1hbmQgcmVzcG9u
|
&& fiveChar == payload[4]
|
||||||
c2UgYXMgcGVyIHByaW50ZXIgYWNrbm93bGVkZ21lbnQKICAgICAqCiAgICAgKiBAcGFyYW0gcGF5
|
&& sixChar == payload[5]
|
||||||
bG9hZCAtIFByaW50ZXIgcGF5bG9hZAogICAgICogQHJldHVybiAtIFByaW50ZXJSZXNwb25zZSBN
|
&& sevenChar == payload[6]
|
||||||
b2RlbChJc1N1Y2Nlc3MsIE1lc3NhZ2UsIEVycm9yQ29kZSkKICAgICAqLwogICAgcHVibGljIFBy
|
&& eightChar == payload[7]) {
|
||||||
aW50ZXJSZXNwb25zZU1vZGVsIGRvRldFbmRPZlVwZ3JhZGVBS0NQcm9jZXNzKGJ5dGVbXSBwYXls
|
response.setSuccess(true);
|
||||||
b2FkKSB7CiAgICAgICAgUHJpbnRlclJlc3BvbnNlTW9kZWwgIHJlc3BvbnNlID0gbmV3IFByaW50
|
response.setSuccessCode(PRINT_REQUEST_ALLOW);
|
||||||
ZXJSZXNwb25zZU1vZGVsKCk7CiAgICAgICAgcmVzcG9uc2Uuc2V0U3VjY2Vzcyh0cnVlKTsKICAg
|
Logger.d( "oFWGoUpgradeProcess Success");
|
||||||
ICAgICByZXNwb25zZS5zZXRNZXNzYWdlKCJGVyBFbmQgb2YgVXBncmFkZSBBS0MgU3VjY2VzcyIp
|
} else {
|
||||||
OwogICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3NDb2RlKEVORF9PRl9QUklOVF9TVUNDRVNTKTsK
|
response.setSuccess(false);
|
||||||
ICAgICAgICByZXR1cm4gcmVzcG9uc2U7CiAgICB9Cn0K
|
response.setErrorCode(PRINT_REQUEST_REJECT);
|
||||||
|
Logger.d( "oFWGoUpgradeProcess Reject");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Start End of upgrade command response as per printer acknowledgment
|
||||||
|
*
|
||||||
|
* @param payload - Printer payload
|
||||||
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
|
*/
|
||||||
|
public PrinterResponseModel doFWEndOfUpgradeProcess(byte[] payload) {
|
||||||
|
//0x1B 0x2A 0x43 0x41 0x01 0x01 0x03 0x03 Success: 0x55 Error: 0xA0 Error
|
||||||
|
PrinterResponseModel response = null;
|
||||||
|
if (payload != null && payload.length == TOTAL_BYTES) {
|
||||||
|
final byte printResult = payload[8];
|
||||||
|
Logger.d( "printResult: " + printResult);
|
||||||
|
response = new PrinterResponseModel();
|
||||||
|
if (printResult == END_OF_PRINT_SUCCESS) {
|
||||||
|
response.setSuccess(true);
|
||||||
|
response.setMessage("End of Print Success");
|
||||||
|
response.setSuccessCode(END_OF_PRINT_SUCCESS);
|
||||||
|
} else if (printResult == (byte) END_OF_PRINT_ERROR) {
|
||||||
|
final byte reason = payload[9];
|
||||||
|
response.setSuccess(false);
|
||||||
|
|
||||||
|
switch (reason) {
|
||||||
|
case NONE_ERROR:
|
||||||
|
response.setErrorCode(NONE_ERROR);
|
||||||
|
response.setMessage("None Error");
|
||||||
|
break;
|
||||||
|
case FILE_ERROR:
|
||||||
|
response.setErrorCode(FIALE_ERROR);
|
||||||
|
response.setMessage("File Error");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start End of upgrade command response as per printer acknowledgment
|
||||||
|
*
|
||||||
|
* @param payload - Printer payload
|
||||||
|
* @return - PrinterResponse Model(IsSuccess, Message, ErrorCode)
|
||||||
|
*/
|
||||||
|
public PrinterResponseModel doFWEndOfUpgradeAKCProcess(byte[] payload) {
|
||||||
|
PrinterResponseModel response = new PrinterResponseModel();
|
||||||
|
response.setSuccess(true);
|
||||||
|
response.setMessage("FW End of Upgrade AKC Success");
|
||||||
|
response.setSuccessCode(END_OF_PRINT_SUCCESS);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user