|
@@ -1464,14 +1464,16 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
}
|
|
|
|
|
|
//病人需要休息按任意键关闭广播
|
|
|
- for (int i = 0; i < buffer.length; i++) {
|
|
|
+ //修改为长按呼叫键关闭广播
|
|
|
+ /*for (int i = 0; i < buffer.length; i++) {
|
|
|
if (buffer[i] == 1 || buffer[i] == 2) {
|
|
|
if (anyKeyCloseBroadcast()) {
|
|
|
isCloseBroadcast = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
+
|
|
|
if (!isEmptyInfo) {
|
|
|
//只有在欢迎界面没有显示的时候串口才能用
|
|
|
//if (vWelcome.getVisibility() == View.GONE) {
|
|
@@ -1583,34 +1585,43 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
}
|
|
|
if (buffer[5] == 0) { //呼叫护士键按住不动
|
|
|
LogUtil.d("WWW", "呼叫护士键==0");
|
|
|
+ callPressTime = System.currentTimeMillis();
|
|
|
} else if (buffer[5] == 1) {//呼叫护士键短按松开
|
|
|
- CallingBedActivity.this.runOnUiThread(new Runnable() {
|
|
|
- public void run() {
|
|
|
- LogUtil.d("WWW", "呼叫护士键==1");
|
|
|
- if (CALL_STATUS.equals(Constants.IN_CALL)) {
|
|
|
- //主机呼叫分机,按键接听
|
|
|
- handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
|
|
|
- //=============================================SIP自动接听===================================//
|
|
|
- SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().autoTalking();
|
|
|
- CALL_STATUS = Constants.IN_CALLING;
|
|
|
- tvNurseText.setText("正在通话中...");
|
|
|
- tvNurseTimeOut.setText("");
|
|
|
- } else {
|
|
|
- long curTimeMills = System.currentTimeMillis();
|
|
|
- if (curTimeMills - localMillsCallNurse > 3000) {
|
|
|
- clickVNurse();
|
|
|
- localMillsCallNurse = curTimeMills;
|
|
|
- tvNurseTimeOut.setText("");
|
|
|
- //呼叫超时倒计时开启
|
|
|
- callTypeCallNurse = "1";
|
|
|
- //handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
|
|
|
+ if (System.currentTimeMillis() - callPressTime > 3000) {
|
|
|
+ //关闭广播
|
|
|
+ anyKeyCloseBroadcast();
|
|
|
+ } else {
|
|
|
+ CallingBedActivity.this.runOnUiThread(new Runnable() {
|
|
|
+ public void run() {
|
|
|
+ LogUtil.d("WWW", "呼叫护士键==1");
|
|
|
+ if (CALL_STATUS.equals(Constants.IN_CALL)) {
|
|
|
+ //主机呼叫分机,按键接听
|
|
|
handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
|
|
|
+ //=============================================SIP自动接听===================================//
|
|
|
+ SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().autoTalking();
|
|
|
+ CALL_STATUS = Constants.IN_CALLING;
|
|
|
+ tvNurseText.setText("正在通话中...");
|
|
|
+ tvNurseTimeOut.setText("");
|
|
|
+ } else {
|
|
|
+ long curTimeMills = System.currentTimeMillis();
|
|
|
+ if (curTimeMills - localMillsCallNurse > 3000) {
|
|
|
+ clickVNurse();
|
|
|
+ localMillsCallNurse = curTimeMills;
|
|
|
+ tvNurseTimeOut.setText("");
|
|
|
+ //呼叫超时倒计时开启
|
|
|
+ callTypeCallNurse = "1";
|
|
|
+ //handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
|
|
|
+ handsMICStatus = setHandsMIC(serialPortUtil, true);//面板mic有回音,需要禁掉
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
} else if (buffer[5] == 2) {//呼叫护士键长按松开
|
|
|
- CallingBedActivity.this.runOnUiThread(new Runnable() {
|
|
|
+ //关闭广播
|
|
|
+ anyKeyCloseBroadcast();
|
|
|
+
|
|
|
+ /*CallingBedActivity.this.runOnUiThread(new Runnable() {
|
|
|
public void run() {
|
|
|
LogUtil.d("WWW", "呼叫护士键==2");
|
|
|
if (CALL_STATUS.equals(Constants.IN_CALL)) {
|
|
@@ -1639,7 +1650,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- });
|
|
|
+ });*/
|
|
|
} else if (buffer[5] == -1) {//按键常态
|
|
|
LogUtil.d("WWW", "呼叫护士键==-1");
|
|
|
}
|
|
@@ -1705,6 +1716,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
|
|
|
//---------------------------------------------串口点击事件监听----------------------------------------------------------
|
|
|
|
|
|
+ private long callPressTime = 0; //面板呼叫按键按下的时间
|
|
|
private long localMillsCallNurse = 0;//呼叫护士拨打的时刻
|
|
|
private String callTypeCallNurse = "";//1:外部物理按键呼叫;2:手柄按钮呼叫
|
|
|
|
|
@@ -1751,7 +1763,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
UdpEntity udpEntity = (UdpEntity) messageEvent.getMessage();
|
|
|
switch (udpEntity.getIndexes()) {
|
|
|
case "call_1": //子机呼叫护士主机
|
|
|
- showSnackbarPrompt(udpEntity.getBedNumber() + "床呼叫!");
|
|
|
+ //showSnackbarPrompt(udpEntity.getBedNumber() + "床呼叫!");
|
|
|
callNoticeEntity = udpEntity;
|
|
|
//适配无门口机但是有门灯的情况,门灯直接接到其中一个床位分机,房间内任何一个分机呼叫都需要点亮门灯
|
|
|
if (serialPortUtil != null && initDataEntity != null && initDataEntity.getDeviceRoomNum().equals(udpEntity.getRoomNumber())) {
|
|
@@ -1759,18 +1771,18 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
}
|
|
|
break;
|
|
|
case "call_2"://卫生间呼叫护士主机
|
|
|
- showSnackbarPrompt(udpEntity.getRoomNumber() + "房卫生间紧急呼叫!");
|
|
|
+ //showSnackbarPrompt(udpEntity.getRoomNumber() + "房卫生间紧急呼叫!");
|
|
|
callNoticeEntity = udpEntity;
|
|
|
if (serialPortUtil != null && initDataEntity != null && initDataEntity.getDeviceRoomNum().equals(udpEntity.getRoomNumber())) {
|
|
|
setDoorLight(serialPortUtil, "200");//门灯红色闪烁
|
|
|
}
|
|
|
break;
|
|
|
case "call_4"://增援呼叫护士主机
|
|
|
- showSnackbarPrompt(udpEntity.getBedNumber() + "床请求增援!");
|
|
|
+ //showSnackbarPrompt(udpEntity.getBedNumber() + "床请求增援!");
|
|
|
callNoticeEntity = udpEntity;
|
|
|
break;
|
|
|
case "call_6": //门口机呼叫护士主机
|
|
|
- showSnackbarPrompt(udpEntity.getRoomNumber() + "房门口机呼叫!");
|
|
|
+ //showSnackbarPrompt(udpEntity.getRoomNumber() + "房门口机呼叫!");
|
|
|
callNoticeEntity = udpEntity;
|
|
|
break;
|
|
|
case "call_8_upremove"://主机通知对应的子机改变自己的UI
|
|
@@ -1786,6 +1798,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
CALL_STATUS = STANDBY;
|
|
|
showThisView(vMain);
|
|
|
resetOffScreen();
|
|
|
+ resumeBroadcastVolume();
|
|
|
}
|
|
|
} else {
|
|
|
flickerStatus = setWSHLightFlicker(serialPortUtil, false);
|
|
@@ -1873,6 +1886,8 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
if (isDownloadMp3) {
|
|
|
ToastUtil.showToast("广播文件正在下载中,请稍等...");
|
|
|
} else {
|
|
|
+ //重新下载广播文件
|
|
|
+ needReDownload = true;
|
|
|
getBroadcastAudioFiles();
|
|
|
}
|
|
|
}
|
|
@@ -1964,7 +1979,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
}
|
|
|
}
|
|
|
tvBroadcasting.setVisibility(View.VISIBLE);
|
|
|
- tvBroadcasting.setText("======广播中======");
|
|
|
+ tvBroadcasting.setText("==广播中:" + bcStr + "==");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -2255,6 +2270,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
CALL_STATUS = STANDBY;
|
|
|
showThisView(vMain);
|
|
|
goneLlRightView(true);
|
|
|
+ resumeBroadcastVolume();
|
|
|
} else {
|
|
|
if (isVisible(vMain)) {
|
|
|
if (isVisible(llRight)) {
|
|
@@ -2263,6 +2279,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
goneLlRightView(true);
|
|
|
setDoorLight(serialPortUtil, "200");//门灯红色闪烁 add by waderson 20191119 后来加的门灯控制
|
|
|
UdpSendUtil.sendCall4(initDataEntity, mainDataEntity);
|
|
|
+ muteBroadcastVolume();
|
|
|
SoundPoolManager.getInstance().playSound(2);
|
|
|
CALL_STATUS = Constants.SUPPORT_IN_CALL;
|
|
|
if (null != initDataEntity) {
|
|
@@ -2277,6 +2294,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
showThisView(vSupport);
|
|
|
setDoorLight(serialPortUtil, "200");//门灯红色闪烁 add by waderson 20191119 后来加的门灯控制
|
|
|
UdpSendUtil.sendCall4(initDataEntity, mainDataEntity);
|
|
|
+ muteBroadcastVolume();
|
|
|
SoundPoolManager.getInstance().playSound(2);
|
|
|
CALL_STATUS = Constants.SUPPORT_IN_CALL;
|
|
|
if (null != initDataEntity) {
|
|
@@ -2298,6 +2316,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
resetOffScreen();
|
|
|
CALL_STATUS = STANDBY;
|
|
|
showThisView(vMain);
|
|
|
+ resumeBroadcastVolume();
|
|
|
goneLlRightView(true);
|
|
|
} else {
|
|
|
if (isVisible(vMain)) {
|
|
@@ -2306,6 +2325,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
changeTextColor(tvCall);
|
|
|
goneLlRightView(true);
|
|
|
//sendProtectHelp();//呼叫护工还没有做;这个先预留
|
|
|
+ muteBroadcastVolume();
|
|
|
SoundPoolManager.getInstance().playSound(2);
|
|
|
CALL_STATUS = Constants.WORK_IN_CALL;
|
|
|
if (null != initDataEntity) {
|
|
@@ -2319,6 +2339,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
if (!isVisible(vSupport) && !isVisible(vNurse)) {//排除呼叫状态
|
|
|
showThisView(vCall);
|
|
|
//sendProtectHelp();//呼叫护工还没有做;这个先预留
|
|
|
+ muteBroadcastVolume();
|
|
|
SoundPoolManager.getInstance().playSound(2);
|
|
|
CALL_STATUS = Constants.WORK_IN_CALL;
|
|
|
if (null != initDataEntity) {
|
|
@@ -2347,12 +2368,14 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().endCall();
|
|
|
CALL_STATUS = STANDBY;
|
|
|
showThisView(vMain);
|
|
|
+ resumeBroadcastVolume();
|
|
|
} else {
|
|
|
if (isVisible(vMain)) {
|
|
|
callNurse = true;
|
|
|
showThisView(vNurse);
|
|
|
setDoorLight(serialPortUtil, "200");//门灯红色闪烁 add by waderson 20191119 后来加的门灯控制
|
|
|
UdpSendUtil.sendCall1(initDataEntity, mainDataEntity);
|
|
|
+ muteBroadcastVolume();
|
|
|
SoundPoolManager.getInstance().playSound(2);
|
|
|
CALL_STATUS = Constants.NURSE_IN_CALL;
|
|
|
if (null != initDataEntity) {
|
|
@@ -2365,6 +2388,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
showThisView(vNurse);
|
|
|
setDoorLight(serialPortUtil, "200");//门灯红色闪烁 add by waderson 20191119 后来加的门灯控制
|
|
|
UdpSendUtil.sendCall1(initDataEntity, mainDataEntity);
|
|
|
+ muteBroadcastVolume();
|
|
|
SoundPoolManager.getInstance().playSound(2);
|
|
|
CALL_STATUS = Constants.NURSE_IN_CALL;
|
|
|
if (null != initDataEntity) {
|
|
@@ -2377,6 +2401,24 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void muteBroadcastVolume() {
|
|
|
+ if (MediaPlayerManger.getInstance().isPlay()) {
|
|
|
+ MediaPlayerManger.getInstance().setVolume(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void resumeBroadcastVolume() {
|
|
|
+ if (MediaPlayerManger.getInstance().isPlay()) {
|
|
|
+ float voice = 0.8f;
|
|
|
+ if (!SharedPreferencesUtil.getStringSp(this, "SetUpBroadcastVoice", "voice").equals("")) {
|
|
|
+ voice = Float.parseFloat(SharedPreferencesUtil.getStringSp(this, "SetUpBroadcastVoice", "voice"));
|
|
|
+ MediaPlayerManger.getInstance().setVolume(voice);
|
|
|
+ }
|
|
|
+ MediaPlayerManger.getInstance().setVolume(voice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//---------------------------------------------串口点击事件部分(下)---------------------------------------------------------------------
|
|
|
//---------------------------------------------UI更改操作部分(上)---------------------------------------------------------------------
|
|
|
|
|
@@ -2552,13 +2594,16 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
switch (call.mState) {
|
|
|
case 0://正在呼叫中:子机自动接通 isIncomingCall() = true mState = 0 //正在通话中:isIncomingCall() = true
|
|
|
//通话中关闭广播
|
|
|
- try {
|
|
|
+ /*try {
|
|
|
MediaPlayerManger.getInstance().stopMediaPlayer();
|
|
|
tvBroadcasting.setText("");
|
|
|
tvBroadcasting.setVisibility(View.INVISIBLE);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
- }
|
|
|
+ }*/
|
|
|
+
|
|
|
+ //通话中广播静音
|
|
|
+ muteBroadcastVolume();
|
|
|
|
|
|
//通话唤醒
|
|
|
if (isVisible(blackView)) {
|
|
@@ -2611,6 +2656,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
CallingBedActivity.initPlayerVolume(1.0f);
|
|
|
CALL_STATUS = Constants.STANDBY;
|
|
|
showThisView(vMain);
|
|
|
+ resumeBroadcastVolume();
|
|
|
|
|
|
if (isTransfer) {
|
|
|
if (null != callNoticeEntity) {
|
|
@@ -2731,6 +2777,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
|
|
|
|
|
|
CALL_STATUS = Constants.NURSE_CALL_TIMEOUT;
|
|
|
showThisView(vMain);
|
|
|
+ resumeBroadcastVolume();
|
|
|
goneLlRightView(false);
|
|
|
tvSupportTimeOut.setText("");
|
|
|
tvCallTextTimeOut.setText("");
|