Browse Source

<调试呼叫和通话功能>

weizhengliang 5 years ago
parent
commit
ba6cc02ad6

+ 108 - 153
app/src/main/java/com/wdkl/callingbed2/ui/CallingBedActivity.java

@@ -365,6 +365,10 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
     @Bind(R.id.view_nurse_layout_tv_call_timeout)
     TextView tvNurseTimeOut;
 
+    //取消呼叫护士
+    @Bind(R.id.view_call_nurse_layout_tv_call_end)
+    TextView tvCallNurseEnd;
+
     private ImageView ivWelcome;
     private MyTextView tvMessage;
     // 语音播报
@@ -449,6 +453,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
 
                         //自动回来主页面 add by waderson 20190707
                         comeBackMainPage();
+                        checkHideSlideView();
                         break;
                     case INIT_SYSTEM:
                         LogUtil.d("NURSELIGHT", "INIT_SYSTEM");
@@ -571,6 +576,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
 
         tvSupportEnd.setOnClickListener(this);
         tvCallCareEnd.setOnClickListener(this);
+        tvCallNurseEnd.setOnClickListener(this);
     }
 
     @Override
@@ -1320,8 +1326,9 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
     //---------------------------------------------串口点击事件监听----------------------------------------------------------
     @Override
     public void serialPortBedOnclick(byte[] buffer) {
-        LogUtil.e("serialPortBedOnclick", "buffer[0]:" + buffer[0] + "buffer[1]:" + buffer[1] + "buffer[2]:" + buffer[2] + "buffer[3]:" + buffer[3] + "buffer[4]:"
-                + buffer[4] + "buffer[5]:" + buffer[5]);
+        /*LogUtil.e("serialPortBedOnclick", "buffer[0]:" + buffer[0] + ", buffer[1]:" + buffer[1] + ", buffer[2]:" + buffer[2]
+                + ", buffer[3]:" + buffer[3] + ", buffer[4]:" + buffer[4] + ", buffer[5]:" + buffer[5] + ", buffer[6]:" + buffer[6]
+                + ", buffer[7]:" + buffer[7] + ", buffer[8]:" + buffer[8]);*/
         if (buffer[7] == 1) { //卫生间短按松开
             CallingBedActivity.this.runOnUiThread(new Runnable() {
                 public void run() {
@@ -1369,182 +1376,65 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
             }
         }
 
-
-        //7寸分机注释掉下面代码
-        /*if (null != vWelcome) {
+        if (null != vWelcome) {
             //只有在欢迎界面没有显示的时候串口才能用
             if (vWelcome.getVisibility() == View.GONE) {
-                //医嘱键短按松开
-                if (buffer[0] == 1) {
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            clickVDoctor();
-                        }
-                    });
-                }
-                //医嘱键长按松开
-                if (buffer[0] == 2) {
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            clickVDoctor();
-                            //sendMultitapNurse(initDataEntity, mainDataEntity);
-                        }
-                    });
-                }
-                //费用查询键短按松开
-                if (buffer[1] == 1) {
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            clickVCost();
-                        }
-                    });
-                }
-                //费用查询键长按松开
-                if (buffer[1] == 2) {
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            clickVCost();
-                        }
-                    });
-                }
-                //二维码键短按松开
-                if (buffer[2] == 1) {
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            clickVQrCode();
-                        }
-                    });
-                }
-                //二维码键长按松开
-                if (buffer[2] == 2) {
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            clickVQrCode();
-                        }
-                    });
-                }
-                if (buffer[3] == 1) { //请求增援键短按松开
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            clickVSupport();
-                        }
-                    });
-                }
-                if (buffer[3] == 2) {//请求增援键长按松开
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            if (isNurseStatus) {//进入护理后;子机请求转接(add by waderson 20191108)
-                                UdpSendUtil.sendCall1Transfer(initDataEntity, mainDataEntity);
-                            } else {
-                            }
-                        }
-                    });
-                }
-                //呼叫护工键短按松开
-                if (buffer[4] == 1) {
+                //面板呼叫按键
+                if (buffer[5] == -1) {//按键常态
+                    LogUtil.d("WWW", "呼叫护士键==-1");
+                } else if (buffer[5] == 0) { //呼叫护士键按住不动
+                    LogUtil.d("WWW", "呼叫护士键==0");
+                } else if (buffer[5] == 1 || buffer[5] == 2) {//呼叫护士键短按长按松开
                     CallingBedActivity.this.runOnUiThread(new Runnable() {
                         public void run() {
-                            clickVCall();
+                            LogUtil.d("WWW", "呼叫护士键==1");
+                            callNurse();
+                            tvNurseTimeOut.setText("");
+                            //呼叫超时倒计时开启
+                            callTypeCallNurse = "1";
+                            handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
                         }
                     });
                 }
-                //呼叫护工键长按松开
-                if (buffer[4] == 2) {
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            snackbar.dismiss();//底部snackbar消失
-
-                            if (null != callNoticeEntity) {
-                                if (!Constants.WSHROOM_CALL.equals(callNoticeEntity.getType())) {
-                                    //开始转接拨打各种电话。waderson 2019 03 21
-                                    isTransfer = true;
-                                    SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().startCall(callNoticeEntity.getSipAddress());
-                                } else {
-                                    ToastUtil.showToast(CallingBedActivity.this, "不支持卫生间通话!");
-                                }
-                            } else {
-                                ToastUtil.showToast(CallingBedActivity.this, "当前无呼叫请求");
-                            }
 
-                        }
-                    });
-                }
-                if (buffer[5] == 0) { //呼叫护士键按住不动
+                //面板挂断按键
+                if (buffer[8] == -1) {//按键常态
+                    LogUtil.d("WWW", "呼叫护士键==-1");
+                } else if (buffer[8] == 0) { //挂断键按住不动
                     LogUtil.d("WWW", "呼叫护士键==0");
-                } else if (buffer[5] == 1) {//呼叫护士键短按松开
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            LogUtil.d("WWW", "呼叫护士键==1");
-                            long curTimeMills = System.currentTimeMillis();
-                            if (curTimeMills - localMillsCallNurse > 3000) {
-                                clickVNurse();
-                                localMillsCallNurse = curTimeMills;
-                                tvNurseTimeOut.setText("");
-                                //呼叫超时倒计时开启
-                                callTypeCallNurse = "1";
-                                handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
-                            }
-                        }
-                    });
-                } else if (buffer[5] == 2) {//呼叫护士键长按松开
+                } else if (buffer[8] == 1 || buffer[8] == 2) {//挂断键短按长按松开
                     CallingBedActivity.this.runOnUiThread(new Runnable() {
                         public void run() {
-                            if (Constants.IS_CALLED == 0) {//当前没有呼叫长按后还是呼叫
-                                long curTimeMills = System.currentTimeMillis();
-                                if (curTimeMills - localMillsCallNurse > 3000) {
-                                    clickVNurse();
-                                    localMillsCallNurse = curTimeMills;
-                                    tvNurseTimeOut.setText("");
-                                    //呼叫超时倒计时开启
-                                    callTypeCallNurse = "1";
-                                    handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
-                                }
-                            } else if (Constants.IS_CALLED == 1) {//当前有呼叫长按后取消呼叫
-                                UdpSendUtil.sendHangUp(initDataEntity, mainDataEntity);//长按取消呼叫 add by waderson 20191108
-                            }
-
+                            LogUtil.d("WWW", "挂断键==1,2");
+                            endCallNurse();
+                            tvNurseTimeOut.setText("");
+                            //呼叫超时倒计时开启
+                            callTypeCallNurse = "1";
+                            handsMICStatus = setHandsMIC(serialPortUtil, false);//点击了外部按键就将手柄MIC关掉
                         }
                     });
-                } else if (buffer[5] == -1) {//按键常态
-                    LogUtil.d("WWW", "呼叫护士键==-1");
                 }
-                //------------------------below things was add by Waderson 20171106  -----------------------------------
+
                 if (buffer[6] == 1 || buffer[6] == 2) { //手柄短按松开,手柄长按松开 都要执行
                     CallingBedActivity.this.runOnUiThread(new Runnable() {
                         public void run() {
                             LogUtil.d("WWW", "呼叫护士键==-2");
-                            if (CALL_STATUS.equals(Constants.STANDBY) || CALL_STATUS.equals(Constants.IN_CALLING) || CALL_STATUS.equals(NURSE_CALL_TIMEOUT)) {  //待机状态或呼叫超时或通话中可以挂断
+                            tvNurseTimeOut.setText("");
+                            //呼叫超时倒计时开启
+                            callTypeCallNurse = "2";
+                            if (CALL_STATUS.equals(Constants.STANDBY)) {
+                                callNurse();
                                 handsMICStatus = setHandsMIC(serialPortUtil, true);
-
-                                clickVNurse();
-                                tvNurseTimeOut.setText("");
-                                //呼叫超时倒计时开启
-                                callTypeCallNurse = "2";
-                                localMillsCallNurse = System.currentTimeMillis();
-                            } *//*else {
+                            } else if (CALL_STATUS.equals(Constants.IN_CALLING) || CALL_STATUS.equals(NURSE_CALL_TIMEOUT)) {
+                                endCallNurse();
                                 handsMICStatus = setHandsMIC(serialPortUtil, false);
-                            }*//*
-                        }
-                    });
-                }
-                if (buffer[6] == 2) {//手柄长按松开
-                    CallingBedActivity.this.runOnUiThread(new Runnable() {
-                        public void run() {
-                            LogUtil.d("WWW", "呼叫护士键==-3");
-                            if (bedLightStatus) {
-                                bedLightStatus = setBedLight(serialPortUtil, false, 0);
-                                // showToast("床头灯关闭");
-                            } else {
-                                bedLightStatus = setBedLight(serialPortUtil, true, 0);
-                                // showToast("床头灯点亮");
                             }
                         }
                     });
                 }
-
-
             }
-        }*/
+        }
+
     }
 
     //---------------------------------------------串口点击事件监听----------------------------------------------------------
@@ -2132,6 +2022,53 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
             }
         }
     }
+
+    private void callNurse() {
+        if (isVisible(vNurse)) {
+            //当前正在呼叫或通话中,直接返回
+            return;
+        }
+
+        vMain_big.setVisibility(View.GONE);//显示增长页面20191017
+        timeOfBackMainPage = 0;
+        timeOut = callTimeOutBack;
+        if (isVisible(vMain)) {
+            callNurse = true;
+            showThisView(vNurse);
+            setDoorLight(serialPortUtil, "200");//门灯红色闪烁  add by waderson 20191119 后来加的门灯控制
+            UdpSendUtil.sendCall1(initDataEntity, mainDataEntity);
+            CALL_STATUS = Constants.NURSE_IN_CALL;
+            if (null != initDataEntity) {
+                jbVNurse = setJumpingBeans(tvNurseText, initDataEntity.getDeviceBedNum() + "床已呼叫,等待护士接听中...");
+            }
+
+        } else {
+            if (!isVisible(vSupport) && !isVisible(vCall)) {//排除呼叫状态
+                callNurse = true;
+                showThisView(vNurse);
+                setDoorLight(serialPortUtil, "200");//门灯红色闪烁  add by waderson 20191119 后来加的门灯控制
+                UdpSendUtil.sendCall1(initDataEntity, mainDataEntity);
+                CALL_STATUS = Constants.NURSE_IN_CALL;
+                if (null != initDataEntity) {
+                    jbVNurse = setJumpingBeans(tvNurseText, initDataEntity.getDeviceBedNum() + "床已呼叫,等待护士接听中...");
+                }
+            } else {
+                showToast("请先取消呼叫!");
+            }
+        }
+    }
+
+    private void endCallNurse() {
+        if (isVisible(vNurse)) {
+            callNurse = false;
+            UdpSendUtil.sendHangUp(initDataEntity, mainDataEntity);//取消呼叫 add by waderson 20191118
+            SipHelperUtil.getInstance(CallingBedActivity.this).getmSipCallBackI().endCall();
+            CALL_STATUS = STANDBY;
+            showThisView(vMain);
+            goneLlRightView(true);
+        }
+    }
+
     //---------------------------------------------串口点击事件部分(下)---------------------------------------------------------------------
     //---------------------------------------------UI更改操作部分(上)---------------------------------------------------------------------
 
@@ -2139,6 +2076,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
      * 显示侧边栏
      */
     protected void showLlRightView() {
+        timeOfHideSlideView = 0;
         //changeTextColor(null);
         Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.in_righttoleft);
         llRight.setAnimation(animation);
@@ -2249,6 +2187,9 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
             case R.id.view_call_care_layout_tv_call_end:
                 showThisView(vMain);
                 break;
+            case R.id.view_call_nurse_layout_tv_call_end:
+                endCallNurse();
+                break;
         }
     }
 
@@ -2443,6 +2384,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
 
 
     int timeOfBackMainPage = 0;
+    int timeOfHideSlideView = 0;
     /**
      * 后台设置的呼叫超时时间
      */
@@ -2484,6 +2426,19 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
 
     }
 
+    //超时自动隐藏右侧侧边栏
+    private void checkHideSlideView() {
+        timeOfHideSlideView++;
+        if (isVisible(llRight) && timeOfHideSlideView >= 30) {
+            goneLlRightView(false);
+            timeOfHideSlideView = 0;
+        }
+        if (timeOfHideSlideView >= 100000) {
+            timeOfHideSlideView = 0;
+        }
+    }
+
+
     /**
      * 自动拉起护理项加长页面
      */

+ 3 - 2
app/src/main/java/com/wdkl/callingbed2/ui/InitActivity.java

@@ -384,7 +384,8 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
      * 灭掉护理灯
      */
     public void dismissNurseBrightness() {
-        new Thread(new Runnable() {
+        //7寸分机无护理灯
+        /*new Thread(new Runnable() {
             @Override
             public void run() {
                 try {
@@ -393,7 +394,7 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
                     e.printStackTrace();
                 }
             }
-        }).start();
+        }).start();*/
     }
 
     /**

+ 5 - 0
app/src/main/res/drawable/selector_round_bg.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/shape_call_end_bg_press" android:state_pressed="true"/>
+    <item android:drawable="@drawable/shape_call_end_bg"/>
+</selector>

+ 1 - 1
app/src/main/res/drawable/shape_call_end_bg.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <solid android:color="#ffffff"/>
+    <solid android:color="#FFFFFF"/>
     <corners android:radius="80dp"/>
 </shape>

+ 5 - 0
app/src/main/res/drawable/shape_call_end_bg_press.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#B8B8B8"/>
+    <corners android:radius="80dp"/>
+</shape>

+ 6 - 0
app/src/main/res/layout/activity_calling_bed_layout.xml

@@ -89,6 +89,7 @@
             android:background="@drawable/selector_main">
 
             <TextView
+                android:id="@+id/right_tv_main_icon"
                 android:layout_width="60dp"
                 android:layout_height="60dp"
                 android:layout_gravity="center"
@@ -117,6 +118,7 @@
             android:background="@drawable/selector_main">
 
             <TextView
+                android:id="@+id/right_tv_medical_advice_icon"
                 android:layout_width="60dp"
                 android:layout_height="60dp"
                 android:layout_gravity="center"
@@ -145,6 +147,7 @@
             android:background="@drawable/selector_main">
 
             <TextView
+                android:id="@+id/right_tv_cost_icon"
                 android:layout_width="60dp"
                 android:layout_height="60dp"
                 android:layout_gravity="center"
@@ -173,6 +176,7 @@
             android:background="@drawable/selector_main">
 
             <TextView
+                android:id="@+id/right_tv_call_care_icon"
                 android:layout_width="60dp"
                 android:layout_height="60dp"
                 android:layout_gravity="center"
@@ -201,6 +205,7 @@
             android:background="@drawable/selector_main">
 
             <TextView
+                android:id="@+id/right_tv_support_icon"
                 android:layout_width="60dp"
                 android:layout_height="60dp"
                 android:layout_gravity="center"
@@ -229,6 +234,7 @@
             android:background="@drawable/selector_main">
 
             <TextView
+                android:id="@+id/right_tv_settings_icon"
                 android:layout_width="60dp"
                 android:layout_height="60dp"
                 android:layout_gravity="center"

+ 1 - 1
app/src/main/res/layout/view_call_layout.xml

@@ -43,7 +43,7 @@
         android:layout_width="420dp"
         android:layout_height="120dp"
         android:layout_marginTop="40dp"
-        android:background="@drawable/shape_call_end_bg"
+        android:background="@drawable/selector_round_bg"
         android:layout_gravity="center"
         android:gravity="center"
         android:text="取消呼叫"

+ 19 - 7
app/src/main/res/layout/view_nurse_layout.xml

@@ -2,13 +2,13 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/black"
+    android:background="#3CA2E0"
     android:orientation="vertical">
 
     <ImageView
         android:id="@+id/view_nurse_layout_iv_pic"
-        android:layout_width="200dp"
-        android:layout_height="200dp"
+        android:layout_width="240dp"
+        android:layout_height="240dp"
         android:layout_gravity="center"
         android:layout_marginTop="80dp"
         android:gravity="center"
@@ -19,20 +19,32 @@
     <TextView
         android:id="@+id/view_nurse_layout_tv_call_text"
         android:layout_width="match_parent"
-        android:layout_height="50dp"
+        android:layout_height="80dp"
         android:layout_marginTop="10dp"
         android:gravity="center"
         android:text=""
         android:textColor="@color/white"
-        android:textSize="@dimen/font_size_30" />
+        android:textSize="40sp" />
 
     <TextView
         android:id="@+id/view_nurse_layout_tv_call_timeout"
         android:layout_width="match_parent"
-        android:layout_height="50dp"
+        android:layout_height="80dp"
         android:layout_marginTop="10dp"
         android:gravity="center"
         android:text=""
         android:textColor="@color/white"
-        android:textSize="@dimen/font_size_30" />
+        android:textSize="40sp" />
+
+    <TextView
+        android:id="@+id/view_call_nurse_layout_tv_call_end"
+        android:layout_width="420dp"
+        android:layout_height="120dp"
+        android:layout_marginTop="40dp"
+        android:background="@drawable/selector_round_bg"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:text="取消呼叫"
+        android:textColor="@color/red_color"
+        android:textSize="48sp" />
 </LinearLayout>

+ 1 - 1
app/src/main/res/layout/view_support_layout.xml

@@ -43,7 +43,7 @@
         android:layout_width="420dp"
         android:layout_height="120dp"
         android:layout_marginTop="40dp"
-        android:background="@drawable/shape_call_end_bg"
+        android:background="@drawable/selector_round_bg"
         android:layout_gravity="center"
         android:gravity="center"
         android:text="取消呼叫"

+ 7 - 3
bedlib/src/main/java/serialporttest/utils/SerialPortUtil.java

@@ -24,7 +24,8 @@ public class SerialPortUtil {
     ISerialPortBedOnclickEvent onDataReceiveListener = null;
     ISerialPortBedOnclickString onDataReceiveStringListener = null;
     public boolean isOpenSerialPortUtil = false;
-    private static byte[] KeyValue = new byte[8];
+    private static int length = 9;
+    private static byte[] KeyValue = new byte[length];
 
     int DataIndex = 0;
     int DataValue = -1;
@@ -165,7 +166,9 @@ public class SerialPortUtil {
         Log.d("bbbb", "data==" + data);
         if (!StringUtils.notEmpty(data)) return;
         if (isOpenSerialPortUtil) {
-
+            //reset data
+            DataIndex = 0;
+            DataValue = -1;
             if (data.contains("ID")) {
                 String str = data.substring(data.indexOf(",") + 1, data.indexOf("1#"));
                 int i = 0;
@@ -196,7 +199,7 @@ public class SerialPortUtil {
                         DataIndex = Integer.parseInt(str.substring(3, 4));
                         DataValue = Integer.parseInt(str.substring(5, 6));
                     }
-                    if (DataIndex < 8) {
+                    if (DataIndex < length && DataIndex >= 0) {
                         KeyValue[DataIndex] = (byte) DataValue;
                     }
                     if (null != onDataReceiveListener) {
@@ -261,6 +264,7 @@ public class SerialPortUtil {
         KeyValue[5] = -1;
         KeyValue[6] = -1;
         KeyValue[7] = -1;
+        KeyValue[8] = -1;
     }