diff --git a/C5/settings.gradle b/C5/settings.gradle index 3c06a7e..c64486c 100644 --- a/C5/settings.gradle +++ b/C5/settings.gradle @@ -1,2 +1,2 @@ -include ':app', ':udpmodule', ':xpadprotocal', ':util', ':sunvoteadapter', 'txpad', 'sunvotesdk','testproject',':xpadapi' +include ':app', ':udpmodule', ':xpadprotocal', ':util', ':sunvoteadapter', 'txpad', 'sunvotesdk','testproject' \ No newline at end of file diff --git a/C5/xpadapi/.gitignore b/C5/xpadapi/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/C5/xpadapi/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/C5/xpadapi/build.gradle b/C5/xpadapi/build.gradle deleted file mode 100644 index b5c2550..0000000 --- a/C5/xpadapi/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -apply plugin: 'com.android.library' - -android { - compileSdkVersion 28 - - - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 28 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } - -} - -dependencies { - implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'com.android.support:appcompat-v7:28.0.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' - implementation project(':udpmodule') -} diff --git a/C5/xpadapi/proguard-rules.pro b/C5/xpadapi/proguard-rules.pro deleted file mode 100644 index f1b4245..0000000 --- a/C5/xpadapi/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/C5/xpadapi/src/androidTest/java/com/sunvote/xpadapi/ExampleInstrumentedTest.java b/C5/xpadapi/src/androidTest/java/com/sunvote/xpadapi/ExampleInstrumentedTest.java deleted file mode 100644 index 410f209..0000000 --- a/C5/xpadapi/src/androidTest/java/com/sunvote/xpadapi/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.sunvote.xpadapi; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.sunvote.xpadapi.test", appContext.getPackageName()); - } -} diff --git a/C5/xpadapi/src/main/AndroidManifest.xml b/C5/xpadapi/src/main/AndroidManifest.xml deleted file mode 100644 index 1c11958..0000000 --- a/C5/xpadapi/src/main/AndroidManifest.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/C5/xpadapi/src/main/aidl/com/sunvote/xpadapi/ISunvoteApi.aidl b/C5/xpadapi/src/main/aidl/com/sunvote/xpadapi/ISunvoteApi.aidl deleted file mode 100644 index 55ac746..0000000 --- a/C5/xpadapi/src/main/aidl/com/sunvote/xpadapi/ISunvoteApi.aidl +++ /dev/null @@ -1,35 +0,0 @@ -// ISunvoteApi.aidl -package com.sunvote.xpadapi; - -// Declare any non-default types here with import statements - -interface ISunvoteApi { - - - /** - * 数据包接收 - */ - - - /** - * 基础信标 - */ - - /** - * 投票信标 - */ - - - /** - * 基础信标 - */ - - /** - * 30透传包 - */ - - /** - * 40透传包 - */ -} - diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/XpadApiService.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/XpadApiService.java deleted file mode 100644 index ae5007d..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/XpadApiService.java +++ /dev/null @@ -1,730 +0,0 @@ -package com.sunvote.xpadapi.service; - -import android.app.Service; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Handler; -import android.os.HandlerThread; -import android.os.IBinder; - -import com.sunvote.udptransfer.stream.SunVoteInputStream; -import com.sunvote.udptransfer.work.BaseStationProcessWork; -import com.sunvote.udptransfer.work.RepeatMessageManager; -import com.sunvote.udptransfer.work.SDKProcessWork; -import com.sunvote.util.LogUtil; -import com.sunvote.xpadapi.ISunvoteApi; -import com.sunvote.xpadapi.service.bean.BaseInfo; -import com.sunvote.xpadapi.service.bean.BaseVoteInfo; -import com.sunvote.xpadapi.service.bean.HeartBeat; -import com.sunvote.xpadapi.service.bean.KeypadInfo; -import com.sunvote.xpadapi.service.bean.ModelInfo; -import com.sunvote.xpadapi.service.bean.OnLineInfo; -import com.sunvote.xpadapi.service.bean.Packet; -import com.sunvote.xpadapi.service.listener.OnDataReceiver; -import com.sunvote.xpadapi.service.logic.XpadApiServiceInfoProxyManager; -import com.sunvote.xpadapi.usb.UsbTransferManager; -import com.sunvote.xpadapi.util.ByteUtils; -import com.sunvote.xpadapi.util.Cons; -import com.sunvote.xpadapi.util.Crc16; - -import java.io.ByteArrayOutputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -/** - * @Author Elvis - */ -public class XpadApiService extends Service { - - private static final String TAG = XpadApiService.class.getSimpleName(); - private List onDataReceiverList = new ArrayList<>(); - private int batteryLevel = 0; - private List innerList = Collections.synchronizedList(new ArrayList()); - private OnDataReceiver onDataReceiver = new OnDataReceiver() { - @Override - public void onDataReceiver(byte[] datas) { - LogUtil.i(TAG, "onDataReceiver", datas); - for (OnDataReceiver temp : onDataReceiverList) { - if (temp != null) { - try { - temp.onDataReceiver(datas); - } catch (Exception ex) { - LogUtil.e(TAG, "onDataReceiver" + temp.getClass().getSimpleName(), ex); - } - } - } - } - - @Override - public void onDataSender(byte[] datas) { - LogUtil.i(TAG, "onDataSender", datas); - for (OnDataReceiver temp : onDataReceiverList) { - if (temp != null) { - try { - temp.onDataSender(datas); - } catch (Exception ex) { - LogUtil.e(TAG, "onDataSender", ex); - } - } - } - } - }; - - public XpadApiService() { - } - - public int registerOnDataReceiver(OnDataReceiver onDataReceiver) { - for (OnDataReceiver temp : onDataReceiverList) { - if (temp == onDataReceiver) { - return 0; - } - } - onDataReceiverList.add(onDataReceiver); - return 1; - } - - @Override - public void onCreate() { - super.onCreate(); - - sendThread = new HandlerThread("send"); - receiverThread = new HandlerThread("receiver"); - sendThread.start(); - receiverThread.start(); - - taskHandler = new Handler(sendThread.getLooper()); - IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); - registerReceiver(batteryLevelRcvr, batteryLevelFilter); - XpadApiServiceInfoProxyManager.getInstance().setService(this); - - receiverDatas(); - } - - private void receiverDatas() { - SunVoteInputStream sunVoteInputStream = new SunVoteInputStream(); - sunVoteInputStream.setOnBytesReceiver(new SunVoteInputStream.OnBytesReceiver() { - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - @Override - public void onBytesReceiver(byte[] bytes, int len) { - // 1. 先检测读取数据到缓冲区 - byteArrayOutputStream.write(bytes, 0, bytes.length); - if (byteArrayOutputStream.size() >= 3) { - byte[] temp = byteArrayOutputStream.toByteArray(); - int find = ByteUtils.findBytes(temp, new byte[]{(byte) 0xF5, (byte) 0xAA, (byte) 0xAA}, 0); - if (find >= 0) { - // 3. 标志存在,则继续读取长度 - if (byteArrayOutputStream.size() >= find + 4) { - int length = ByteUtils.byte1ToInt(byteArrayOutputStream.toByteArray()[find + 3]); - if (byteArrayOutputStream.size() >= find + 4 + length) { - ByteArrayOutputStream tmp = new ByteArrayOutputStream(); - // 4. 根据长度读取包的内容 - for (int i = find; i < find + 4 + length; i++) { - // 5. 截取包的内容,向外抛出,处理,接着读取下一个包 - tmp.write(temp[i]); - } - //CRC 校验 - byte[] datas = tmp.toByteArray(); - LogUtil.i(TAG, "RECEIVER DATA:", datas); - - try { - //处理 - doWith(datas); - } catch (Exception ex) { - LogUtil.i(TAG, "处理命令出错:", ex); - } - // 7. 剩余数据重新打包处理 - byteArrayOutputStream.reset(); - for (int i = find + 4 + length; i < temp.length; i++) { - byteArrayOutputStream.write(temp[i]); - } - } - } - } - } - } - }); - SDKProcessWork.getInstance().setInputStream(sunVoteInputStream); - BaseStationProcessWork.getInstance().start(); - RepeatMessageManager.getInstance().start(); - SDKProcessWork.getInstance().start(); - } - - @Override - public void onDestroy() { - unregisterReceiver(batteryLevelRcvr); - super.onDestroy(); - } - - private HandlerThread sendThread = null; - private HandlerThread receiverThread = null; - private Handler taskHandler = null; - private boolean receivering = true; - - - @Override - public IBinder onBind(Intent intent) { - return stub; - } - - private final ISunvoteApi.Stub stub = new ISunvoteApi.Stub() { - - }; - - private Runnable sendTask = new Runnable() { - @Override - public void run() { - // 从队列中取出待发送数据 - List sendList = XpadApiServiceInfoProxyManager.getInstance().getSendList(); - boolean isSend = false; - for (Packet p : sendList) { - if (p.needSend() && !isSend) {// 按照顺序发送 - p.addSendCount(); - sendPacket(p); - isSend = true; - } - if (p.needSend() && isSend && p.isSync()) {// 并行发送 - sleepTimes(50);// 模块不能发送太快 - p.addSendCount(); - sendPacket(p); - } - if (!p.needSend() && (p.getOnSendPacket() != null)) { - p.getOnSendPacket().onFail(p); - } - } - if (!isSend) { - LogUtil.i(TAG, "没有要提交的数据,检查是否有查询包发送"); - if (innerList.size() > 0) { - synchronized (innerList) { - for (Packet packet : innerList) { - sendPacket(packet); - sleepTimes(50); - } - } - } - } - - if (!isSend) {// 没有数据发送? 那就发送心跳吧 - LogUtil.i(TAG, "没有任何数据要发送,则发送心跳包"); - sendData(new HeartBeat((byte) batteryLevel, (byte) 0).toBytes()); - } - // 轮询下一次发送数据 - taskHandler.removeCallbacks(this); - taskHandler.postDelayed(this, 1000); - } - }; - - private void doWith(byte[] datas) { - onDataReceiver.onDataReceiver(datas); - switch (datas[4] & 0xFF) { - case Cons.CMD_CHECK_BASE_STATUS_RESPONSE: - checkBaseStatusResponse(datas); - break; - case Cons.CMD_VOTE_RESULT_SEND_RESPONSE: - voteResultSendResponse(datas); - break; - case Cons.CMD_FIRM_UPDATE_RESPONSE: - firmUpdateResponse(datas); - break; - - case Cons.CMD_BASE_STATUS_CHANGE: - baseStatusChange(datas); - break; - case Cons.CMD_VOTE_STATUS_CHANGE: - voteStatusChange(datas); - break; - case Cons.CMD_VOTE_SEND_SUCCESS_RESPONSE: - voteSendSuccessResponse(datas); - break; - - case Cons.CMD_UPLOAD_DATA_RESPONSE: - uploadDataResponse(datas); - break; - case Cons.CMD_TRANSPARENT_TRANSMISSION: - transparentTransmission(datas); - break; - case Cons.CMD_MULTI_PCKAGE_DOWNLOAD: - break; - case Cons.CMD_COM_COMMUNICATION_TEST_RESPONSE: - break; - - } - } - - private void transparentTransmission(byte[] datas) { - } - - private void uploadDataResponse(byte[] datas) { - } - - private void voteSendSuccessResponse(byte[] datas) { - responseChange(datas, 4, (byte) 0xF3); - int serialNo = datas[5] & 0xff; - Packet packet = XpadApiServiceInfoProxyManager.getInstance().findPacket(serialNo); - if (packet != null && packet.getOnSendPacket() != null) { - packet.getOnSendPacket().onSuccess(packet); - } - } - - private void sendInnerPacket(Packet packet) { - synchronized (innerList) { - for (Packet temp : innerList) { - if (temp.getSendNo() == packet.getSendNo()) { - return; - } - } - innerList.add(packet); - } - immediately(); - } - - public void immediately(){ - taskHandler.removeCallbacks(sendTask); - taskHandler.post(sendTask); - } - - private void voteStatusChange(byte[] datas) { - responseChange(datas, 4, (byte) 0xF2); - saveVoteInfo(datas); - } - - private void baseStatusChange(byte[] datas) { - responseChange(datas, 4, (byte) 0xF1); - saveBaseInfo(datas); - } - - private void firmUpdateResponse(byte[] datas) { - - } - - private void voteResultSendResponse(byte[] datas) { - // 下层模块收到了,说明不了什么,所以不干什么 - } - - private void checkBaseStatusResponse(byte[] datas) { - switch (datas[5] & 0xFF) { - case 1://当前工作模式和版本 - case 2://当前工作模式和版本 - saveModelInfo(datas); - break; - case 3: - saveBaseInfo(datas); - break; - case 4: - saveVoteInfo(datas); - break; - case 5: - case 6: - saveKeypadInfo(datas); - break; - case 7: - saveOnLineInfo(datas); - break; - case 8: - case 9: - saveKeypadInfo(datas); - break; - } - } - - private void saveOnLineInfo(byte[] datas) { - OnLineInfo info = new OnLineInfo(); - info.setOnLine(datas[6] & 0xff); - info.setIdMode(datas[7] & 0xff); - info.setChan(datas[8] & 0xff); - info.setRssi(datas[9] & 0xff); - info.setTx(datas[10] & 0xff); - info.setRx(datas[11] & 0xff); - info.setBaseId(datas[12] & 0xff); - info.setKeyId(((datas[13] & 0xff) << 8) | (datas[14] & 0xff)); - byte[] sn = Arrays.copyOfRange(datas, 15, 21); - info.setKeySn(ByteUtils.getKeySn(sn)); - XpadApiServiceInfoProxyManager.getInstance().setOnLineInfo(info); - } - - private void saveKeypadInfo(byte[] datas) { - KeypadInfo info = new KeypadInfo(); - info.setOk(datas[6] & 0xff); - info.setChan(datas[7] & 0xff); - info.setKeyId(((datas[8] & 0xff) << 8) | (datas[9] & 0xff)); - byte[] sn = Arrays.copyOfRange(datas, 10, 16); - info.setKeySn(ByteUtils.getKeySn(sn)); - byte[] mc = Arrays.copyOfRange(datas, 16, 19); - info.setMatchCode(new String(mc)); - XpadApiServiceInfoProxyManager.getInstance().setKeypadInfo(info); - } - - private void saveVoteInfo(byte[] datas) { - BaseVoteInfo info = new BaseVoteInfo(); - info.setBaseId(datas[1] & 0xff); - info.setNowT(datas[2] & 0xff << 8 | datas[3] & 0xff); - info.setDataPos(datas[4] & 0xff); - info.setMode(datas[5] & 0xff); - info.setModes(datas); - XpadApiServiceInfoProxyManager.getInstance().setBaseVoteInfo(info); - } - - /** - * 保存基础信标信息 - * - * @param data - */ - private void saveBaseInfo(byte[] data) { - BaseInfo info = new BaseInfo(); - info.setBaseId(data[5] & 0xff);// baseID - info.setIdMode(data[6] & 0xff); - info.setConfId(((data[7] & 0xff) << 8) | (data[8] & 0xff)); - info.setBillId(data[9] & 0xff); - info.setAuthCode((data[10] & 0xff) << 8 | (data[11] & 0xff)); - info.setLogin(data[12] & 0xff); - info.setReport(data[13] & 0xff); - info.setOffTime(data[14] & 0xff); - info.setAttrib(data[15] & 0xff); - info.setPageNo((data[16] & 0xff) << 8 | (data[17] & 0xff)); - byte[] bname = Arrays.copyOfRange(data, 16, 16 + 12); - info.setBaseName(new String(bname)); - XpadApiServiceInfoProxyManager.getInstance().setBaseInfo(info); - } - - private void saveModelInfo(byte[] datas) { - ModelInfo info = new ModelInfo(); - info.setMode(datas[6] & 0xff); - info.sethModel(datas[7] & 0xff); - info.setsVer((datas[8] & 0xff) + "." + (datas[9] & 0xff) + "." + (datas[10] & 0xff)); - XpadApiServiceInfoProxyManager.getInstance().setModelInfo(info); - } - - - private void responseChange(byte[] data, int pos, byte res) { - byte[] retData = Arrays.copyOf(data, data.length); - retData[pos] = res; - sendData(data); - } - - private void roundCRC(byte[] data) { - int crcValue = Crc16.getUnsignedShort(Crc16.crc16(data, data.length - 4 - 2)); - data[data.length - 2] = (byte) (crcValue >> 8); - data[data.length - 1] = (byte) (crcValue); - } - - public void sendPacket(Packet packet) { - sendData(packet.getDatas()); - } - - public void sendData(byte[] datas) { - roundCRC(datas); - onDataReceiver.onDataSender(datas); - try { - SDKProcessWork.getInstance().execute(datas,datas.length); - } catch (Exception e) { - LogUtil.e(TAG, e); - } - } - - private void sleepTimes(long times) { - try { - Thread.sleep(times); - } catch (Exception e) { - e.printStackTrace(); - } - } - - BroadcastReceiver batteryLevelRcvr = new BroadcastReceiver() { - - public void onReceive(Context context, Intent intent) { - if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { - int rawlevel = intent.getIntExtra("level", -1); - int scale = intent.getIntExtra("scale", -1); - int status = intent.getIntExtra("status", -1); - int health = intent.getIntExtra("health", -1); - int voltage = intent.getIntExtra("voltage", 0); - int level = -1; // percentage, or -1 for unknown - if (rawlevel >= 0 && scale > 0) { - level = (rawlevel * 100) / scale; - } - - float val = (float) voltage / 1000; - batteryLevel = (int) (val / 0.04); - - } - } - }; - - public void getKeypadParam() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - - mBuffer[4] = 0x70; - mBuffer[5] = 0x05; - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.GetKeypadParam); - sendInnerPacket(packet); - } - - public void getWorkMode() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x70; - mBuffer[5] = 0x01; - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.GetWorkModeNum); - sendInnerPacket(packet); - } - - public void setWorkMode(int iMode) { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x70; - mBuffer[5] = 0x02; - mBuffer[6] = (byte) iMode; - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.SetWorkModeNum); - sendInnerPacket(packet); - } - - public void getBaseStatus() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x70; - mBuffer[5] = 0x03; - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.BaseStatusNum); - sendInnerPacket(packet); - } - - public void getVoteStatus() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x70; - mBuffer[5] = 0x04; - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.VoteStatusNum); - sendInnerPacket(packet); - } - - public void execKeypadMatch(int iMode, int channal) { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x70; - mBuffer[5] = 0x08; - mBuffer[6] = (byte) iMode; - mBuffer[7] = (byte) channal; - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.ExecKeypadMatchNum); - sendInnerPacket(packet); - } - - public void comCommunicationTest(int sendn, int okn) { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x30; - mBuffer[5] = 0x0; - mBuffer[6] = 0x0; - mBuffer[7] = 7; - mBuffer[8] = (byte) sendn; - mBuffer[9] = (byte) okn; - mBuffer[10] = (byte) 0xAA; - - for (int i = 1; i < 17; i++) { - mBuffer[10 + i] = (byte) i; - } - - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.CommunicationTestMatchNum); - sendInnerPacket(packet); - } - - public void applyFileUpload(int length, String filename, byte anstype,byte index) { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = (byte) 0XFF;// 流水号 - mBuffer[6] = (byte) 0X01;// 流水号 - mBuffer[7] = (byte) 15;// MSGTYPE - mBuffer[8] = (byte) anstype;// ANSTYPE 添加5 文件上传指令 - mBuffer[9] = index;// 高位 - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.CommunicationTestMatchNum); - sendInnerPacket(packet); - } - - public void packetReceptionConfirmed(byte[] keyid, byte packid, byte packH, byte packtype) { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - - mBuffer[4] = (byte) 0xA0; - int keyId = XpadApiServiceInfoProxyManager.getInstance().getKeypadInfo().getKeyId(); - mBuffer[5] = (byte)((keyId >> 8) & 0xFF); - mBuffer[6] = (byte)((keyId) & 0xFF); - - mBuffer[7] = 3;//CMD 3 多包接收完毕应答 - mBuffer[8] = packtype;//PACKTYPE 多包类型 - mBuffer[9] = packid;//数据包标识码 - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.CommunicationTestMatchNum); - sendInnerPacket(packet); - } - - public void uploadFileData(byte[] keyid, byte packid, byte packH, byte packL, byte[] datas, byte packtype) { - uploadFileData(keyid, packid, packH, packL, datas, 0, datas.length, packtype); - } - - /** - * @param keyid 键盘编号 - * @param packid 包id - * @param packH 数据段id - * @param packL 数据片id - * @param datas 数据 - * @param offset 偏移位置 - * @param length 长度 - * @Auther Elvis - * 上传数据包(多包应答) - */ - public void uploadFileData(byte[] keyid, byte packid, byte packH, byte packL, byte[] datas, int offset, int length, byte packtype) { - LogUtil.i(TAG, "onMutilPacketData packid=" + packid + ",packH=" + packH + ",packL=" + packL + ",offset=" + offset); - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - - mBuffer[4] = (byte) 0xA0; - int keyId = XpadApiServiceInfoProxyManager.getInstance().getKeypadInfo().getKeyId(); - mBuffer[5] = (byte)((keyId >> 8) & 0xFF); - mBuffer[6] = (byte)((keyId) & 0xFF); - - mBuffer[7] = 2;//CMD 1 回应多包数据 - mBuffer[8] = packtype;//PACKTYPE 多包类型 - mBuffer[9] = packid;//数据包标识码 - mBuffer[10] = packH;//数据段编号 - mBuffer[11] = packL;//数据片编号 - for (int i = 0; i < length && i < 16 && i < datas.length - offset; i++) { - mBuffer[12 + i] = datas[offset + i]; - } - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.CommunicationTestMatchNum); - sendInnerPacket(packet); - } - - /** - * @param packid 包id - * 多包接收确认(多包接收应答) - */ - public void packetConfirmation(byte[] keyid, byte packid, byte packH, byte packL, byte[] names, byte packtype) { - LogUtil.i(TAG, "onMutilPacketRespone packid=" + packid + ",packH=" + packH + ",packL=" + packL + ",names=" + names); - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - - mBuffer[4] = (byte) 0xA0; - int keyId = XpadApiServiceInfoProxyManager.getInstance().getKeypadInfo().getKeyId(); - mBuffer[5] = (byte)((keyId >> 8) & 0xFF); - mBuffer[6] = (byte)((keyId) & 0xFF); - mBuffer[5] = keyid[0]; - mBuffer[6] = keyid[1]; - - mBuffer[7] = 1;//CMD 1 - mBuffer[8] = packtype;//PACKTYPE 多包类型 - mBuffer[9] = packid;//数据包标识码 - mBuffer[10] = packH; - mBuffer[11] = packL; - if (names != null) { - for (int i = 0; i < 14 && i < names.length; i++) { - mBuffer[12 + i] = names[i]; - } - } - - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.CommunicationTestMatchNum); - sendInnerPacket(packet); - } - - private void keepFirmMode() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 10; - - mBuffer[4] = 0x78; - mBuffer[5] = 0x02; - - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.CommunicationTestMatchNum); - sendInnerPacket(packet); - } - - private void eraseFlash(int fileLen) { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 10; - mBuffer[4] = 0x78; - mBuffer[5] = 0x03; - mBuffer[6] = 0; - mBuffer[7] = (byte) (fileLen / 1024); - - Packet packet = new Packet(); - packet.setDatas(mBuffer); - packet.setSendNo(Packet.CommunicationTestMatchNum); - sendInnerPacket(packet); - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BaseInfo.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BaseInfo.java deleted file mode 100644 index 31183ef..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BaseInfo.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -public class BaseInfo { - private int baseId;//基站编号 - private int idMode;//基站识别模式,1编号、2序列号 - private int confId;//会议资料UID编号,1-65535,高位字节在前 - private int billId;//议题编号 - private int pageNo; //议案页码 - private int authCode;//授权号,2字节,高位在前,0-0xFFFF - private int login;//登录申请模式(后台签到模式),是否需要IC卡、登录码( - private int report;//表决器报告状态模式和指定语言 - private int offTime;//自动关机时间 - private int attrib;//表决器特性:背光模式+蜂鸣器模式等等 - private String baseName; //基站名称,最多12字节 - - public int getBaseId() { - return baseId; - } - - public void setBaseId(int baseId) { - this.baseId = baseId; - } - - public int getIdMode() { - return idMode; - } - - public void setIdMode(int idMode) { - this.idMode = idMode; - } - - public int getConfId() { - return confId; - } - - public void setConfId(int confId) { - this.confId = confId; - } - - public int getBillId() { - return billId; - } - - public void setBillId(int billId) { - this.billId = billId; - } - - public int getPageNo() { - return pageNo; - } - - public void setPageNo(int pageNo) { - this.pageNo = pageNo; - } - - public int getAuthCode() { - return authCode; - } - - public void setAuthCode(int authCode) { - this.authCode = authCode; - } - - public int getLogin() { - return login; - } - - public void setLogin(int login) { - this.login = login; - } - - public int getReport() { - return report; - } - - public void setReport(int report) { - this.report = report; - } - - public int getOffTime() { - return offTime; - } - - public void setOffTime(int offTime) { - this.offTime = offTime; - } - - public int getAttrib() { - return attrib; - } - - public void setAttrib(int attrib) { - this.attrib = attrib; - } - - public String getBaseName() { - return baseName; - } - - public void setBaseName(String baseName) { - this.baseName = baseName; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BaseVoteInfo.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BaseVoteInfo.java deleted file mode 100644 index 091bc28..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BaseVoteInfo.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.listener.IModesVoteInfo; - -/** - * 字节 标识符 描述 - 1 CMD 0x72 投票信标变化 - 2 BADDH 基站编号,保证有效数据从第3字节开始,和查询指令相同 - 3,4 NOWT 时标值,2字节,高位在前 - 从投票启动开始的时间,用于表决器同步计时,20ms为单位,最大约21分钟,最大0xFFFF不自动变为0 - 5 DATAPOS 表决序号(结果记录序号) - 1-0xFF,值发生变化的时候,代表是新的一轮表决开始 - - 6 MODE 投票模式 - Bit7=1表示继续表决,表决器重新提交数据,用于系统恢复,表决器可继续输入或使用原先结果;=0 正常表决 - 低7位是表决模式: - 1-9是政务应用 10-19商务应用和教育 20-29多项和批次 30-39二维表评测 40-50管理类 - - 7-25 MODES 投票参数,具体和MODE有关,不同模式下参数意义不同 - - */ -public class BaseVoteInfo { - - private int baseId;//[1]基站编号 - private int nowT;//[2,3] - private int dataPos;//[4] - private int mode;// [5] 表决模式 - - private IModesVoteInfo modes; - - public int getBaseId() { - return baseId; - } - - public void setBaseId(int baseId) { - this.baseId = baseId; - } - - public int getNowT() { - return nowT; - } - - public void setNowT(int nowT) { - this.nowT = nowT; - } - - public int getDataPos() { - return dataPos; - } - - public void setDataPos(int dataPos) { - this.dataPos = dataPos; - } - - public int getMode() { - return mode; - } - - public void setMode(int mode) { - this.mode = mode; - } - - public IModesVoteInfo getModes() { - return modes; - } - - public void setModes(byte[] datas) { - this.modes = modes; - } - - -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BatchNumberVote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BatchNumberVote.java deleted file mode 100644 index 9251e87..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BatchNumberVote.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; - -import java.util.Arrays; - -/** - * 批次评分值结果 - */ -public class BatchNumberVote extends Vote { - - public static final int AnsType_BatchNumber = 23; - - private int personId; - private int projectId; - private String strNum; - - public BatchNumberVote(int personId, int projectId, String strNum) { - super(AnsType_BatchNumber); - this.personId = personId; - this.projectId = projectId; - this.strNum = strNum; - } - - public BatchNumberVote() { - super(AnsType_BatchNumber); - } - - public void setPersonId(int personId) { - this.personId = personId; - } - - public void setProjectId(int projectId) { - this.projectId = projectId; - } - - public void setStrNum(String strNum) { - this.strNum = strNum; - } - - @Override - public byte[] toBytes() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = SerialManager.getInstance().getSeq(); - mBuffer[6] = msgType; - mBuffer[7] = (byte) ansType; - mBuffer[8] = (byte)ok;// ALLOK - if (projectId != 0) { - mBuffer[9] = (byte) personId; - mBuffer[10] = (byte) projectId; - } else { - mBuffer[9] = (byte) (personId >> 8); - mBuffer[10] = (byte) (personId & 0xff); - } - byte[] val = util_encodeBCD(strNum.getBytes()); - System.arraycopy(val, 0, mBuffer, 11, 4); - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BatchSingleVote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BatchSingleVote.java deleted file mode 100644 index 4aa028f..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/BatchSingleVote.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; - -import java.util.Arrays; - -public class BatchSingleVote extends Vote{ - - public static final int AnsType_BatchSingle = 21 ; - - private int num; - private int val ; - - public BatchSingleVote(int num, int val) { - super(AnsType_BatchSingle); - this.num = num; - this.val = val; - } - - /** - * 不设计任何值,则为取消全部投票 - */ - public BatchSingleVote() { - super(AnsType_BatchSingle); - } - - public void setNum(int num) { - this.num = num; - } - - public void setVal(int val) { - this.val = val; - } - - @Override - public byte[] toBytes() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = (byte) SerialManager.getInstance().getSeq(); - mBuffer[6] = msgType; - mBuffer[7] = (byte) ansType; - mBuffer[8] = (byte)ok;// ALLOK - int pos = 9; - mBuffer[pos++] = (byte) (num >> 8); - mBuffer[pos++] = (byte) (num & 0xff); - mBuffer[pos++] = (byte) val; - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/HeartBeat.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/HeartBeat.java deleted file mode 100644 index 676f175..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/HeartBeat.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import java.util.Arrays; - -public class HeartBeat { - - private byte volt; - private byte keyinStatus; - - public HeartBeat(byte volt, byte keyinStatus) { - this.volt = volt; - this.keyinStatus = keyinStatus; - } - - public HeartBeat() { - } - - public void setKeyinStatus(byte keyinStatus) { - this.keyinStatus = keyinStatus; - } - - public void setVolt(byte volt) { - this.volt = volt; - } - - public byte[] toBytes(){ - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x70; - mBuffer[5] = 0x07; - mBuffer[6] = (byte) volt; - mBuffer[7] = (byte) keyinStatus; - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/KeypadInfo.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/KeypadInfo.java deleted file mode 100644 index 23d698a..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/KeypadInfo.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -public class KeypadInfo { - - private int cmd1;//8:match 9:config - private int ok; - private int chan; - private int keyId;//键盘编号,高位在前 - private String keySn;//6字节键盘序列号 - private String matchCode;//4字节配对码 - - public int getCmd1() { - return cmd1; - } - - public void setCmd1(int cmd1) { - this.cmd1 = cmd1; - } - - public int getOk() { - return ok; - } - - public void setOk(int ok) { - this.ok = ok; - } - - public int getChan() { - return chan; - } - - public void setChan(int chan) { - this.chan = chan; - } - - public int getKeyId() { - return keyId; - } - - public void setKeyId(int keyId) { - this.keyId = keyId; - } - - public String getKeySn() { - return keySn; - } - - public void setKeySn(String keySn) { - this.keySn = keySn; - } - - public String getMatchCode() { - return matchCode; - } - - public void setMatchCode(String matchCode) { - this.matchCode = matchCode; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/LoginInVote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/LoginInVote.java deleted file mode 100644 index 2cb36ad..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/LoginInVote.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; - -import java.util.Arrays; - -public class LoginInVote extends Vote{ - - public static final int AnsType_LoginIn = 16 ; - - private String info ; - - public LoginInVote(String info) { - super(AnsType_LoginIn); - this.info = info; - } - - public void setInfo(String info) { - this.info = info; - } - - public byte[] toBytes(){ - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - - mBuffer[4] = 0x73; - mBuffer[5] = SerialManager.getInstance().getSeq(); - - mBuffer[6] = (byte)msgType; - mBuffer[7] = (byte) ansType; - mBuffer[8] = 3;//3 签到信息按BCD码格式 - byte[] val = util_encodeBCD(info.getBytes()); - System.arraycopy(val, 0, mBuffer, 9, 9); - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/ModelInfo.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/ModelInfo.java deleted file mode 100644 index ee5a087..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/ModelInfo.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -public class ModelInfo { - private int mode;//模块当前主从模式 1 基站模式(主) 2 键盘模式(从) - private int hModel;//硬件型号,数字 - private String sVer;//固件版本,3位数字,例如 0.1.0 - - public int getMode() { - return mode; - } - - public void setMode(int mode) { - this.mode = mode; - } - - public int gethModel() { - return hModel; - } - - public void sethModel(int hModel) { - this.hModel = hModel; - } - - public String getsVer() { - return sVer; - } - - public void setsVer(String sVer) { - this.sVer = sVer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/NumberVote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/NumberVote.java deleted file mode 100644 index 3f0fbfa..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/NumberVote.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; - -import java.util.Arrays; - -public class NumberVote extends Vote{ - - public static final int AnsType_Number = 3; - private String info; - - public void setInfo(String info) { - this.info = info; - } - - public NumberVote(String info) { - super(AnsType_Number); - this.info = info; - } - - public NumberVote() { - super(AnsType_Number); - } - - public byte[] toBytes(){ - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = SerialManager.getInstance().getSeq(); - mBuffer[6] = (byte)msgType; - mBuffer[7] = (byte) ansType; - byte[] val = util_encodeBCD(info.getBytes()); - System.arraycopy(val, 0, mBuffer, 8, 8); - - return mBuffer; - } - - -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/OnLineInfo.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/OnLineInfo.java deleted file mode 100644 index 4e8e9ad..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/OnLineInfo.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -public class OnLineInfo { - private int onLine; //键盘是否在线 1 在线 2 离线 - private int idMode;//基站的识别模式 - private int chan; //当前频点号 - private int rssi; //接收到基站的信号强度RSSI值,负数,越小表示信号越大 - private int tx; //1表示刚才1秒内有提交数据过 0 表示没有 - private int rx; //1 表示刚才1秒内收到过基站的投票指令(特指投票中) 0 表示没有 - private int baseId; - private int keyId; - private String keySn; - private int comError=0; - - public int getOnLine() { - return onLine; - } - - public void setOnLine(int onLine) { - this.onLine = onLine; - } - - public int getIdMode() { - return idMode; - } - - public void setIdMode(int idMode) { - this.idMode = idMode; - } - - public int getChan() { - return chan; - } - - public void setChan(int chan) { - this.chan = chan; - } - - public int getRssi() { - return rssi; - } - - public void setRssi(int rssi) { - this.rssi = rssi; - } - - public int getTx() { - return tx; - } - - public void setTx(int tx) { - this.tx = tx; - } - - public int getRx() { - return rx; - } - - public void setRx(int rx) { - this.rx = rx; - } - - public int getBaseId() { - return baseId; - } - - public void setBaseId(int baseId) { - this.baseId = baseId; - } - - public int getKeyId() { - return keyId; - } - - public void setKeyId(int keyId) { - this.keyId = keyId; - } - - public String getKeySn() { - return keySn; - } - - public void setKeySn(String keySn) { - this.keySn = keySn; - } - - public int getComError() { - return comError; - } - - public void setComError(int comError) { - this.comError = comError; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/Packet.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/Packet.java deleted file mode 100644 index b2c84c7..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/Packet.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.listener.OnSendPacket; - -public class Packet { - - public static final int OVER_TIME_COUNTS = 6; - - public static final int BaseStatusNum = 1 ; - public static final int VoteStatusNum = 2 ; - public static final int ExecKeypadMatchNum = 6 ; - public static final int GetWorkModeNum = 11 ; - public static final int SetWorkModeNum = 12 ; - public static final int GetKeypadParam = 13 ; - - public static final int CommunicationTestMatchNum = 30 ; - - private int sendNo ; - private byte[] datas; - private int sendCount = 0 ; - private boolean isSync = false; - - private OnSendPacket onSendPacket; - - public int getSendNo() { - return sendNo; - } - - public void setSendNo(int sendNo) { - this.sendNo = sendNo; - } - - public byte[] getDatas() { - return datas; - } - - public void setDatas(byte[] datas) { - this.datas = datas; - } - - public OnSendPacket getOnSendPacket() { - return onSendPacket; - } - - public void setOnSendPacket(OnSendPacket onSendPacket) { - this.onSendPacket = onSendPacket; - } - - public void addSendCount(){ - sendCount ++ ; - } - - public boolean needSend(){ - if(sendCount < OVER_TIME_COUNTS){ - return true; - } - return false; - } - - public boolean isSync() { - return isSync; - } - - public void setSync(boolean sync) { - isSync = sync; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SelectOtherVote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SelectOtherVote.java deleted file mode 100644 index f8a409c..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SelectOtherVote.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; -import com.sunvote.xpadapi.service.logic.XpadApiServiceInfoProxyManager; -import com.sunvote.xpadapi.util.LogUtil; - -import java.util.Arrays; - -public class SelectOtherVote extends Vote { - - public static final int AnsType_SelectOther = 26; - - private int num; - private String info; - - public SelectOtherVote(int num, String info) { - super(AnsType_SelectOther); - this.num = num; - this.info = info; - } - - public SelectOtherVote() { - super(AnsType_SelectOther); - } - - public void setNum(int num) { - this.num = num; - } - - public void setInfo(String info) { - this.info = info; - } - - @Override - public byte[] toBytes() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = SerialManager.getInstance().getSeq();// 流水号 - mBuffer[6] = (byte)msgType; - mBuffer[7] = (byte) ansType; - mBuffer[8] = (byte) ok;// ALLOK - int pos = 9; - mBuffer[pos++] = (byte) (num >> 8); - mBuffer[pos++] = (byte) num; - mBuffer[pos++] = 0;// slot - try { - byte[] name = info.getBytes(XpadApiServiceInfoProxyManager.getInstance().getCharset()); - System.arraycopy(name, 0, mBuffer, pos, name.length > 16 ? 16 : name.length); - } catch (Exception e) { - LogUtil.e(XpadApiServiceInfoProxyManager.TAG, "SelectOtherVote", e); - } - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SelectVote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SelectVote.java deleted file mode 100644 index bc7e5b4..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SelectVote.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; - -import java.util.Arrays; - -public class SelectVote extends Vote{ - - public final static int SELECT_VOTE_TYPE = 2; - - private int content; - private int time; - - public SelectVote(int content, int time) { - super(SELECT_VOTE_TYPE); - this.content = content; - this.time = time; - } - - public SelectVote() { - super(SELECT_VOTE_TYPE); - } - public void setContent(int content) { - this.content = content; - } - - public void setTime(int time) { - this.time = time; - } - - public byte[] toBytes(){ - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = SerialManager.getInstance().getSeq(); - mBuffer[6] = msgType; - mBuffer[7] = (byte) ansType; - mBuffer[8] = (byte) ((time >> 8) & 0xff);// 原来的计算居然是这样 没懂 - mBuffer[9] = (byte) (time & 0xff); - mBuffer[10] = (byte) ((time >> 8) & 0xff); - mBuffer[11] = (byte) (time & 0xff); - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/ServiceTypeVote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/ServiceTypeVote.java deleted file mode 100644 index 4dd291d..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/ServiceTypeVote.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; - -import java.util.Arrays; - -/** - * 服务申请 - */ -public class ServiceTypeVote extends Vote { - - public static final int AnsType_Service = 33; - - private int serviceType = 0; - - public ServiceTypeVote(int serviceType) { - super(AnsType_Service); - this.serviceType = serviceType; - } - - public ServiceTypeVote() { - super(AnsType_Service); - } - - public void setServiceType(int serviceType) { - this.serviceType = serviceType; - } - - @Override - public byte[] toBytes() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = SerialManager.getInstance().getSeq();// 流水号 - mBuffer[6] = msgType; - mBuffer[7] = (byte) ansType; - mBuffer[8] = 4; - mBuffer[9] = (byte) serviceType; - mBuffer[10] = mBuffer[5]; - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SingleVote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SingleVote.java deleted file mode 100644 index 77e755f..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/SingleVote.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; - -import java.util.Arrays; - -public class SingleVote extends Vote { - - private int info; - - public SingleVote(int info) { - super(1); - this.info = info; - } - - public SingleVote() { - super(1); - } - - public void setInfo(int info) { - this.info = info; - } - - public byte[] toBytes() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = SerialManager.getInstance().getSeq(); - mBuffer[6] = msgType; - mBuffer[7] = (byte) ansType; - mBuffer[8] = (byte) info; - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/Vote.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/Vote.java deleted file mode 100644 index 7458402..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/bean/Vote.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.sunvote.xpadapi.service.bean; - -import com.sunvote.xpadapi.service.logic.SerialManager; - -import java.util.Arrays; - -public class Vote { - - protected int ansType = 16; - protected static byte msgType = 1;// MSGTYPE 1:ID mode, 2:SN - private String info; - protected int ok; - - public Vote(int ansType) { - this.ansType = ansType; - } - - public static void setMsgTypeIdModel() { - msgType = 1; - } - - public static void setMsgTypeSnModel() { - msgType = 2; - } - - public void setInfo(String info) { - this.info = info; - } - - public void setOk(int ok) { - this.ok = ok; - } - - /** - * 把字符串形式转换为字节形式 - */ - protected byte[] util_encodeBCD(byte[] cs) { - byte[] rs = new byte[17]; - Arrays.fill(rs, (byte) 0xff);// - - int len = cs.length < 16 ? cs.length : 16; - int io = 0; - - for (int i = 0; i < len; i += 2) { - int n = encodeBCD(cs[i]); - n <<= 4; - if (i + 1 == cs.length) { - rs[io++] = (byte) (n | 0xf); - break; - } - - n |= encodeBCD(cs[i + 1]); - if (n < 0) { - break; - } - rs[io++] = (byte) n; - } - rs[++io] = 0; - return rs; - } - - protected int encodeBCD(byte c) { - if (c >= 'a' && c <= 'f') { - return 10 + (c - 'a'); - } else if (c >= '0' && c <= '9') { - return c - '0'; - } else if (c >= 'A' && c <= 'F') { - return 10 + (c - 'A'); - } else if (c == '.') { - return 0xE; - } - return -1; - } - - public byte[] toBytes() { - byte[] mBuffer = new byte[0x1F + 4]; - Arrays.fill(mBuffer, (byte) 0x0); - mBuffer[0] = (byte) 0xF5; - mBuffer[1] = (byte) 0xAA; - mBuffer[2] = (byte) 0xAA; - mBuffer[3] = (byte) 0x1F; - mBuffer[4] = 0x73; - mBuffer[5] = SerialManager.getInstance().getSeq(); - mBuffer[6] = msgType; - mBuffer[7] = (byte) ansType; - mBuffer[8] = (byte)ok; - int pos = 9; - if(info != null) { - String[] item = info.split(":"); - if (item.length > 1) { - int num = Integer.parseInt(item[0]); - String val = item[1]; - mBuffer[pos++] = (byte) (num >> 8); - mBuffer[pos++] = (byte) num; - mBuffer[pos++] = 0;// slot - try { - byte[] name = val.getBytes("GB2312"); - System.arraycopy(name, 0, mBuffer, pos, name.length > 16 ? 16 : name.length); - } catch (Exception e) { - } - } - } - return mBuffer; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/AbsDownloadProcess.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/AbsDownloadProcess.java deleted file mode 100644 index 41614fb..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/AbsDownloadProcess.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -import java.io.File; -import java.io.IOException; - -/** - * Created by Elvis on 2018/3/20 11:18 - * Email:Eluis@psunsky.com - * 版权所有:长沙中天电子设计开发有限公司 - * Description: 人大通用版XPadAppRendaMac - */ - -public abstract class AbsDownloadProcess { - - private static String foldPath = "/sdcard/Sunvote/download/"; - - protected static String fileName = "default.obj"; - - private long length ; - private long curComplete = 0 ; - - private static File file ; - - public File getFile() { - if(file == null){ - curComplete = 0 ; - File folder = new File(foldPath); - if(!folder.exists()){ - folder.mkdirs(); - } - if(fileName == null || "".equals(fileName.trim())){ - fileName = "default.obj" ; - } - file = new File(foldPath , fileName); - file.deleteOnExit(); - if(!file.exists()){ - try { - file.createNewFile(); - } catch (IOException e) { - onDownloadError(e); - } - } - } - return file; - } - - protected long getLength() { - return length; - } - - public String getFoldPath() { - return foldPath; - } - - protected void setLength(long length) { - this.length = length; - curComplete = 0 ; - } - - public void setFileName(String fileName) { - if(!(fileName == null || "".equals(fileName.trim()))) { - this.fileName = fileName; - file = null; - } - } - - protected String getFileName() { - return fileName; - } - - public void setFoldPath(String foldPath) { - this.foldPath = foldPath; - } - - protected void onStartDownload(){ - onStartDownload(getFile(),getLength()); - } - - public abstract void onStartDownload(File file,long length); - - protected void onDownloadAddProcess(int curPack) { - curComplete += curPack; - double result = 0; - if(curComplete <= length){ - result = (double)curComplete / length ; - }else{ - result = 1; - } - - try{ - onDownloadProcess(result); - }catch (Exception ex){ - ex.printStackTrace(); - } - try{ - int ri = (int)(result * 100); - onDownloadProcess(ri + "%"); - }catch (Exception ex){ - ex.printStackTrace(); - } - } - - public abstract void onDownloadProcess(double process); - - public abstract void onDownloadProcess(String process); - - protected void onStopDownload(){ - onStopDownload(getFile()); - } - - public abstract void onStopDownload(File file); - - public abstract void onDownloadError(Exception e); - -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/BaseInfoChanageListener.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/BaseInfoChanageListener.java deleted file mode 100644 index 883d69a..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/BaseInfoChanageListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -import com.sunvote.xpadapi.service.bean.BaseInfo; - -public interface BaseInfoChanageListener { - - void onBaseInfoChange(BaseInfo newBaseInfo); -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/BaseVoteInfoChanageListener.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/BaseVoteInfoChanageListener.java deleted file mode 100644 index 9ab110a..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/BaseVoteInfoChanageListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -import com.sunvote.xpadapi.service.bean.BaseVoteInfo; - -public interface BaseVoteInfoChanageListener { - - void onBaseVoteInfoListener(BaseVoteInfo newBaseVoteInfo); -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/IModesVoteInfo.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/IModesVoteInfo.java deleted file mode 100644 index 78337a2..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/IModesVoteInfo.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -public interface IModesVoteInfo { - - -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/IUploadListener.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/IUploadListener.java deleted file mode 100644 index 7244f83..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/IUploadListener.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -/** - * Created by Elvis on 2018/3/22 13:43 - * Email:Eluis@psunsky.com - * 版权所有:长沙中天电子设计开发有限公司 - * Description: 人大通用版XPadAppRendaMac - */ -public interface IUploadListener { - - public void onUploadStart(); - - public void onUploadProcess(double process); - - public void onUploadStop(); - - public void onFail(); -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/KeyPadinfoChanageListener.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/KeyPadinfoChanageListener.java deleted file mode 100644 index e3426f4..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/KeyPadinfoChanageListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -import com.sunvote.xpadapi.service.bean.KeypadInfo; - -public interface KeyPadinfoChanageListener { - - void onKeyPadinfoChanage(KeypadInfo newKeypadInfo); -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/ModelInfoChanageListener.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/ModelInfoChanageListener.java deleted file mode 100644 index 9c2c029..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/ModelInfoChanageListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -import com.sunvote.xpadapi.service.bean.ModelInfo; - -public interface ModelInfoChanageListener { - - void onModelInfoChanage(ModelInfo newModelInfo); -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnDataReceiver.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnDataReceiver.java deleted file mode 100644 index 9596a6f..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnDataReceiver.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -public interface OnDataReceiver { - - /** - * 收到信息 - * @param datas - */ - void onDataReceiver(byte[] datas); - - /** - * 发出的信息 - * @param datas - */ - void onDataSender(byte[] datas); - -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnSendPacket.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnSendPacket.java deleted file mode 100644 index 398b307..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnSendPacket.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -import com.sunvote.xpadapi.service.bean.Packet; - -public interface OnSendPacket { - - void onSuccess(Packet packet); - - void onFail(Packet packet); -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnSender.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnSender.java deleted file mode 100644 index 4eaa0b9..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnSender.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -public interface OnSender { - - void onSuccess(T t); - - void onFail(T t); -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnlineInfoChanageListener.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnlineInfoChanageListener.java deleted file mode 100644 index 7ac293a..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/listener/OnlineInfoChanageListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.sunvote.xpadapi.service.listener; - -import com.sunvote.xpadapi.service.bean.OnLineInfo; - -public interface OnlineInfoChanageListener { - - void onOnlineInfoChanage(OnLineInfo newOnlineInfo); -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFFileDownloadModule.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFFileDownloadModule.java deleted file mode 100644 index d4671be..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFFileDownloadModule.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.sunvote.xpadapi.service.logic; - -import android.os.Handler; -import android.os.Looper; - -import com.sunvote.util.LogUtil; -import com.sunvote.xpadapi.service.listener.AbsDownloadProcess; - -import java.io.File; - -/** - * Created by Elvis on 2018/3/20 11:16 - * Email:Eluis@psunsky.com - * 版权所有:长沙中天电子设计开发有限公司 - * Description: 文件下载模块 - */ -public class RFFileDownloadModule { - - private RFFileDownloadModule(){ - handler = new Handler(Looper.getMainLooper()); - } - private Handler handler ; - private long overtime = 15 * 1000 ; - private static RFFileDownloadModule instance = new RFFileDownloadModule(); - - public static RFFileDownloadModule getInstance() { - return instance; - } - - private AbsDownloadProcess downloadProcess; - private AbsDownloadProcess tdownloadProcess = new AbsDownloadProcess() { - - private boolean start = false; - private double process = 0 ; - private Runnable runnable = new Runnable() { - @Override - public void run() { - onDownloadError(new Exception("overtime")); - } - }; - - @Override - public void onStartDownload(File file, long length) { - start = true; - process = 0; - LogUtil.i("onStartDownload", file.getName() + "," + length); - if(downloadProcess != null){ - downloadProcess.onStartDownload(file,length); - } - handler.removeCallbacks(runnable); - handler.postDelayed(runnable,overtime); - } - - @Override - public void onDownloadProcess(double process) { - this.process = process; - LogUtil.i("onDownloadProcess", "process," + process); - if(downloadProcess != null && start){ - downloadProcess.onDownloadProcess(process); - } - handler.removeCallbacks(runnable); - handler.postDelayed(runnable,overtime); - } - - @Override - public void onDownloadProcess(String process) { - LogUtil.i("onDownloadProcess", "process," + process); - if(downloadProcess != null && start){ - downloadProcess.onDownloadProcess(process); - } - handler.removeCallbacks(runnable); - handler.postDelayed(runnable,overtime); - } - - @Override - public void onStopDownload(File file) { - LogUtil.i("onStopDownload", "process," + file.getName()); - if(downloadProcess != null && start){ - if(process >= 1.0){ - downloadProcess.onStopDownload(file); - }else{ - downloadProcess.onDownloadError(new Exception("file download error")); - } - } - start = false; - handler.removeCallbacks(runnable); - file.deleteOnExit(); - } - - @Override - public void onDownloadError(Exception e) { - LogUtil.i("onStopDownload", "error", e); - if(downloadProcess != null && start){ - downloadProcess.onDownloadError(e); - } - start = false; - handler.removeCallbacks(runnable); - } - }; - - public void setOvertime(long overtime) { - if(overtime > 0){ - this.overtime = overtime; - } - } - - public synchronized void registerDownloadProcess(AbsDownloadProcess downloadProcess){ - this.downloadProcess = downloadProcess ; - } - - public synchronized void unRegisterDownloadProcess(AbsDownloadProcess downloadProcess){ - this.downloadProcess = null; - } - - protected synchronized AbsDownloadProcess getDownloadProcess() { - - return tdownloadProcess; - } - - -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFFileUploadModule.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFFileUploadModule.java deleted file mode 100644 index 9e35e11..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFFileUploadModule.java +++ /dev/null @@ -1,358 +0,0 @@ -package com.sunvote.xpadapi.service.logic; - -import android.os.Handler; -import android.os.HandlerThread; - -import com.sunvote.util.LogUtil; -import com.sunvote.xpadapi.service.listener.IUploadListener; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.UnsupportedEncodingException; - -/** - * Created by Elvis on 2018/3/21 16:13 - * Email:Eluis@psunsky.com - * 版权所有:长沙中天电子设计开发有限公司 - * Description: 文件上传模块 - */ -public class RFFileUploadModule { - - public static final byte PACKTYPE = 5 ; - public static final int SLEEP_TIME = 25 ; - public static byte index = 0 ; - private RFFileUploadModule(){ - handlerThread = new HandlerThread(RFFileUploadModule.class.getSimpleName()); - handlerThread.start(); - handler = new Handler(handlerThread.getLooper()); - } - - private static RFFileUploadModule instance ; - - public static RFFileUploadModule getInstance() { - if(instance == null){ - synchronized (RFFileUploadModule.class){ - if(instance == null){ - instance = new RFFileUploadModule(); - } - } - } - return instance; - } - - private IUploadListener uploadListener = new IUploadListener() { - @Override - public void onUploadStart() { - System.out.println("onUploadStart"); - } - - @Override - public void onUploadProcess(double process) { - System.out.println("onUploadProcess:" + process); - } - - @Override - public void onUploadStop() { - System.out.println("onUploadStop"); - } - - @Override - public void onFail() { - System.out.println("onFail"); - } - }; - - - private String filename; - private byte[] datas = new byte[1024]; - private int length = 1024; - private HandlerThread handlerThread ; - private Handler handler ; - private byte[] keyid = new byte[2]; - private Runnable task; - private int packTotal ; - private boolean isStop = false ; - - /** - * 文件名不能超过16个字符(中文不能超过8个),超过16个字符将会出现截断。 - * 文件长度不能超过65535个字节 - * @param file 文件 - * @return 是否成功发起上传 - */ - public boolean uploadFile(File file){ - LogUtil.i("RFFileUploadModule","uploadFile" + file); - if(file != null){ - length = (int)file.length(); - filename = file.getName(); - datas = new byte[length+4]; - FileInputStream fis = null ; - try { - fis = new FileInputStream(file); - int start = 0 ; - // 把文件数据读入字节数组。 - while(start < length){ - int ret = fis.read(datas,start,length-start); - if(ret < 0){ - break; - } - start += ret ; - } - datas[length] = 0x13 ; - datas[length + 1] = 0x0 ; - datas[length + 2] = 0x10 ; - datas[length + 3] = 0x0 ; - - if(start >= length){ - task = new A0(filename,length); - handler.removeCallbacks(task); - handler.post(task); - return true; - } - - } catch (Exception e) { - e.printStackTrace(); - }finally { - if(fis != null){ - try { - fis.close(); - } catch (IOException e) { - e.printStackTrace(); - } - fis = null; - } - } - } - return false; - } - - public void setKeyid(byte[] keyid) { - setKeyid(keyid,0); - } - public void setKeyid(byte[] keyid,int start) { - this.keyid[0] = keyid[start]; - this.keyid[1] = keyid[start+1]; - } - - public void onUploadFile(byte data, byte[] keyid, byte packid, byte packH, byte[] packLs) { - if (data == 1) { - setKeyid(keyid); - packetConfirmation(packid); - } - if (data == 2) { - uploadData(packid, packH, packLs); - } - if (data == 3) { - packetReceptionConfirmed(packid, packH); - } - } - - public void uploadData(byte packid, byte packH, byte[] packLs){ - System.out.println("uploadData"); - handler.removeCallbacks(task); - if(task instanceof A2){ - ((A2)task).setStop(true); - } - task = new A2(keyid,packid,packH,datas,packLs); - handler.post(task); - if(uploadListener != null){ - double process = 0 ; - if(packTotal > 0){ - int count = 0 ; - int sen = (packLs[1] & 0xFF) * 256 + (packLs[0] & 0XFF); - for(int i = 0 ; i < 16 ; i++){ - if((sen & (1 << i)) == 0){ - count ++ ; - } - } - int been = packH * 16 + count ; - if(been > packTotal){ - been = packTotal ; - } - process = (double)(been) / packTotal ; - } - uploadListener.onUploadProcess(process); - } - } - - public void packetConfirmation(byte packid){ - System.out.println("packetConfirmation"); - handler.removeCallbacks(task); - byte[] names = null; - if(filename != null){ - try { - names = filename.getBytes("GB2312"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - task = new A1(keyid,(byte)((length + 4 ) / 65535), (byte)(((length + 4) % 65535) / 256),(byte)((length + 4) % 256),names); - handler.post(task); - } - - public void packetReceptionConfirmed(byte packid,byte packH){ - System.out.println("packetReceptionConfirmed"); - handler.removeCallbacks(task); - task = new A3(keyid,packid,packH); - handler.post(task); - } - - public boolean uploadFile(byte[] datas){ - System.out.println("uploadFile" + datas); - if(datas != null){ - length = datas.length ; - filename = null ; - this.datas = new byte[length + 4]; - System.arraycopy(datas,0,this.datas,0,length); - datas[length] = 0x13 ; - datas[length + 1] = 0x0 ; - datas[length + 2] = 0x10 ; - datas[length + 3] = 0x0 ; - task = new A0(filename,length); - handler.removeCallbacks(task); - handler.post(task); - return true; - } - return false; - } - - - public void setUploadListener(IUploadListener uploadListener) { - this.uploadListener = uploadListener; - } - - class A0 implements Runnable{ - private int length ; - private String filename; - private int times ; - public A0(String filename,int length){ - this.length = length ; - this.filename = filename; - packTotal = length / 16 + 1; - times = 0 ; - index++; - } - - @Override - public void run() { - LogUtil.i("RFFileUploadModule","A0 run"); - XpadApiServiceInfoProxyManager.getInstance().getService().applyFileUpload(this.length,this.filename,PACKTYPE,index); - times ++ ; - if(task != null && times < 5){ - handler.removeCallbacks(task); - handler.postDelayed(task,5000); - } - } - } - - class A1 implements Runnable{ - - private byte[] keyid; - private byte packid ; - private byte packH ; - private byte packL ; - private byte[] names ; - private int times ; - - public A1(byte[] keyid, byte packid,byte packH,byte packL,byte[] names) { - LogUtil.i("RFFileUploadModule","A1"); - this.keyid = keyid; - this.packid = packid; - this.packH = packH ; - this.packL = packL ; - this.names = names ; - times = 0 ; - } - - @Override - public void run() { - LogUtil.i("RFFileUploadModule","A1 run"); - XpadApiServiceInfoProxyManager.getInstance().getService().packetConfirmation(this.keyid,this.packid,this.packH,this.packL,this.names,PACKTYPE); - times ++ ; - if(task != null && times < 5){ - handler.removeCallbacks(task); - handler.postDelayed(task,5000); - } - if(uploadListener != null){ - uploadListener.onUploadStart(); - isStop = false; - } - } - } - - class A2 implements Runnable{ - private byte[] keyid; - private byte packid; - private byte packH; - private byte[] datas ; - private byte[] packLs; - private int times ; - private boolean stop = false; - - public void setStop(boolean stop) { - this.stop = stop; - } - - public A2(byte[] keyid, byte packid, byte packH, byte[] datas, byte[] packLs) { - LogUtil.i("RFFileUploadModule","A2"); - this.keyid = keyid; - this.packid = packid; - this.packH = packH; - this.datas = datas; - this.packLs = packLs; - times = 0 ; - } - - @Override - public void run() { - LogUtil.i("RFFileUploadModule","A2 run"); - int packLsi = (packLs[1] & 0xFF) * 256 + (packLs[0] & 0xFF); - int offset = 0 ; - int length = 16; - System.out.println("packLsi:" + packLsi); - for(byte packL = 0 ;packL < 16 && !stop ;packL ++) { - if((packLsi & (1 << packL)) != 0){ - offset = ((packid * 65535) + (packH) * 256 + 16 * (packL)) & 0xFFFF; - XpadApiServiceInfoProxyManager.getInstance().getService().uploadFileData(this.keyid, this.packid, this.packH, (byte)(packL ), this.datas, offset, length,PACKTYPE); - // need sleep ???? - try{ - Thread.sleep(SLEEP_TIME); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - times ++ ; - if(task != null && times < 5){ - handler.removeCallbacks(task); - handler.postDelayed(task,5000); - } - } - } - - class A3 implements Runnable{ - private byte[] keyid; - private byte packid ; - private byte packH; - private int times ; - - public A3(byte[] keyid, byte packid, byte packH) { - LogUtil.i("RFFileUploadModule","A3"); - this.keyid = keyid; - this.packid = packid; - this.packH = packH; - times = 0 ; - } - - @Override - public void run() { - LogUtil.i("RFFileUploadModule","A3 run"); - XpadApiServiceInfoProxyManager.getInstance().getService().packetReceptionConfirmed(this.keyid,this.packid,this.packH,PACKTYPE); - if(uploadListener != null && !isStop){ - isStop = true; - uploadListener.onUploadStop(); - } - } - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFMessageUploadModule.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFMessageUploadModule.java deleted file mode 100644 index ea99227..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/RFMessageUploadModule.java +++ /dev/null @@ -1,301 +0,0 @@ -package com.sunvote.xpadapi.service.logic; - -import android.os.Handler; -import android.os.HandlerThread; - -import java.io.UnsupportedEncodingException; - -/** - * Created by Elvis on 2018/3/27 9:48 - * Email:Eluis@psunsky.com - * 版权所有:长沙中天电子设计开发有限公司 - * Description: 人大通用版 - * 短消息上传模块 - */ -public class RFMessageUploadModule { - - public static final byte PACKTYPE = 3 ; - private static RFMessageUploadModule instance ; - - private IUploadListener uploadListener ; - - private String filename; - private byte[] datas = "test message".getBytes(); - private int length = 1024; - private HandlerThread handlerThread ; - private Handler handler ; - private byte[] keyid; - private Runnable task; - private int packTotal ; - private boolean stop = false; - - private RFMessageUploadModule(){ - handlerThread = new HandlerThread(RFMessageUploadModule.class.getSimpleName()); - handlerThread.start(); - handler = new Handler(handlerThread.getLooper()); - } - - public static RFMessageUploadModule getInstance() { - if(instance == null){ - instance = new RFMessageUploadModule(); - } - return instance; - } - - public void setMessageContent(byte[] messageContent) { - this.datas = messageContent; - uploadMsgData(datas); - removeTask(); - } - - public void setMessageContent(String message) { - try { - this.datas = message.getBytes("GB2312"); - uploadMsgData(datas); - removeTask(); - handler.removeCallbacks(failCall); - handler.postDelayed(failCall,10000); - } catch (Exception e) { - e.printStackTrace(); - } - } - - private boolean uploadMsgData(byte[] ds){ - System.out.println("uploadMsgData" + ds); - if(ds != null){ - length = ds.length ; - filename = null ; - this.datas = new byte[length ]; - System.arraycopy(ds,0,this.datas,0,length); -// this.datas[length] = 0x13 ; -// this.datas[length + 1] = 0x0 ; -// this.datas[length + 2] = 0x10 ; -// this.datas[length + 3] = 0x0 ; - task = new A0(filename,length); - handler.removeCallbacks(task); - handler.post(task); - return true; - } - return false; - } - - - public void setKeyid(byte[] keyid) { - this.keyid = keyid; - } - - public void uploadData(byte packid, byte packH, byte[] packLs){ - System.out.println("uploadData"); - handler.removeCallbacks(task); - task = new A2(keyid,packid,packH,datas,packLs); - handler.post(task); - if(uploadListener != null){ - double process = 0 ; - if(packTotal > 0){ - int count = 0 ; - int sen = (packLs[1] & 0xFF) * 256 + (packLs[0] & 0XFF); - for(int i = 0 ; i < 16 ; i++){ - if((sen & (1 << i)) != 0){ - count ++ ; - } - } - process = (double)(packH * 16 + count) / packTotal ; - } - uploadListener.onUploadProcess(process); - } - } - - public void packetConfirmation(byte packid){ - System.out.println("packetConfirmation"); - handler.removeCallbacks(task); - byte[] names = null; - if(filename != null){ - try { - names = filename.getBytes("GB2312"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - task = new A1(keyid,(byte)((length ) / 65535), (byte)(((length ) % 65535) / 256),(byte)(((length ) % 256 / 16 + (length % 16 == 0 ? 0 : 1))),names); - handler.post(task); - } - - public void packetReceptionConfirmed(byte packid,byte packH){ - System.out.println("packetReceptionConfirmed"); - handler.removeCallbacks(task); - task = new A3(keyid,packid,packH); - handler.post(task); - } - - public boolean uploadMessage(byte[] datas){ - System.out.println("uploadMsgData" + datas); - if(datas != null){ - length = datas.length ; - filename = null ; - this.datas = new byte[length ]; - System.arraycopy(datas,0,this.datas,0,length); -// datas[length] = 0x13 ; -// datas[length + 1] = 0x0 ; -// datas[length + 2] = 0x10 ; -// datas[length + 3] = 0x0 ; - task = new A0(filename,length); - handler.removeCallbacks(task); - handler.post(task); - return true; - } - return false; - } - - - public void setUploadListener(IUploadListener uploadListener) { - this.uploadListener = uploadListener; - } - - class A0 implements Runnable{ - private int length ; - private String filename; - private int times ; - public A0(String filename,int length){ - this.length = length ; - this.filename = filename; - packTotal = length / 16 + 1; - times = 0 ; - } - - @Override - public void run() { - XPadApi.getInstance().applyFileUpload(this.length,this.filename,PACKTYPE,RFFileUploadModule.index); - } - } - - class A1 implements Runnable{ - - private byte[] keyid; - private byte packid ; - private byte packH ; - private byte packL ; - private byte[] names ; - private int times ; - - public A1(byte[] keyid, byte packid,byte packH,byte packL,byte[] names) { - this.keyid = keyid; - this.packid = packid; - this.packH = packH ; - this.packL = packL ; - this.names = names ; - times = 0 ; - } - - @Override - public void run() { - XPadApi.getInstance().packetConfirmation(this.keyid,this.packid,this.packH,this.packL,this.names,PACKTYPE); - times ++ ; - if(task != null && times < 5){ - handler.postDelayed(task,1000); - } - if(uploadListener != null){ - uploadListener.onUploadStart(); - } - - handler.removeCallbacks(failCall); - handler.postDelayed(failCall,10000); - } - } - - class A2 implements Runnable{ - private byte[] keyid; - private byte packid; - private byte packH; - private byte[] datas ; - private byte[] packLs; - private int times ; - - public A2(byte[] keyid, byte packid, byte packH, byte[] datas, byte[] packLs) { - this.keyid = keyid; - this.packid = packid; - this.packH = packH; - this.datas = datas; - this.packLs = packLs; - times = 0 ; - } - - @Override - public void run() { - - int packLsi = packLs[1] * 256 + packLs[0]; - int offset = 0 ; - int length = 16; - System.out.println("packLsi:" + packLsi); - for(byte packL = 0 ;packL < 16 ;packL ++) { - if((packLsi & (1 << packL)) != 0){ - offset = ((packid * 65535) + (packH) * 256 + 16 * (packL)) & 0xFFFF; - XPadApi.getInstance().uploadFileData(this.keyid, this.packid, this.packH, (byte)(packL), this.datas, offset, length,PACKTYPE); - try{ - Thread.sleep(50); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - times ++ ; - if(task != null && times < 5){ - handler.postDelayed(task,1000); - } - handler.removeCallbacks(failCall); - handler.postDelayed(failCall,10000); - } - } - - class A3 implements Runnable{ - private byte[] keyid; - private byte packid ; - private byte packH; - - public A3(byte[] keyid, byte packid, byte packH) { - this.keyid = keyid; - this.packid = packid; - this.packH = packH; - } - - @Override - public void run() { - XPadApi.getInstance().packetReceptionConfirmed(this.keyid,this.packid,this.packH,PACKTYPE); - if(uploadListener != null){ - uploadListener.onUploadStop(); - } - handler.removeCallbacks(failCall); - } - } - - public void onUploadMessage(byte data, byte[] keyid, byte packid, byte packH, byte[] packLs) { - LogUtil.i("RFMessageUploadModule","onUploadMessage:" + data); - if (data == 1) { - setKeyid(keyid); - packetConfirmation(packid); - } - if (data == 2) { - uploadData(packid, packH, packLs); - } - if (data == 3) { - packetReceptionConfirmed(packid, packH); - } - } - - private void removeTask(){ - handler.postDelayed(new Runnable() { - @Override - public void run() { - handler.removeCallbacks(task); - } - },5000); - } - - private Runnable failCall = new Runnable() { - @Override - public void run() { - if(uploadListener != null){ - uploadListener.onFail(); - } - } - }; -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SendPacket.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SendPacket.java deleted file mode 100644 index 7c7e20d..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SendPacket.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.sunvote.xpadapi.service.logic; - -public class SendPacket { - - private byte[] datas; - - /** - * 0 未发送 - * 1 已发送 - * 2 发送成功 - */ - private int sendOK ; - - /** - * 发送次数 - */ - private int sendTimes; - - /** - * 是否有序 有序需要第一个才发送 - * 无序,则可全部发送 - */ - private boolean canAll; - -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SenderManager.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SenderManager.java deleted file mode 100644 index bd3581b..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SenderManager.java +++ /dev/null @@ -1,283 +0,0 @@ -package com.sunvote.xpadapi.service.logic; - -import com.sunvote.xpadapi.service.bean.BatchNumberVote; -import com.sunvote.xpadapi.service.bean.BatchSingleVote; -import com.sunvote.xpadapi.service.bean.LoginInVote; -import com.sunvote.xpadapi.service.bean.NumberVote; -import com.sunvote.xpadapi.service.bean.Packet; -import com.sunvote.xpadapi.service.bean.SelectOtherVote; -import com.sunvote.xpadapi.service.bean.SelectVote; -import com.sunvote.xpadapi.service.bean.ServiceTypeVote; -import com.sunvote.xpadapi.service.bean.SingleVote; -import com.sunvote.xpadapi.service.listener.OnSendPacket; -import com.sunvote.xpadapi.service.listener.OnSender; - -public final class SenderManager { - - private static SenderManager instance = null; - - private SenderManager() { - } - - public static SenderManager getInstance() { - if (instance == null) { - synchronized (SenderManager.class) { - if (instance == null) { - instance = new SenderManager(); - } - } - } - return instance; - } - - /** - * 发送 - * - * @param singleVote - */ - public void sendSingleVote(final SingleVote singleVote) { - sendSingleVote(singleVote, null); - } - - public void sendVoteAllOK(final OnSender sender) { - SingleVote singleVote = new SingleVote(1); - sendSingleVote(singleVote, sender); - } - - public void sendSingleVote(final SingleVote singleVote, final OnSender onSender) { - if (singleVote != null) { - byte[] datas = singleVote.toBytes(); - XpadApiServiceInfoProxyManager.getInstance().sendPacket(datas, new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - if (onSender != null) { - onSender.onSuccess(singleVote); - } - } - - @Override - public void onFail(Packet packet) { - if (onSender != null) { - onSender.onFail(singleVote); - } - } - }); - } else { - if (onSender != null) { - onSender.onFail(singleVote); - } - } - } - - public void sendSelectVote(final SelectVote selectVote) { - sendSelectVote(selectVote, null); - } - - public void sendSelectVote(final SelectVote selectVote, final OnSender onSender) { - if (selectVote != null) { - XpadApiServiceInfoProxyManager.getInstance().sendPacket(selectVote.toBytes(), new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - if (onSender != null) { - onSender.onSuccess(selectVote); - } - } - - @Override - public void onFail(Packet packet) { - if (onSender != null) { - onSender.onFail(selectVote); - } - } - }); - } else { - if (onSender != null) { - onSender.onFail(selectVote); - } - } - } - - public void sendNumberVote(final NumberVote numberVote) { - sendNumberVote(numberVote, null); - } - - public void sendNumberVote(final NumberVote numberVote, final OnSender sender) { - if (numberVote != null) { - XpadApiServiceInfoProxyManager.getInstance().sendPacket(numberVote.toBytes(), new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - if (sender != null) { - sender.onSuccess(numberVote); - } - } - - @Override - public void onFail(Packet packet) { - if (sender != null) { - sender.onFail(numberVote); - } - } - }); - } else { - if (sender != null) { - sender.onFail(numberVote); - } - } - } - - public void sendLoginInVote(final LoginInVote loginInVote) { - sendLoginInVote(loginInVote, null); - } - - public void sendLoginInVote(final LoginInVote loginInVote, final OnSender sender) { - if (loginInVote != null) { - XpadApiServiceInfoProxyManager.getInstance().sendPacket(loginInVote.toBytes(), new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - if (sender != null) { - sender.onSuccess(loginInVote); - } - } - - @Override - public void onFail(Packet packet) { - if (sender != null) { - sender.onFail(loginInVote); - } - } - }); - } else { - if (sender != null) { - sender.onFail(loginInVote); - } - } - } - - public void sendCancelAllBatchSingleVote(final OnSender sender) { - BatchSingleVote batchSingleVote = new BatchSingleVote(); - sendBatchSingleVote(batchSingleVote, sender); - } - - public void sendSubmitlAllBatchSingleVote(final OnSender sender) { - BatchSingleVote batchSingleVote = new BatchSingleVote(); - batchSingleVote.setOk(1); - sendBatchSingleVote(batchSingleVote, sender); - } - - public void sendBatchSingleVote(final BatchSingleVote batchSingleVote) { - sendBatchSingleVote(batchSingleVote, null); - } - - public void sendBatchSingleVote(final BatchSingleVote batchSingleVote, final OnSender sender) { - if (batchSingleVote != null) { - XpadApiServiceInfoProxyManager.getInstance().sendPacket(batchSingleVote.toBytes(), new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - if (sender != null) { - sender.onSuccess(batchSingleVote); - } - } - - @Override - public void onFail(Packet packet) { - if (sender != null) { - sender.onFail(batchSingleVote); - } - } - }); - } else { - if (sender != null) { - sender.onFail(batchSingleVote); - } - } - } - - public void sendBatchNumberVoteOK(final BatchNumberVote batchNumberVote, final OnSender sender) { - batchNumberVote.setOk(1); - sendBatchNumberVote(batchNumberVote, sender); - } - - public void sendBatchNumberVote(final BatchNumberVote batchNumberVote) { - sendBatchNumberVote(batchNumberVote, null); - } - - public void sendBatchNumberVote(final BatchNumberVote batchNumberVote, final OnSender sender) { - if (batchNumberVote != null) { - XpadApiServiceInfoProxyManager.getInstance().sendPacket(batchNumberVote.toBytes(), new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - if (sender != null) { - sender.onSuccess(batchNumberVote); - } - } - - @Override - public void onFail(Packet packet) { - if (sender != null) { - sender.onFail(batchNumberVote); - } - } - }); - } else { - if (sender != null) { - sender.onFail(batchNumberVote); - } - } - } - - public void sendSelectOtherVote(SelectOtherVote selectOtherVote) { - sendSelectOtherVote(selectOtherVote, null); - } - - public void sendSelectOtherVote(final SelectOtherVote selectOtherVote, final OnSender sender) { - if (selectOtherVote != null) { - XpadApiServiceInfoProxyManager.getInstance().sendPacket(selectOtherVote.toBytes(), new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - if (sender != null) { - sender.onSuccess(selectOtherVote); - } - } - - @Override - public void onFail(Packet packet) { - if (sender != null) { - sender.onFail(selectOtherVote); - } - } - }); - } else { - if (sender != null) { - sender.onFail(selectOtherVote); - } - } - } - - public void sendServiceTypeVote(final ServiceTypeVote serviceTypeVote) { - sendServiceTypeVote(serviceTypeVote, null); - } - - public void sendServiceTypeVote(final ServiceTypeVote serviceTypeVote, final OnSender sender) { - if (serviceTypeVote != null) { - XpadApiServiceInfoProxyManager.getInstance().sendPacket(serviceTypeVote.toBytes(), new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - if (sender != null) { - sender.onSuccess(serviceTypeVote); - } - } - - @Override - public void onFail(Packet packet) { - if (sender != null) { - sender.onFail(serviceTypeVote); - } - } - }); - } else { - if (sender != null) { - sender.onFail(serviceTypeVote); - } - } - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SerialManager.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SerialManager.java deleted file mode 100644 index ac04307..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/SerialManager.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.sunvote.xpadapi.service.logic; - -public final class SerialManager { - - private static SerialManager instance = null ; - - private SerialManager(){ - } - - public static SerialManager getInstance(){ - if(instance == null){ - synchronized(SerialManager.class){ - if(instance == null){ - instance = new SerialManager(); - } - } - } - return instance; - } - - private byte seq = 0 ; - - public byte getSeq() { - if (seq == 0xfe) { - seq = 0 ; - } - return ++seq; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/XpadApiServiceInfoProxyManager.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/XpadApiServiceInfoProxyManager.java deleted file mode 100644 index df5e407..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/service/logic/XpadApiServiceInfoProxyManager.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.sunvote.xpadapi.service.logic; - -import com.sunvote.xpadapi.service.XpadApiService; -import com.sunvote.xpadapi.service.bean.BaseInfo; -import com.sunvote.xpadapi.service.bean.BaseVoteInfo; -import com.sunvote.xpadapi.service.bean.KeypadInfo; -import com.sunvote.xpadapi.service.bean.ModelInfo; -import com.sunvote.xpadapi.service.bean.OnLineInfo; -import com.sunvote.xpadapi.service.bean.Packet; -import com.sunvote.xpadapi.service.listener.BaseInfoChanageListener; -import com.sunvote.xpadapi.service.listener.BaseVoteInfoChanageListener; -import com.sunvote.xpadapi.service.listener.KeyPadinfoChanageListener; -import com.sunvote.xpadapi.service.listener.ModelInfoChanageListener; -import com.sunvote.xpadapi.service.listener.OnSendPacket; -import com.sunvote.xpadapi.service.listener.OnlineInfoChanageListener; -import com.sunvote.xpadapi.util.LogUtil; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * 服务信息 - */ -public final class XpadApiServiceInfoProxyManager { - - public static final String TAG = XpadApiServiceInfoProxyManager.class.getSimpleName(); - private static XpadApiServiceInfoProxyManager instance = null ; - private List sendList = Collections.synchronizedList(new ArrayList()); - private Object lock = new Object(); - private String charset = "GB2312" ; - private XpadApiService service; - - public void setCharset(String charset) { - this.charset = charset; - } - - public void setService(XpadApiService service) { - this.service = service; - } - - public XpadApiService getService() { - return service; - } - - public String getCharset() { - return charset; - } - - private XpadApiServiceInfoProxyManager(){ - } - - public static XpadApiServiceInfoProxyManager getInstance(){ - if(instance == null){ - synchronized(XpadApiServiceInfoProxyManager.class){ - if(instance == null){ - instance = new XpadApiServiceInfoProxyManager(); - } - } - } - return instance; - } - - private ModelInfo modelInfo; - private ModelInfoChanageListener modelInfoListener; - - public void setModelInfo(ModelInfo modelInfo) { - this.modelInfo = modelInfo; - if(modelInfoListener != null){ - try{ - modelInfoListener.onModelInfoChanage(modelInfo); - }catch (Exception ex){ - LogUtil.e(TAG,"onModelInfoChanage",ex); - } - } - } - - public ModelInfo getModelInfo() { - return modelInfo; - } - - public void setModelInfoListener(ModelInfoChanageListener modelInfoListener) { - this.modelInfoListener = modelInfoListener; - } - - private BaseInfo baseInfo; - private BaseInfoChanageListener baseInfoListener; - - public void setBaseInfo(BaseInfo baseInfo) { - this.baseInfo = baseInfo; - if(baseInfoListener != null){ - try { - baseInfoListener.onBaseInfoChange(baseInfo); - }catch (Exception ex){ - LogUtil.e(TAG,"onBaseInfoChange",ex); - } - } - - } - - public BaseInfo getBaseInfo() { - return baseInfo; - } - - public void setBaseInfoListener(BaseInfoChanageListener baseInfoListener) { - this.baseInfoListener = baseInfoListener; - } - - private BaseVoteInfo baseVoteInfo; - private BaseVoteInfoChanageListener baseVoteInfoListener; - - public void setBaseVoteInfo(BaseVoteInfo baseVoteInfo) { - this.baseVoteInfo = baseVoteInfo; - if(baseVoteInfoListener != null){ - try { - baseVoteInfoListener.onBaseVoteInfoListener(baseVoteInfo); - }catch (Exception ex){ - LogUtil.e(TAG,"onBaseVoteInfoListener",ex); - } - } - - } - - public BaseVoteInfo getBaseVoteInfo() { - return baseVoteInfo; - } - - public void setBaseVoteInfoListener(BaseVoteInfoChanageListener baseVoteInfoListener) { - this.baseVoteInfoListener = baseVoteInfoListener; - } - - private KeypadInfo keypadInfo; - private KeyPadinfoChanageListener keyPadinfoChanageListener; - - public void setKeypadInfo(KeypadInfo keypadInfo) { - this.keypadInfo = keypadInfo; - if(keyPadinfoChanageListener != null){ - try{ - keyPadinfoChanageListener.onKeyPadinfoChanage(keypadInfo); - }catch (Exception ex){ - LogUtil.e(TAG,"onKeyPadinfoChanage",ex); - } - } - - } - - public KeypadInfo getKeypadInfo() { - if(keypadInfo == null){ - keypadInfo = new KeypadInfo(); - } - return keypadInfo; - } - - public void setKeyPadinfoChanageListener(KeyPadinfoChanageListener keyPadinfoChanageListener) { - this.keyPadinfoChanageListener = keyPadinfoChanageListener; - } - - private OnLineInfo onLineInfo; - private OnlineInfoChanageListener onlineInfoChanageListener; - - public void setOnLineInfo(OnLineInfo onLineInfo) { - this.onLineInfo = onLineInfo; - if(onlineInfoChanageListener != null){ - try{ - onlineInfoChanageListener.onOnlineInfoChanage(onLineInfo); - }catch (Exception ex){ - LogUtil.e(TAG,"onOnlineInfoChanage",ex); - } - } - } - - public OnLineInfo getOnLineInfo() { - return onLineInfo; - } - - public void setOnlineInfoChanageListener(OnlineInfoChanageListener onlineInfoChanageListener) { - this.onlineInfoChanageListener = onlineInfoChanageListener; - } - - public void sendPacket(byte[] datas,final OnSendPacket sendPacket){ - Packet packet = new Packet(); - packet.setDatas(datas); - packet.setSendNo(datas[5] & 0xFF); - packet.setOnSendPacket(new OnSendPacket() { - @Override - public void onSuccess(Packet packet) { - synchronized (lock){ - sendList.remove(packet); - } - try{ - sendPacket.onSuccess(packet); - }catch (Exception ex){ - LogUtil.e(TAG,"sendPacket.onSuccess",ex); - } - } - - @Override - public void onFail(Packet packet) { - synchronized (lock){ - sendList.remove(packet); - } - try{ - sendPacket.onFail(packet); - }catch (Exception ex){ - LogUtil.e(TAG,"sendPacket.onFail",ex); - } - } - }); - synchronized (lock){ - if(!exsit(packet)){ - sendList.add(packet); - } - } - if(service != null){ - service.immediately(); - } - } - - public List getSendList() { - return sendList; - } - - private boolean exsit(Packet packet){ - for(Packet packet1: sendList){ - if(packet.getSendNo() == packet1.getSendNo()){ - return true; - } - } - return false; - } - - public Packet findPacket(int sendNo){ - for(Packet packet: sendList){ - if(packet.getSendNo() == sendNo){ - return packet; - } - } - return null; - } -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/usb/UsbTransferManager.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/usb/UsbTransferManager.java deleted file mode 100644 index faffea1..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/usb/UsbTransferManager.java +++ /dev/null @@ -1,453 +0,0 @@ -package com.sunvote.xpadapi.usb; - -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.hardware.usb.UsbDevice; -import android.hardware.usb.UsbDeviceConnection; -import android.hardware.usb.UsbEndpoint; -import android.hardware.usb.UsbInterface; -import android.hardware.usb.UsbManager; -import android.os.Handler; -import android.os.HandlerThread; - - -import com.sunvote.xpadapi.util.LogUtil; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.concurrent.locks.Condition; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - -/*** - * @Auther Elvis - */ -public class UsbTransferManager { - - public interface OnUsbConnectListener{ - boolean onConnect(boolean isConnected); - } - - public static final String TAG = UsbTransferManager.class.getSimpleName(); - private static UsbTransferManager instance = null ; - private HandlerThread workThread = new HandlerThread("usb workThread"); - private Handler workHandler = null; - private boolean stop = false; - private OnUsbConnectListener onUsbConnectListener; - - public void setOnUsbConnectListener(OnUsbConnectListener onUsbConnectListener) { - this.onUsbConnectListener = onUsbConnectListener; - } - - private UsbTransferManager(){ - workThread.start(); - workHandler = new Handler(workThread.getLooper()); - } - - public static UsbTransferManager getInstance(){ - if(instance == null){ - synchronized(UsbTransferManager.class){ - if(instance == null){ - instance = new UsbTransferManager(); - } - } - } - return instance; - } - - public void startWork(){ - stop = false; - workHandler.post(usbConnectInit); - } - - public void stopWork(){ - mUsbDevice = null; - mUsbConnection = null; - epIn = null; - epOut = null; - workHandler.removeCallbacks(usbConnectInit); - workHandler.removeCallbacks(usbConnect); - workHandler.removeCallbacks(usbConnectionReceiverTask); - stop = true; - } - - private UsbOutputStream outputStream = new UsbOutputStream(); - private UsbInputStream inputStream = new UsbInputStream(); - - public UsbInputStream getInputStream() { - return inputStream; - } - - public UsbOutputStream getOutputStream() { - return outputStream; - } - - private long lastOpenTime; - private class UsbPermissionReceiver extends BroadcastReceiver { - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (ACTION_USB_PERMISSION.equals(action)) { - synchronized (this) { - UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); - if (device.getDeviceName().equals(mUsbDevice.getDeviceName())) { - if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) { - // 授权成功,在这里进行打开设备操作 - if (System.currentTimeMillis() - lastOpenTime > 1000) { - lastOpenTime = System.currentTimeMillis(); - workHandler.removeCallbacks(usbConnectInit); - workHandler.removeCallbacks(usbConnect); - if(!stop){ - workHandler.postDelayed(usbConnect,0); - } - } - }else{ - if(!stop){ - workHandler.postDelayed(usbConnectInit,20000); - } - } - } - } - } - } - } - - private Runnable usbConnectionReceiverTask = new Runnable() { - @Override - public void run() { - if (usbManager != null) { - HashMap map = usbManager.getDeviceList(); - boolean find = false; - for (UsbDevice device : map.values()) { - LogUtil.d(TAG, "找到基站: Vid:" + device.getVendorId() + " Pid:" + device.getProductId()); - if (device.getVendorId() == VendorID && device.getProductId() == ProductID - || device.getVendorId() == VendorID_2 && device.getProductId() == ProductID_2 - || device.getVendorId() == VendorID_3 && device.getProductId() == ProductID_3) { - find = true; - workHandler.postDelayed(usbConnectionReceiverTask, 1000); - break; - } - } - if (!find) { - stopWork(); - startWork(); - } - } - } - }; - - private Runnable usbConnectInit = new Runnable() { - @Override - public void run() { - LogUtil.i(TAG, "发起USB初始化!"); - boolean find = false; - workHandler.removeCallbacks(usbConnectionReceiverTask); - if(usbManager != null) { - HashMap map = usbManager.getDeviceList(); - for (UsbDevice device : map.values()) { - LogUtil.d(TAG, "找到基站: Vid:" + device.getVendorId() + " Pid:" + device.getProductId()); - if (device.getVendorId() == VendorID && device.getProductId() == ProductID - || device.getVendorId() == VendorID_2 && device.getProductId() == ProductID_2 - || device.getVendorId() == VendorID_3 && device.getProductId() == ProductID_3) { - mUsbDevice = device; - find = true; - if (!usbManager.hasPermission(device)) { - if (usbPermissionReceiver == null) { - usbPermissionReceiver = new UsbPermissionReceiver(); - } - // 申请权限 - Intent intent = new Intent(ACTION_USB_PERMISSION); - PendingIntent mPermissionIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0); - IntentFilter permissionFilter = new IntentFilter(ACTION_USB_PERMISSION); - mContext.registerReceiver(usbPermissionReceiver, permissionFilter); - usbManager.requestPermission(device, mPermissionIntent); - if(!stop){ - workHandler.postDelayed(usbConnectInit,20 * 1000); - } - } else { - if(!stop){ - workHandler.postDelayed(usbConnect,10); - } - } - } - } - - } - if(!find){ - workHandler.removeCallbacks(usbConnectInit); - if(!stop){ - workHandler.postDelayed(usbConnectInit,2000); - } - } - } - }; - - - private Runnable usbConnect = new Runnable() { - @Override - public void run() { - LogUtil.i(TAG, "发起USB键盘连接!"); - if(openUsbDevice()){ - if(onUsbConnectListener != null){ - onUsbConnectListener.onConnect(true); - } - workHandler.postDelayed(usbConnectionReceiverTask,2000); - }; - } - }; - - private Runnable readData = new Runnable() { - @Override - public void run() { - byte[] datas = receiveUsbRequestData(); - LogUtil.i(TAG, "RECEIVEA DATA:", datas); - if(datas != null) { - int length = datas.length; - try { - try { - lock.lock(); - if (linkedList.size() < MAX_CACHE_SIZE) { - for (int i = length - 1; i >= 0; i--) { - linkedList.push(datas[i]); - } - } - } finally { - empty.signal(); - lock.unlock(); - } - } catch (Exception e) { - LogUtil.e(TAG, "UDP receiver message", e); - close = true; - } - if(!stop){ - workHandler.post(readData); - } - }else{ - stopWork(); - startWork(); - } - - } - }; - - /** - * 打开连接 - * - * @paramdevice - */ - private boolean openUsbDevice() { - - if (mUsbDevice == null) - return false; - - if(mUsbDevice.getInterfaceCount() == 0){ - return false; - } - mUsbInterface = mUsbDevice.getInterface(0); - setEndpoint(mUsbInterface); - mUsbConnection = usbManager.openDevice(mUsbDevice); - LogUtil.i(TAG,"打开USB连接"); - if (mUsbConnection != null) { - return mUsbConnection.claimInterface(mUsbInterface, true); - } - return false; - } - - private int sendDataBulkTransfer(byte[] buffer) { - final int length = buffer.length; - int ref = -100; - if (epOut != null && mUsbConnection != null) { - ref = mUsbConnection.bulkTransfer(epOut, buffer, length, 100); - mUsbConnection.claimInterface(mUsbInterface, true); - LogUtil.d(TAG, "发送数据成功有:" + ref); - if(ref <0 ){ - if(onUsbConnectListener != null){ - onUsbConnectListener.onConnect(false); - } - workHandler.removeCallbacks(usbConnectionReceiverTask); - workHandler.post(usbConnectionReceiverTask); - } - }else{ - LogUtil.d(TAG, "未连接:" + ref); - } - return ref; - } - - public byte[] receiveUsbRequestData() { - if(epIn != null && mUsbConnection != null) { - byte[] bytes = new byte[epIn.getMaxPacketSize()]; - int ret = mUsbConnection.bulkTransfer(epIn, bytes, bytes.length, 100); - if (ret > 0) { - return bytes; - } - } - return null; - } - - /** - * UsbInterface 进行端点设置和通讯 - * - * @param intf - */ - private void setEndpoint(UsbInterface intf) { - if (intf == null) - return; - // 设置接收数据的端点 - if (intf.getEndpoint(0) != null) { - epIn = intf.getEndpoint(0); - } - // 当端点为2的时候 - if (intf.getEndpointCount() == 2) { - // 设置发送数据的断点 - if (intf.getEndpoint(1) != null) - epOut = intf.getEndpoint(1); - } - } - - public void setUsbManager(UsbManager usbManager) { - this.usbManager = usbManager; - } - - public void setContext(Context mContext) { - this.mContext = mContext; - } - - public class UsbOutputStream extends OutputStream{ - - @Override - public void write(int b) throws IOException { - sendDataBulkTransfer(new byte[]{(byte)b}); - } - - @Override - public void write(byte[] b) throws IOException { - sendDataBulkTransfer(b); - } - - @Override - public void write(byte[] b, int off, int len) throws IOException { - byte[] temp = new byte[len]; - System.arraycopy(b, off, temp, 0, len); - sendDataBulkTransfer(temp); - } - } - - private LinkedList linkedList = new LinkedList(); - public long MAX_CACHE_SIZE = 4 * 1024; - private Lock lock = new ReentrantLock(); - private Condition empty = lock.newCondition(); - private boolean close = false; - public class UsbInputStream extends InputStream{ - @Override - public int read() throws IOException { - if (close) { - throw new IOException("the stream has closed"); - } - - try { - lock.lock(); - while (linkedList.isEmpty()) { - try { - empty.await(); - } catch (InterruptedException e) { - LogUtil.e(TAG,e); - } - } - return linkedList.pop(); - } finally { - lock.unlock(); - } - } - - - public boolean isClose() { - return close; - } - - @Override - public void close() throws IOException { - close = true; - super.close(); - } - - @Override - public int read(byte[] buffer) throws IOException { - try { - lock.lock(); - if (buffer == null) { - throw new IOException("buffer is empty"); - } - if (close) { - throw new IOException("the stream has closed"); - } - - while (linkedList.isEmpty()) { - try { - empty.await(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - int index = 0; - while (index < buffer.length && !linkedList.isEmpty()) { - buffer[index++] = linkedList.pop(); - } - return index; - } finally { - lock.unlock(); - } - } - - - @Override - public int read(byte[] buffer, int byteOffset, int byteCount) throws IOException { - try { - lock.lock(); - if (buffer == null) { - throw new IOException("buffer is empty"); - } - if (close) { - throw new IOException("the stream has closed"); - } - - while (linkedList.isEmpty()) { - try { - empty.await(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - int index = 0; - while (index < byteCount && !linkedList.isEmpty()) { - index++; - buffer[byteOffset++] = linkedList.pop(); - } - return index; - } finally { - lock.unlock(); - } - } - } - - private UsbManager usbManager ; - private UsbDevice mUsbDevice; - private UsbDeviceConnection mUsbConnection; - private UsbInterface mUsbInterface; - private UsbEndpoint epOut, epIn; - private UsbPermissionReceiver usbPermissionReceiver; - private Context mContext ; - - private static final int VendorID = 0x03eb; - private static final int ProductID = 0x6201; - private static final int VendorID_2 = 0x0d8c; - private static final int ProductID_2 = 0xEA10; - private static final int VendorID_3 = 0x2F70; - private static final int ProductID_3 = 0xEA10; - private final String ACTION_USB_PERMISSION = "com.hhd.USB_PERMISSION"; - private boolean isUsbReceiver = false; -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/ByteUtils.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/ByteUtils.java deleted file mode 100644 index 0db81cf..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/ByteUtils.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.sunvote.xpadapi.util; - -public class ByteUtils { - - private ByteUtils() { - } - - public static String bytesToHexString(byte[] src, int length) { - StringBuilder stringBuilder = new StringBuilder(""); - if (src == null || src.length <= 0) { - return null; - } - for (int i = 0; i < src.length && i < length; i++) { - int v = src[i] & 0xFF; - String hv = Integer.toHexString(v); - if (hv.length() < 2) { - stringBuilder.append(0); - } - stringBuilder.append(hv); - stringBuilder.append(" "); - } - return stringBuilder.toString(); - } - - public static String bytesToHexString(byte[] src) { - StringBuilder stringBuilder = new StringBuilder(""); - if (src == null || src.length <= 0) { - return null; - } - for (int i = 0; i < src.length; i++) { - int v = src[i] & 0xFF; - String hv = Integer.toHexString(v); - if (hv.length() < 2) { - stringBuilder.append(0); - } - stringBuilder.append(hv); - stringBuilder.append(" "); - } - return stringBuilder.toString(); - } - - public static int findBytes(byte[] source,byte[] find,int index){ - int flag = -1; - for (int j = index; j < source.length; j++) { - if (source.length >= j + find.length) { - if (compareByte(source, j, find)) { - flag = j; - break; - } - } - } - return flag; - } - - public static int byte1ToInt(byte b) { - int ret = 0; - ret += (b & 0x000000FF); - return ret; - } - - private static boolean compareByte(byte[] source, int start, byte[] find) { - if (source.length >= start + find.length) { - for (int i = 0; i < find.length; i++) { - if (source[start + i] != find[i]) { - return false; - } - } - return true; - } - return false; - } - - /** - * Convert hex string to byte[] - * - * @param hexString the hex string - * @return byte[] - */ - public static byte[] hexStringToBytes(String hexString) { - if (hexString == null || hexString.equals("")) { - return null; - } - hexString = hexString.toUpperCase(); - int length = hexString.length() / 2; - char[] hexChars = hexString.toCharArray(); - byte[] d = new byte[length]; - for (int i = 0; i < length; i++) { - int pos = i * 2; - d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1])); - } - return d; - } - - /** - * Convert char to byte - * - * @param c char - * @return byte - */ - private static byte charToByte(char c) { - return (byte) "0123456789ABCDEF".indexOf(c); - } - - - public static byte[] intToBytes(int value) { - byte[] src = new byte[4]; - src[3] = (byte) ((value >> 24) & 0xFF); - src[2] = (byte) ((value >> 16) & 0xFF); - src[1] = (byte) ((value >> 8) & 0xFF); - src[0] = (byte) (value & 0xFF); - return src; - } - - public static byte[] int2Bytes(int value) { - byte[] src = new byte[2]; - src[0] = (byte) ((value >> 8) & 0xFF); - src[1] = (byte) (value & 0xFF); - return src; - } - - public static int bytes2Int(byte[] src) { - int ret = ((src[1] & 0xFF) | ((src[0] & 0xFF) << 8)); - return ret; - } - - public static String getKeySn(byte[] data) { - String sn = ""; - String CS = "0123456789ABCDEF"; - for (int i = 0; i < 6; i++) { - sn += CS.charAt((data[i] >> 4) & 0xF); - sn += CS.charAt((data[i] >> 0) & 0xF); - } - return sn; - - } -} - diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/Cons.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/Cons.java deleted file mode 100644 index 3166e06..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/Cons.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.sunvote.xpadapi.util; - -public final class Cons { - - public static final int CMD_BASE_STATUS_CHANGE = 0x71;//基础信标变化 - public static final int CMD_VOTE_STATUS_CHANGE = 0x72;//投票信标变化 - public static final int CMD_VOTE_SEND_SUCCESS_RESPONSE = 0x73;//传输入成功通知 - - public static final int CMD_CHECK_BASE_STATUS_RESPONSE = 0xF0;//查询和设置各类应答 - public static final int CMD_VOTE_RESULT_SEND_RESPONSE = 0xF3;//投票结果上传应答 - public static final int CMD_FIRM_UPDATE_RESPONSE = 0xF8;//固件升级应答 - - public static final int CMD_UPLOAD_DATA_RESPONSE = 0x20; //上传指令 - public static final int CMD_TRANSPARENT_TRANSMISSION = 0x30; //表决器管理类指令,自定义透传指令 - public static final int CMD_MULTI_PCKAGE_DOWNLOAD = 0x40;// - public static final int CMD_COM_COMMUNICATION_TEST_RESPONSE = 0xB0; //串口测试应答 - -} diff --git a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/Crc16.java b/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/Crc16.java deleted file mode 100644 index 37bc573..0000000 --- a/C5/xpadapi/src/main/java/com/sunvote/xpadapi/util/Crc16.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.sunvote.xpadapi.util; - -public final class Crc16 { - private static int[] crc_ta = { //CRC余式表 - 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, - 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, - }; - - - //标准Crc16效验 - public static short crc16(byte[] data, int len) { - short Crc = 0; - byte da; - int i = 4; - while (len-- != 0) { - //da=Crc>>12; /* 暂存CRC的高四位 */ - da = (byte) (Crc >>> 12); /* 暂存CRC的高四位 */ - // Crc<<=4; /* CRC左移4位,相当于取CRC的低12位)*/ - Crc <<= 4; /* CRC左移4位,相当于取CRC的低12位)*/ - // Crc^=crc_ta[da^(*ptr/16)]; /* CRC的高4位和本字节的前半字节相加后查表计算CRC, 然后加上上一次CRC的余数 */ - Crc ^= crc_ta[(da ^ (data[i] >>> 4)) & 0xf]; /* CRC的高4位和本字节的前半字节相加后查表计算CRC, 然后加上上一次CRC的余数 */ - //da=Crc>>12; /* 暂存CRC的高4位 */ - da = (byte) (Crc >>> 12); /* 暂存CRC的高4位 */ - // Crc<<=4; /* CRC左移4位, 相当于CRC的低12位) */ - Crc <<= 4; /* CRC左移4位, 相当于CRC的低12位) */ - // Crc^=crc_ta[da^ (*ptr&0x0f)]; - Crc ^= crc_ta[(da ^ data[i]) & 0x0f]; /* CRC的高4位和本字节的后半字节相加后查表计算CRC, - 然后再加上上一次CRC的余数 */ - i++; - } - return (Crc); - } - - public static boolean crc16Check(byte[] data) { - - int xda, xdapoly; - int i, j, xdabit; - xda = 0xFFFF; - xdapoly = 0xA001; // (X**16 + X**15 + X**2 + 1) - for (i = 0; i < data.length - 2; i++) { - xda ^= data[i]; - for (j = 0; j < 8; j++) { - xdabit = (int) (xda & 0x01); - xda >>= 1; - if (xdabit == 1) - xda ^= xdapoly; - } - } - - return data[data.length - 2] == (int) (xda & 0xFF) && data[data.length - 1] == (int) (xda >> 8); - - } - - public static int getUnsignedByte(byte data) { //将data字节型数据转换为0~255 (0xFF 即BYTE)。 - return data & 0x0FF; - } - - public static int getUnsignedShort(short data) { //将data字节型数据转换为0~255 (0xFF 即BYTE)。 - return data & 0x0FFFF; - } - - private static void printDataBuf(byte[] buf, int length, String flag) { - String tmpStr = new String(); - for (int i = 0; i < length; i++) { - tmpStr += String.format("%x ", buf[i]); - } - System.out.println(flag + ":" + tmpStr); - } - - public static boolean checkPack(byte[] buf) { - if (buf.length > 4 && getUnsignedByte(buf[0]) == 0xF5 && getUnsignedByte(buf[1]) == 0xAA && getUnsignedByte(buf[2]) == 0xAA) { - return true; - } - return false; - } -} diff --git a/C5/xpadapi/src/main/res/values/strings.xml b/C5/xpadapi/src/main/res/values/strings.xml deleted file mode 100644 index 3fbf065..0000000 --- a/C5/xpadapi/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - XpadApi - diff --git a/C5/xpadapi/src/test/java/com/sunvote/xpadapi/ExampleUnitTest.java b/C5/xpadapi/src/test/java/com/sunvote/xpadapi/ExampleUnitTest.java deleted file mode 100644 index 554c455..0000000 --- a/C5/xpadapi/src/test/java/com/sunvote/xpadapi/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.sunvote.xpadapi; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file