ソースを参照

增加sos按钮测试和门灯测试,增加本机电源重启按钮,增加两色灯控制

vothin 1 年間 前
コミット
6b806b3eba

+ 5 - 2
i18n/zh_CN.tr

@@ -84,8 +84,9 @@
     <string name="PostitionedMsg">已定位当前位置:</string>
     <string name="RoomPatrolMsg">已巡房:</string>
 	<string name="PromptQuit">提示语已结束</string>
-    <string name="RebootDevice">重启本机</string>
-    <string name="RebootPower">重启线路电源</string>
+	<string name="RebootDevice">重启本机</string>
+    <string name="RebootPower">重启本机电源</string>
+    <string name="RebootLine">重启线路电源</string>
     <string name="ThemeBlue">是否将主题颜色切换成蓝色</string>
     <string name="ThemeRed">是否主题颜色切换成红色</string>
     <string name="ThemeConfirm">确认切换主题颜色后,本机会重启</string>
@@ -187,12 +188,14 @@
     <string name="HandleKeys">手柄按键测试</string>
     <string name="PanelCallKeys">面板呼叫按键测试</string>
     <string name="PanelCancelKeys">面板取消按键测试</string>
+    <string name="SosKeys">SOS按键测试</string>
     <string name="RecordTest">录音测试</string>
     <string name="RecordText">点击录音测试按钮,测试麦克风</string>
     <string name="RecordStart">录音开始,录制时间5秒</string>
     <string name="RecordPlay">录音结束,开始播放</string>
     <string name="RecordStop">录音播放结束</string>
     <string name="RecordFailed">录音失败</string>
+    <string name="DoorLightTest">门灯测试</string>
     <string name="ColorTest">颜色测试</string>
     <!-- 颜色测试界面 -->
     <string name="ColorMsg">点击变换颜色</string>

+ 7 - 0
jni/activity/functionActivity.cpp

@@ -4,6 +4,8 @@
 #include "functionActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
+static ZKButton* mRebootLineButtonPtr;
+static ZKTextView* mRebootLineTextViewPtr;
 static ZKButton* mRebootDeviceButtonPtr;
 static ZKButton* mRebootPowerButtonPtr;
 static ZKTextView* mRebootDeviceTextViewPtr;
@@ -81,6 +83,7 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
+    ID_FUNCTION_RebootLineButton, onButtonClick_RebootLineButton,
     ID_FUNCTION_RebootDeviceButton, onButtonClick_RebootDeviceButton,
     ID_FUNCTION_RebootPowerButton, onButtonClick_RebootPowerButton,
     ID_FUNCTION_ServerCancelButton, onButtonClick_ServerCancelButton,
@@ -169,6 +172,8 @@ functionActivity::~functionActivity() {
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
     onUI_quit();
     mActivityPtr = NULL;
+    mRebootLineButtonPtr = NULL;
+    mRebootLineTextViewPtr = NULL;
     mRebootDeviceButtonPtr = NULL;
     mRebootPowerButtonPtr = NULL;
     mRebootDeviceTextViewPtr = NULL;
@@ -218,6 +223,8 @@ const char* functionActivity::getAppName() const{
 //TAG:onCreate
 void functionActivity::onCreate() {
 	Activity::onCreate();
+    mRebootLineButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_RebootLineButton);
+    mRebootLineTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_RebootLineTextView);
     mRebootDeviceButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_RebootDeviceButton);
     mRebootPowerButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_RebootPowerButton);
     mRebootDeviceTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_RebootDeviceTextView);

+ 4 - 2
jni/activity/functionActivity.h

@@ -27,10 +27,12 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
+#define ID_FUNCTION_RebootLineButton    20011
+#define ID_FUNCTION_RebootPowerButton    20013
+#define ID_FUNCTION_RebootLineTextView    50012
+#define ID_FUNCTION_RebootPowerTextView    50013
 #define ID_FUNCTION_RebootDeviceButton    20012
-#define ID_FUNCTION_RebootPowerButton    20011
 #define ID_FUNCTION_RebootDeviceTextView    50011
-#define ID_FUNCTION_RebootPowerTextView    50012
 #define ID_FUNCTION_RebootWindow    110007
 #define ID_FUNCTION_ServerCancelButton    20010
 #define ID_FUNCTION_ServerConfirmButton    20009

+ 12 - 4
jni/activity/sipTestActivity.cpp

@@ -4,7 +4,9 @@
 #include "sipTestActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
-static ZKButton* mButton1Ptr;
+static ZKButton* mColorTestButtonPtr;
+static ZKButton* mDoorLightTestButtonPtr;
+static ZKCheckBox* mSosKeysCheckboxPtr;
 static ZKCheckBox* mPanelCancelKeysCheckboxPtr;
 static ZKCheckBox* mHandleKeysCheckboxPtr;
 static ZKTextView* mDebugPromptTextViewPtr;
@@ -58,7 +60,8 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
-    ID_SIPTEST_Button1, onButtonClick_Button1,
+    ID_SIPTEST_ColorTestButton, onButtonClick_ColorTestButton,
+    ID_SIPTEST_DoorLightTestButton, onButtonClick_DoorLightTestButton,
     ID_SIPTEST_sip_back, onButtonClick_sip_back,
     ID_SIPTEST_RecordTestButton, onButtonClick_RecordTestButton,
     ID_SIPTEST_CallButton, onButtonClick_CallButton,
@@ -129,6 +132,7 @@ typedef struct {
 }S_CheckboxCallback;
 /*TAG:CheckboxCallbackTab*/
 static S_CheckboxCallback SCheckboxCallbackTab[] = {
+    ID_SIPTEST_SosKeysCheckbox, onCheckedChanged_SosKeysCheckbox,
     ID_SIPTEST_PanelCancelKeysCheckbox, onCheckedChanged_PanelCancelKeysCheckbox,
     ID_SIPTEST_HandleKeysCheckbox, onCheckedChanged_HandleKeysCheckbox,
     ID_SIPTEST_PanelCallKeysCheckbox, onCheckedChanged_PanelCallKeysCheckbox,
@@ -146,7 +150,9 @@ sipTestActivity::~sipTestActivity() {
     EASYUICONTEXT->unregisterGlobalTouchListener(this);
     onUI_quit();
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
-    mButton1Ptr = NULL;
+    mColorTestButtonPtr = NULL;
+    mDoorLightTestButtonPtr = NULL;
+    mSosKeysCheckboxPtr = NULL;
     mPanelCancelKeysCheckboxPtr = NULL;
     mHandleKeysCheckboxPtr = NULL;
     mDebugPromptTextViewPtr = NULL;
@@ -173,7 +179,9 @@ const char* sipTestActivity::getAppName() const{
 //TAG:onCreate
 void sipTestActivity::onCreate() {
 	Activity::onCreate();
-    mButton1Ptr = (ZKButton*)findControlByID(ID_SIPTEST_Button1);
+    mColorTestButtonPtr = (ZKButton*)findControlByID(ID_SIPTEST_ColorTestButton);
+    mDoorLightTestButtonPtr = (ZKButton*)findControlByID(ID_SIPTEST_DoorLightTestButton);
+    mSosKeysCheckboxPtr = (ZKCheckBox*)findControlByID(ID_SIPTEST_SosKeysCheckbox);if(mSosKeysCheckboxPtr!= NULL){mSosKeysCheckboxPtr->setCheckedChangeListener(this);}
     mPanelCancelKeysCheckboxPtr = (ZKCheckBox*)findControlByID(ID_SIPTEST_PanelCancelKeysCheckbox);if(mPanelCancelKeysCheckboxPtr!= NULL){mPanelCancelKeysCheckboxPtr->setCheckedChangeListener(this);}
     mHandleKeysCheckboxPtr = (ZKCheckBox*)findControlByID(ID_SIPTEST_HandleKeysCheckbox);if(mHandleKeysCheckboxPtr!= NULL){mHandleKeysCheckboxPtr->setCheckedChangeListener(this);}
     mDebugPromptTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_DebugPromptTextView);

+ 3 - 1
jni/activity/sipTestActivity.h

@@ -28,7 +28,9 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
-#define ID_SIPTEST_Button1    20004
+#define ID_SIPTEST_ColorTestButton    20004
+#define ID_SIPTEST_DoorLightTestButton    20005
+#define ID_SIPTEST_SosKeysCheckbox    21004
 #define ID_SIPTEST_PanelCancelKeysCheckbox    21003
 #define ID_SIPTEST_HandleKeysCheckbox    21001
 #define ID_SIPTEST_DebugPromptTextView    50010

+ 11 - 2
jni/logic/functionLogic.cc

@@ -67,7 +67,7 @@ void setFunctionTheme() {
 		mServerConfirmButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_bule2.png");
 		mRebootPowerButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_bule2.png");
 		mRebootDeviceButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_bule2.png");
-
+		mRebootLineButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_bule2.png");
 
 		functionColor = buleDeepColour;
 	}
@@ -85,7 +85,7 @@ void setFunctionTheme() {
 		mServerConfirmButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_pink2.png");
 		mRebootPowerButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_pink2.png");
 		mRebootDeviceButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_pink2.png");
-
+		mRebootLineButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_pink2.png");
 
 		functionColor = redDeepColour;
 	}
@@ -644,6 +644,8 @@ static bool onButtonClick_ServerConfirmButton(ZKButton *pButton) {
 
 	const char* req = "-1";
 	TcpClient::instance()->sendMsg(req);
+
+    lightControl("CALLLED", "000F");
     //重启
     sync();
     reboot(RB_AUTOBOOT);
@@ -661,6 +663,8 @@ static bool onButtonClick_RebootDeviceButton(ZKButton *pButton) {
     LOGD(" ButtonClick RebootDeviceButton !!!\n");
 	const char* req = "-1";
 	TcpClient::instance()->sendMsg(req);
+
+    lightControl("CALLLED", "000F");
 	//重启
 	sync();
 	reboot(RB_AUTOBOOT);
@@ -669,6 +673,11 @@ static bool onButtonClick_RebootDeviceButton(ZKButton *pButton) {
 
 static bool onButtonClick_RebootPowerButton(ZKButton *pButton) {
     LOGD(" ButtonClick RebootPowerButton !!!\n");
+    systemRestart();
+    return false;
+}
+static bool onButtonClick_RebootLineButton(ZKButton *pButton) {
+    LOGD(" ButtonClick RebootLineButton !!!\n");
 	TcpModel tcpModel;
 	tcpModel.type = TcpType::DEVICE;
 	tcpModel.action = DeviceAction::POWER_RESET;

+ 109 - 14
jni/logic/sipTestLogic.cc

@@ -51,9 +51,10 @@ void setSipTestTheme() {
     	mHandleKeysCheckboxPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_blue_383x52.png");
     	mPanelCallKeysCheckboxPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_blue_383x52.png");
     	mPanelCancelKeysCheckboxPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_blue_383x52.png");
+    	mSosKeysCheckboxPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_blue_383x52.png");
     	mRecordTestButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_blue_383x52.png");
-    	mButton1Ptr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_blue_383x52.png");
-
+    	mDoorLightTestButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_blue_383x52.png");
+    	mColorTestButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_blue_383x52.png");
     }
     else if (sipTestThemeInt == 2) {
     	msip_backPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/back_pink.png");
@@ -63,8 +64,10 @@ void setSipTestTheme() {
     	mHandleKeysCheckboxPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_pink_383x52.png");
     	mPanelCallKeysCheckboxPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_pink_383x52.png");
     	mPanelCancelKeysCheckboxPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_pink_383x52.png");
+    	mSosKeysCheckboxPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_pink_383x52.png");
     	mRecordTestButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_pink_383x52.png");
-    	mButton1Ptr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_pink_383x52.png");
+    	mDoorLightTestButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_pink_383x52.png");
+    	mColorTestButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "/button/elliptic_pink_383x52.png");
 
 
     }
@@ -171,9 +174,12 @@ static RecordTest recordTest;
 
 
 static bool panelCallKeysCheckbox = false;
+static bool handleKeysCheckbox = false;
+static bool panelCancelKeysCheckbox = false;
+static bool sosKeysCheckbox = false;
 
 void setCheckbox(std::string check) {
-	if (check == "KEY<") {
+	if (check == "KEY5") {
 		if (panelCallKeysCheckbox) {
 			panelCallKeysCheckbox = false;
 			mPanelCallKeysCheckboxPtr->setChecked(false);
@@ -182,6 +188,37 @@ void setCheckbox(std::string check) {
 			panelCallKeysCheckbox = true;
 			mPanelCallKeysCheckboxPtr->setChecked(true);
 		}
+
+	}
+	else if (check == "KEY6") {
+		if (handleKeysCheckbox) {
+			handleKeysCheckbox = false;
+			mHandleKeysCheckboxPtr->setChecked(false);
+		}
+		else {
+			handleKeysCheckbox = true;
+			mHandleKeysCheckboxPtr->setChecked(true);
+		}
+	}
+	else if (check == "KEY>") {
+		if (panelCancelKeysCheckbox) {
+			panelCancelKeysCheckbox = false;
+			mPanelCancelKeysCheckboxPtr->setChecked(false);
+		}
+		else {
+			panelCancelKeysCheckbox = true;
+			mPanelCancelKeysCheckboxPtr->setChecked(true);
+		}
+	}
+	else if (check == "KEY7") {
+		if (sosKeysCheckbox) {
+			sosKeysCheckbox = false;
+			mSosKeysCheckboxPtr->setChecked(false);
+		}
+		else {
+			sosKeysCheckbox = true;
+			mSosKeysCheckboxPtr->setChecked(true);
+		}
 	}
 }
 
@@ -312,13 +349,22 @@ static bool onButtonClick_CallButton(ZKButton *pButton) {
     return false;
 }
 
-static void onCheckedChanged_Checkbox1(ZKCheckBox* pCheckBox, bool isChecked) {
-    LOGD(" Checkbox Checkbox1 checked %d", isChecked);
-}
 static void onCheckedChanged_HandleKeysCheckbox(ZKCheckBox* pCheckBox, bool isChecked) {
     LOGD(" Checkbox HandleKeysCheckbox checked %d", isChecked);
 }
 
+static void onCheckedChanged_PanelCallKeysCheckbox(ZKCheckBox* pCheckBox, bool isChecked) {
+    LOGD(" Checkbox PanelCallKeysCheckbox checked %d", isChecked);
+}
+
+static void onCheckedChanged_PanelCancelKeysCheckbox(ZKCheckBox* pCheckBox, bool isChecked) {
+    LOGD(" Checkbox PanelCancelKeysCheckbox checked %d", isChecked);
+}
+
+static void onCheckedChanged_SosKeysCheckbox(ZKCheckBox* pCheckBox, bool isChecked) {
+    LOGD(" Checkbox SosKeysCheckbox checked %d", isChecked);
+}
+
 static bool onButtonClick_RecordTestButton(ZKButton *pButton) {
     LOGD(" ButtonClick RecordTestButton !!!\n");
 
@@ -332,19 +378,68 @@ static bool onButtonClick_RecordTestButton(ZKButton *pButton) {
 	recordTest.Record();
     return false;
 }
-static void onCheckedChanged_PanelCallKeysCheckbox(ZKCheckBox* pCheckBox, bool isChecked) {
-    LOGD(" Checkbox PanelCallKeysCheckbox checked %d", isChecked);
-}
 static bool onButtonClick_sip_back(ZKButton *pButton) {
     LOGD(" ButtonClick sip_back !!!\n");
     EASYUICONTEXT->goBack();
     return false;
 }
-static void onCheckedChanged_PanelCancelKeysCheckbox(ZKCheckBox* pCheckBox, bool isChecked) {
-    LOGD(" Checkbox PanelCancelKeysCheckbox checked %d", isChecked);
+
+static int doorLignt = 0;
+static bool onButtonClick_DoorLightTestButton(ZKButton *pButton) {
+    LOGD(" ButtonClick DoorLightTestButton !!!\n");
+    doorLignt += 1;
+    if (doorLignt == 1) {
+		lightControl("DOORLED", "100F");
+    }
+    else if (doorLignt == 2) {
+		lightControl("DOORLED", "200F");
+    }
+    else if (doorLignt == 3) {
+		lightControl("DOORLED", "010F");
+    }
+    else if (doorLignt == 4) {
+		lightControl("DOORLED", "020F");
+    }
+    else if (doorLignt == 5) {
+		lightControl("DOORLED", "001F");
+    }
+    else if (doorLignt == 6) {
+		lightControl("DOORLED", "002F");
+    }
+    else if (doorLignt == 7) {
+		lightControl("DOORLED", "110F");
+    }
+    else if (doorLignt == 8) {
+		lightControl("DOORLED", "220F");
+    }
+    else if (doorLignt == 9) {
+		lightControl("DOORLED", "101F");
+    }
+    else if (doorLignt == 10) {
+		lightControl("DOORLED", "202F");
+    }
+    else if (doorLignt == 11) {
+		lightControl("DOORLED", "011F");
+    }
+    else if (doorLignt == 12) {
+		lightControl("DOORLED", "022F");
+    }
+    else if (doorLignt == 13) {
+		lightControl("DOORLED", "111F");
+    }
+    else if (doorLignt == 14) {
+		lightControl("DOORLED", "222F");
+    }
+    else if (doorLignt == 15) {
+		lightControl("DOORLED", "000F");
+		doorLignt = 0;
+    }
+    return false;
+    return false;
 }
-static bool onButtonClick_Button1(ZKButton *pButton) {
-    LOGD(" ButtonClick Button1 !!!\n");
+
+static bool onButtonClick_ColorTestButton(ZKButton *pButton) {
+    LOGD(" ButtonClick ColorTestButton !!!\n");
     EASYUICONTEXT->openActivity("colorActivity");
     return false;
 }

+ 51 - 2
jni/logic/startLogic.cc

@@ -22,13 +22,15 @@ static bool sosTimerRegistered = true;
 static bool isSleepTimerRegistered = false;		// 是否开启息屏定时任务
 static bool isSleep = false;	// 是否在息屏
 static bool isNursing = false;	// 用于启动时判断是否处于护理状态
+static bool isNetreset = false;
+static int netresetInt = 0;
 static string callTid = "";
 #define FUNCTION_TIMER_HANDLE 3	// 增援的定时器id
 #define SOS_CLICK_TIME_HANDLE 4	// sos的定时器id
 #define SOS_LAMP_TIME_HANDLE 5	// sos的门灯定时器id
 #define EVENT_TIME_HANDLE 8		// 事件定时器
 #define SLEEP_STRAT_TIME_HANDLE 9	// 息屏
-#define SYS_RESTART 10	// 重启
+#define SYS_RESTART_TIME_HANDLE 10	// 重启
 #define PROMPT_TIME_HANDLE 11	// 提示语
 
 #define HTTP_SERVER_PORT  80
@@ -150,6 +152,14 @@ namespace {
 	}
 }
 
+void systemRestart() {
+    if (!isNetreset) {
+    	isNetreset = true;
+        lightControl("CALLLED", "000F");
+
+    	mActivityPtr->registerUserTimer(SYS_RESTART_TIME_HANDLE, 1000);
+    }
+}
 
 // 门灯还原
 void lightControl(std::string typeStr, std::string lightColorStr) {
@@ -251,12 +261,16 @@ void handleMsg(byte* inBytes){
 		else if (tcpModel.action == DeviceAction::RESTART) {	// 重启设备
 			const char* req = "-1";
 			TcpClient::instance()->sendMsg(req);
+
+		    lightControl("CALLLED", "000F");
 			sync();
 			reboot(RB_AUTOBOOT);
 		}
         else if (tcpModel.action == DeviceAction::REBOOT) {
             const char* req = "-1";
             TcpClient::instance()->sendMsg(req);
+
+		    lightControl("CALLLED", "000F");
             //重启
             sync();
             reboot(RB_AUTOBOOT);
@@ -273,6 +287,8 @@ void handleMsg(byte* inBytes){
 
 			const char* req = "-1";
 			TcpClient::instance()->sendMsg(req);
+
+		    lightControl("CALLLED", "000F");
 			//重启
 			sync();
 			reboot(RB_AUTOBOOT);
@@ -401,6 +417,8 @@ void handleMsg(byte* inBytes){
 			// 门灯亮红灯
 			lightControl("DOORLED", "200F");
 
+			lightControl("CALLLED", "100F");
+
 			sosTimerRegistered = false;
 			mActivityPtr->registerUserTimer(SOS_CLICK_TIME_HANDLE, 10000);		// 10秒后才能触发
 			mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
@@ -753,6 +771,10 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 		//按下
 		if (data.state=="0"){    // 0表示正被按下,1表示短按松开,2表示长按松开。
 			if (data.cmd == "KEY5") {	// key5是面板拨号按钮
+				if (StoragePreferences::getString(STORE_SIGNAL_TYPE, SIGNAL_TYPE) == "SIP") {
+					setCheckbox("KEY5");
+					return;
+				}
 				if (!StoragePreferences::getInt(STORE_SCREEN_LIGHT, 0)) {
 					if (isSleep) {
 						scrrenOn();
@@ -786,7 +808,10 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 			}
 
 			else if (data.cmd == "KEY6"){	// key6是手柄触发,手柄只有呼叫和挂断功能,没有取消功能,防止用户不停地按
-
+				if (StoragePreferences::getString(STORE_SIGNAL_TYPE, SIGNAL_TYPE) == "SIP") {
+					setCheckbox("KEY6");
+					return;
+				}
 				if (!StoragePreferences::getInt(STORE_SCREEN_LIGHT, 0)) {
 					if (isSleep) {
 						scrrenOn();
@@ -820,6 +845,10 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 
 			}
 			else if (data.cmd == "KEY7"){	// key7是紧急按钮
+				if (StoragePreferences::getString(STORE_SIGNAL_TYPE, SIGNAL_TYPE) == "SIP") {
+					setCheckbox("KEY7");
+					return;
+				}
 				if (isSleep) {
 					scrrenOn();
 				}
@@ -839,6 +868,8 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 					// 门灯亮红灯
 					lightControl("DOORLED", "200F");
 
+					lightControl("CALLLED", "100F");
+
 					mActivityPtr->registerUserTimer(SOS_CLICK_TIME_HANDLE, 10000);		// 10秒后才能触发
 					mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
 				}
@@ -882,6 +913,10 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 				}
 			}
 			else if (data.cmd == "KEY>") {	// key>是面板挂断按钮
+				if (StoragePreferences::getString(STORE_SIGNAL_TYPE, SIGNAL_TYPE) == "SIP") {
+					setCheckbox("KEY>");
+					return;
+				}
 				if (!StoragePreferences::getInt(STORE_SCREEN_LIGHT, 0)) {
 					if (isSleep) {
 						scrrenOn();
@@ -972,6 +1007,8 @@ static bool onUI_Timer(int id){
 
 		// 进行门灯还原
 		lightControl("DOORLED", "000F");
+
+	    lightControl("CALLLED", "000F");
 		return false;
 	}
 		break;
@@ -986,6 +1023,18 @@ static bool onUI_Timer(int id){
 		}
 	}
 		break;
+
+	case SYS_RESTART_TIME_HANDLE:
+		netresetInt += 1;
+	    lightControl("NETRESET", "1F");
+
+	    if (netresetInt == 5) {
+	    	LOGD("网卡重启无效,程序内部重启");
+	    	//重启
+	    	sync();
+	    	reboot(RB_AUTOBOOT);
+	    }
+		break;
 	default:
 		break;
 	}

+ 105 - 25
jni/logic/statusbar.cc

@@ -44,6 +44,32 @@
 
  */
 
+static bool networkConnect = false;
+static bool networkNowConnect = false;
+static bool tcpConnect = false;
+static bool tcpNowConnect = false;
+static bool sipConnect = true;
+static bool sipNowConnect = false;
+
+void statusLight() {
+    if (!networkConnect) {
+        lightControl("CALLLED", "200F");
+    }
+    else {
+        if (!tcpConnect) {
+            lightControl("CALLLED", "110F");
+        }
+        else {
+            if (!sipConnect) {
+                lightControl("CALLLED", "220F");
+            }
+            else {
+                lightControl("CALLLED", "020F");
+            }
+        }
+    }
+}
+
 
 #define ETHERNETMANAGER		NETMANAGER->getEthernetManager()
 #define WIFIMANAGER			NETMANAGER->getWifiManager()
@@ -171,39 +197,68 @@ static void updateNetState(){
 		if (netOffCount > netOffMax){
 			netOffCount = 0;
 
-			// 网卡重启
-			LOGD("断网300秒,网卡断电重启");
-			std::string heartStr = "NETRESET,1F";
-			LOGD("=====> the heartStr == %s", heartStr.c_str());
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
-
-			//重启
-			sleep(3);
-			LOGD("网卡重启无效,程序内部重启");
-			sync();
-			reboot(RB_AUTOBOOT);
+//			// 网卡重启
+//			LOGD("断网300秒,网卡断电重启");
+//			std::string heartStr = "NETRESET,1F";
+//			LOGD("=====> the heartStr == %s", heartStr.c_str());
+//			const char* sendMsg = heartStr.c_str();
+//			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+//
+//			//重启
+//			sleep(3);
+//			LOGD("网卡重启无效,程序内部重启");
+//			sync();
+//			reboot(RB_AUTOBOOT);
+			systemRestart();
 		}
 	}
 
-    ENetChannel channel = NETMANAGER->getConnChannel();
-    switch (channel) {
-    case E_NET_CHANNEL_ETHERNET:
-        if (ETHERNETMANAGER->isConnected()) {
-            mPainter1Ptr->setBackgroundColor(0xFF37C127);
-        }
-        else {
-            mPainter1Ptr->setBackgroundColor(0xFF949494);
-        }
+	ENetChannel channel = NETMANAGER->getConnChannel();
+	switch (channel) {
+	case E_NET_CHANNEL_ETHERNET:
+		if (ETHERNETMANAGER->isConnected()) {
+			mPainter1Ptr->setBackgroundColor(0xFF37C127);
+            networkConnect = true;
+            if (networkNowConnect != networkConnect) {
+            	networkNowConnect = networkConnect;
+            	statusLight();
+            }
+		}
+		else {
+			mPainter1Ptr->setBackgroundColor(0xFF949494);
+            networkConnect = false;
+            if (networkNowConnect != networkConnect) {
+            	networkNowConnect = networkConnect;
+            	statusLight();
+            }
+		}
 		break;
 	case E_NET_CHANNEL_WIFI:
 		if (WIFIMANAGER->isConnected()) {
 			mPainter1Ptr->setBackgroundColor(0xFF37C127);
+            networkConnect = true;
+            if (networkNowConnect != networkConnect) {
+            	networkNowConnect = networkConnect;
+            	statusLight();
+            }
 		}
 		else {
 			mPainter1Ptr->setBackgroundColor(0xFF949494);
+            networkConnect = false;
+            if (networkNowConnect != networkConnect) {
+            	networkNowConnect = networkConnect;
+            	statusLight();
+            }
 		}
 		break;
+	default:
+		mPainter1Ptr->setBackgroundColor(0xFF949494);
+        networkConnect = false;
+        if (networkNowConnect != networkConnect) {
+        	networkNowConnect = networkConnect;
+        	statusLight();
+        }
+        break;
 	}
 
 //	EEthConnState connState = ETHERNETMANAGER->getConnState();
@@ -232,20 +287,45 @@ void OnRegisterStateChanged(voip::Telephone* telephone, int code){
 	if (code == voip::SIP_STATUS_CODE_PROGRESS){
 		//mTextViewRegPtr->setText("CONNECTING");
 		mTextViewRegPtr->setBackgroundColor(0xFF2F9DF1);
-	} else if (code == voip::SIP_STATUS_CODE_OK){
-		//mTextViewRegPtr->setText("OK");
+		sipConnect = false;
+        if (sipNowConnect != sipConnect) {
+        	sipNowConnect = sipConnect;
+        	statusLight();
+        }
+	}
+	else if (code == voip::SIP_STATUS_CODE_OK){
 		mTextViewRegPtr->setBackgroundColor(0xFF37C127);
-	} else {
-		//mTextViewRegPtr->setText("ERROR");
+		sipConnect = true;
+        if (sipNowConnect != sipConnect) {
+        	sipNowConnect = sipConnect;
+        	statusLight();
+        }
+	}
+	else {
 		mTextViewRegPtr->setBackgroundColor(0xFF949494);
+		sipConnect = false;
+        if (sipNowConnect != sipConnect) {
+        	sipNowConnect = sipConnect;
+        	statusLight();
+        }
 	}
 }
 
 void tcpStatus(){
 	if (TcpClient::instance()->connected()){
 		mTextViewTCPPtr->setBackgroundColor(0xFF37C127);
+		tcpConnect = true;
+        if (tcpNowConnect != tcpConnect) {
+        	tcpNowConnect = tcpConnect;
+        	statusLight();
+        }
 	} else {
 		mTextViewTCPPtr->setBackgroundColor(0xFF949494);
+		tcpConnect = false;
+        if (tcpNowConnect != tcpConnect) {
+        	tcpNowConnect = tcpConnect;
+        	statusLight();
+        }
 	}
 }
 

+ 4 - 2
jni/service/BusinessConfig.h

@@ -73,8 +73,8 @@ static uint32_t buleDeepColour = 0x3A78EF;
 static uint32_t whiteColour = 0xFFFFFF;
 static int defaultThemeInt = 1;
 
-static std::string versionCode = "v1.0.39";
-static int versionNo = 39;
+static std::string versionCode = "v1.0.40";
+static int versionNo = 40;
 static std::string serverIP = "172.28.100.100";
 static std::string tcpIP = "172.28.100.100";
 static int serverHttpPort = 8006;
@@ -187,6 +187,8 @@ void setClerk(std::string clerk_name, std::string pass_no, int _authItid);
 
 void goHome();
 
+void systemRestart();
+
 enum CallFinishType {
 	CANCEL,
 	REJECT,

BIN
libs/armeabi/libzkgui.so


BIN
obj/activity/callActivity.o


BIN
obj/activity/deviceInfoActivity.o


BIN
obj/activity/functionActivity.o


BIN
obj/activity/mainActivity.o


BIN
obj/activity/medicalCareActivity.o


BIN
obj/activity/moreActivity.o


BIN
obj/activity/navibar.o


BIN
obj/activity/promptActivity.o


BIN
obj/activity/settingActivity.o


BIN
obj/activity/sipTestActivity.o


BIN
obj/activity/startActivity.o


BIN
obj/activity/statusbar.o


BIN
obj/activity/updateActivity.o


BIN
obj/core/update_assistant.o


BIN
obj/net/tcp_client.o


BIN
obj/net/tcp_model.o


BIN
obj/server/http_server.o


BIN
obj/service/BusinessConfig.o


BIN
obj/service/time.o


BIN
obj/uart/UartContext.o


BIN
ui/function.ftu


BIN
ui/sipTest.ftu