Explorar o código

修改门灯逻辑,还有密码逻辑

vothin hai 10 meses
pai
achega
2d92552eae

+ 2 - 0
jni/logic/callLogic.cc

@@ -544,6 +544,8 @@ static bool onButtonClick_ButtonHangup(ZKButton *pButton) {
 
 static bool onButtonClick_ButtonAnswer(ZKButton *pButton) {
 	LOGD(" ButtonClick ButtonAnswer !!!\n");
+	lightControl("DOORLED", "000F");
+
 	mButtonAnswerPtr->setVisible(false);
 
 	if (StoragePreferences::getString(STORE_SIGNAL_TYPE, SIGNAL_TYPE) == "SIP"){

+ 102 - 1
jni/logic/functionLogic.cc

@@ -908,7 +908,108 @@ static bool onButtonClick_CancelLogoutButton(ZKButton *pButton) {
     return false;
 }
 static void onEditTextChanged_PwdEditText(const std::string &text) {
-    //LOGD(" onEditTextChanged_ PwdEditText %s !!!\n", text.c_str());
+//    LOGD(" onEditTextChanged_ PwdEditText %s !!!\n", text.c_str());
+	string pwd = mPwdEditTextPtr->getText();
+
+    if (_functionWindows == "serverChange") {
+    	// 密码为666
+		string cpwd = "666";
+		if (pwd == cpwd){
+			mPwdWindowPtr->hideWnd();
+			mServerWindowPtr->showWnd();
+
+			string serverIp = StoragePreferences::getString(STORE_GATEWAY, "172.28.100.100");
+			int serverPort = StoragePreferences::getInt(STORE_HTTP_PORT, 8006);
+			mServerIpEditTextPtr->setText(serverIp);
+			mServerPortEditTextPtr->setText(to_string(serverPort));
+		} else {
+			mPwdPromptTextViewPtr->setTextTr("PasswordWrong");
+			mPwdPromptTextViewPtr->setTextColor(0xFFFF0000);
+		}
+    }
+    else if (_functionWindows == "setting") {
+
+		// 密码为888
+//		string cpwd = "888";
+		if (pwd == "888"){
+			// 关闭密码输入界面
+			mPwdWindowPtr->hideWnd();
+			EASYUICONTEXT->closeActivity("functionActivity");
+			EASYUICONTEXT->closeActivity("deviceInfoActivity");
+			// 打开设置界面
+//			EASYUICONTEXT->openActivity("settingActivity");
+			EASYUICONTEXT->openActivity("sipTestActivity");
+		}
+		else if (pwd == "999") {
+			// 关闭密码输入界面
+			mPwdWindowPtr->hideWnd();
+			EASYUICONTEXT->closeActivity("functionActivity");
+			EASYUICONTEXT->closeActivity("deviceInfoActivity");
+			// 打开设置界面
+			EASYUICONTEXT->openActivity("settingActivity");
+//			EASYUICONTEXT->openActivity("sipTestActivity");
+		}
+		else {
+			mPwdPromptTextViewPtr->setTextTr("PasswordWrong");
+			mPwdPromptTextViewPtr->setTextColor(0xFFFF0000);
+		}
+    }
+	else if (_functionWindows == "init") {
+
+		// 密码为888
+		string cpwd = "888";
+		if (pwd == cpwd){
+			// 关闭密码输入界面
+			mPwdWindowPtr->hideWnd();
+			EASYUICONTEXT->closeActivity("functionActivity");
+			// 打开初始化界面
+			openInitWindow();
+		} else {
+			mPwdPromptTextViewPtr->setTextTr("PasswordWrong");
+			mPwdPromptTextViewPtr->setTextColor(0xFFFF0000);
+		}
+	}
+	else if (_functionWindows == "reboot") {
+
+		// 密码为888
+		string cpwd = "888";
+		if (pwd == cpwd){
+			// 关闭密码输入界面
+			mPwdWindowPtr->hideWnd();
+			// 打开初始化界面
+			mRebootWindowPtr->showWnd();
+		} else {
+			mPwdPromptTextViewPtr->setTextTr("PasswordWrong");
+			mPwdPromptTextViewPtr->setTextColor(0xFFFF0000);
+		}
+	}
+	else if (_functionWindows == "nursing2") {
+		// 密码为888
+		string cpwd = "888";
+		if (pwd == cpwd){
+			// 关闭密码输入界面
+			mPwdWindowPtr->hideWnd();
+			nursing2();
+			setNursing2(true);
+		} else {
+			mPwdPromptTextViewPtr->setTextTr("PasswordWrong");
+			mPwdPromptTextViewPtr->setTextColor(0xFFFF0000);
+		}
+	}
+	else if (_functionWindows == "deviceAdd") {
+		// 密码为888
+		string cpwd = "888";
+		if (pwd == cpwd){
+			// 关闭密码输入界面
+			mPwdWindowPtr->hideWnd();
+			EASYUICONTEXT->closeActivity("functionActivity");
+			EASYUICONTEXT->openActivity("deviceAddActivity");
+		} else {
+			mPwdPromptTextViewPtr->setTextTr("PasswordWrong");
+			mPwdPromptTextViewPtr->setTextColor(0xFFFF0000);
+		}
+
+	}
 }
 
 static bool onButtonClick_PwdConfirmButton(ZKButton *pButton) {

+ 10 - 1
jni/logic/navibar.cc

@@ -131,6 +131,8 @@ void setNursing2(bool setNursing) {
 		}
 		lightControl("DOORLED", color);
 
+		statusLight();
+
 		sendNursing();
 
 		// 把护理状态缓存起来
@@ -418,7 +420,14 @@ static bool onButtonClick_BlueCodeButton(ZKButton *pButton) {
     sendBlueCodeCall();
 
     mBlueCodeButtonPtr->setInvalid(true);
-	lightControl("DOORLED", "001F");
+
+    std::string color = StoragePreferences::getString(STORE_NURSING_COLOR_RGB, "010");
+    if (color == "010") {
+    	lightControl("DOORLED", "002F");
+    }
+    else {
+    	lightControl("DOORLED", "020F");
+    }
 
 	Intent* intent = new Intent();
 	intent->putExtra(functionWindows, "blueCode");

+ 61 - 19
jni/logic/startLogic.cc

@@ -48,6 +48,8 @@ static bool isTriggerHandle4 = false;
 #define SLEEP_STRAT_TIME_HANDLE 9	// 息屏
 #define SYS_RESTART_TIME_HANDLE 10	// 重启
 #define PROMPT_TIME_HANDLE 11	// 提示语
+#define NURSEING_TIME_HANDLE 12 // 护理
+#define DOOR_LIGHT_TIME_HANDLE 13	// 门灯
 
 #define HANDLE_TRIGGER_TIME_HANDLE 15
 #define SOS_TRIGGER_TIME_HANDLE 16
@@ -203,7 +205,11 @@ void systemRestart() {
     }
 }
 
-// 门灯还原
+
+string _typeStr;
+string _lightColorStr;
+string _actualColorStr;
+bool isDoorLightTimeHandle = false;
 void lightControl(std::string typeStr, std::string lightColorStr) {
 	// 类型是门灯,并且还原成白色灯
 	std::string heartStr;
@@ -225,10 +231,29 @@ void lightControl(std::string typeStr, std::string lightColorStr) {
 		heartStr = typeStr + "," + lightColorStr;
 	}
 
+	if (typeStr == "DOORLED" && isDoorLightTimeHandle) {
+		isDoorLightTimeHandle = false;
+		mActivityPtr->unregisterUserTimer(DOOR_LIGHT_TIME_HANDLE);
+	}
+
 	LOGD("=====> the heartStr == %s", heartStr.c_str());
 	const char* sendMsg = heartStr.c_str();
 	sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+}
 
+void lightControl(std::string typeStr, std::string lightColorStr, int time) {
+	LOGD("频率闪烁,类型:%s,颜色:%s,频率:%d", typeStr.c_str(), lightColorStr.c_str(), time);
+	_typeStr = typeStr;
+	_lightColorStr = lightColorStr;
+	_actualColorStr = lightColorStr;
+	// 还原成无灯光的状态
+	std::string heartStr = typeStr + "," + lightColorStr;
+	LOGD("=====> the heartStr == %s", heartStr.c_str());
+	const char* sendMsg = heartStr.c_str();
+	sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+
+	isDoorLightTimeHandle = true;
+	mActivityPtr->registerUserTimer(DOOR_LIGHT_TIME_HANDLE, time);
 }
 
 // 接收tcp消息
@@ -351,7 +376,7 @@ void handleMsg(byte* inBytes){
 		} else if (tcpModel.action == VoiceAction::SUCCESS){
 			CallingStatus::instance()->setTcpModel(tcpModel);	// 只有呼叫成功才闪红灯
 
-			lightControl("DOORLED", "200F");
+			lightControl("DOORLED", "100F");
 		} else if (tcpModel.action == VoiceAction::ACCEPT){
 			if (CallingStatus::instance()->busy()){
 				CallingStatus::instance()->setTcpModel(tcpModel);
@@ -384,6 +409,7 @@ void handleMsg(byte* inBytes){
 			if (CallingStatus::instance()->busy()){
 				sendVoiceTcp(VoiceAction::CALLING, tcpModel, tcpModel.from_id);
 			} else {
+				lightControl("DOORLED", "200F");
 
 				CallingStatus::instance()->setTcpModel(tcpModel);
 
@@ -409,7 +435,9 @@ void handleMsg(byte* inBytes){
 			lightControl("ULED", "0F");
 			// 进行门灯还原
 			lightControl("DOORLED", "000F");
-			mActivityPtr->unregisterUserTimer(SOS_LAMP_TIME_HANDLE);
+
+			statusLight();
+//			mActivityPtr->unregisterUserTimer(SOS_LAMP_TIME_HANDLE);
 		}
 	}
 	else if (tcpModel.type == TcpType::SIDE) {
@@ -447,7 +475,7 @@ void handleMsg(byte* inBytes){
 		}
 		else if (tcpModel.action == SideAction::CALL) {
 			// 收到CALL,需要亮红灯
-			lightControl("DOORLED", "200F");
+//			lightControl("DOORLED", "200F");
 		}
 		else if (tcpModel.action == SideAction::ACCEPT) {
 			// 进行门灯还原
@@ -473,13 +501,13 @@ void handleMsg(byte* inBytes){
 		else if (tcpModel.action == SideAction::SOS_CALL) {
 			// 收到SOS_CALL,需要亮红灯
 			// 门灯亮红灯
-			lightControl("DOORLED", "200F");
+			lightControl("DOORLED", "100F", 1000);
 
 			lightControl("CALLLED", "100F");
 
 			sosTimerRegistered = false;
 			mActivityPtr->registerUserTimer(SOS_CLICK_TIME_HANDLE, 10000);		// 10秒后才能触发
-			mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
+//			mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
 
 			if (tcpModel.json.isMember("id")) {
 				sosDataList.push_back(tcpModel.json["id"].asString());
@@ -644,13 +672,13 @@ void sosCall(string sosMsg) {
 		// SOS亮红灯
 		lightControl("ULED", "1F");
 		// 门灯亮红灯
-		lightControl("DOORLED", "200F");
+		lightControl("DOORLED", "100F", 1000);
 
 		lightControl("CALLLED", "100F");
 
 		sosTimerRegistered = false;
 		mActivityPtr->registerUserTimer(SOS_CLICK_TIME_HANDLE, 10000);		// 10秒后才能触发
-		mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
+//		mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
 	}
 }
 
@@ -907,7 +935,10 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 					//拨打 或 挂断
 					if (CallingStatus::instance()->busy()){
 						callActivityFinish(CallFinishType::A1CLICK);
+						lightControl("DOORLED", "000F");
 					} else {
+						lightControl("DOORLED", "100F");
+
 						Intent* intent = new Intent();
 						intent->putExtra(isOutgoing, "true");
 						EASYUICONTEXT->openActivity("callActivity", intent);
@@ -944,7 +975,10 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 					//拨打 或 挂断
 					if (CallingStatus::instance()->busy()){
 						callActivityFinish(CallFinishType::KEY6_CLICK);
+						lightControl("DOORLED", "000F");
 					} else {
+						lightControl("DOORLED", "100F");
+
 						Intent* intent = new Intent();
 						intent->putExtra(isOutgoing, "true");
 						EASYUICONTEXT->openActivity("callActivity", intent);
@@ -983,17 +1017,7 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 			else if (data.state == "1") {
 				if (isTriggerSos) {
 					isConnectSos = true;
-					sendSosCall("");
-
-					// SOS亮红灯
-					lightControl("ULED", "1F");
-					// 门灯亮红灯
-					lightControl("DOORLED", "200F");
-
-					lightControl("CALLLED", "100F");
-
-					mActivityPtr->registerUserTimer(SOS_CLICK_TIME_HANDLE, 10000);		// 10秒后才能触发
-					mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
+					sosCall("");
 				}
 			}
 			else if (data.state == "3") {
@@ -1211,7 +1235,25 @@ static bool onUI_Timer(int id){
 		return false;
 	}
 		break;
+	case DOOR_LIGHT_TIME_HANDLE: {
+		if (_lightColorStr == _actualColorStr) {
+			_actualColorStr = "000F";
+
+			std::string heartStr = _typeStr + "," + _actualColorStr;
+			LOGD("=====> the heartStr == %s", heartStr.c_str());
+			const char* sendMsg = heartStr.c_str();
+			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+		}
+		else {
+			_actualColorStr = _lightColorStr;
 
+			std::string heartStr = _typeStr + "," + _actualColorStr;
+			LOGD("=====> the heartStr == %s", heartStr.c_str());
+			const char* sendMsg = heartStr.c_str();
+			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+		}
+	}
+		break;
 	case SLEEP_STRAT_TIME_HANDLE: { 	// 息屏
 		if (isSleepTimerRegistered) {
 			isSleep = true;

+ 1 - 0
jni/service/BusinessConfig.h

@@ -137,6 +137,7 @@ int getTime(char* timeStr);
 void statusLight();
 // 门灯还原
 void lightControl(std::string typeStr, std::string lightColorStr);
+void lightControl(std::string typeStr, std::string lightColorStr, int time);
 /**
  * 刷新设备数据
  */

BIN=BIN
libs/armeabi/libzkgui.so


BIN=BIN
obj/activity/callActivity.o


BIN=BIN
obj/activity/functionActivity.o


BIN=BIN
obj/activity/navibar.o


BIN=BIN
obj/activity/startActivity.o


BIN=BIN
obj/service/time.o