vothin 2 лет назад
Родитель
Сommit
72835c741c

+ 4 - 0
jni/logic/mainLogic.cc

@@ -526,6 +526,10 @@ void setPainterInfo(int deviceId, uint32_t bgColor, const std::string& msg, cons
 // 收到tcp的时候,刷新数据
 void dataRefresh() {
 	LOGD("DATA-REFRESH, 数据刷新");
+
+	if (serverInfo) {
+		udp_thread.getServerInfo();
+	}
 	dataInit = false;
 	udp_thread.getDeviceInfo();
 	mBedListViewPtr->refreshListView();

+ 26 - 0
jni/logic/startLogic.cc

@@ -16,6 +16,7 @@
 #include <sys/reboot.h>
 #include "service/BusinessConfig.h"
 
+static bool isRestartTimerRegistered = false;
 static bool isHelpTimerRegistered = false;
 static bool sosTimerRegistered = true;
 static bool isSleepTimerRegistered = false;		// 是否开启息屏定时任务
@@ -26,6 +27,7 @@ static bool isSleep = false;	// 是否在息屏
 #define NURSING_TIME_HANDLE 6	// 护理的定时器id
 #define EVENT_TIME_HANDLE 8		// 事件定时器
 #define SLEEP_STRAT_TIME_HANDLE 9	// 息屏
+#define SYS_RESTART 10	// 重启
 
 namespace {
 	std::string uilogic[] = {
@@ -512,6 +514,24 @@ void setSleepTimerRegistered(bool result) {
 	}
 }
 
+void setRestartTimerRegistered(bool result) {
+	if (mActivityPtr == NULL) {
+		return;
+	}
+
+	if (result != isRestartTimerRegistered) {	// 在传过来的值不相等时,才继续进行
+		if (!isRestartTimerRegistered) {	// 如果是false,那就需要开启
+			isRestartTimerRegistered = true;
+			mActivityPtr->registerUserTimer(SYS_RESTART, 180000);
+		}
+		else {	// 如果是true,那就需要关闭
+			isRestartTimerRegistered = false;
+			mActivityPtr->unregisterUserTimer(SYS_RESTART);
+			dataRefresh();
+		}
+	}
+}
+
 void scrrenOn() {
 	isSleep = false;
 	BRIGHTNESSHELPER->screenOn();
@@ -959,6 +979,12 @@ static bool onUI_Timer(int id){
 		}
 	}
 		break;
+
+
+	case SYS_RESTART:
+		sync();
+		reboot(RB_AUTOBOOT);
+		break;
 	}
 	return true;
 }

+ 12 - 0
jni/logic/statusbar.cc

@@ -11,6 +11,7 @@
 #include "base/base.hpp"
 #include "service/BusinessConfig.h"
 #include "net/tcp_client.h"
+#include <sys/reboot.h>
 
 #define ETHERNETMANAGER		NETMANAGER->getEthernetManager()
 /*
@@ -43,6 +44,9 @@
  */
 
 
+#define SYS_RESTART 10	// 重启
+static bool isRestartTimerRegistered = false;
+
 
 void NavibarSetPartName(const std::string& partName){
 	mPartNamePtr->setText(partName);
@@ -53,18 +57,22 @@ static void updateNetState(){
 	switch (connState){
 	case E_ETH_DISCONNECTED:	// 以太网断开
 		mPainter1Ptr->setBackgroundColor(0xFF949494);
+		setRestartTimerRegistered(true);
 		break;
 	case E_ETH_CONNECTING:		// 以太网连接中
 		mPainter1Ptr->setBackgroundColor(0xFF2F9DF1);
 		break;
 	case E_ETH_CONNECTED:		// 以太网连接
 		mPainter1Ptr->setBackgroundColor(0xFF37C127);
+		setRestartTimerRegistered(false);
 		break;
 	case E_ETH_DISCONNECTING:	// 以太网断开连接中
 		mPainter1Ptr->setBackgroundColor(0xFF949494);
+		setRestartTimerRegistered(true);
 		break;
 	case E_ETH_CONN_UNKNOWN:	// 以太网未知
 		mPainter1Ptr->setBackgroundColor(0xFF949494);
+		setRestartTimerRegistered(true);
 		break;
 	}
 }
@@ -223,6 +231,10 @@ static bool onUI_Timer(int id){
 	case 2:
 		tcpStatus();
 		break;
+	case SYS_RESTART:
+		sync();
+		reboot(RB_AUTOBOOT);
+		break;
 	default:
 		break;
 	}

+ 5 - 0
jni/service/BusinessConfig.h

@@ -107,8 +107,10 @@ void doorLampRestoration();
  */
 void setPainterInfo(int deviceId, uint32_t bgColor, const std::string& msg, const std::string type, const std::string handle, int endTime);
 
+// 设置增援状态
 void setReinforce(bool result);
 
+// 设置增援按钮
 void setHelpButton(const char *pPicPath, bool isTouchable);
 
 /**
@@ -125,6 +127,9 @@ bool getSleepTimerRegistered();
 // 设置是否开启息屏定时任务
 void setSleepTimerRegistered(bool result);
 
+// 设置是否开启重启定时任务
+void setRestartTimerRegistered(bool result);
+
 // 设置护理的tcpModel
 void setNursingTcpModel(TcpModel source);
 /**

BIN
libs/armeabi/libzkgui.so


BIN
obj/activity/mainActivity.o


BIN
obj/activity/startActivity.o


BIN
obj/activity/statusbar.o


BIN
obj/service/time.o