123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615 |
- package com.wdkl.callingmainnurse.util;
- import android.app.AlarmManager;
- import android.app.PendingIntent;
- import android.content.Context;
- import android.content.Intent;
- import android.util.Log;
- import com.wdkl.callingmainnurse.MyApplication;
- import com.wdkl.callingmainnurse.common.Constants;
- import com.wdkl.callingmainnurse.entity.MessageEntity;
- import com.wdkl.callingmainnurse.entity.MessageEvent;
- import com.wdkl.callingmainnurse.entity.SystemSetEntity;
- import com.wdkl.callingmainnurse.entity.UdpEntity;
- import com.wdkl.callingmainnurse.ui.activity.InitActivity;
- import org.greenrobot.eventbus.EventBus;
- import serialporttest.utils.SerialPortUtil;
- import static com.wdkl.callingmainnurse.common.Constants.MYSELF_ID;
- import static com.wdkl.callingmainnurse.common.Constants.TRUST_FLAG_VALUE;
- /**
- * Created by 胡博文 on 2017/10/18.
- */
- public class AnalysisUdpUtil {
- public static String TAG = AnalysisUdpUtil.class.getSimpleName();
- public static boolean isOpen = true;//是否开启托管模式
- public static UdpEntity udpEntitys;//托管udp信息
- private static boolean isReset = false;
- private AnalysisUdpUtil() {
- }
- public static void AnalysisUdp(String udpMsg, Context context) { //接收UDP
- LogUtil.d("CheckUpdate", "1===udpMsg==" + udpMsg);
- if (!isOpen) {
- return;
- }
- //判断是否为美元符号开头,如果是则是android 端的命令
- if ("$".equals(udpMsg.substring(0, 1))) {
- udpMsg = delHeadAndEnd(udpMsg, "$", "#");
- final String[] data = udpMsg.split(Character.toString((char) 3));
- //总控制室主机呼叫
- if (Constants.MANAGER_CALL.equals(data[8])) {
- switch (data[0]) {
- case "call_12"://总控制室主机呼叫护士主机
- UdpEntity udpEntity = new UdpEntity();
- udpEntity.setIndexes(data[0]);
- udpEntity.setNurseHostID(data[1]);
- udpEntity.setDoorwayMachineID(data[2]);
- udpEntity.setHeadMachineID(data[3]);
- udpEntity.setSipAddress(data[4]);
- udpEntity.setRoomNumber(data[5]);
- udpEntity.setBedNumber(data[6]);
- udpEntity.setLevel(data[7]);
- udpEntity.setType(data[8]);
- udpEntity.setName(data[9]);
- udpEntity.setDeviceMAC(data[10]);
- udpEntity.setShowText("总控制室主机呼叫护士主机");
- EventBus.getDefault().post(new MessageEvent(udpEntity, Constants.EVENT_UDP));
- break;
- case "call_12_hang_up": //总控制室主机取消呼叫
- UdpEntity call_12_hang_up = new UdpEntity();
- call_12_hang_up.setIndexes(data[0]);
- call_12_hang_up.setNurseHostID(data[1]);
- call_12_hang_up.setDoorwayMachineID(data[2]);
- call_12_hang_up.setHeadMachineID(data[3]);
- call_12_hang_up.setSipAddress(data[4]);
- call_12_hang_up.setRoomNumber(data[5]);
- call_12_hang_up.setBedNumber(data[6]);
- call_12_hang_up.setLevel(data[7]);
- call_12_hang_up.setType(data[8]);
- call_12_hang_up.setName(data[9]);
- call_12_hang_up.setDeviceMAC(data[10]);
- call_12_hang_up.setShowText("总控制室主机取消呼叫");
- EventBus.getDefault().post(new MessageEvent(call_12_hang_up, Constants.EVENT_UDP));
- break;
- }
- }
- //医生主机呼叫
- if (Constants.DOCTOR_CALL.equals(data[8])) {
- Log.e(TAG,"data[8] "+data[8]+" data[0] "+data[0]);
- switch (data[0]) {
- case "call_14"://医生主机呼叫护士主机
- UdpEntity doctor_call_14_nurse_udpEntity = new UdpEntity();
- doctor_call_14_nurse_udpEntity.setIndexes(data[0]);
- doctor_call_14_nurse_udpEntity.setNurseHostID(data[1]);
- doctor_call_14_nurse_udpEntity.setDoorwayMachineID(data[2]);
- doctor_call_14_nurse_udpEntity.setHeadMachineID(data[3]);
- doctor_call_14_nurse_udpEntity.setSipAddress(data[4]);
- doctor_call_14_nurse_udpEntity.setRoomNumber(data[5]);
- doctor_call_14_nurse_udpEntity.setBedNumber(data[6]);
- doctor_call_14_nurse_udpEntity.setLevel(data[7]);
- doctor_call_14_nurse_udpEntity.setType(data[8]);
- doctor_call_14_nurse_udpEntity.setName(data[9]);
- doctor_call_14_nurse_udpEntity.setDeviceMAC(data[10]);
- doctor_call_14_nurse_udpEntity.setShowText("总控制室主机呼叫护士主机");
- EventBus.getDefault().post(new MessageEvent(doctor_call_14_nurse_udpEntity, Constants.EVENT_UDP));
- break;
- case "call_14_hang_up": //医生主机取消呼叫
- UdpEntity doctor_call_14_hang_up = new UdpEntity();
- doctor_call_14_hang_up.setIndexes(data[0]);
- doctor_call_14_hang_up.setNurseHostID(data[1]);
- doctor_call_14_hang_up.setDoorwayMachineID(data[2]);
- doctor_call_14_hang_up.setHeadMachineID(data[3]);
- doctor_call_14_hang_up.setSipAddress(data[4]);
- doctor_call_14_hang_up.setRoomNumber(data[5]);
- doctor_call_14_hang_up.setBedNumber(data[6]);
- doctor_call_14_hang_up.setLevel(data[7]);
- doctor_call_14_hang_up.setType(data[8]);
- doctor_call_14_hang_up.setName(data[9]);
- doctor_call_14_hang_up.setDeviceMAC(data[10]);
- doctor_call_14_hang_up.setShowText("总控制室主机取消呼叫");
- EventBus.getDefault().post(new MessageEvent(doctor_call_14_hang_up, Constants.EVENT_UDP));
- break;
- case "call_14_upremove": //医生主机上滑移除了呼叫列表中的一个条目
- UdpEntity call_13_upremove = new UdpEntity();
- call_13_upremove.setIndexes(data[0]);
- call_13_upremove.setNurseHostID(data[1]);
- call_13_upremove.setDoorwayMachineID(data[2]);
- call_13_upremove.setHeadMachineID(data[3]);
- call_13_upremove.setSipAddress(data[4]);
- call_13_upremove.setRoomNumber(data[5]);
- call_13_upremove.setBedNumber(data[6]);
- call_13_upremove.setLevel(data[7]);
- call_13_upremove.setType(data[8]);
- call_13_upremove.setName(data[9]);
- call_13_upremove.setDeviceMAC(data[10]);
- call_13_upremove.setShowText("医生主机上滑移除呼叫列表中的一个条目");
- EventBus.getDefault().post(new MessageEvent(call_13_upremove, Constants.EVENT_UDP));
- break;
- }
- }
- if (StringUtils.notEmpty(Constants.PartID)) {
- try {
- LogUtil.d("AAGGH", "PartID==" + Constants.PartID + "-----UDPPartID==" + data[data.length - 1]);
- if (!StringUtils.notEmpty(data[data.length - 1]) || !Constants.PartID.equals(data[data.length - 1])) {// 协议规定所有UDP最后一条为 PartID (科室ID)。只有属于自己科室的才能作用
- return;
- }
- } catch (Exception e) {
- return;
- }
- }
- //判断indexes 是否为当前端口使用
- switch (data[0]) {
- case "call_1"://床头机呼叫护士主机
- case "call_2"://卫生间呼叫护士主机
- case "call_4"://增援呼叫护士主机
- UdpEntity udpEntity = new UdpEntity();
- udpEntity.setIndexes(data[0]);
- udpEntity.setNurseHostID(data[1]);
- udpEntity.setDoorwayMachineID(data[2]);
- udpEntity.setHeadMachineID(data[3]);
- udpEntity.setSipAddress(data[4]);
- udpEntity.setRoomNumber(data[5]);
- udpEntity.setBedNumber(data[6]);
- udpEntity.setLevel(data[7]);
- udpEntity.setType(data[8]);
- udpEntity.setName(data[9]);
- udpEntity.setDeviceMAC(data[10]);
- udpEntity.setShowText("床头机呼叫护士主机");
- //推向event
- EventBus.getDefault().post(new MessageEvent(udpEntity, Constants.EVENT_UDP));
- break;
- case "call_1_b1"://护士已经退出护理
- UdpEntity call_1_b1 = new UdpEntity();
- call_1_b1.setIndexes(data[0]);
- call_1_b1.setNurseHostID(data[1]);
- call_1_b1.setDoorwayMachineID(data[2]);
- call_1_b1.setHeadMachineID(data[3]);
- call_1_b1.setSipAddress(data[4]);
- call_1_b1.setRoomNumber(data[5]);
- call_1_b1.setBedNumber(data[6]);
- call_1_b1.setLevel(data[7]);
- call_1_b1.setType(data[8]);
- call_1_b1.setName(data[9]);
- call_1_b1.setShowText("护士已经退出护理");
- EventBus.getDefault().post(new MessageEvent(call_1_b1, Constants.EVENT_UDP));
- break;
- case "call_1_hang_up": //子机取消呼叫
- UdpEntity call_1_hang_up = new UdpEntity();
- call_1_hang_up.setIndexes(data[0]);
- call_1_hang_up.setNurseHostID(data[1]);
- call_1_hang_up.setDoorwayMachineID(data[2]);
- call_1_hang_up.setHeadMachineID(data[3]);
- call_1_hang_up.setSipAddress(data[4]);
- call_1_hang_up.setRoomNumber(data[5]);
- call_1_hang_up.setBedNumber(data[6]);
- call_1_hang_up.setLevel(data[7]);
- call_1_hang_up.setType(data[8]);
- call_1_hang_up.setName(data[9]);
- call_1_hang_up.setDeviceMAC(data[10]);
- call_1_hang_up.setShowText("子机取消呼叫");
- EventBus.getDefault().post(new MessageEvent(call_1_hang_up, Constants.EVENT_UDP));
- break;
- case "call_1_transfer": //床头机转接护士主机电话
- UdpEntity call_1_transfer = new UdpEntity();
- call_1_transfer.setIndexes(data[0]);
- call_1_transfer.setNurseHostID(data[1]);
- call_1_transfer.setDoorwayMachineID(data[2]);
- call_1_transfer.setHeadMachineID(data[3]);
- call_1_transfer.setSipAddress(data[4]);
- call_1_transfer.setRoomNumber(data[5]);
- call_1_transfer.setBedNumber(data[6]);
- call_1_transfer.setLevel(data[7]);
- call_1_transfer.setType(data[8]);
- call_1_transfer.setName(data[9]);
- call_1_transfer.setShowText("床头机转接电话请求");
- EventBus.getDefault().post(new MessageEvent(call_1_transfer, Constants.EVENT_UDP));
- break;
- case "call_transfer_bedtobed": //子机转接子机成功后,告诉外面执行状态联动
- UdpEntity transfer_bedtobed = new UdpEntity();
- transfer_bedtobed.setIndexes(data[0]);
- transfer_bedtobed.setNurseHostID(data[1]);
- transfer_bedtobed.setDoorwayMachineID(data[2]);
- transfer_bedtobed.setHeadMachineID(data[3]);
- transfer_bedtobed.setSipAddress(data[4]);
- transfer_bedtobed.setRoomNumber(data[5]);
- transfer_bedtobed.setBedNumber(data[6]);
- transfer_bedtobed.setLevel(data[7]);
- transfer_bedtobed.setType(data[8]);
- transfer_bedtobed.setName(data[9]);
- transfer_bedtobed.setShowText("子机转接子机成功");
- EventBus.getDefault().post(new MessageEvent(transfer_bedtobed, Constants.EVENT_UDP));
- break;
- case "call_3"://床头机呼叫床头机
- break;
- case "call_5"://床头机呼叫手表
- break;
- case "call_6":
- UdpEntity udpEntity6 = new UdpEntity();
- udpEntity6.setIndexes(data[0]);
- udpEntity6.setNurseHostID(data[1]);
- udpEntity6.setDoorwayMachineID(data[2]);
- udpEntity6.setHeadMachineID(data[3]);
- udpEntity6.setSipAddress(data[4]);
- udpEntity6.setRoomNumber(data[5]);
- udpEntity6.setBedNumber(data[6]);
- udpEntity6.setLevel(data[7]);
- udpEntity6.setType(data[8]);
- udpEntity6.setName(data[9]);
- udpEntity6.setShowText("门口机呼叫护士主机");
- EventBus.getDefault().post(new MessageEvent(udpEntity6, Constants.EVENT_UDP));
- break;
- case "call_7":
- //门口机呼叫医生主机");
- break;
- case "call_8":
- //护士主机呼叫分机");
- break;
- case "call_9":
- //护士主机呼叫护士主机");
- break;
- case "call_10":
- //护士主机呼叫医生主机");
- break;
- case "call_11":
- //手表呼叫护士主机");
- break;
- case "call_15_doctor_hang_up_phone"://医生主机挂断电话
- UdpEntity udpEntity_15_doctor_hang_up_phone = new UdpEntity();
- udpEntity_15_doctor_hang_up_phone.setIndexes(data[0]);
- udpEntity_15_doctor_hang_up_phone.setNurseHostID(data[1]);
- udpEntity_15_doctor_hang_up_phone.setDoorwayMachineID(data[2]);
- udpEntity_15_doctor_hang_up_phone.setHeadMachineID(data[3]);
- udpEntity_15_doctor_hang_up_phone.setSipAddress(data[4]);
- udpEntity_15_doctor_hang_up_phone.setRoomNumber(data[5]);
- udpEntity_15_doctor_hang_up_phone.setBedNumber(data[6]);
- udpEntity_15_doctor_hang_up_phone.setLevel(data[7]);
- udpEntity_15_doctor_hang_up_phone.setType(data[8]);
- udpEntity_15_doctor_hang_up_phone.setName(data[9]);
- udpEntity_15_doctor_hang_up_phone.setDeviceMAC(data[10]);
- udpEntity_15_doctor_hang_up_phone.setShowText("医生主机挂断电话");
- //推向event
- EventBus.getDefault().post(new MessageEvent(udpEntity_15_doctor_hang_up_phone, Constants.EVENT_UDP));
- break;
- case "end_1":
- //挂断");
- break;
- case "deposit_1"://主机一托管给主机二
- case "deposit_2"://主机一取消托管
- case "deposit_3"://主机二同意托管
- case "deposit_4"://主机二不托管
- udpEntitys = new UdpEntity();
- udpEntitys.setIndexes(data[0]);
- udpEntitys.setNurseHostID(data[1]);
- udpEntitys.setDoorwayMachineID(data[2]);
- udpEntitys.setHeadMachineID(data[3]);
- udpEntitys.setSipAddress(data[4]);
- udpEntitys.setRoomNumber(data[5]);
- udpEntitys.setBedNumber(data[6]);
- udpEntitys.setLevel(data[7]);
- udpEntitys.setType(data[8]);
- udpEntitys.setName(data[9]);
- udpEntitys.setShowText("护士主机托管护士主机");
- if (udpEntitys.getNurseHostID().equals(MYSELF_ID) || udpEntitys.getDoorwayMachineID().equals(MYSELF_ID)) {
- EventBus.getDefault().post(new MessageEvent(3, Constants.EVENT_FRAGMENT));
- EventBus.getDefault().post(new MessageEvent(11, Constants.EVENT_FRAGMENT_TRUST));
- }
- break;
- case "nursing_1"://进入护理
- UdpEntity nursing_1 = new UdpEntity();
- nursing_1.setIndexes(data[0]);
- nursing_1.setNurseHostID(data[1]);
- nursing_1.setDoorwayMachineID(data[2]);
- nursing_1.setHeadMachineID(data[3]);
- nursing_1.setSipAddress(data[4]);
- nursing_1.setRoomNumber(data[5]);
- nursing_1.setBedNumber(data[6]);
- nursing_1.setLevel(data[7]);
- nursing_1.setType(data[8]);
- nursing_1.setName(data[9]);
- EventBus.getDefault().post(new MessageEvent(nursing_1, Constants.EVENT_UDP));
- break;
- case "nursing_2"://退出护理
- UdpEntity nursing_2 = new UdpEntity();
- nursing_2.setIndexes(data[0]);
- nursing_2.setNurseHostID(data[1]);
- nursing_2.setDoorwayMachineID(data[2]);
- nursing_2.setHeadMachineID(data[3]);
- nursing_2.setSipAddress(data[4]);
- nursing_2.setRoomNumber(data[5]);
- nursing_2.setBedNumber(data[6]);
- nursing_2.setLevel(data[7]);
- nursing_2.setType(data[8]);
- nursing_2.setName(data[9]);
- EventBus.getDefault().post(new MessageEvent(nursing_2, Constants.EVENT_UDP));
- break;
- case "cancel_bed_call"://门口机取消呼叫
- UdpEntity cancel_bed_call = new UdpEntity();
- cancel_bed_call.setIndexes(data[0]);
- cancel_bed_call.setNurseHostID(data[1]);
- cancel_bed_call.setDoorwayMachineID(data[2]);
- cancel_bed_call.setHeadMachineID(data[3]);
- cancel_bed_call.setSipAddress(data[4]);
- cancel_bed_call.setRoomNumber(data[5]);
- cancel_bed_call.setBedNumber(data[6]);
- cancel_bed_call.setLevel(data[7]);
- cancel_bed_call.setType(data[8]);
- cancel_bed_call.setName(data[9]);
- cancel_bed_call.setShowText("门口机取消呼叫");
- EventBus.getDefault().post(new MessageEvent(cancel_bed_call, Constants.EVENT_UDP));
- break;
- case "MGR_VOICEMESSAGE"://语音留言
- if (!Constants.VOICE_MESSAGE_HOSMANINFO_NURSE.equals(data[1])
- || !Constants.VOICE_MESSAGE_DEVICETYPE_NURSE.equals(data[2])
- || !Constants.VOICE_MESSAGE_DEVICEID_NURSE.equals(data[3])
- || !Constants.VOICE_MESSAGE_PATIENTID_NURSE.equals(data[4])
- || !Constants.VOICE_MESSAGE_PATIENTNAME_NURSE.equals(data[5])
- || !Constants.VOICE_MESSAGE_FILEORIGINALNAME_NURSE.equals(data[6])
- || !Constants.VOICE_MESSAGE_FILESTORENAME_NURSE.equals(data[7])
- || !Constants.VOICE_MESSAGE_MESSAGETIME_NURSE.equals(data[8])
- || !Constants.VOICE_MESSAGE_CONTENT_NURSE.equals(data[9])
- || !Constants.VOICE_MESSAGE_ID_NURSE.equals(data[10])
- ) {
- Constants.VOICE_MESSAGE_HOSMANINFO_NURSE = data[1];
- Constants.VOICE_MESSAGE_DEVICETYPE_NURSE = data[2];
- Constants.VOICE_MESSAGE_DEVICEID_NURSE = data[3];
- Constants.VOICE_MESSAGE_PATIENTID_NURSE = data[4];
- Constants.VOICE_MESSAGE_PATIENTNAME_NURSE = data[5];
- Constants.VOICE_MESSAGE_FILEORIGINALNAME_NURSE = data[6];
- Constants.VOICE_MESSAGE_FILESTORENAME_NURSE = data[7];
- Constants.VOICE_MESSAGE_MESSAGETIME_NURSE = data[8];
- if (data.length > 9)
- Constants.VOICE_MESSAGE_CONTENT_NURSE = data[9];
- if (data.length > 10)
- Constants.VOICE_MESSAGE_ID_NURSE = data[10];
- MessageEntity messageEntity = new MessageEntity();
- messageEntity.setIndexes(data[0]);
- messageEntity.setHosManInfo(data[1]);
- messageEntity.setDeviceType(data[2]);
- messageEntity.setDeviceID(data[3]);
- messageEntity.setPatientID(data[4]);
- messageEntity.setPatientName(data[5]);
- messageEntity.setFileOriginalName(data[6]);
- messageEntity.setFileStoreName(data[7]);
- messageEntity.setMessageTime(data[8]);
- if (data.length > 9)
- messageEntity.setContent(data[9]);
- if (data.length > 10)
- messageEntity.setID(data[10]);
- EventBus.getDefault().post(new MessageEvent(messageEntity, Constants.EVENT_VOICE_MESSAGE));
- } else {
- return;
- }
- case "back_1":
- //呼叫回复");
- break;
- }
- } else if ("#".equals(udpMsg.substring(0, 1))) {
- //判断是否为服务端发过来的命令
- udpMsg = delHeadAndEnd(udpMsg, "#", "$");
- String[] data = udpMsg.split(Constants.DELIMITER);
- if(StringUtils.notEmpty(Constants.PartID)){
- try {
- LogUtil.d("AAGGH", "PartID==" + Constants.PartID+"-----UDPPartID=="+data[data.length - 1]);
- if (!StringUtils.notEmpty(data[data.length - 1]) || !Constants.PartID.equals(data[data.length - 1])) {// 协议规定所有UDP最后一条为 PartID (科室ID)。只有属于自己科室的才能作用
- return;
- }
- } catch (Exception e) {
- return;
- }
- }
- switch (data[0]) {
- case "MGR_UPDATE"://后台相关数据改变后通知护士主机刷新UI
- if (!Constants.MGR_UPDATE) {
- Constants.MGR_UPDATE = true;
- EventBus.getDefault().post(new MessageEvent(null, Constants.EVENT_MGR_UPDATE));
- }
- break;
- case "HEART"://服务端定时发送心跳监听;APP回复
- if (data[1].equals(Constants.MAC_ADDRESS)) {
- sendString("HEART," + Constants.MAC_ADDRESS);
- }
- break;
- case "MGR_SHUTDOWN": //关机 //批量关机
- if (data[1].equals(Constants.MAC_ADDRESS) || (data[1].equals("FF:FF:FF:FF:FF:FF"))) {
- AutoRebootUtil.shutdown();//调用Linux-shell命令
- }
- break;
- case "MGR_RESET"://重启AP //批量重启()
- if (data[1].equals(Constants.MAC_ADDRESS) || (data[1].equals("FF:FF:FF:FF:FF:FF") && data[2].equals(Constants.MYSELF_ID))) {
- TRUST_FLAG_VALUE = 66;
- // EventBus.getDefault().post(new MessageEvent("reset", Constants.EVENT_MGR_RESET));
- if (!isReset) {
- isReset = true;
- Intent mStartActivity = new Intent(MyApplication.getAppContext(), InitActivity.class);
- int mPendingIntentId = 123456;
- PendingIntent mPendingIntent = PendingIntent.getActivity(MyApplication.getAppContext(), mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
- AlarmManager mgr = (AlarmManager) MyApplication.getAppContext().getSystemService(Context.ALARM_SERVICE);
- mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 2000, mPendingIntent);
- System.exit(0);
- }
- } else {
- //重启失败
- TRUST_FLAG_VALUE = 88;
- }
- EventBus.getDefault().post(new MessageEvent(TRUST_FLAG_VALUE, Constants.EVENT_FRAGMENT_TRUST));
- break;
- case "MGR_SYSTEM_RESET"://系统重启
- if (data[1].equals(Constants.MAC_ADDRESS)) {
- if (SerialPortUtil.systemVersionIsO()) {//安卓8.1.0 版用
- MyApplication.serialPortUtil.systemRestart();//调用吴总串口
- } else {
- AutoRebootUtil.reboot();//调用Linux-shell命令
- }
- }
- break;
- //给出设备信息
- case "MGR_REG_Q":
- try {
- if (data[1].equals(Constants.MAC_ADDRESS)) {
- //有线mac地址,设备出场信息,无线mac地址
- String str = "$MGR_REG_A" + Constants.DELIMITER + Constants.MAC_ADDRESS + Constants.DELIMITER + "1" + Constants.DELIMITER + android.os.Build.DISPLAY +
- Constants.DELIMITER + Constants.MAC_ADDRESS + Constants.DELIMITER + "FF:FF:FF:FF:FF:FF" + Constants.DELIMITER + SerialPortUtil.KEY_ID + "#";
- UdpHelper.send(str);
- }
- } catch (ArrayIndexOutOfBoundsException e) {
- e.printStackTrace();
- }
- break;
- case "MGR_MACHINE_SETSYS": //系统设置
- try {
- LogUtil.d("MGR_MACHINE_SETSYS", data[1] + "--" + data[2] + "--" + data[3] + "--" + data[4] + "--" + data[5] + "--" + data[6] + "--" + data[7] + "--" + data[8] + "--" + data[9] + "--" + data[10] + "--" + data[13]);
- if (!Constants.MORNING_NIGTH.equals(data[1])
- || !Constants.SCREENLIGHT.equals(data[2])
- || !Constants.BEDSYSVOICE.equals(data[3])
- || !Constants.RINGLVOICE.equals(data[4])
- || !Constants.RINGLVOICELOOP.equals(data[5])
- || !Constants.NURSINGLIGHT.equals(data[6])
- || !Constants.CALLINGTIMEOUT.equals(data[7])
- || !Constants.SCREENEXTINGUISHTIME.equals(data[8])
- || !Constants.DOORCALLVOICE.equals(data[9])
- || !Constants.BEDCALLVOICE.equals(data[10])
- || !Constants.VOICE_BROADCAST_TYPE.equals(data[13])
- ) {
- Constants.MORNING_NIGTH = data[1];
- Constants.SCREENLIGHT = data[2];
- Constants.BEDSYSVOICE = data[3];
- Constants.RINGLVOICE = data[4];
- Constants.RINGLVOICELOOP = data[5];
- Constants.NURSINGLIGHT = data[6];
- Constants.CALLINGTIMEOUT = data[7];
- Constants.SCREENEXTINGUISHTIME = data[8];
- Constants.DOORCALLVOICE = data[9];
- Constants.BEDCALLVOICE = data[10];
- Constants.VOICE_BROADCAST_TYPE = data[13];
- SystemSetEntity machine_setsys = new SystemSetEntity(data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8]);
- EventBus.getDefault().post(new MessageEvent(machine_setsys, Constants.EVENT_SETSYS));
- }
- } catch (Exception e) {
- }
- break;
- case "MGR_APPUPDATE": //APP更新
- LogUtil.d("CheckUpdate", "2===data[1]==" + data[1] + "----UPDATE_APP_FLAG==" + Constants.UPDATE_APP_FLAG);
- if (data[1].equals("1")) {
- if (!Constants.UPDATE_APP_FLAG) {
- Constants.UPDATE_APP_FLAG = true;
- EventBus.getDefault().post(new MessageEvent(null, Constants.EVENT_MGR_APP_UPDATE));
- }
- }
- break;
- case "MGR_VOICEMESSAGE"://语音留言
- String flag = "";
- if (data.length > 7) {
- flag = data[7];
- if (!flag.contains(".amr")) {
- flag += ".amr";
- }
- }
- if (data.length > 8)
- flag = data[8];
- if (!Constants.setVoiceTimes(flag)) {
- MessageEntity messageEntity = new MessageEntity();
- messageEntity.setIndexes(data[0]);
- messageEntity.setHosManInfo(data[1]);
- messageEntity.setDeviceType(data[2]);
- messageEntity.setDeviceID(data[3]);
- messageEntity.setPatientID(data[4]);
- messageEntity.setPatientName(data[5]);
- messageEntity.setFileOriginalName(data[6]);
- if (!data[7].contains(".amr")) {
- data[7] += ".amr";
- }
- messageEntity.setFileStoreName(data[7]);
- if (data.length > 8)
- messageEntity.setMessageTime(data[8]);
- if (data.length > 9)
- messageEntity.setContent(data[9]);
- if (data.length > 10)
- messageEntity.setID(data[10]);
- EventBus.getDefault().post(new MessageEvent(messageEntity, Constants.EVENT_VOICE_MESSAGE));
- } else {
- Log.d("", "");
- return;
- }
- break;
- }
- }
- }
- public static void sendUdpData(String Indexes, String nurseHostID, String doorwayMachineID, String headMachineID, String sipAddress, String roomNumber, String bedNumber, String level, String type, String name, String deviceMAC) {
- final String strUdp = Indexes + Character.toString((char) 3) + nurseHostID +
- Character.toString((char) 3) + doorwayMachineID + Character.toString((char) 3)
- + headMachineID + Character.toString((char) 3) + sipAddress + Character.toString((char) 3)
- + roomNumber + Character.toString((char) 3) + bedNumber + Character.toString((char) 3) + level + Character.toString((char) 3) + type + Character.toString((char) 3) + name + Character.toString((char) 3) + deviceMAC
- + Character.toString((char) 3) + Constants.PartID;//add by waderson 20190627 加了一个partId (科室ID)
- new Thread() {
- @Override
- public void run() {
- //把网络访问的代码放在这里
- UdpHelper.send("$" + strUdp + "#");
- }
- }.start();
- }
- /**
- * 直接UDP 发送一条字符串
- */
- public static void sendString(final String str) {
- new Thread() {
- @Override
- public void run() {
- //把网络访问的代码放在这里
- UdpHelper.send("$" + str + "#");
- }
- }.start();
- }
- public static String delHeadAndEnd(String source, String beginTrim, String endTrim) {
- if (source == null) {
- return "";
- }
- source = source.trim(); // 循环去掉字符串首的beTrim字符
- if (source.isEmpty()) {
- return "";
- }
- String beginChar = source.substring(0, 1);
- if (beginChar.equalsIgnoreCase(beginTrim)) {
- source = source.substring(1, source.length());
- beginChar = source.substring(0, 1);
- }
- // 循环去掉字符串尾的beTrim字符
- String endChar = source.substring(source.length() - 1, source.length());
- if (endChar.equalsIgnoreCase(endTrim)) {
- source = source.substring(0, source.length() - 1);
- endChar = source.substring(source.length() - 1, source.length());
- }
- return source;
- }
- }
|