fix: decode base64-encoded file content

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