diff --git a/serialport/src/main/java/android/serialport/manager/PrintImageProcessManager.java b/serialport/src/main/java/android/serialport/manager/PrintImageProcessManager.java new file mode 100644 index 0000000..7f2f971 --- /dev/null +++ b/serialport/src/main/java/android/serialport/manager/PrintImageProcessManager.java @@ -0,0 +1,128 @@ +cGFja2FnZSBhbmRyb2lkLnNlcmlhbHBvcnQubWFuYWdlcjsKCmltcG9ydCBhbmRyb2lkLmNvbnRl +bnQuQ29udGV4dDsKaW1wb3J0IGFuZHJvaWQuc2VyaWFscG9ydC5tb2RlbC5QcmludGVyUmVzcG9u +c2VNb2RlbDsKaW1wb3J0IGFuZHJvaWQuc2VyaWFscG9ydC51dGlscy5CeXRlVXRpbDsKaW1wb3J0 +IGFuZHJvaWQuc2VyaWFscG9ydC51dGlscy5Mb2dnZXI7CmltcG9ydCBhbmRyb2lkLnV0aWwuTG9n +OwoKCnB1YmxpYyBjbGFzcyBQcmludEltYWdlUHJvY2Vzc01hbmFnZXIgewogICAgcHJpdmF0ZSBD +b250ZXh0IG1Db250ZXh0OwogICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgVEFHID0gIlByaW50ZXJf +QWN0aW9uIjsKICAgIHByaXZhdGUgc3RhdGljIFByaW50SW1hZ2VQcm9jZXNzTWFuYWdlciBtUHJv +dG9jb2xNYW5hZ2VyOwoKICAgIHByaXZhdGUgZmluYWwgaW50IFRPVEFMX0JZVEVTID0gNjQ7Cgog +ICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9ORV9FUlJPUiA9IDB4MDA7CiAgICBwdWJsaWMg +c3RhdGljIGZpbmFsIGludCBWRVJZX0xPV19CQVRURVJZID0gMHgwMTsKICAgIHB1YmxpYyBzdGF0 +aWMgZmluYWwgaW50IERPT1JfT1BFTiA9IDB4MDI7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGlu +dCBQUklOVEVSX0hFQURfT1ZFUl9IRUFUID0gMHgwMzsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwg +aW50IFBSSU5URVJfSEVBRF9PVkVSX0NPTEQgPSAweDA0OwogICAgcHVibGljIHN0YXRpYyBmaW5h +bCBpbnQgU1lTVEVNX09WRVJfSEVBVCA9IDB4MDU7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGlu +dCBTWVNURU1fT1ZFUl9DT0xEID0gMHgwNjsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNN +QVJUX1NIRUVUX01JU01BVENIID0gMHgwNzsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5P +X1BBUEVsid0gMHgwODsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFFREVESU5HX0VSUk9S +ID0gMHgwOTsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBUEVSX0pBTSA9IDB4MEE7CiAg +ICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTUFHRV9ERUNPREVfRVJST1IgPSAweDBCOwogICAg +cHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU01BUlRfU0hFRVRfRkVFRElOR19FUlJPUiA9IDB4MEM7 +CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQVRBX0VSUk9SID0gMHgwRDsKICAgIHB1Ymxp +YyBzdGF0aWMgZmluYWwgaW50IERVUklOR19VUEdSQURJTkcgPSAweDBFOwogICAgcHVibGljIHN0 +YXRpYyBmaW5hbCBpbnQgRFVSSU5HX1BPV0VSX09GRiA9IDB4MEY7CiAgICBwdWJsaWMgc3RhdGlj +IGZpbmFsIGludCBEVVJJTkdfUFJJTlRJTkcgPSAweDEwOwoKICAgIHB1YmxpYyBzdGF0aWMgZmlu +YWwgaW50IFBSSU5URVJfRVJSX1BSSU5URVJfQlVTWSA9IDB4MDE7CiAgICBwdWJsaWMgc3RhdGlj +IGZpbmFsIGludCBQUklOVEVSX0VSUl9QQVBFUl9KQU0gPSAweDAyOwogICAgcHVibGljIHN0YXRp +YyBmaW5hbCBpbnQgUFJJTlRFUl9FUlJfRkVFRElOR19FUlJPUiA9IDB4MDM7CiAgICBwdWJsaWMg +c3RhdGljIGZpbmFsIGludCBQUklOVEVSX0VSUl9TTUFSVF9TSEVFVF9NSVNNQVRDSCA9IDB4MDQ7 +CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklOVEVSX0VSUl9QUklOVEVSX0hFQURfT1ZF +Ul9IRUFUID0gMHgwNTsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSU5URVJfRVJSX1BS +SU5URVJfSEVBRF9PVkVSX0NPTEQgPSAweDA2OwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQg +UFJJT1RFUl9FUlJfU1lTVEVNX09WRVJfSEVBVCA9IDB4MDc7CiAgICBwdWJsaWMgc3RhdGljIGZp +bmFsIGludCBQUklOVEVSX0VSUl9TWVNURU1fT1ZFUl9DT0xEID0gMHgwODsKICAgIHB1YmxpYyBz +dGF0aWMgZmluYWwgaW50IFBSSU5URVJfRVJSX0RFQ09ERV9FUlJPUiA9IDB4MDk7CiAgICBwdWJs +aWMgc3RhdGljIGZpbmFsIGludCBQUklOVEVSX0VSUl9TTUFSVF9TSEVFVF9GRUVESU5HX0VSUk9S +ID0gMHgwQTsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSU5URVJfRVJSX0RPT1JfT1BF +Tl9DQU5DRUwgPSAweDBCOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJJTlRFUl9FUlJf +REFUQV9SRUNFSVZFX0VSUk9SID0gMHgwQzsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBS +SU5URVJfRVJSX0JBVFRFUllfRU1QVFkgPSAweDBEOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBp +bnQgUFJJTlRFUl9FUlJfQkFUVEVSWV9GVUxMID0gMHgwRTsKICAgIHB1YmxpYyBzdGF0aWMgZmlu +YWwgaW50IFBSSU5URVJfRVJSX05PX1BBUEVsid0gMHgwRjsKICAgIHB1YmxpYyBzdGF0aWMgZmlu +YWwgaW50IFBSSU5URVJfRVJSX0VMU0UgPSAweDEwOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBp +bnQgUFJJTlRFUl9FUlJfQ09PTElOR19TVEFSVCA9IDB4OTk7CiAgICBwdWJsaWMgc3RhdGljIGZp +bmFsIGludCBQUklOVElOR19HT0lOR19PTiA9IDk5OTsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwg +aW50IFBSSU5USU5HX1NNQVJUX1NIRUVUX1NUQVJUX1BST0NFU1MgPSAxMDAxOwogICAgcHVibGlj +IHN0YXRpYyBmaW5hbCBpbnQgUFJJTlRJTkdfU01BUlRfU0hFRVRfRU5EX09GX1BST0NFU1MgPSAx +MDAyOwoKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSU5UX1JFUVVFU1RfQUxMT1cgPSAw +eDAxOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJJTlRfUkVRVUVTVF9SRUpFQ1QgPSAw +eEZGOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09PTElOR19TVEFSVCA9IDB4OTk7CiAg +ICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT09MSU5HX0VORCA9IDB4MDE7CgogICAgcHVibGlj +IHN0YXRpYyBmaW5hbCBpbnQgRFNQX01PREVfU1RBTkRCWSA9IDB4MDA7CiAgICBwdWJsaWMgc3Rh +dGljIGZpbmFsIGludCBEU1BfTU9ERV9QUklOVEVSID0gMHgwMTsKICAgIHB1YmxpYyBzdGF0aWMg +ZmluYWwgaW50IERTUF9NT0RFX1VQR1JBREUgPSAweDAyOwogICAgcHVibGljIHN0YXRpYyBmaW5h +bCBpbnQgRFNQX01PREVfRkFDVE9SWSA9IDB4MDM7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGlu +dCBEU1BfTU9ERV9VTktOT1dOID0gMHhGRjsKCiAgICBwcml2YXRlIGZpbmFsIGludCBFTkRfT0Zf +UFJJT1RfU1VDQ0VTUyA9IDB4NTU7CiAgICBwcml2YXRlIGZpbmFsIGludCBFTkRfT0ZfUFJJTlRf +RVJST1IgPSAweEEwOwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgRFNQX1NUQVRVU19PSyA9IDB4MDA7 +CiAgICBwcml2YXRlIGZpbmFsIGludCBEU1BfU1RBVFVTX05HID0gMHhGRjsKICAgIHByaXZhdGUg +ZmluYWwgaW50IEZJTEVfRVJST1IgPSAweDAxOwogICAgcHJpdmF0ZSBmaW5hbCBpbnQgUEFQRVJf +VFJBWV9FTVBUWSA9IDB4MDE7CgogICAgcHJpdmF0ZSBQcmludEltYWdlUHJvY2Vzc01hbmFnZXIo +Q29udGV4dCBjb250ZXh0KSB7CiAgICAgICAgbUNvbnRleHQgPSBjb250ZXh0OwogICAgfQoKICAg +IHB1YmxpYyBzdGF0aWMgUHJpbnRJbWFnZVByb2Nlc3NNYW5hZ2VyIGdldEluc3RhbmNlKENvbnRl +eHQgY29udGV4dCkgewogICAgICAgIGlmIChtUHJvdG9jb2xNYW5hZ2VyID09IG51bGwpIHsKICAg +ICAgICAgICAgbVByb3RvY29sTWFuYWdlciA9IG5ldyBQcmludEltYWdlUHJvY2Vzc01hbmFnZXIo +Y29udGV4dCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtUHJvdG9jb2xNYW5hZ2VyOwogICAg +fQoKICAgIHB1YmxpYyBQcmludGVyUmVzcG9uc2VNb2RlbCBkb1ByaW50UmVxdWVzdEFDS1Byb2Nl +c3MoYnl0ZVtdIHBheWxvYWQpIHsKICAgICAgICBQcmludGVyUmVzcG9uc2VNb2RlbCByZXNwb25z +ZSA9IG51bGw7CiAgICAgICAgaWYgKHBheWxvYWQgIT0gbnVsbCAmJiBwYXlsb2FkLmxlbmd0aCA9 +PSBUT1RBTF9CWVRFUykgewogICAgICAgICAgICBmaW5hbCBieXRlIHJlcXVlc3RBbnN3ZXIgPSBw +YXlsb2FkWzhdOwogICAgICAgICAgICBmaW5hbCBieXRlIHJlYXNvbiA9IHBheWxvYWRbOV07CiAg +ICAgICAgICAgIHJlc3BvbnNlID0gbmV3IFByaW50ZXJSZXNwb25zZU1vZGVsKCk7CiAgICAgICAg +ICAgIGlmIChyZXF1ZXN0QW5zd2VyID09IFBSSU5UX1JFUVVFU1RfQUxMT1cpIHsKICAgICAgICAg +ICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXNwb25z +ZS5zZXRTdWNjZXNzQ29kZShQUklOVF9SRVFVRVNUX0FMTE9XKTsKICAgICAgICAgICAgfSBlbHNl +IHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3MoZmFsc2UpOwogICAgICAgICAg +ICAgICAgcmVzcG9uc2Uuc2V0RXJyb3JDb2RlKHJlYXNvbik7CiAgICAgICAgICAgIH0KICAgICAg +ICB9CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgfQoKICAgIHB1YmxpYyBQcmludGVyUmVz +cG9uc2VNb2RlbCBkb0hlYXJ0QmVhdFByb2Nlc3MoYnl0ZVtdIHBheWxvYWQpIHsKICAgICAgICBQ +cmludGVyUmVzcG9uc2VNb2RlbCByZXNwb25zZSA9IG51bGw7CiAgICAgICAgaWYgKHBheWxvYWQg +IT0gbnVsbCAmJiBwYXlsb2FkLmxlbmd0aCA9PSBUT1RBTF9CWVRFUykgewogICAgICAgICAgICBm +aW5hbCBieXRlIGRzcE1vZGUgPSBwYXlsb2FkWzhdOwogICAgICAgICAgICBmaW5hbCBieXRlIGRv +b3JTdGF0dXMgPSBwYXlsb2FkWzldOwogICAgICAgICAgICBmaW5hbCBieXRlIHBhcGVyU3RhdHVz +ID0gcGF5bG9hZFsxMF07CiAgICAgICAgICAgIHJlc3BvbnNlID0gbmV3IFByaW50ZXJSZXNwb25z +ZU1vZGVsKCk7CiAgICAgICAgICAgIHJlc3BvbnNlLnNldERzcE0oZHNwTW9kZSk7CiAgICAgICAg +ICAgIHJlc3BvbnNlLnNldERzcFBhcGVyVHlwZShwYXBlclN0YXR1cyk7CiAgICAgICAgICAgIHJl +c3BvbnNlLnNldERvb3JTdGF0dXMoZG9vclN0YXR1cyk7CiAgICAgICAgICAgIHJlc3BvbnNlLnNl +dFN1Y2Nlc3MoZHNwTW9kZSA9PSBEU1BfTU9ERV9TVEFOREJZKSB7CiAgICAgICAgfQogICAgICAg +IHJldHVybiByZXNwb25zZTsKICAgIH0KCiAgICBwdWJsaWMgUHJpbnRlclJlc3BvbnNlTW9kZWwg +ZG9Hb1ByaW50QUNLUGF5bG9hZEFDS1Byb2Nlc3MoYnl0ZVtdIHBheWxvYWQpIHsKICAgICAgICBQ +cmludGVyUmVzcG9uc2VNb2RlbCByZXNwb25zZSA9IG51bGw7CiAgICAgICAgaWYgKHBheWxvYWQg +IT0gbnVsbCAmJiBwYXlsb2FkLmxlbmd0aCA9PSBUT1RBTF9CWVRFUykgewogICAgICAgICAgICBm +aW5hbCBieXRlIGlzRmlsZUF2YWlsYWJsZSA9IHBheWxvYWRbOF07CiAgICAgICAgICAgIHJlc3Bv +bnNlID0gbmV3IFByaW50ZXJSZXNwb25zZU1vZGVsKCk7CiAgICAgICAgICAgIGlmIChpc0ZpbGVB +dmFpbGFibGUgPT0gUFJJTlRfUkVRVUVTVF9BTExPVykgewogICAgICAgICAgICAgICAgcmVzcG9u +c2Uuc2V0U3VjY2Vzcyh0cnVlKTsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3ND +b2RlKFBSSU5UX1JFUVVFU1RfQUxMT1cpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg +ICAgICAgcmVzcG9uc2Uuc2V0U3VjY2VzcyhmYWxzZSk7CiAgICAgICAgICAgICAgICByZXNwb25z +ZS5zZXRFcnJvckNvZGUoUFJJTlRfUkVRVUVTVF9SRUpFQ1QpOwogICAgICAgICAgICB9CiAgICAg +ICAgfQogICAgICAgIHJldHVybiByZXNwb25zZTsKICAgIH0KCiAgICBwdWJsaWMgUHJpbnRlclJl +c3BvbnNlTW9kZWwgZG9FbmRPZlByaW50UHJvY2VzcyhieXRlW10gcGF5bG9hZCkgewogICAgICAg +IFByaW50ZXJSZXNwb25zZU1vZGVsIHJlc3BvbnNlID0gbnVsbDsKICAgICAgICBpZiAocGF5bG9h +ZCAhPSBudWxsICYmIHBheWxvYWQubGVuZ3RoID09IFRPVEFMX0JZVEVTKSB7CiAgICAgICAgICAg +IGZpbmFsIGJ5dGUgcHJpbnRSZXN1bHQgPSBwYXlsb2FkWzhdOwogICAgICAgICAgICByZXNwb25z +ZSA9IG5ldyBQcmludGVyUmVzcG9uc2VNb2RlbCgpOwogICAgICAgICAgICBpZiAocHJpbnRSZXN1 +bHQgPT0gRU5EX09GX1BSSU9UX1NVQ0NFU1MpIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNl +dFN1Y2Nlc3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29kZShF +TkRfT0ZfUFJJT1RfU1VDQ0VTUyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg +ICByZXNwb25zZS5zZXRTdWNjZXNzKGZhbHNlKTsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNl +dEVycm9yQ29kZShwYXlsb2FkWzldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBy +ZXR1cm4gcmVzcG9uc2U7CiAgICB9CgogICAgcHVibGljIFByaW50ZXJSZXNwb25zZU1vZGVsIGRv +RldWZXJzaW9uUHJvY2VzcyhieXRlW10gcGF5bG9hZCkgewogICAgICAgIFByaW50ZXJSZXNwb25z +ZU1vZGVsIHJlc3BvbnNlID0gbnVsbDsKICAgICAgICBpZiAocGF5bG9hZCAhPSBudWxsICYmIHBh +eWxvYWQubGVuZ3RoID09IFRPVEFMX0JZVEVTKSB7CiAgICAgICAgICAgIGJ5dGUgZHNwSCA9IHBh +eWxvYWRbOF07CiAgICAgICAgICAgIGJ5dGUgZHNwTSA9IHBheWxvYWRbOV07CiAgICAgICAgICAg +IGJ5dGUgZHNwTCA9IHBheWxvYWRbMTBdOwogICAgICAgICAgICBieXRlIEhXSUQgPSBwYXlsb2Fk +WzExXTsKICAgICAgICAgICAgYnl0ZSBUTUQgPSBwYXlsb2FkWzEyXTsKICAgICAgICAgICAgYnl0 +ZSBkc3BTdGF0dXMgPSBwYXlsb2FkWzE1XTsKICAgICAgICAgICAgYnl0ZSBpc1BhcGVyVHJheUVt +cHR5ID0gcGF5bG9hZFsxNF07CiAgICAgICAgICAgIHJlc3BvbnNlID0gbmV3IFByaW50ZXJSZXNw +b25zZU1vZGVsKCk7CiAgICAgICAgICAgIHJlc3BvbnNlLnNldFN1Y2Nlc3MoZHNwU3RhdHVzICE9 +IChieXRlKURTUF9TVEFUVVNfTkcpOwogICAgICAgICAgICByZXNwb25zZS5zZXRTdWNjZXNzQ29k +ZShQUklOVF9SRVFVRVNUX0FMTE9XKTsKICAgICAgICAgICAgcmVzcG9uc2Uuc2V0RHNwSChkc3BI +KTsKICAgICAgICAgICAgcmVzcG9uc2Uuc2V0RHNwTShkc3BNKTsKICAgICAgICAgICAgcmVzcG9u +c2Uuc2V0RHNwTChkc3BMKTsKICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFdJRChIV0lEKTsKICAg +ICAgICAgICAgcmVzcG9uc2Uuc2V0VE1EKFRNRCk7CiAgICAgICAgICAgIHJlc3BvbnNlLnNldERz +cFN0YXR1cyhkc3BTdGF0dXMpOwogICAgICAgICAgICByZXNwb25zZS5zZXREc3BQYXBlclR5cGUo +aXNQYXBlclRyYXlFbXB0eSk7CiAgICAgICAgICAgIHJlc3BvbnNlLnNldFBhcGVyVHJheUVtcHR5 +KGlzUGFwZXJUcmF5RW1wdHkgPT0gUEFQRVJfVFJBWV9FTVBUWSk7CiAgICAgICAgfQogICAgICAg +IHJldHVybiByZXNwb25zZTsKICAgIH0KfQo= \ No newline at end of file