Bläddra i källkod

开发2.0版本

vothin 1 år sedan
förälder
incheckning
2453b8b2ed
100 ändrade filer med 1885 tillägg och 1572 borttagningar
  1. 2 2
      .settings/com.zksw.flythings.easyui.prefs
  2. 1 0
      .settings/org.eclipse.core.resources.prefs
  3. 2 0
      .settings/org.eclipse.ltk.core.refactoring.prefs
  4. 71 48
      i18n/zh_CN.tr
  5. 21 4
      jni/activity/callActivity.cpp
  6. 7 1
      jni/activity/callActivity.h
  7. 149 165
      jni/activity/ui3Activity.cpp
  8. 46 41
      jni/activity/DeviceUpdateActivity.h
  9. 115 44
      jni/activity/warnActivity.cpp
  10. 29 8
      jni/activity/warnActivity.h
  11. 46 52
      jni/activity/mainActivity.cpp
  12. 20 20
      jni/activity/mainActivity.h
  13. 43 17
      jni/activity/sipTestActivity.cpp
  14. 13 4
      jni/activity/sipTestActivity.h
  15. 7 3
      jni/activity/statusbar.cpp
  16. 2 1
      jni/activity/statusbar.h
  17. 123 136
      jni/activity/DeviceUpdateActivity.cpp
  18. 35 48
      jni/activity/ui3Activity.h
  19. 3 0
      jni/core/utilities.cpp
  20. BIN
      jni/dep/lib/libvoip.a
  21. BIN
      jni/dep/lib/libzkaudio.a
  22. 31 0
      jni/include/utils/NetUtils.h
  23. 45 26
      jni/include/utils/TimeHelper.h
  24. 70 23
      jni/logic/callLogic.cc
  25. 43 164
      jni/logic/ui3Logic.cc
  26. 308 0
      jni/logic/functionLogic.cc
  27. 132 333
      jni/logic/mainLogic.cc
  28. 28 17
      jni/logic/sipTestLogic.cc
  29. 103 123
      jni/logic/startLogic.cc
  30. 92 28
      jni/logic/statusbar.cc
  31. 163 94
      jni/logic/DeviceUpdateLogic.cc
  32. 0 149
      jni/logic/warnLogic.cc
  33. 7 3
      jni/net/tcp_client.cpp
  34. 21 0
      jni/net/tcp_model.cpp
  35. 52 0
      jni/net/tcp_model.h
  36. 2 2
      jni/restclient-cpp/restclient.cpp
  37. 53 16
      jni/service/BusinessConfig.h
  38. BIN
      libs/armeabi/libzkgui.so
  39. BIN
      obj/activity/callActivity.o
  40. BIN
      obj/activity/deviceInfoActivity.o
  41. BIN
      obj/activity/functionActivity.o
  42. BIN
      obj/activity/mainActivity.o
  43. BIN
      obj/activity/sipTestActivity.o
  44. BIN
      obj/activity/startActivity.o
  45. BIN
      obj/activity/statusbar.o
  46. BIN
      obj/activity/ui3Activity.o
  47. BIN
      obj/activity/updateActivity.o
  48. BIN
      obj/activity/warnActivity.o
  49. BIN
      obj/core/update_assistant.o
  50. BIN
      obj/core/utilities.o
  51. BIN
      obj/net/tcp_client.o
  52. BIN
      obj/net/tcp_model.o
  53. BIN
      obj/restclient-cpp/restclient.o
  54. BIN
      obj/server/http_server.o
  55. BIN
      obj/service/BusinessConfig.o
  56. BIN
      obj/service/time.o
  57. BIN
      resources/Harmony_231030.ttf
  58. BIN
      resources/arrow/left.png
  59. BIN
      resources/arrow/left2.png
  60. BIN
      resources/arrow/left_grey.png
  61. BIN
      resources/arrow/left_two.png
  62. BIN
      resources/arrow/left_two_grey.png
  63. BIN
      resources/arrow/right.png
  64. BIN
      resources/arrow/right2.png
  65. BIN
      resources/arrow/right_grey.png
  66. BIN
      resources/arrow/right_two.png
  67. BIN
      resources/arrow/right_two_grey.png
  68. BIN
      resources/back2.png
  69. BIN
      resources/background1024x600.png
  70. BIN
      resources/bg.jpeg
  71. BIN
      resources/btn_primary.9.png
  72. BIN
      resources/btn_primary_active.9.png
  73. BIN
      resources/btn_secondary.9.png
  74. BIN
      resources/btn_secondary_active.9.png
  75. BIN
      resources/button/back_bule.png
  76. BIN
      resources/button/back_grey.png
  77. BIN
      resources/button/back_white.png
  78. BIN
      resources/button/bg_bottom_btn.png
  79. BIN
      resources/button/button_advice1.png
  80. BIN
      resources/button/button_advice2.png
  81. BIN
      resources/button/button_back.png
  82. BIN
      resources/button/button_back2.png
  83. BIN
      resources/button/button_bule.png
  84. BIN
      resources/button/button_bule1.png
  85. BIN
      resources/button/button_bule2.png
  86. BIN
      resources/button/button_call1.png
  87. BIN
      resources/button/button_call2.png
  88. BIN
      resources/button/button_down.png
  89. BIN
      resources/button/button_down2.png
  90. BIN
      resources/button/button_fee1.png
  91. BIN
      resources/button/button_fee2.png
  92. BIN
      resources/button/button_help1.png
  93. BIN
      resources/button/button_help2.png
  94. BIN
      resources/button/button_help3.png
  95. BIN
      resources/button/button_home.png
  96. BIN
      resources/button/button_home2.png
  97. BIN
      resources/button/button_more1.png
  98. BIN
      resources/button/button_more2.png
  99. BIN
      resources/button/button_nursing1.png
  100. 0 0
      resources/button/button_nursing2.png

+ 2 - 2
.settings/com.zksw.flythings.easyui.prefs

@@ -1,5 +1,5 @@
-easyui.cfg.debug={"baud"\:"115200","defBrightness"\:-1,"languageCode"\:"zh_CN","languagePath"\:"/mnt/extsd/tr/","resPath"\:"/mnt/extsd/ui/","rotateScreen"\:0,"rotateTouch"\:0,"screensaverTimeOut"\:-1,"startupLibPath"\:"/mnt/extsd/lib/libzkgui.so","startupTouchCalib"\:false,"touchDev"\:"/dev/input/event1","uart"\:"ttyS1","zkdebug"\:false}
-easyui.cfg.release={"baud"\:"115200","defBrightness"\:-1,"languageCode"\:"zh_CN","languagePath"\:"/res/tr/","resPath"\:"/res/ui/","rotateScreen"\:0,"rotateTouch"\:0,"screensaverTimeOut"\:-1,"startupLibPath"\:"/res/lib/libzkgui.so","startupTouchCalib"\:false,"touchDev"\:"/dev/input/event1","uart"\:"ttyS1","zkdebug"\:false}
+easyui.cfg.debug={"baud"\:"115200","defBrightness"\:-1,"font"\:"/mnt/extsd/ui/Harmony_231030.ttf","languageCode"\:"zh_CN","languagePath"\:"/mnt/extsd/tr/","resPath"\:"/mnt/extsd/ui/","rotateScreen"\:90,"rotateTouch"\:0,"screensaverTimeOut"\:-1,"startupLibPath"\:"/mnt/extsd/lib/libzkgui.so","startupTouchCalib"\:false,"touchDev"\:"/dev/input/event1","uart"\:"ttyS1","zkdebug"\:false}
+easyui.cfg.release={"baud"\:"115200","defBrightness"\:-1,"font"\:"/res/ui/Harmony_231030.ttf","languageCode"\:"zh_CN","languagePath"\:"/res/tr/","resPath"\:"/res/ui/","rotateScreen"\:90,"rotateTouch"\:0,"screensaverTimeOut"\:-1,"startupLibPath"\:"/res/lib/libzkgui.so","startupTouchCalib"\:false,"touchDev"\:"/dev/input/event1","uart"\:"ttyS1","zkdebug"\:false}
 eclipse.preferences.version=1
 platform={"name"\:"Z21","cprojectTemplateDir"\:"bundle/cproject/z21","internalCode"\:"z21"}
 resolution=1024x600

+ 1 - 0
.settings/org.eclipse.core.resources.prefs

@@ -1,2 +1,3 @@
 eclipse.preferences.version=1
 encoding/<project>=UTF-8
+separateDerivedEncodings=true

+ 2 - 0
.settings/org.eclipse.ltk.core.refactoring.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

+ 71 - 48
i18n/zh_CN.tr

@@ -12,66 +12,46 @@
     <string name="Saturday">周六</string>
     <string name="Sunday">周日</string>
     <!-- 按钮 -->
-    <string name="More">更多设置</string>
+    <string name="Home">首页</string>
+    <string name="Healthcare">医护</string>
+    <string name="More">更多</string>
     <string name="Fee">费用</string>
-    <string name="Help">请求增援</string>
-    <string name="HelpInfo">增援已发出</string>
-    <string name="HelpResponse">增援已响应</string>
+    <string name="Help">增援</string>
+    <string name="HelpInfo">增援已发出,请耐心等待回应</string>
+    <string name="HelpResponse">您的增援已响应,护士正在赶来的路上</string>
     <string name="Call">呼叫</string>
-    <string name="Reboot">重启</string>
+    <string name="Reboot">重启设备</string>
     <string name="SettingServerIP">服务器设置</string>
     <string name="SettingNet">网络设置</string>
     <string name="SoftVersion">软件版本</string>
     <string name="SoftInitialization">初始化版本</string>
     <string name="SoftDown">下载</string>
-    <string name="SoftVersionCheck">检查更新</string>
+    <string name="SoftVersionCheck">版本更新</string>
     <string name="SoftUpdateNow">立即升级</string>
-    <string name="Test">调试模式</string>
+    <string name="Setting">进入设置</string>
+    <string name="Test">进入调试</string>
     <string name="Confirm">确定</string>
     <string name="Cancel">取消</string>
     <string name="Save">保存</string>
     <string name="Back">返回</string>
     <string name="CallBed">呼叫床位</string>
-    <string name="CallNurse">呼叫护士</string>
+    <string name="CallNurse">呼叫护士</string>
     <string name="CallCencel">取消呼叫</string>
     <string name="CallInfo">发起呼叫</string>
     <string name="SOSCallInfo">发起紧急呼叫</string>
-    <string name="Voice">语音</string>
+    <string name="Voice">语音</string>  
     <!-- 首页 -->
     <string name="Room">房间</string>
     <string name="EmptyRoom">空房</string>
     <string name="EmptyBed">空床</string>
     <string name="None">暂无</string>
-    <string name="Oxygen">吸氧倒计时</string>
-    <string name="OxygenInhalation">吸氧</string>
-    <string name="SkinTest">皮试</string>
-    <string name="Infusion">输液</string>
-    <string name="10Minutes">10分钟</string>
-    <string name="15Minutes">15分钟</string>
-    <string name="20Minutes">20分钟时</string>
-    <string name="30Minutes">30分钟</string>
-    <string name="45Minutes">45分钟</string>
-    <string name="60Minutes">60分钟</string>
-    <string name="90Minutes">90分钟</string>
-    <string name="120Minutes">120分钟</string>
-    <string name="SettingTime">自定义时间</string>
-    <string name="CountdownProgress">正在倒计时</string>
-    <string name="CountdownCancel">是否取消倒计时</string>
-    <string name="CountdownEnded">倒计时已结束</string>
 	<string name="Nursing">进入护理</string>
 	<string name="InNursing">护理中...</string>
 	<string name="NursingEnd">护理结束</string>
 	<string name="Description">说明:</string>
-	<string name="Advice">医嘱</string>
-	<string name="AdviceType">医嘱类型</string>
-	<string name="LONG_TERM">长期</string>
-	<string name="TEMP">临时</string>
-	<string name="LoseEfficacy">失效</string>
-	<string name="TakeEffect">生效</string>
 	<string name="StartTime">开始时间:</string>
 	<string name="EndTime">结束时间:</string>
 	<string name="Content">内容</string>
-	<string name="Detail">参数</string>
     <string name="ResponsibleDoctor">责任医生</string>
     <string name="ResponsibleNurse">责任护士</string>
 	<string name="InTime">入住时间:</string>
@@ -81,35 +61,63 @@
 	<string name="BirTime">出生日期:</string>
 	<string name="Man">男</string>
 	<string name="Woman">女</string>
+	<string name="Slogan">做个好月子幸福一辈子</string>
+	<string name="MomInfo">宝妈信息</string>
+	<string name="MomName">宝妈姓名</string>
+	<string name="MomAge">宝妈年龄</string>
+	<string name="BabyInfo">宝宝信息</string>
+	<string name="BabyName">宝宝姓名</string>
+	<string name="BabySex">宝宝性别</string>
+	<string name="Boy">男宝</string>
+	<string name="Girl">女宝</string>
+    <!-- 版本界面 -->
+    <string name="VersionTitle">版本升级</string>
+    <string name="VersionInfo">版本信息</string>
+    <string name="VersionNow">当前设备版本</string>
+    <string name="VersionNoNow">当前版本号</string>
+    <string name="Version">版本名称</string>
+    <string name="VersionNo">版本号</string>
+    <string name="VersionMsg">确定要重新启动设备吗?</string>
+    <string name="GetVersionFailed">获取版本失败,错误码</string>
+    <string name="Searching">查询中...</string>
+    <string name="IsTheLastVersion">已经是最新版本</string>
+    <string name="FindNewVersion">发现新版本</string>
+    <string name="Downloading">下载中</string>
+    <string name="EthernetDisconnect">未连接网络</string>
+    <string name="DownloadFailed">下载错误,错误码</string>
     <!-- 系统信息 -->
+    <string name="DeviceInfo">设备信息</string>
+    <string name="DeviceDebug">设备调试</string>
     <string name="Null">无</string>
-    <string name="InDate">入院日期</string>
-    <string name="Advice">医嘱</string>
-    <string name="DeviceId">设备ID</string>
+    <string name="DeviceId">ID</string>
     <string name="DeviceSign">设备内部ID</string>
     <string name="MAC">设备MAC</string>
-    <string name="DeviceIp">设备IP</string>
+    <string name="DeviceIp">IP</string>
     <string name="NETMASK">子网掩码</string>
     <string name="GATEWAY">网关</string>
     <string name="VoiceId">语音ID</string>
     <string name="VoiceDomain">语音网关</string>
-    <string name="VersionInfo">版本信息</string>
-    <string name="Version">版本名称</string>
-    <string name="VersionNo">版本号</string>
-    <string name="GetVersionFailed">获取版本失败,错误码</string>
     <string name="ServerIP">服务器IP</string>
+    <string name="ScanQRCode">扫描二维码</string>
+    <!-- 功能界面 -->
+    <string name="HelpInfo">增援已发出</string>
+    <string name="HelpResponse">增援已响应</string>
+    <string name="InputServer">请输入服务器地址和端口</string>
+    <string name="ServerTag">只可输入数字和小数点</string>
     <string name="ServerIPWrong">服务器地址填写有误</string>
-    <string name="InputPassword">输入密码</string>
+    <string name="InputPassword">输入密码</string>
     <string name="PasswordWrong">密码错误</string>
-    <string name="PasswordTag">3位密码</string>
-    <string name="Searching">查询中...</string>
-    <string name="IsTheLastVersion">已经是最新版本</string>
-    <string name="FindNewVersion">发现新版本</string>
-    <string name="Downloading">下载中</string>
-    <string name="EthernetDisconnect">未连接网络</string>
-    <string name="DownloadFailed">下载错误,错误码</string>
+    <string name="PasswordTag">密码仅为3位数</string>
     <string name="PasswordText">3位密码</string>
     <string name="PasswordInput">输入密码</string>
+    <string name="EventCalled">-事件已发出</string>
+    <string name="EventResponse">已响应-</string>
+	<string name="CountdownEnd">-倒计时已结束</string>
+	<string name="SetNursingMsg">是否设置当前床位为护理状态?</string>
+	<string name="SetNursingEndMsg">是否退出当前床位的护理状态?</string>
+	<string name="Nursing">护理</string>
+	<string name="InNursing">当前床位正在护理中...</string>
+	<string name="NursingEnd">退出护理</string>
     <!-- 通话界面 -->
     <string name="RemoteRefuse">对方拒绝</string>
     <string name="RemoteBusy">对方忙线</string>
@@ -136,4 +144,19 @@
     <string name="NoBedList">当前房间没有床位</string>
     <string name="NoCustomer">当前房间用户入住</string>
     <string name="NoBedDevice">当前房间没有床位设备</string>
+    <!-- 版本界面 -->
+    <string name="VersionTitle">版本升级</string>
+    <string name="VersionInfo">版本信息</string>
+    <string name="VersionNow">当前设备版本</string>
+    <string name="VersionNoNow">当前版本号</string>
+    <string name="Version">版本名称</string>
+    <string name="VersionNo">版本号</string>
+    <string name="VersionMsg">确定要重新启动设备吗?</string>
+    <string name="GetVersionFailed">获取版本失败,错误码</string>
+    <string name="Searching">查询中...</string>
+    <string name="IsTheLastVersion">已经是最新版本</string>
+    <string name="FindNewVersion">发现新版本</string>
+    <string name="Downloading">下载中</string>
+    <string name="EthernetDisconnect">未连接网络</string>
+    <string name="DownloadFailed">下载错误,错误码</string>
 </resources>

+ 21 - 4
jni/activity/callActivity.cpp

@@ -4,6 +4,12 @@
 #include "callActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
+static ZKTextView* mTextViewInputPtr;
+static ZKTextView* mTextViewGainPtr;
+static ZKSeekBar* mSeekBarGainPtr;
+static ZKSeekBar* mSeekBarInputPtr;
+static ZKPainter* mCallPicPainterPtr;
+static ZKVideoView* mVideoViewPtr;
 static ZKButton* mButtonHangupPtr;
 static ZKTextView* mTextViewNamePtr;
 static ZKTextView* mTextViewDurationPtr;
@@ -12,7 +18,6 @@ static ZKTextView* mTextViewOutputVolumePtr;
 static ZKSeekBar* mSeekBarOutputVolumePtr;
 static ZKButton* mButtonVolPtr;
 static ZKButton* mButtonAnswerPtr;
-static ZKVideoView* mVideoView1Ptr;
 static callActivity* mActivityPtr;
 
 /*register activity*/
@@ -64,6 +69,8 @@ typedef struct {
 }S_ZKSeekBarCallback;
 /*TAG:SeekBarCallbackTab*/
 static S_ZKSeekBarCallback SZKSeekBarCallbackTab[] = {
+    ID_CALL_SeekBarGain, onProgressChanged_SeekBarGain,
+    ID_CALL_SeekBarInput, onProgressChanged_SeekBarInput,
     ID_CALL_SeekBarOutputVolume, onProgressChanged_SeekBarOutputVolume,
 };
 
@@ -110,7 +117,7 @@ typedef struct {
 }S_VideoViewCallback;
 /*TAG:VideoViewCallback*/
 static S_VideoViewCallback SVideoViewCallbackTab[] = {
-    ID_CALL_VideoView1, false, 5, onVideoViewPlayerMessageListener_VideoView1,
+    ID_CALL_VideoView, false, 5, onVideoViewPlayerMessageListener_VideoView,
 };
 
 
@@ -126,6 +133,12 @@ callActivity::~callActivity() {
     EASYUICONTEXT->unregisterGlobalTouchListener(this);
     onUI_quit();
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
+    mTextViewInputPtr = NULL;
+    mTextViewGainPtr = NULL;
+    mSeekBarGainPtr = NULL;
+    mSeekBarInputPtr = NULL;
+    mCallPicPainterPtr = NULL;
+    mVideoViewPtr = NULL;
     mButtonHangupPtr = NULL;
     mTextViewNamePtr = NULL;
     mTextViewDurationPtr = NULL;
@@ -134,7 +147,6 @@ callActivity::~callActivity() {
     mSeekBarOutputVolumePtr = NULL;
     mButtonVolPtr = NULL;
     mButtonAnswerPtr = NULL;
-    mVideoView1Ptr = NULL;
     mActivityPtr = NULL;
 }
 
@@ -145,6 +157,12 @@ const char* callActivity::getAppName() const{
 //TAG:onCreate
 void callActivity::onCreate() {
 	Activity::onCreate();
+    mTextViewInputPtr = (ZKTextView*)findControlByID(ID_CALL_TextViewInput);
+    mTextViewGainPtr = (ZKTextView*)findControlByID(ID_CALL_TextViewGain);
+    mSeekBarGainPtr = (ZKSeekBar*)findControlByID(ID_CALL_SeekBarGain);if(mSeekBarGainPtr!= NULL){mSeekBarGainPtr->setSeekBarChangeListener(this);}
+    mSeekBarInputPtr = (ZKSeekBar*)findControlByID(ID_CALL_SeekBarInput);if(mSeekBarInputPtr!= NULL){mSeekBarInputPtr->setSeekBarChangeListener(this);}
+    mCallPicPainterPtr = (ZKPainter*)findControlByID(ID_CALL_CallPicPainter);
+    mVideoViewPtr = (ZKVideoView*)findControlByID(ID_CALL_VideoView);if(mVideoViewPtr!= NULL){mVideoViewPtr->setVideoPlayerMessageListener(this);}
     mButtonHangupPtr = (ZKButton*)findControlByID(ID_CALL_ButtonHangup);
     mTextViewNamePtr = (ZKTextView*)findControlByID(ID_CALL_TextViewName);
     mTextViewDurationPtr = (ZKTextView*)findControlByID(ID_CALL_TextViewDuration);
@@ -153,7 +171,6 @@ void callActivity::onCreate() {
     mSeekBarOutputVolumePtr = (ZKSeekBar*)findControlByID(ID_CALL_SeekBarOutputVolume);if(mSeekBarOutputVolumePtr!= NULL){mSeekBarOutputVolumePtr->setSeekBarChangeListener(this);}
     mButtonVolPtr = (ZKButton*)findControlByID(ID_CALL_ButtonVol);
     mButtonAnswerPtr = (ZKButton*)findControlByID(ID_CALL_ButtonAnswer);
-    mVideoView1Ptr = (ZKVideoView*)findControlByID(ID_CALL_VideoView1);if(mVideoView1Ptr!= NULL){mVideoView1Ptr->setVideoPlayerMessageListener(this);}
 	mActivityPtr = this;
 	onUI_init();
     registerProtocolDataUpdateListener(onProtocolDataUpdate); 

+ 7 - 1
jni/activity/callActivity.h

@@ -13,6 +13,7 @@
 
 #include "utils/Log.h"
 #include "control/ZKDigitalClock.h"
+#include "control/ZKPainter.h"
 #include "control/ZKButton.h"
 #include "control/ZKCircleBar.h"
 #include "control/ZKDiagram.h"
@@ -26,6 +27,12 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
+#define ID_CALL_TextViewInput    50006
+#define ID_CALL_TextViewGain    50003
+#define ID_CALL_SeekBarGain    91002
+#define ID_CALL_SeekBarInput    91003
+#define ID_CALL_CallPicPainter    52001
+#define ID_CALL_VideoView    95001
 #define ID_CALL_ButtonHangup    20004
 #define ID_CALL_TextViewName    50004
 #define ID_CALL_TextViewDuration    50001
@@ -34,7 +41,6 @@
 #define ID_CALL_SeekBarOutputVolume    91001
 #define ID_CALL_ButtonVol    20003
 #define ID_CALL_ButtonAnswer    20001
-#define ID_CALL_VideoView1    95001
 /*TAG:Macro宏ID END*/
 
 class callActivity : public Activity, 

+ 149 - 165
jni/activity/ui3Activity.cpp

@@ -1,63 +1,60 @@
 /***********************************************
 /gen auto by zuitools
 ***********************************************/
-#include "ui3Activity.h"
+#include "deviceInfoActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
-static ZKTextView* mTestErrorTextViewPtr;
-static ZKButton* mTestConfirmButtonPtr;
-static ZKTextView* mTestPasswordTextViewPtr;
-static ZKEditText* mTestPasswordEditTextPtr;
-static ZKWindow* mTestPasswordWindowPtr;
-static ZKButton* mTestButtonPtr;
-static ZKPainter* mUi3PainterPtr;
-static ZKButton* msys_backPtr;
-static ZKTextView* mVoiceDomainPtr;
-static ZKButton* mBtnSoftVerPtr;
-static ZKButton* mBtnNetSettingPtr;
+static ZKTextView* mScanQRCodeTextViewPtr;
+static ZKPainter* mQRCodePicPainterPtr;
+static ZKQRCode* mQRCodePtr;
+static ZKPainter* mQRCodePainterPtr;
 static ZKTextView* mServerIPPtr;
-static ZKTextView* mTextView7Ptr;
-static ZKTextView* mTextView10Ptr;
-static ZKTextView* mDeviceCodePtr;
-static ZKTextView* mTextPwdInfoPtr;
-static ZKButton* mBtnRestartPtr;
-static ZKTextView* mTextView12Ptr;
+static ZKTextView* mServerIpTextViewPtr;
+static ZKTextView* mVersionPtr;
+static ZKTextView* mVersionTextViewPtr;
+static ZKTextView* mVoiceDomainPtr;
+static ZKTextView* mVoiceDomainTextViewPtr;
+static ZKTextView* mVoiceIdPtr;
+static ZKTextView* mVoiceIdTextViewPtr;
 static ZKTextView* mGatewayPtr;
-static ZKTextView* mTextView8Ptr;
+static ZKTextView* mGatewayTextViewPtr;
 static ZKTextView* mNetMaskPtr;
-static ZKTextView* mServerIPMsgPtr;
-static ZKButton* mBtnServerIPConfirmPtr;
-static ZKTextView* mTextView6Ptr;
-static ZKEditText* mEditTextServerIPPtr;
-static ZKWindow* mWindowServerIPPtr;
-static ZKWindow* mWindowPwdPtr;
-static ZKButton* mBtnPwdConfirmPtr;
-static ZKTextView* mTextView2Ptr;
-static ZKEditText* mEditTextPwdPtr;
-static ZKButton* mSettingPtr;
-static ZKTextView* mTextView4Ptr;
+static ZKTextView* mNetMaskTextViewPtr;
 static ZKTextView* mDeviceIpPtr;
-static ZKQRCode* mQRCode1Ptr;
-static ZKTextView* mTextView11Ptr;
-static ZKTextView* mVersionPtr;
-static ZKTextView* mTextView9Ptr;
-static ZKTextView* mVoiceIdPtr;
-static ZKTextView* mTextView5Ptr;
+static ZKTextView* mDeviceIpTextViewPtr;
 static ZKTextView* mDeviceMacPtr;
-static ZKTextView* mTextView3Ptr;
+static ZKTextView* mMACTextViewPtr;
+static ZKTextView* mDeviceCodePtr;
+static ZKTextView* mDeviceSignTextViewPtr;
 static ZKTextView* mDeviceIdPtr;
-static ZKTextView* mTextView1Ptr;
-static ui3Activity* mActivityPtr;
+static ZKTextView* mDeviceIdTextViewPtr;
+static ZKTextView* mDeviceInfoTextViewPtr;
+static ZKPainter* mDeviceInfoPicPainterPtr;
+static ZKPainter* mRestartPainterPtr;
+static ZKButton* mRestartButtonPtr;
+static ZKPainter* mVersionPainterPtr;
+static ZKButton* mVersionButtonPtr;
+static ZKPainter* mSettingPainterPtr;
+static ZKButton* mSettingButtonPtr;
+static ZKPainter* mNetworkPainterPtr;
+static ZKButton* mNetworkButtonPtr;
+static ZKPainter* mServerPicPainterPtr;
+static ZKButton* mServerButtonPtr;
+static ZKTextView* mDebugTextViewPtr;
+static ZKPainter* mDebugPicPainterPtr;
+static ZKPainter* mDebugPainterPtr;
+static ZKPainter* mDeviceInfoPainterPtr;
+static deviceInfoActivity* mActivityPtr;
 
 /*register activity*/
-REGISTER_ACTIVITY(ui3Activity);
+REGISTER_ACTIVITY(deviceInfoActivity);
 
 typedef struct {
 	int id; // 定时器ID , 不能重复
 	int time; // 定时器  时间间隔  单位 毫秒
 }S_ACTIVITY_TIMEER;
 
-#include "logic/ui3Logic.cc"
+#include "logic/deviceInfoLogic.cc"
 
 /***********/
 typedef struct {
@@ -84,15 +81,11 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
-    ID_UI3_TestConfirmButton, onButtonClick_TestConfirmButton,
-    ID_UI3_TestButton, onButtonClick_TestButton,
-    ID_UI3_sys_back, onButtonClick_sys_back,
-    ID_UI3_BtnSoftVer, onButtonClick_BtnSoftVer,
-    ID_UI3_BtnNetSetting, onButtonClick_BtnNetSetting,
-    ID_UI3_BtnRestart, onButtonClick_BtnRestart,
-    ID_UI3_BtnServerIPConfirm, onButtonClick_BtnServerIPConfirm,
-    ID_UI3_BtnPwdConfirm, onButtonClick_BtnPwdConfirm,
-    ID_UI3_Setting, onButtonClick_Setting,
+    ID_DEVICEINFO_RestartButton, onButtonClick_RestartButton,
+    ID_DEVICEINFO_VersionButton, onButtonClick_VersionButton,
+    ID_DEVICEINFO_SettingButton, onButtonClick_SettingButton,
+    ID_DEVICEINFO_NetworkButton, onButtonClick_NetworkButton,
+    ID_DEVICEINFO_ServerButton, onButtonClick_ServerButton,
 };
 /***************/
 
@@ -138,9 +131,6 @@ typedef struct {
 }S_EditTextInputCallback;
 /*TAG:EditTextInputCallback*/
 static S_EditTextInputCallback SEditTextInputCallbackTab[] = {
-    ID_UI3_TestPasswordEditText, onEditTextChanged_TestPasswordEditText,
-    ID_UI3_EditTextServerIP, onEditTextChanged_EditTextServerIP,
-    ID_UI3_EditTextPwd, onEditTextChanged_EditTextPwd,
 };
 
 typedef void (*VideoViewCallback)(ZKVideoView *pVideoView, int msg);
@@ -155,121 +145,115 @@ static S_VideoViewCallback SVideoViewCallbackTab[] = {
 };
 
 
-ui3Activity::ui3Activity() {
+deviceInfoActivity::deviceInfoActivity() {
 	//todo add init code here
 	mVideoLoopIndex = -1;
 	mVideoLoopErrorCount = 0;
 }
 
-ui3Activity::~ui3Activity() {
+deviceInfoActivity::~deviceInfoActivity() {
   //todo add init file here
   // 退出应用时需要反注册
     EASYUICONTEXT->unregisterGlobalTouchListener(this);
-    onUI_quit();
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
-    mTestErrorTextViewPtr = NULL;
-    mTestConfirmButtonPtr = NULL;
-    mTestPasswordTextViewPtr = NULL;
-    mTestPasswordEditTextPtr = NULL;
-    mTestPasswordWindowPtr = NULL;
-    mTestButtonPtr = NULL;
-    mUi3PainterPtr = NULL;
-    msys_backPtr = NULL;
-    mVoiceDomainPtr = NULL;
-    mBtnSoftVerPtr = NULL;
-    mBtnNetSettingPtr = NULL;
+    onUI_quit();
+    mActivityPtr = NULL;
+    mScanQRCodeTextViewPtr = NULL;
+    mQRCodePicPainterPtr = NULL;
+    mQRCodePtr = NULL;
+    mQRCodePainterPtr = NULL;
     mServerIPPtr = NULL;
-    mTextView7Ptr = NULL;
-    mTextView10Ptr = NULL;
-    mDeviceCodePtr = NULL;
-    mTextPwdInfoPtr = NULL;
-    mBtnRestartPtr = NULL;
-    mTextView12Ptr = NULL;
+    mServerIpTextViewPtr = NULL;
+    mVersionPtr = NULL;
+    mVersionTextViewPtr = NULL;
+    mVoiceDomainPtr = NULL;
+    mVoiceDomainTextViewPtr = NULL;
+    mVoiceIdPtr = NULL;
+    mVoiceIdTextViewPtr = NULL;
     mGatewayPtr = NULL;
-    mTextView8Ptr = NULL;
+    mGatewayTextViewPtr = NULL;
     mNetMaskPtr = NULL;
-    mServerIPMsgPtr = NULL;
-    mBtnServerIPConfirmPtr = NULL;
-    mTextView6Ptr = NULL;
-    mEditTextServerIPPtr = NULL;
-    mWindowServerIPPtr = NULL;
-    mWindowPwdPtr = NULL;
-    mBtnPwdConfirmPtr = NULL;
-    mTextView2Ptr = NULL;
-    mEditTextPwdPtr = NULL;
-    mSettingPtr = NULL;
-    mTextView4Ptr = NULL;
+    mNetMaskTextViewPtr = NULL;
     mDeviceIpPtr = NULL;
-    mQRCode1Ptr = NULL;
-    mTextView11Ptr = NULL;
-    mVersionPtr = NULL;
-    mTextView9Ptr = NULL;
-    mVoiceIdPtr = NULL;
-    mTextView5Ptr = NULL;
+    mDeviceIpTextViewPtr = NULL;
     mDeviceMacPtr = NULL;
-    mTextView3Ptr = NULL;
+    mMACTextViewPtr = NULL;
+    mDeviceCodePtr = NULL;
+    mDeviceSignTextViewPtr = NULL;
     mDeviceIdPtr = NULL;
-    mTextView1Ptr = NULL;
-    mActivityPtr = NULL;
+    mDeviceIdTextViewPtr = NULL;
+    mDeviceInfoTextViewPtr = NULL;
+    mDeviceInfoPicPainterPtr = NULL;
+    mRestartPainterPtr = NULL;
+    mRestartButtonPtr = NULL;
+    mVersionPainterPtr = NULL;
+    mVersionButtonPtr = NULL;
+    mSettingPainterPtr = NULL;
+    mSettingButtonPtr = NULL;
+    mNetworkPainterPtr = NULL;
+    mNetworkButtonPtr = NULL;
+    mServerPicPainterPtr = NULL;
+    mServerButtonPtr = NULL;
+    mDebugTextViewPtr = NULL;
+    mDebugPicPainterPtr = NULL;
+    mDebugPainterPtr = NULL;
+    mDeviceInfoPainterPtr = NULL;
 }
 
-const char* ui3Activity::getAppName() const{
-	return "ui3.ftu";
+const char* deviceInfoActivity::getAppName() const{
+	return "deviceInfo.ftu";
 }
 
 //TAG:onCreate
-void ui3Activity::onCreate() {
+void deviceInfoActivity::onCreate() {
 	Activity::onCreate();
-    mTestErrorTextViewPtr = (ZKTextView*)findControlByID(ID_UI3_TestErrorTextView);
-    mTestConfirmButtonPtr = (ZKButton*)findControlByID(ID_UI3_TestConfirmButton);
-    mTestPasswordTextViewPtr = (ZKTextView*)findControlByID(ID_UI3_TestPasswordTextView);
-    mTestPasswordEditTextPtr = (ZKEditText*)findControlByID(ID_UI3_TestPasswordEditText);if(mTestPasswordEditTextPtr!= NULL){mTestPasswordEditTextPtr->setTextChangeListener(this);}
-    mTestPasswordWindowPtr = (ZKWindow*)findControlByID(ID_UI3_TestPasswordWindow);
-    mTestButtonPtr = (ZKButton*)findControlByID(ID_UI3_TestButton);
-    mUi3PainterPtr = (ZKPainter*)findControlByID(ID_UI3_Ui3Painter);
-    msys_backPtr = (ZKButton*)findControlByID(ID_UI3_sys_back);
-    mVoiceDomainPtr = (ZKTextView*)findControlByID(ID_UI3_VoiceDomain);
-    mBtnSoftVerPtr = (ZKButton*)findControlByID(ID_UI3_BtnSoftVer);
-    mBtnNetSettingPtr = (ZKButton*)findControlByID(ID_UI3_BtnNetSetting);
-    mServerIPPtr = (ZKTextView*)findControlByID(ID_UI3_ServerIP);
-    mTextView7Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView7);
-    mTextView10Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView10);
-    mDeviceCodePtr = (ZKTextView*)findControlByID(ID_UI3_DeviceCode);
-    mTextPwdInfoPtr = (ZKTextView*)findControlByID(ID_UI3_TextPwdInfo);
-    mBtnRestartPtr = (ZKButton*)findControlByID(ID_UI3_BtnRestart);
-    mTextView12Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView12);
-    mGatewayPtr = (ZKTextView*)findControlByID(ID_UI3_Gateway);
-    mTextView8Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView8);
-    mNetMaskPtr = (ZKTextView*)findControlByID(ID_UI3_NetMask);
-    mServerIPMsgPtr = (ZKTextView*)findControlByID(ID_UI3_ServerIPMsg);
-    mBtnServerIPConfirmPtr = (ZKButton*)findControlByID(ID_UI3_BtnServerIPConfirm);
-    mTextView6Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView6);
-    mEditTextServerIPPtr = (ZKEditText*)findControlByID(ID_UI3_EditTextServerIP);if(mEditTextServerIPPtr!= NULL){mEditTextServerIPPtr->setTextChangeListener(this);}
-    mWindowServerIPPtr = (ZKWindow*)findControlByID(ID_UI3_WindowServerIP);
-    mWindowPwdPtr = (ZKWindow*)findControlByID(ID_UI3_WindowPwd);
-    mBtnPwdConfirmPtr = (ZKButton*)findControlByID(ID_UI3_BtnPwdConfirm);
-    mTextView2Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView2);
-    mEditTextPwdPtr = (ZKEditText*)findControlByID(ID_UI3_EditTextPwd);if(mEditTextPwdPtr!= NULL){mEditTextPwdPtr->setTextChangeListener(this);}
-    mSettingPtr = (ZKButton*)findControlByID(ID_UI3_Setting);
-    mTextView4Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView4);
-    mDeviceIpPtr = (ZKTextView*)findControlByID(ID_UI3_DeviceIp);
-    mQRCode1Ptr = (ZKQRCode*)findControlByID(ID_UI3_QRCode1);
-    mTextView11Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView11);
-    mVersionPtr = (ZKTextView*)findControlByID(ID_UI3_Version);
-    mTextView9Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView9);
-    mVoiceIdPtr = (ZKTextView*)findControlByID(ID_UI3_VoiceId);
-    mTextView5Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView5);
-    mDeviceMacPtr = (ZKTextView*)findControlByID(ID_UI3_DeviceMac);
-    mTextView3Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView3);
-    mDeviceIdPtr = (ZKTextView*)findControlByID(ID_UI3_DeviceId);
-    mTextView1Ptr = (ZKTextView*)findControlByID(ID_UI3_TextView1);
+    mScanQRCodeTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_ScanQRCodeTextView);
+    mQRCodePicPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_QRCodePicPainter);
+    mQRCodePtr = (ZKQRCode*)findControlByID(ID_DEVICEINFO_QRCode);
+    mQRCodePainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_QRCodePainter);
+    mServerIPPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_ServerIP);
+    mServerIpTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_ServerIpTextView);
+    mVersionPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_Version);
+    mVersionTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_VersionTextView);
+    mVoiceDomainPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_VoiceDomain);
+    mVoiceDomainTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_VoiceDomainTextView);
+    mVoiceIdPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_VoiceId);
+    mVoiceIdTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_VoiceIdTextView);
+    mGatewayPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_Gateway);
+    mGatewayTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_GatewayTextView);
+    mNetMaskPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_NetMask);
+    mNetMaskTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_NetMaskTextView);
+    mDeviceIpPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DeviceIp);
+    mDeviceIpTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DeviceIpTextView);
+    mDeviceMacPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DeviceMac);
+    mMACTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_MACTextView);
+    mDeviceCodePtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DeviceCode);
+    mDeviceSignTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DeviceSignTextView);
+    mDeviceIdPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DeviceId);
+    mDeviceIdTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DeviceIdTextView);
+    mDeviceInfoTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DeviceInfoTextView);
+    mDeviceInfoPicPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_DeviceInfoPicPainter);
+    mRestartPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_RestartPainter);
+    mRestartButtonPtr = (ZKButton*)findControlByID(ID_DEVICEINFO_RestartButton);
+    mVersionPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_VersionPainter);
+    mVersionButtonPtr = (ZKButton*)findControlByID(ID_DEVICEINFO_VersionButton);
+    mSettingPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_SettingPainter);
+    mSettingButtonPtr = (ZKButton*)findControlByID(ID_DEVICEINFO_SettingButton);
+    mNetworkPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_NetworkPainter);
+    mNetworkButtonPtr = (ZKButton*)findControlByID(ID_DEVICEINFO_NetworkButton);
+    mServerPicPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_ServerPicPainter);
+    mServerButtonPtr = (ZKButton*)findControlByID(ID_DEVICEINFO_ServerButton);
+    mDebugTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEINFO_DebugTextView);
+    mDebugPicPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_DebugPicPainter);
+    mDebugPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_DebugPainter);
+    mDeviceInfoPainterPtr = (ZKPainter*)findControlByID(ID_DEVICEINFO_DeviceInfoPainter);
 	mActivityPtr = this;
 	onUI_init();
-    registerProtocolDataUpdateListener(onProtocolDataUpdate); 
-    rigesterActivityTimer();
+  registerProtocolDataUpdateListener(onProtocolDataUpdate);
+  rigesterActivityTimer();
 }
 
-void ui3Activity::onClick(ZKBase *pBase) {
+void deviceInfoActivity::onClick(ZKBase *pBase) {
 	//TODO: add widget onClik code 
     int buttonTablen = sizeof(sButtonCallbackTab) / sizeof(S_ButtonCallback);
     for (int i = 0; i < buttonTablen; ++i) {
@@ -293,30 +277,30 @@ void ui3Activity::onClick(ZKBase *pBase) {
 	Activity::onClick(pBase);
 }
 
-void ui3Activity::onResume() {
+void deviceInfoActivity::onResume() {
 	Activity::onResume();
 	EASYUICONTEXT->registerGlobalTouchListener(this);
 	startVideoLoopPlayback();
 	onUI_show();
 }
 
-void ui3Activity::onPause() {
+void deviceInfoActivity::onPause() {
 	Activity::onPause();
 	EASYUICONTEXT->unregisterGlobalTouchListener(this);
 	stopVideoLoopPlayback();
 	onUI_hide();
 }
 
-void ui3Activity::onIntent(const Intent *intentPtr) {
+void deviceInfoActivity::onIntent(const Intent *intentPtr) {
 	Activity::onIntent(intentPtr);
 	onUI_intent(intentPtr);
 }
 
-bool ui3Activity::onTimer(int id) {
+bool deviceInfoActivity::onTimer(int id) {
 	return onUI_Timer(id);
 }
 
-void ui3Activity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
+void deviceInfoActivity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
 
     int seekBarTablen = sizeof(SZKSeekBarCallbackTab) / sizeof(S_ZKSeekBarCallback);
     for (int i = 0; i < seekBarTablen; ++i) {
@@ -327,7 +311,7 @@ void ui3Activity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
     }
 }
 
-int ui3Activity::getListItemCount(const ZKListView *pListView) const{
+int deviceInfoActivity::getListItemCount(const ZKListView *pListView) const{
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -338,7 +322,7 @@ int ui3Activity::getListItemCount(const ZKListView *pListView) const{
     return 0;
 }
 
-void ui3Activity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index){
+void deviceInfoActivity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index){
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -348,7 +332,7 @@ void ui3Activity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListIte
     }
 }
 
-void ui3Activity::onItemClick(ZKListView *pListView, int index, int id){
+void deviceInfoActivity::onItemClick(ZKListView *pListView, int index, int id){
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -358,7 +342,7 @@ void ui3Activity::onItemClick(ZKListView *pListView, int index, int id){
     }
 }
 
-void ui3Activity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
+void deviceInfoActivity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
     int tablen = sizeof(SSlideWindowItemClickCallbackTab) / sizeof(S_SlideWindowItemClickCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SSlideWindowItemClickCallbackTab[i].id == pSlideWindow->getID()) {
@@ -368,11 +352,11 @@ void ui3Activity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
     }
 }
 
-bool ui3Activity::onTouchEvent(const MotionEvent &ev) {
-    return onui3ActivityTouchEvent(ev);
+bool deviceInfoActivity::onTouchEvent(const MotionEvent &ev) {
+    return ondeviceInfoActivityTouchEvent(ev);
 }
 
-void ui3Activity::onTextChanged(ZKTextView *pTextView, const std::string &text) {
+void deviceInfoActivity::onTextChanged(ZKTextView *pTextView, const std::string &text) {
     int tablen = sizeof(SEditTextInputCallbackTab) / sizeof(S_EditTextInputCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SEditTextInputCallbackTab[i].id == pTextView->getID()) {
@@ -382,7 +366,7 @@ void ui3Activity::onTextChanged(ZKTextView *pTextView, const std::string &text)
     }
 }
 
-void ui3Activity::rigesterActivityTimer() {
+void deviceInfoActivity::rigesterActivityTimer() {
     int tablen = sizeof(REGISTER_ACTIVITY_TIMER_TAB) / sizeof(S_ACTIVITY_TIMEER);
     for (int i = 0; i < tablen; ++i) {
         S_ACTIVITY_TIMEER temp = REGISTER_ACTIVITY_TIMER_TAB[i];
@@ -391,7 +375,7 @@ void ui3Activity::rigesterActivityTimer() {
 }
 
 
-void ui3Activity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
+void deviceInfoActivity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SVideoViewCallbackTab[i].id == pVideoView->getID()) {
@@ -406,7 +390,7 @@ void ui3Activity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
     }
 }
 
-void ui3Activity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t callbackTabIndex) {
+void deviceInfoActivity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t callbackTabIndex) {
 
 	switch (msg) {
 	case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_STARTED:
@@ -446,7 +430,7 @@ void ui3Activity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t cal
 	}
 }
 
-void ui3Activity::startVideoLoopPlayback() {
+void deviceInfoActivity::startVideoLoopPlayback() {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
     	if (SVideoViewCallbackTab[i].loop) {
@@ -461,7 +445,7 @@ void ui3Activity::startVideoLoopPlayback() {
     }
 }
 
-void ui3Activity::stopVideoLoopPlayback() {
+void deviceInfoActivity::stopVideoLoopPlayback() {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
     	if (SVideoViewCallbackTab[i].loop) {
@@ -477,7 +461,7 @@ void ui3Activity::stopVideoLoopPlayback() {
     }
 }
 
-bool ui3Activity::parseVideoFileList(const char *pFileListPath, std::vector<string>& mediaFileList) {
+bool deviceInfoActivity::parseVideoFileList(const char *pFileListPath, std::vector<string>& mediaFileList) {
 	mediaFileList.clear();
 	if (NULL == pFileListPath || 0 == strlen(pFileListPath)) {
         LOGD("video file list is null!");
@@ -509,7 +493,7 @@ bool ui3Activity::parseVideoFileList(const char *pFileListPath, std::vector<stri
 	return true;
 }
 
-int ui3Activity::removeCharFromString(string& nString, char c) {
+int deviceInfoActivity::removeCharFromString(string& nString, char c) {
     string::size_type   pos;
     while(1) {
         pos = nString.find(c);
@@ -522,14 +506,14 @@ int ui3Activity::removeCharFromString(string& nString, char c) {
     return (int)nString.size();
 }
 
-void ui3Activity::registerUserTimer(int id, int time) {
+void deviceInfoActivity::registerUserTimer(int id, int time) {
 	registerTimer(id, time);
 }
 
-void ui3Activity::unregisterUserTimer(int id) {
+void deviceInfoActivity::unregisterUserTimer(int id) {
 	unregisterTimer(id);
 }
 
-void ui3Activity::resetUserTimer(int id, int time) {
+void deviceInfoActivity::resetUserTimer(int id, int time) {
 	resetTimer(id, time);
 }

+ 46 - 41
jni/activity/DeviceUpdateActivity.h

@@ -1,8 +1,8 @@
 /***********************************************
 /gen auto by zuitools
 ***********************************************/
-#ifndef __DEVICEUPDATEACTIVITY_H__
-#define __DEVICEUPDATEACTIVITY_H__
+#ifndef __DEVICEINFOACTIVITY_H__
+#define __DEVICEINFOACTIVITY_H__
 
 
 #include "app/Activity.h"
@@ -13,6 +13,7 @@
 
 #include "utils/Log.h"
 #include "control/ZKDigitalClock.h"
+#include "control/ZKPainter.h"
 #include "control/ZKButton.h"
 #include "control/ZKCircleBar.h"
 #include "control/ZKDiagram.h"
@@ -26,45 +27,49 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
-#define ID_DEVICEUPDATE_TextPwdInfo    50022
-#define ID_DEVICEUPDATE_BtnPwdConfirm    20007
-#define ID_DEVICEUPDATE_PasswordTextView    50017
-#define ID_DEVICEUPDATE_EditTextPwd    51001
-#define ID_DEVICEUPDATE_WindowPwd    110006
-#define ID_DEVICEUPDATE_FindBackButton    20005
-#define ID_DEVICEUPDATE_BackButton    20004
-#define ID_DEVICEUPDATE_IntervalSubItem    24002
-#define ID_DEVICEUPDATE_DownSubItem    24001
-#define ID_DEVICEUPDATE_DeviceTypeListView    80001
-#define ID_DEVICEUPDATE_WindowInit    110005
-#define ID_DEVICEUPDATE_ButtonInit    20003
-#define ID_DEVICEUPDATE_sys_back   100
-#define ID_DEVICEUPDATE_Window1    110004
-#define ID_DEVICEUPDATE_VersionNoNew    50016
-#define ID_DEVICEUPDATE_TextView8    50015
-#define ID_DEVICEUPDATE_VersionNew    50004
-#define ID_DEVICEUPDATE_VersionNo    50014
-#define ID_DEVICEUPDATE_TextView7    50013
-#define ID_DEVICEUPDATE_Version    50002
-#define ID_DEVICEUPDATE_ButtonDialog1    20006
-#define ID_DEVICEUPDATE_TextViewDialog1    50011
-#define ID_DEVICEUPDATE_TextView6    50010
-#define ID_DEVICEUPDATE_WindowDialog1    110003
-#define ID_DEVICEUPDATE_TextViewProgressMessage    50012
-#define ID_DEVICEUPDATE_TextViewProgressLoading    50008
-#define ID_DEVICEUPDATE_TextView4    50007
-#define ID_DEVICEUPDATE_WindowProgress    110002
-#define ID_DEVICEUPDATE_ButtonInstantly    20002
-#define ID_DEVICEUPDATE_TextView3    50003
-#define ID_DEVICEUPDATE_TextView5    50005
-#define ID_DEVICEUPDATE_WindowFind    110001
-#define ID_DEVICEUPDATE_TextViewTitle    50009
-#define ID_DEVICEUPDATE_TextView1    50001
-#define ID_DEVICEUPDATE_ButtonUpdate    20001
-#define ID_DEVICEUPDATE_TextView2    50006
+#define ID_DEVICEINFO_ScanQRCodeTextView    50028
+#define ID_DEVICEINFO_QRCodePicPainter    52010
+#define ID_DEVICEINFO_QRCode    92001
+#define ID_DEVICEINFO_QRCodePainter    52009
+#define ID_DEVICEINFO_ServerIP    50024
+#define ID_DEVICEINFO_ServerIpTextView    50023
+#define ID_DEVICEINFO_Version    50010
+#define ID_DEVICEINFO_VersionTextView    50011
+#define ID_DEVICEINFO_VoiceDomain    50012
+#define ID_DEVICEINFO_VoiceDomainTextView    50009
+#define ID_DEVICEINFO_VoiceId    50006
+#define ID_DEVICEINFO_VoiceIdTextView    50005
+#define ID_DEVICEINFO_Gateway    50018
+#define ID_DEVICEINFO_GatewayTextView    50019
+#define ID_DEVICEINFO_NetMask    50016
+#define ID_DEVICEINFO_NetMaskTextView    50017
+#define ID_DEVICEINFO_DeviceIp    50007
+#define ID_DEVICEINFO_DeviceIpTextView    50008
+#define ID_DEVICEINFO_DeviceMac    50004
+#define ID_DEVICEINFO_MACTextView    50003
+#define ID_DEVICEINFO_DeviceCode    50020
+#define ID_DEVICEINFO_DeviceSignTextView    50021
+#define ID_DEVICEINFO_DeviceId    50002
+#define ID_DEVICEINFO_DeviceIdTextView    50001
+#define ID_DEVICEINFO_DeviceInfoTextView    50029
+#define ID_DEVICEINFO_DeviceInfoPicPainter    52011
+#define ID_DEVICEINFO_DeviceInfoPainter    52007
+#define ID_DEVICEINFO_RestartPainter    52006
+#define ID_DEVICEINFO_RestartButton    20013
+#define ID_DEVICEINFO_VersionPainter    52005
+#define ID_DEVICEINFO_VersionButton    20012
+#define ID_DEVICEINFO_SettingPainter    52004
+#define ID_DEVICEINFO_SettingButton    20011
+#define ID_DEVICEINFO_NetworkPainter    52003
+#define ID_DEVICEINFO_NetworkButton    20010
+#define ID_DEVICEINFO_ServerPicPainter    52008
+#define ID_DEVICEINFO_ServerButton    20009
+#define ID_DEVICEINFO_DebugTextView    50027
+#define ID_DEVICEINFO_DebugPicPainter    52002
+#define ID_DEVICEINFO_DebugPainter    52001
 /*TAG:Macro宏ID END*/
 
-class DeviceUpdateActivity : public Activity, 
+class deviceInfoActivity : public Activity, 
                      public ZKSeekBar::ISeekBarChangeListener, 
                      public ZKListView::IItemClickListener,
                      public ZKListView::AbsListAdapter,
@@ -74,8 +79,8 @@ class DeviceUpdateActivity : public Activity,
                      public ZKVideoView::IVideoPlayerMessageListener
 {
 public:
-    DeviceUpdateActivity();
-    virtual ~DeviceUpdateActivity();
+    deviceInfoActivity();
+    virtual ~deviceInfoActivity();
 
     /**
      * 注册定时器

+ 115 - 44
jni/activity/warnActivity.cpp

@@ -1,23 +1,44 @@
 /***********************************************
 /gen auto by zuitools
 ***********************************************/
-#include "warnActivity.h"
+#include "functionActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
-static ZKButton* msys_backPtr;
+static ZKButton* mServerCancelButtonPtr;
+static ZKButton* mServerConfirmButtonPtr;
+static ZKTextView* mServerPromptTextViewPtr;
+static ZKTextView* mServerTextViewPtr;
+static ZKEditText* mServerPortEditTextPtr;
+static ZKEditText* mServerIpEditTextPtr;
+static ZKPainter* mServerPainterPtr;
+static ZKWindow* mServerWindowPtr;
+static ZKButton* mPwdBackButtonPtr;
+static ZKButton* mPwdConfirmButtonPtr;
+static ZKEditText* mPwdEditTextPtr;
+static ZKTextView* mPwdPromptTextViewPtr;
+static ZKTextView* mPwdTextViewPtr;
+static ZKPainter* mPwdPainterPtr;
+static ZKWindow* mPwdWindowPtr;
+static ZKButton* mFunctionButtonPtr;
+static ZKTextView* mStateTextViewPtr;
+static ZKTextView* mFunctionTextViewPtr;
+static ZKPainter* mIconPainterPtr;
+static ZKWindow* mFunctionWindowPtr;
+static ZKButton* mbackButtonPtr;
 static ZKTextView* mWarnTextViewPtr;
-static ZKPainter* mWarnPainterPtr;
-static warnActivity* mActivityPtr;
+static ZKWindow* mWarnWindowPtr;
+static ZKPainter* mFunctionPainterPtr;
+static functionActivity* mActivityPtr;
 
 /*register activity*/
-REGISTER_ACTIVITY(warnActivity);
+REGISTER_ACTIVITY(functionActivity);
 
 typedef struct {
 	int id; // 定时器ID , 不能重复
 	int time; // 定时器  时间间隔  单位 毫秒
 }S_ACTIVITY_TIMEER;
 
-#include "logic/warnLogic.cc"
+#include "logic/functionLogic.cc"
 
 /***********/
 typedef struct {
@@ -44,7 +65,12 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
-    ID_WARN_sys_back, onButtonClick_sys_back,
+    ID_FUNCTION_ServerCancelButton, onButtonClick_ServerCancelButton,
+    ID_FUNCTION_ServerConfirmButton, onButtonClick_ServerConfirmButton,
+    ID_FUNCTION_PwdBackButton, onButtonClick_PwdBackButton,
+    ID_FUNCTION_PwdConfirmButton, onButtonClick_PwdConfirmButton,
+    ID_FUNCTION_FunctionButton, onButtonClick_FunctionButton,
+    ID_FUNCTION_backButton, onButtonClick_backButton,
 };
 /***************/
 
@@ -90,6 +116,9 @@ typedef struct {
 }S_EditTextInputCallback;
 /*TAG:EditTextInputCallback*/
 static S_EditTextInputCallback SEditTextInputCallbackTab[] = {
+    ID_FUNCTION_ServerPortEditText, onEditTextChanged_ServerPortEditText,
+    ID_FUNCTION_ServerIpEditText, onEditTextChanged_ServerIpEditText,
+    ID_FUNCTION_PwdEditText, onEditTextChanged_PwdEditText,
 };
 
 typedef void (*VideoViewCallback)(ZKVideoView *pVideoView, int msg);
@@ -104,41 +133,83 @@ static S_VideoViewCallback SVideoViewCallbackTab[] = {
 };
 
 
-warnActivity::warnActivity() {
+functionActivity::functionActivity() {
 	//todo add init code here
 	mVideoLoopIndex = -1;
 	mVideoLoopErrorCount = 0;
 }
 
-warnActivity::~warnActivity() {
+functionActivity::~functionActivity() {
   //todo add init file here
   // 退出应用时需要反注册
     EASYUICONTEXT->unregisterGlobalTouchListener(this);
-    onUI_quit();
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
-    msys_backPtr = NULL;
-    mWarnTextViewPtr = NULL;
-    mWarnPainterPtr = NULL;
+    onUI_quit();
     mActivityPtr = NULL;
+    mServerCancelButtonPtr = NULL;
+    mServerConfirmButtonPtr = NULL;
+    mServerPromptTextViewPtr = NULL;
+    mServerTextViewPtr = NULL;
+    mServerPortEditTextPtr = NULL;
+    mServerIpEditTextPtr = NULL;
+    mServerPainterPtr = NULL;
+    mServerWindowPtr = NULL;
+    mPwdBackButtonPtr = NULL;
+    mPwdConfirmButtonPtr = NULL;
+    mPwdEditTextPtr = NULL;
+    mPwdPromptTextViewPtr = NULL;
+    mPwdTextViewPtr = NULL;
+    mPwdPainterPtr = NULL;
+    mPwdWindowPtr = NULL;
+    mFunctionButtonPtr = NULL;
+    mStateTextViewPtr = NULL;
+    mFunctionTextViewPtr = NULL;
+    mIconPainterPtr = NULL;
+    mFunctionWindowPtr = NULL;
+    mbackButtonPtr = NULL;
+    mWarnTextViewPtr = NULL;
+    mWarnWindowPtr = NULL;
+    mFunctionPainterPtr = NULL;
 }
 
-const char* warnActivity::getAppName() const{
-	return "warn.ftu";
+const char* functionActivity::getAppName() const{
+	return "function.ftu";
 }
 
 //TAG:onCreate
-void warnActivity::onCreate() {
+void functionActivity::onCreate() {
 	Activity::onCreate();
-    msys_backPtr = (ZKButton*)findControlByID(ID_WARN_sys_back);
-    mWarnTextViewPtr = (ZKTextView*)findControlByID(ID_WARN_WarnTextView);
-    mWarnPainterPtr = (ZKPainter*)findControlByID(ID_WARN_WarnPainter);
+    mServerCancelButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_ServerCancelButton);
+    mServerConfirmButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_ServerConfirmButton);
+    mServerPromptTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_ServerPromptTextView);
+    mServerTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_ServerTextView);
+    mServerPortEditTextPtr = (ZKEditText*)findControlByID(ID_FUNCTION_ServerPortEditText);if(mServerPortEditTextPtr!= NULL){mServerPortEditTextPtr->setTextChangeListener(this);}
+    mServerIpEditTextPtr = (ZKEditText*)findControlByID(ID_FUNCTION_ServerIpEditText);if(mServerIpEditTextPtr!= NULL){mServerIpEditTextPtr->setTextChangeListener(this);}
+    mServerPainterPtr = (ZKPainter*)findControlByID(ID_FUNCTION_ServerPainter);
+    mServerWindowPtr = (ZKWindow*)findControlByID(ID_FUNCTION_ServerWindow);
+    mPwdBackButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_PwdBackButton);
+    mPwdConfirmButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_PwdConfirmButton);
+    mPwdEditTextPtr = (ZKEditText*)findControlByID(ID_FUNCTION_PwdEditText);if(mPwdEditTextPtr!= NULL){mPwdEditTextPtr->setTextChangeListener(this);}
+    mPwdPromptTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_PwdPromptTextView);
+    mPwdTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_PwdTextView);
+    mPwdPainterPtr = (ZKPainter*)findControlByID(ID_FUNCTION_PwdPainter);
+    mPwdWindowPtr = (ZKWindow*)findControlByID(ID_FUNCTION_PwdWindow);
+    mFunctionButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_FunctionButton);
+    mStateTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_StateTextView);
+    mFunctionTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_FunctionTextView);
+    mIconPainterPtr = (ZKPainter*)findControlByID(ID_FUNCTION_IconPainter);
+    mFunctionWindowPtr = (ZKWindow*)findControlByID(ID_FUNCTION_FunctionWindow);
+    mbackButtonPtr = (ZKButton*)findControlByID(ID_FUNCTION_backButton);
+    mWarnTextViewPtr = (ZKTextView*)findControlByID(ID_FUNCTION_WarnTextView);
+    mWarnWindowPtr = (ZKWindow*)findControlByID(ID_FUNCTION_WarnWindow);
+    mFunctionPainterPtr = (ZKPainter*)findControlByID(ID_FUNCTION_FunctionPainter);
 	mActivityPtr = this;
 	onUI_init();
-    registerProtocolDataUpdateListener(onProtocolDataUpdate); 
-    rigesterActivityTimer();
+  registerProtocolDataUpdateListener(onProtocolDataUpdate);
+  rigesterActivityTimer();
 }
 
-void warnActivity::onClick(ZKBase *pBase) {
+void functionActivity::onClick(ZKBase *pBase) {
 	//TODO: add widget onClik code 
     int buttonTablen = sizeof(sButtonCallbackTab) / sizeof(S_ButtonCallback);
     for (int i = 0; i < buttonTablen; ++i) {
@@ -162,30 +233,30 @@ void warnActivity::onClick(ZKBase *pBase) {
 	Activity::onClick(pBase);
 }
 
-void warnActivity::onResume() {
+void functionActivity::onResume() {
 	Activity::onResume();
 	EASYUICONTEXT->registerGlobalTouchListener(this);
 	startVideoLoopPlayback();
 	onUI_show();
 }
 
-void warnActivity::onPause() {
+void functionActivity::onPause() {
 	Activity::onPause();
 	EASYUICONTEXT->unregisterGlobalTouchListener(this);
 	stopVideoLoopPlayback();
 	onUI_hide();
 }
 
-void warnActivity::onIntent(const Intent *intentPtr) {
+void functionActivity::onIntent(const Intent *intentPtr) {
 	Activity::onIntent(intentPtr);
 	onUI_intent(intentPtr);
 }
 
-bool warnActivity::onTimer(int id) {
+bool functionActivity::onTimer(int id) {
 	return onUI_Timer(id);
 }
 
-void warnActivity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
+void functionActivity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
 
     int seekBarTablen = sizeof(SZKSeekBarCallbackTab) / sizeof(S_ZKSeekBarCallback);
     for (int i = 0; i < seekBarTablen; ++i) {
@@ -196,7 +267,7 @@ void warnActivity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
     }
 }
 
-int warnActivity::getListItemCount(const ZKListView *pListView) const{
+int functionActivity::getListItemCount(const ZKListView *pListView) const{
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -207,7 +278,7 @@ int warnActivity::getListItemCount(const ZKListView *pListView) const{
     return 0;
 }
 
-void warnActivity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index){
+void functionActivity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index){
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -217,7 +288,7 @@ void warnActivity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListIt
     }
 }
 
-void warnActivity::onItemClick(ZKListView *pListView, int index, int id){
+void functionActivity::onItemClick(ZKListView *pListView, int index, int id){
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -227,7 +298,7 @@ void warnActivity::onItemClick(ZKListView *pListView, int index, int id){
     }
 }
 
-void warnActivity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
+void functionActivity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
     int tablen = sizeof(SSlideWindowItemClickCallbackTab) / sizeof(S_SlideWindowItemClickCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SSlideWindowItemClickCallbackTab[i].id == pSlideWindow->getID()) {
@@ -237,11 +308,11 @@ void warnActivity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
     }
 }
 
-bool warnActivity::onTouchEvent(const MotionEvent &ev) {
-    return onwarnActivityTouchEvent(ev);
+bool functionActivity::onTouchEvent(const MotionEvent &ev) {
+    return onfunctionActivityTouchEvent(ev);
 }
 
-void warnActivity::onTextChanged(ZKTextView *pTextView, const std::string &text) {
+void functionActivity::onTextChanged(ZKTextView *pTextView, const std::string &text) {
     int tablen = sizeof(SEditTextInputCallbackTab) / sizeof(S_EditTextInputCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SEditTextInputCallbackTab[i].id == pTextView->getID()) {
@@ -251,7 +322,7 @@ void warnActivity::onTextChanged(ZKTextView *pTextView, const std::string &text)
     }
 }
 
-void warnActivity::rigesterActivityTimer() {
+void functionActivity::rigesterActivityTimer() {
     int tablen = sizeof(REGISTER_ACTIVITY_TIMER_TAB) / sizeof(S_ACTIVITY_TIMEER);
     for (int i = 0; i < tablen; ++i) {
         S_ACTIVITY_TIMEER temp = REGISTER_ACTIVITY_TIMER_TAB[i];
@@ -260,7 +331,7 @@ void warnActivity::rigesterActivityTimer() {
 }
 
 
-void warnActivity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
+void functionActivity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SVideoViewCallbackTab[i].id == pVideoView->getID()) {
@@ -275,7 +346,7 @@ void warnActivity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
     }
 }
 
-void warnActivity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t callbackTabIndex) {
+void functionActivity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t callbackTabIndex) {
 
 	switch (msg) {
 	case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_STARTED:
@@ -315,7 +386,7 @@ void warnActivity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t ca
 	}
 }
 
-void warnActivity::startVideoLoopPlayback() {
+void functionActivity::startVideoLoopPlayback() {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
     	if (SVideoViewCallbackTab[i].loop) {
@@ -330,7 +401,7 @@ void warnActivity::startVideoLoopPlayback() {
     }
 }
 
-void warnActivity::stopVideoLoopPlayback() {
+void functionActivity::stopVideoLoopPlayback() {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
     	if (SVideoViewCallbackTab[i].loop) {
@@ -346,7 +417,7 @@ void warnActivity::stopVideoLoopPlayback() {
     }
 }
 
-bool warnActivity::parseVideoFileList(const char *pFileListPath, std::vector<string>& mediaFileList) {
+bool functionActivity::parseVideoFileList(const char *pFileListPath, std::vector<string>& mediaFileList) {
 	mediaFileList.clear();
 	if (NULL == pFileListPath || 0 == strlen(pFileListPath)) {
         LOGD("video file list is null!");
@@ -378,7 +449,7 @@ bool warnActivity::parseVideoFileList(const char *pFileListPath, std::vector<str
 	return true;
 }
 
-int warnActivity::removeCharFromString(string& nString, char c) {
+int functionActivity::removeCharFromString(string& nString, char c) {
     string::size_type   pos;
     while(1) {
         pos = nString.find(c);
@@ -391,14 +462,14 @@ int warnActivity::removeCharFromString(string& nString, char c) {
     return (int)nString.size();
 }
 
-void warnActivity::registerUserTimer(int id, int time) {
+void functionActivity::registerUserTimer(int id, int time) {
 	registerTimer(id, time);
 }
 
-void warnActivity::unregisterUserTimer(int id) {
+void functionActivity::unregisterUserTimer(int id) {
 	unregisterTimer(id);
 }
 
-void warnActivity::resetUserTimer(int id, int time) {
+void functionActivity::resetUserTimer(int id, int time) {
 	resetTimer(id, time);
 }

+ 29 - 8
jni/activity/warnActivity.h

@@ -1,8 +1,8 @@
 /***********************************************
 /gen auto by zuitools
 ***********************************************/
-#ifndef __WARNACTIVITY_H__
-#define __WARNACTIVITY_H__
+#ifndef __FUNCTIONACTIVITY_H__
+#define __FUNCTIONACTIVITY_H__
 
 
 #include "app/Activity.h"
@@ -27,12 +27,33 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
-#define ID_WARN_sys_back   100
-#define ID_WARN_WarnTextView    50002
-#define ID_WARN_WarnPainter    52003
+#define ID_FUNCTION_ServerCancelButton    20010
+#define ID_FUNCTION_ServerConfirmButton    20009
+#define ID_FUNCTION_ServerPromptTextView    50009
+#define ID_FUNCTION_ServerTextView    50008
+#define ID_FUNCTION_ServerPortEditText    51003
+#define ID_FUNCTION_ServerIpEditText    51002
+#define ID_FUNCTION_ServerPainter    52006
+#define ID_FUNCTION_ServerWindow    110006
+#define ID_FUNCTION_PwdBackButton    20008
+#define ID_FUNCTION_PwdConfirmButton    20007
+#define ID_FUNCTION_PwdEditText    51001
+#define ID_FUNCTION_PwdPromptTextView    50007
+#define ID_FUNCTION_PwdTextView    50006
+#define ID_FUNCTION_PwdPainter    52005
+#define ID_FUNCTION_PwdWindow    110005
+#define ID_FUNCTION_FunctionButton    20004
+#define ID_FUNCTION_StateTextView    50004
+#define ID_FUNCTION_FunctionTextView    50003
+#define ID_FUNCTION_IconPainter    52003
+#define ID_FUNCTION_FunctionWindow    110003
+#define ID_FUNCTION_backButton    20003
+#define ID_FUNCTION_WarnTextView    50002
+#define ID_FUNCTION_WarnWindow    110002
+#define ID_FUNCTION_FunctionPainter    52001
 /*TAG:Macro宏ID END*/
 
-class warnActivity : public Activity, 
+class functionActivity : public Activity, 
                      public ZKSeekBar::ISeekBarChangeListener, 
                      public ZKListView::IItemClickListener,
                      public ZKListView::AbsListAdapter,
@@ -42,8 +63,8 @@ class warnActivity : public Activity,
                      public ZKVideoView::IVideoPlayerMessageListener
 {
 public:
-    warnActivity();
-    virtual ~warnActivity();
+    functionActivity();
+    virtual ~functionActivity();
 
     /**
      * 注册定时器

+ 46 - 52
jni/activity/mainActivity.cpp

@@ -4,26 +4,24 @@
 #include "mainActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
-static ZKPainter* mCustomerInfoPainterPtr;
+static ZKPainter* mBabyPicLeftPainterPtr;
+static ZKPainter* mBabyPicRightPainterPtr;
+static ZKPainter* mMainPainterPtr;
+static ZKListView* mBabyInfoListViewPtr;
+static ZKTextView* mBabySexTitleTextViewPtr;
+static ZKTextView* mBabyNameTitleTextViewPtr;
+static ZKTextView* mCustomerAgeTitleTextViewPtr;
+static ZKTextView* mCustomerNameAndAgeTextViewPtr;
+static ZKTextView* mCustomerNameTitleTextViewPtr;
+static ZKTextView* mBabyInfoTextViewPtr;
+static ZKTextView* mCustomerInfoTextViewPtr;
+static ZKTextView* mSloganTextViewPtr;
+static ZKPainter* mBabyPainterPtr;
+static ZKPainter* mCustomerPicPainterPtr;
+static ZKTextView* mRoomNameTextViewPtr;
 static ZKTextView* mOutDateTextViewPtr;
 static ZKTextView* mInDateTextViewPtr;
-static ZKPainter* mMsgPainterPtr;
-static ZKTextView* mBabyNameTextView2Ptr;
-static ZKTextView* mBabyBirTextView2Ptr;
-static ZKTextView* mBabySexTextView2Ptr;
-static ZKTextView* mBayNameTextViewPtr;
-static ZKTextView* mBabyBirTextViewPtr;
-static ZKTextView* mBabySexTextViewPtr;
-static ZKTextView* mDescTextViewPtr;
-static ZKTextView* mCustomerNameTextViewPtr;
-static ZKPainter* mMainPainterPtr;
-static ZKTextView* mNurseNameTextViewPtr;
-static ZKPainter* mNursePhotoPainterPtr;
-static ZKButton* mMoreButtonPtr;
-static ZKPainter* mNursePainterPtr;
 static ZKPainter* mCustomerPainterPtr;
-static ZKTextView* mRoomNamePtr;
-static ZKPainter* mPainterInfoPtr;
 static mainActivity* mActivityPtr;
 
 /*register activity*/
@@ -61,7 +59,6 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
-    ID_MAIN_MoreButton, onButtonClick_MoreButton,
 };
 /***************/
 
@@ -87,6 +84,7 @@ typedef struct {
 }S_ListViewFunctionsCallback;
 /*TAG:ListViewFunctionsCallback*/
 static S_ListViewFunctionsCallback SListViewFunctionsCallbackTab[] = {
+    ID_MAIN_BabyInfoListView, getListItemCount_BabyInfoListView, obtainListItemData_BabyInfoListView, onListItemClick_BabyInfoListView,
 };
 
 
@@ -133,26 +131,24 @@ mainActivity::~mainActivity() {
     EASYUICONTEXT->unregisterGlobalTouchListener(this);
     onUI_quit();
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
-    mCustomerInfoPainterPtr = NULL;
+    mBabyPicLeftPainterPtr = NULL;
+    mBabyPicRightPainterPtr = NULL;
+    mMainPainterPtr = NULL;
+    mBabyInfoListViewPtr = NULL;
+    mBabySexTitleTextViewPtr = NULL;
+    mBabyNameTitleTextViewPtr = NULL;
+    mCustomerAgeTitleTextViewPtr = NULL;
+    mCustomerNameAndAgeTextViewPtr = NULL;
+    mCustomerNameTitleTextViewPtr = NULL;
+    mBabyInfoTextViewPtr = NULL;
+    mCustomerInfoTextViewPtr = NULL;
+    mSloganTextViewPtr = NULL;
+    mBabyPainterPtr = NULL;
+    mCustomerPicPainterPtr = NULL;
+    mRoomNameTextViewPtr = NULL;
     mOutDateTextViewPtr = NULL;
     mInDateTextViewPtr = NULL;
-    mMsgPainterPtr = NULL;
-    mBabyNameTextView2Ptr = NULL;
-    mBabyBirTextView2Ptr = NULL;
-    mBabySexTextView2Ptr = NULL;
-    mBayNameTextViewPtr = NULL;
-    mBabyBirTextViewPtr = NULL;
-    mBabySexTextViewPtr = NULL;
-    mDescTextViewPtr = NULL;
-    mCustomerNameTextViewPtr = NULL;
-    mMainPainterPtr = NULL;
-    mNurseNameTextViewPtr = NULL;
-    mNursePhotoPainterPtr = NULL;
-    mMoreButtonPtr = NULL;
-    mNursePainterPtr = NULL;
     mCustomerPainterPtr = NULL;
-    mRoomNamePtr = NULL;
-    mPainterInfoPtr = NULL;
     mActivityPtr = NULL;
 }
 
@@ -163,26 +159,24 @@ const char* mainActivity::getAppName() const{
 //TAG:onCreate
 void mainActivity::onCreate() {
 	Activity::onCreate();
-    mCustomerInfoPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_CustomerInfoPainter);
+    mBabyPicLeftPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_BabyPicLeftPainter);
+    mBabyPicRightPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_BabyPicRightPainter);
+    mMainPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_MainPainter);
+    mBabyInfoListViewPtr = (ZKListView*)findControlByID(ID_MAIN_BabyInfoListView);if(mBabyInfoListViewPtr!= NULL){mBabyInfoListViewPtr->setListAdapter(this);mBabyInfoListViewPtr->setItemClickListener(this);}
+    mBabySexTitleTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_BabySexTitleTextView);
+    mBabyNameTitleTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_BabyNameTitleTextView);
+    mCustomerAgeTitleTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_CustomerAgeTitleTextView);
+    mCustomerNameAndAgeTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_CustomerNameAndAgeTextView);
+    mCustomerNameTitleTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_CustomerNameTitleTextView);
+    mBabyInfoTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_BabyInfoTextView);
+    mCustomerInfoTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_CustomerInfoTextView);
+    mSloganTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_SloganTextView);
+    mBabyPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_BabyPainter);
+    mCustomerPicPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_CustomerPicPainter);
+    mRoomNameTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_RoomNameTextView);
     mOutDateTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_OutDateTextView);
     mInDateTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_InDateTextView);
-    mMsgPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_MsgPainter);
-    mBabyNameTextView2Ptr = (ZKTextView*)findControlByID(ID_MAIN_BabyNameTextView2);
-    mBabyBirTextView2Ptr = (ZKTextView*)findControlByID(ID_MAIN_BabyBirTextView2);
-    mBabySexTextView2Ptr = (ZKTextView*)findControlByID(ID_MAIN_BabySexTextView2);
-    mBayNameTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_BayNameTextView);
-    mBabyBirTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_BabyBirTextView);
-    mBabySexTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_BabySexTextView);
-    mDescTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_DescTextView);
-    mCustomerNameTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_CustomerNameTextView);
-    mMainPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_MainPainter);
-    mNurseNameTextViewPtr = (ZKTextView*)findControlByID(ID_MAIN_NurseNameTextView);
-    mNursePhotoPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_NursePhotoPainter);
-    mMoreButtonPtr = (ZKButton*)findControlByID(ID_MAIN_MoreButton);
-    mNursePainterPtr = (ZKPainter*)findControlByID(ID_MAIN_NursePainter);
     mCustomerPainterPtr = (ZKPainter*)findControlByID(ID_MAIN_CustomerPainter);
-    mRoomNamePtr = (ZKTextView*)findControlByID(ID_MAIN_RoomName);
-    mPainterInfoPtr = (ZKPainter*)findControlByID(ID_MAIN_PainterInfo);
 	mActivityPtr = this;
 	onUI_init();
     registerProtocolDataUpdateListener(onProtocolDataUpdate); 

+ 20 - 20
jni/activity/mainActivity.h

@@ -27,26 +27,26 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
-#define ID_MAIN_CustomerInfoPainter    52005
-#define ID_MAIN_MainPainter    52007
-#define ID_MAIN_OutDateTextView    50012
-#define ID_MAIN_InDateTextView    50011
-#define ID_MAIN_MsgPainter    52006
-#define ID_MAIN_BabyNameTextView2    50010
-#define ID_MAIN_BabyBirTextView2    50009
-#define ID_MAIN_BabySexTextView2    50008
-#define ID_MAIN_BayNameTextView    50007
-#define ID_MAIN_BabyBirTextView    50006
-#define ID_MAIN_BabySexTextView    50005
-#define ID_MAIN_DescTextView    50004
-#define ID_MAIN_CustomerNameTextView    50003
-#define ID_MAIN_NurseNameTextView    50002
-#define ID_MAIN_NursePhotoPainter    52004
-#define ID_MAIN_MoreButton    20001
-#define ID_MAIN_NursePainter    52003
-#define ID_MAIN_CustomerPainter    52002
-#define ID_MAIN_RoomName    50001
-#define ID_MAIN_PainterInfo    52001
+#define ID_MAIN_BabyPicLeftPainter    52005
+#define ID_MAIN_BabyPicRightPainter    52004
+#define ID_MAIN_MainPainter    52006
+#define ID_MAIN_BabySexSubItem    24002
+#define ID_MAIN_BabyNameSubItem    24001
+#define ID_MAIN_BabyInfoListView    80001
+#define ID_MAIN_BabySexTitleTextView    50012
+#define ID_MAIN_BabyNameTitleTextView    50011
+#define ID_MAIN_OutDateTextView    50010
+#define ID_MAIN_InDateTextView    50009
+#define ID_MAIN_CustomerAgeTitleTextView    50007
+#define ID_MAIN_CustomerNameAndAgeTextView    50006
+#define ID_MAIN_CustomerNameTitleTextView    50005
+#define ID_MAIN_BabyInfoTextView    50004
+#define ID_MAIN_CustomerInfoTextView    50003
+#define ID_MAIN_SloganTextView    50002
+#define ID_MAIN_BabyPainter    52002
+#define ID_MAIN_CustomerPainter    52001
+#define ID_MAIN_CustomerPicPainter    52003
+#define ID_MAIN_RoomNameTextView    50001
 /*TAG:Macro宏ID END*/
 
 class mainActivity : public Activity, 

+ 43 - 17
jni/activity/sipTestActivity.cpp

@@ -4,14 +4,22 @@
 #include "sipTestActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
-static ZKTextView* mRecordTestTextViewPtr;
+static ZKButton* msip_backPtr;
 static ZKButton* mRecordTestButtonPtr;
+static ZKCheckBox* mPanelCancelKeysCheckboxPtr;
 static ZKCheckBox* mPanelCallKeysCheckboxPtr;
-static ZKTextView* mPanelCallKeysTextViewPtr;
-static ZKTextView* mInputSipTextViewPtr;
-static ZKButton* msys_backPtr;
+static ZKCheckBox* mHandleKeysCheckboxPtr;
+static ZKTextView* mDebugPromptTextViewPtr;
+static ZKTextView* mDebugTextViewPtr;
 static ZKButton* mCallButtonPtr;
 static ZKEditText* mEditTextDestURIPtr;
+static ZKTextView* mInputSipTextViewPtr;
+static ZKTextView* mSipInputTextViewPtr;
+static ZKTextView* mSipTextViewPtr;
+static ZKPainter* mSipPicPainterPtr;
+static ZKPainter* mDebugPainterPtr;
+static ZKPainter* mSipPainterPtr;
+static ZKTextView* mTitleTextViewPtr;
 static sipTestActivity* mActivityPtr;
 
 /*register activity*/
@@ -49,8 +57,8 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
+    ID_SIPTEST_sip_back, onButtonClick_sip_back,
     ID_SIPTEST_RecordTestButton, onButtonClick_RecordTestButton,
-    ID_SIPTEST_sys_back, onButtonClick_sys_back,
     ID_SIPTEST_CallButton, onButtonClick_CallButton,
 };
 /***************/
@@ -119,7 +127,9 @@ typedef struct {
 }S_CheckboxCallback;
 /*TAG:CheckboxCallbackTab*/
 static S_CheckboxCallback SCheckboxCallbackTab[] = {
+    ID_SIPTEST_PanelCancelKeysCheckbox, onCheckedChanged_PanelCancelKeysCheckbox,
     ID_SIPTEST_PanelCallKeysCheckbox, onCheckedChanged_PanelCallKeysCheckbox,
+    ID_SIPTEST_HandleKeysCheckbox, onCheckedChanged_HandleKeysCheckbox,
 };
 
 sipTestActivity::sipTestActivity() {
@@ -132,17 +142,25 @@ sipTestActivity::~sipTestActivity() {
   //todo add init file here
   // 退出应用时需要反注册
     EASYUICONTEXT->unregisterGlobalTouchListener(this);
-    onUI_quit();
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
-    mRecordTestTextViewPtr = NULL;
+    onUI_quit();
+    mActivityPtr = NULL;
+    msip_backPtr = NULL;
     mRecordTestButtonPtr = NULL;
+    mPanelCancelKeysCheckboxPtr = NULL;
     mPanelCallKeysCheckboxPtr = NULL;
-    mPanelCallKeysTextViewPtr = NULL;
-    mInputSipTextViewPtr = NULL;
-    msys_backPtr = NULL;
+    mHandleKeysCheckboxPtr = NULL;
+    mDebugPromptTextViewPtr = NULL;
+    mDebugTextViewPtr = NULL;
     mCallButtonPtr = NULL;
     mEditTextDestURIPtr = NULL;
-    mActivityPtr = NULL;
+    mInputSipTextViewPtr = NULL;
+    mSipInputTextViewPtr = NULL;
+    mSipTextViewPtr = NULL;
+    mSipPicPainterPtr = NULL;
+    mDebugPainterPtr = NULL;
+    mSipPainterPtr = NULL;
+    mTitleTextViewPtr = NULL;
 }
 
 const char* sipTestActivity::getAppName() const{
@@ -152,18 +170,26 @@ const char* sipTestActivity::getAppName() const{
 //TAG:onCreate
 void sipTestActivity::onCreate() {
 	Activity::onCreate();
-    mRecordTestTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_RecordTestTextView);
+    msip_backPtr = (ZKButton*)findControlByID(ID_SIPTEST_sip_back);
     mRecordTestButtonPtr = (ZKButton*)findControlByID(ID_SIPTEST_RecordTestButton);
+    mPanelCancelKeysCheckboxPtr = (ZKCheckBox*)findControlByID(ID_SIPTEST_PanelCancelKeysCheckbox);if(mPanelCancelKeysCheckboxPtr!= NULL){mPanelCancelKeysCheckboxPtr->setCheckedChangeListener(this);}
     mPanelCallKeysCheckboxPtr = (ZKCheckBox*)findControlByID(ID_SIPTEST_PanelCallKeysCheckbox);if(mPanelCallKeysCheckboxPtr!= NULL){mPanelCallKeysCheckboxPtr->setCheckedChangeListener(this);}
-    mPanelCallKeysTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_PanelCallKeysTextView);
-    mInputSipTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_InputSipTextView);
-    msys_backPtr = (ZKButton*)findControlByID(ID_SIPTEST_sys_back);
+    mHandleKeysCheckboxPtr = (ZKCheckBox*)findControlByID(ID_SIPTEST_HandleKeysCheckbox);if(mHandleKeysCheckboxPtr!= NULL){mHandleKeysCheckboxPtr->setCheckedChangeListener(this);}
+    mDebugPromptTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_DebugPromptTextView);
+    mDebugTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_DebugTextView);
     mCallButtonPtr = (ZKButton*)findControlByID(ID_SIPTEST_CallButton);
     mEditTextDestURIPtr = (ZKEditText*)findControlByID(ID_SIPTEST_EditTextDestURI);if(mEditTextDestURIPtr!= NULL){mEditTextDestURIPtr->setTextChangeListener(this);}
+    mInputSipTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_InputSipTextView);
+    mSipInputTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_SipInputTextView);
+    mSipTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_SipTextView);
+    mSipPicPainterPtr = (ZKPainter*)findControlByID(ID_SIPTEST_SipPicPainter);
+    mDebugPainterPtr = (ZKPainter*)findControlByID(ID_SIPTEST_DebugPainter);
+    mSipPainterPtr = (ZKPainter*)findControlByID(ID_SIPTEST_SipPainter);
+    mTitleTextViewPtr = (ZKTextView*)findControlByID(ID_SIPTEST_TitleTextView);
 	mActivityPtr = this;
 	onUI_init();
-    registerProtocolDataUpdateListener(onProtocolDataUpdate); 
-    rigesterActivityTimer();
+  registerProtocolDataUpdateListener(onProtocolDataUpdate);
+  rigesterActivityTimer();
 }
 
 void sipTestActivity::onClick(ZKBase *pBase) {

+ 13 - 4
jni/activity/sipTestActivity.h

@@ -13,6 +13,7 @@
 
 #include "utils/Log.h"
 #include "control/ZKDigitalClock.h"
+#include "control/ZKPainter.h"
 #include "control/ZKButton.h"
 #include "control/ZKCircleBar.h"
 #include "control/ZKDiagram.h"
@@ -27,14 +28,22 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
-#define ID_SIPTEST_RecordTestTextView    50005
+#define ID_SIPTEST_sip_back    20003
 #define ID_SIPTEST_RecordTestButton    20002
+#define ID_SIPTEST_PanelCancelKeysCheckbox    21003
 #define ID_SIPTEST_PanelCallKeysCheckbox    21002
-#define ID_SIPTEST_PanelCallKeysTextView    50003
-#define ID_SIPTEST_InputSipTextView    50001
-#define ID_SIPTEST_sys_back   100
+#define ID_SIPTEST_HandleKeysCheckbox    21001
+#define ID_SIPTEST_DebugPromptTextView    50010
+#define ID_SIPTEST_DebugTextView    50009
 #define ID_SIPTEST_CallButton    20001
 #define ID_SIPTEST_EditTextDestURI    51002
+#define ID_SIPTEST_InputSipTextView    50001
+#define ID_SIPTEST_SipInputTextView    50008
+#define ID_SIPTEST_SipTextView    50007
+#define ID_SIPTEST_SipPicPainter    52003
+#define ID_SIPTEST_DebugPainter    52002
+#define ID_SIPTEST_SipPainter    52001
+#define ID_SIPTEST_TitleTextView    50006
 /*TAG:Macro宏ID END*/
 
 class sipTestActivity : public Activity, 

+ 7 - 3
jni/activity/statusbar.cpp

@@ -2,9 +2,10 @@
 #include "entry/EasyUIContext.h"
 
 /*TAG:GlobalVariable全局变量*/
+static ZKButton* mPartNameButtonPtr;
+static ZKPainter* mStatusbarPainterPtr;
 static ZKTextView* mTextViewTCPPtr;
 static ZKTextView* mTextViewRegPtr;
-static ZKTextView* mPartNamePtr;
 static ZKPainter* mPainter1Ptr;
 static ZKTextView* mDateViewPtr;
 static statusbar* mstatusbarPtr;
@@ -44,6 +45,7 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
+    ID_STATUSBAR_PartNameButton, onButtonClick_PartNameButton,
 };
 /***************/
 
@@ -111,9 +113,10 @@ statusbar::~statusbar() {
     EASYUICONTEXT->unregisterGlobalTouchListener(this);
     onUI_quit();
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
+    mPartNameButtonPtr = NULL;
+    mStatusbarPainterPtr = NULL;
     mTextViewTCPPtr = NULL;
     mTextViewRegPtr = NULL;
-    mPartNamePtr = NULL;
     mPainter1Ptr = NULL;
     mDateViewPtr = NULL;
     mstatusbarPtr = NULL;
@@ -126,9 +129,10 @@ const char* statusbar::getAppName() const{
 //TAG:onCreate
 void statusbar::onCreate() {
 	BaseApp::onCreate();
+    mPartNameButtonPtr = (ZKButton*)findControlByID(ID_STATUSBAR_PartNameButton);
+    mStatusbarPainterPtr = (ZKPainter*)findControlByID(ID_STATUSBAR_StatusbarPainter);
     mTextViewTCPPtr = (ZKTextView*)findControlByID(ID_STATUSBAR_TextViewTCP);
     mTextViewRegPtr = (ZKTextView*)findControlByID(ID_STATUSBAR_TextViewReg);
-    mPartNamePtr = (ZKTextView*)findControlByID(ID_STATUSBAR_PartName);
     mPainter1Ptr = (ZKPainter*)findControlByID(ID_STATUSBAR_Painter1);
     mDateViewPtr = (ZKTextView*)findControlByID(ID_STATUSBAR_DateView);
 	mstatusbarPtr = this;

+ 2 - 1
jni/activity/statusbar.h

@@ -22,9 +22,10 @@
 #include "control/ZKVideoView.h"
 #include "window/ZKSlideWindow.h"
 /*TAG:Macro宏ID*/
+#define ID_STATUSBAR_PartNameButton    20001
+#define ID_STATUSBAR_StatusbarPainter    52002
 #define ID_STATUSBAR_TextViewTCP    50004
 #define ID_STATUSBAR_TextViewReg    50002
-#define ID_STATUSBAR_PartName    50003
 #define ID_STATUSBAR_Painter1    52001
 #define ID_STATUSBAR_DateView    50001
 /*TAG:Macro宏ID END*/

+ 123 - 136
jni/activity/DeviceUpdateActivity.cpp

@@ -1,54 +1,50 @@
 /***********************************************
 /gen auto by zuitools
 ***********************************************/
-#include "DeviceUpdateActivity.h"
+#include "updateActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
-static ZKTextView* mTextPwdInfoPtr;
-static ZKButton* mBtnPwdConfirmPtr;
-static ZKTextView* mPasswordTextViewPtr;
-static ZKEditText* mEditTextPwdPtr;
-static ZKWindow* mWindowPwdPtr;
-static ZKButton* mFindBackButtonPtr;
+static ZKTextView* mProgressMessageTextViewPtr;
+static ZKTextView* mProgressLoadingTextViewPtr;
+static ZKPainter* mProgressPainterPtr;
+static ZKWindow* mProgressWindowPtr;
 static ZKButton* mBackButtonPtr;
+static ZKButton* mInitUpdateButtonPtr;
 static ZKListView* mDeviceTypeListViewPtr;
-static ZKWindow* mWindowInitPtr;
-static ZKButton* mButtonInitPtr;
-static ZKButton* msys_backPtr;
-static ZKWindow* mWindow1Ptr;
+static ZKWindow* mInitWindowPtr;
+static ZKPainter* mDialogPainterPtr;
+static ZKButton* mDialogButtonPtr;
+static ZKTextView* mDialogTextViewPtr;
+static ZKWindow* mDialogWindowPtr;
+static ZKButton* mFindBackButtonPtr;
+static ZKButton* mInstantlyButtonPtr;
 static ZKTextView* mVersionNoNewPtr;
-static ZKTextView* mTextView8Ptr;
+static ZKTextView* mFindNewVersionNoTextViewPtr;
 static ZKTextView* mVersionNewPtr;
+static ZKTextView* mFindNewTextViewPtr;
+static ZKPainter* mFindNewPainterPtr;
+static ZKWindow* mFindWindowPtr;
+static ZKButton* mInitButtonPtr;
+static ZKButton* mUpdateButtonPtr;
 static ZKTextView* mVersionNoPtr;
-static ZKTextView* mTextView7Ptr;
+static ZKTextView* mVersionNoTextViewPtr;
 static ZKTextView* mVersionPtr;
-static ZKButton* mButtonDialog1Ptr;
-static ZKTextView* mTextViewDialog1Ptr;
-static ZKTextView* mTextView6Ptr;
-static ZKWindow* mWindowDialog1Ptr;
-static ZKTextView* mTextViewProgressMessagePtr;
-static ZKTextView* mTextViewProgressLoadingPtr;
-static ZKTextView* mTextView4Ptr;
-static ZKWindow* mWindowProgressPtr;
-static ZKButton* mButtonInstantlyPtr;
-static ZKTextView* mTextView3Ptr;
-static ZKTextView* mTextView5Ptr;
-static ZKWindow* mWindowFindPtr;
-static ZKTextView* mTextViewTitlePtr;
-static ZKTextView* mTextView1Ptr;
-static ZKButton* mButtonUpdatePtr;
-static ZKTextView* mTextView2Ptr;
-static DeviceUpdateActivity* mActivityPtr;
+static ZKTextView* mVersionTextViewPtr;
+static ZKPainter* mDeviceUpdatePicPainterPtr;
+static ZKPainter* mDeviceIpdatePainterPtr;
+static ZKTextView* mTitleTextViewPtr;
+static ZKButton* msys_backPtr;
+static updateActivity* mActivityPtr;
 
 /*register activity*/
-REGISTER_ACTIVITY(DeviceUpdateActivity);
+REGISTER_ACTIVITY(updateActivity);
 
 typedef struct {
 	int id; // 定时器ID , 不能重复
 	int time; // 定时器  时间间隔  单位 毫秒
 }S_ACTIVITY_TIMEER;
 
-#include "logic/DeviceUpdateLogic.cc"
+#include "logic/updateLogic.cc"
 
 /***********/
 typedef struct {
@@ -75,14 +71,14 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
-    ID_DEVICEUPDATE_BtnPwdConfirm, onButtonClick_BtnPwdConfirm,
-    ID_DEVICEUPDATE_FindBackButton, onButtonClick_FindBackButton,
-    ID_DEVICEUPDATE_BackButton, onButtonClick_BackButton,
-    ID_DEVICEUPDATE_ButtonInit, onButtonClick_ButtonInit,
-    ID_DEVICEUPDATE_sys_back, onButtonClick_sys_back,
-    ID_DEVICEUPDATE_ButtonDialog1, onButtonClick_ButtonDialog1,
-    ID_DEVICEUPDATE_ButtonInstantly, onButtonClick_ButtonInstantly,
-    ID_DEVICEUPDATE_ButtonUpdate, onButtonClick_ButtonUpdate,
+    ID_UPDATE_BackButton, onButtonClick_BackButton,
+    ID_UPDATE_InitUpdateButton, onButtonClick_InitUpdateButton,
+    ID_UPDATE_DialogButton, onButtonClick_DialogButton,
+    ID_UPDATE_FindBackButton, onButtonClick_FindBackButton,
+    ID_UPDATE_InstantlyButton, onButtonClick_InstantlyButton,
+    ID_UPDATE_InitButton, onButtonClick_InitButton,
+    ID_UPDATE_UpdateButton, onButtonClick_UpdateButton,
+    ID_UPDATE_sys_back, onButtonClick_sys_back,
 };
 /***************/
 
@@ -108,7 +104,7 @@ typedef struct {
 }S_ListViewFunctionsCallback;
 /*TAG:ListViewFunctionsCallback*/
 static S_ListViewFunctionsCallback SListViewFunctionsCallbackTab[] = {
-    ID_DEVICEUPDATE_DeviceTypeListView, getListItemCount_DeviceTypeListView, obtainListItemData_DeviceTypeListView, onListItemClick_DeviceTypeListView,
+    ID_UPDATE_DeviceTypeListView, getListItemCount_DeviceTypeListView, obtainListItemData_DeviceTypeListView, onListItemClick_DeviceTypeListView,
 };
 
 
@@ -129,7 +125,6 @@ typedef struct {
 }S_EditTextInputCallback;
 /*TAG:EditTextInputCallback*/
 static S_EditTextInputCallback SEditTextInputCallbackTab[] = {
-    ID_DEVICEUPDATE_EditTextPwd, onEditTextChanged_EditTextPwd,
 };
 
 typedef void (*VideoViewCallback)(ZKVideoView *pVideoView, int msg);
@@ -144,103 +139,95 @@ static S_VideoViewCallback SVideoViewCallbackTab[] = {
 };
 
 
-DeviceUpdateActivity::DeviceUpdateActivity() {
+updateActivity::updateActivity() {
 	//todo add init code here
 	mVideoLoopIndex = -1;
 	mVideoLoopErrorCount = 0;
 }
 
-DeviceUpdateActivity::~DeviceUpdateActivity() {
+updateActivity::~updateActivity() {
   //todo add init file here
   // 退出应用时需要反注册
     EASYUICONTEXT->unregisterGlobalTouchListener(this);
-    onUI_quit();
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
-    mTextPwdInfoPtr = NULL;
-    mBtnPwdConfirmPtr = NULL;
-    mPasswordTextViewPtr = NULL;
-    mEditTextPwdPtr = NULL;
-    mWindowPwdPtr = NULL;
-    mFindBackButtonPtr = NULL;
+    onUI_quit();
+    mActivityPtr = NULL;
+    mProgressMessageTextViewPtr = NULL;
+    mProgressLoadingTextViewPtr = NULL;
+    mProgressPainterPtr = NULL;
+    mProgressWindowPtr = NULL;
     mBackButtonPtr = NULL;
+    mInitUpdateButtonPtr = NULL;
     mDeviceTypeListViewPtr = NULL;
-    mWindowInitPtr = NULL;
-    mButtonInitPtr = NULL;
-    msys_backPtr = NULL;
-    mWindow1Ptr = NULL;
+    mInitWindowPtr = NULL;
+    mDialogPainterPtr = NULL;
+    mDialogButtonPtr = NULL;
+    mDialogTextViewPtr = NULL;
+    mDialogWindowPtr = NULL;
+    mFindBackButtonPtr = NULL;
+    mInstantlyButtonPtr = NULL;
     mVersionNoNewPtr = NULL;
-    mTextView8Ptr = NULL;
+    mFindNewVersionNoTextViewPtr = NULL;
     mVersionNewPtr = NULL;
+    mFindNewTextViewPtr = NULL;
+    mFindNewPainterPtr = NULL;
+    mFindWindowPtr = NULL;
+    mInitButtonPtr = NULL;
+    mUpdateButtonPtr = NULL;
     mVersionNoPtr = NULL;
-    mTextView7Ptr = NULL;
+    mVersionNoTextViewPtr = NULL;
     mVersionPtr = NULL;
-    mButtonDialog1Ptr = NULL;
-    mTextViewDialog1Ptr = NULL;
-    mTextView6Ptr = NULL;
-    mWindowDialog1Ptr = NULL;
-    mTextViewProgressMessagePtr = NULL;
-    mTextViewProgressLoadingPtr = NULL;
-    mTextView4Ptr = NULL;
-    mWindowProgressPtr = NULL;
-    mButtonInstantlyPtr = NULL;
-    mTextView3Ptr = NULL;
-    mTextView5Ptr = NULL;
-    mWindowFindPtr = NULL;
-    mTextViewTitlePtr = NULL;
-    mTextView1Ptr = NULL;
-    mButtonUpdatePtr = NULL;
-    mTextView2Ptr = NULL;
-    mActivityPtr = NULL;
+    mVersionTextViewPtr = NULL;
+    mDeviceUpdatePicPainterPtr = NULL;
+    mDeviceIpdatePainterPtr = NULL;
+    mTitleTextViewPtr = NULL;
+    msys_backPtr = NULL;
 }
 
-const char* DeviceUpdateActivity::getAppName() const{
-	return "DeviceUpdate.ftu";
+const char* updateActivity::getAppName() const{
+	return "update.ftu";
 }
 
 //TAG:onCreate
-void DeviceUpdateActivity::onCreate() {
+void updateActivity::onCreate() {
 	Activity::onCreate();
-    mTextPwdInfoPtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextPwdInfo);
-    mBtnPwdConfirmPtr = (ZKButton*)findControlByID(ID_DEVICEUPDATE_BtnPwdConfirm);
-    mPasswordTextViewPtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_PasswordTextView);
-    mEditTextPwdPtr = (ZKEditText*)findControlByID(ID_DEVICEUPDATE_EditTextPwd);if(mEditTextPwdPtr!= NULL){mEditTextPwdPtr->setTextChangeListener(this);}
-    mWindowPwdPtr = (ZKWindow*)findControlByID(ID_DEVICEUPDATE_WindowPwd);
-    mFindBackButtonPtr = (ZKButton*)findControlByID(ID_DEVICEUPDATE_FindBackButton);
-    mBackButtonPtr = (ZKButton*)findControlByID(ID_DEVICEUPDATE_BackButton);
-    mDeviceTypeListViewPtr = (ZKListView*)findControlByID(ID_DEVICEUPDATE_DeviceTypeListView);if(mDeviceTypeListViewPtr!= NULL){mDeviceTypeListViewPtr->setListAdapter(this);mDeviceTypeListViewPtr->setItemClickListener(this);}
-    mWindowInitPtr = (ZKWindow*)findControlByID(ID_DEVICEUPDATE_WindowInit);
-    mButtonInitPtr = (ZKButton*)findControlByID(ID_DEVICEUPDATE_ButtonInit);
-    msys_backPtr = (ZKButton*)findControlByID(ID_DEVICEUPDATE_sys_back);
-    mWindow1Ptr = (ZKWindow*)findControlByID(ID_DEVICEUPDATE_Window1);
-    mVersionNoNewPtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_VersionNoNew);
-    mTextView8Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextView8);
-    mVersionNewPtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_VersionNew);
-    mVersionNoPtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_VersionNo);
-    mTextView7Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextView7);
-    mVersionPtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_Version);
-    mButtonDialog1Ptr = (ZKButton*)findControlByID(ID_DEVICEUPDATE_ButtonDialog1);
-    mTextViewDialog1Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextViewDialog1);
-    mTextView6Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextView6);
-    mWindowDialog1Ptr = (ZKWindow*)findControlByID(ID_DEVICEUPDATE_WindowDialog1);
-    mTextViewProgressMessagePtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextViewProgressMessage);
-    mTextViewProgressLoadingPtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextViewProgressLoading);
-    mTextView4Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextView4);
-    mWindowProgressPtr = (ZKWindow*)findControlByID(ID_DEVICEUPDATE_WindowProgress);
-    mButtonInstantlyPtr = (ZKButton*)findControlByID(ID_DEVICEUPDATE_ButtonInstantly);
-    mTextView3Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextView3);
-    mTextView5Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextView5);
-    mWindowFindPtr = (ZKWindow*)findControlByID(ID_DEVICEUPDATE_WindowFind);
-    mTextViewTitlePtr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextViewTitle);
-    mTextView1Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextView1);
-    mButtonUpdatePtr = (ZKButton*)findControlByID(ID_DEVICEUPDATE_ButtonUpdate);
-    mTextView2Ptr = (ZKTextView*)findControlByID(ID_DEVICEUPDATE_TextView2);
+    mProgressMessageTextViewPtr = (ZKTextView*)findControlByID(ID_UPDATE_ProgressMessageTextView);
+    mProgressLoadingTextViewPtr = (ZKTextView*)findControlByID(ID_UPDATE_ProgressLoadingTextView);
+    mProgressPainterPtr = (ZKPainter*)findControlByID(ID_UPDATE_ProgressPainter);
+    mProgressWindowPtr = (ZKWindow*)findControlByID(ID_UPDATE_ProgressWindow);
+    mBackButtonPtr = (ZKButton*)findControlByID(ID_UPDATE_BackButton);
+    mInitUpdateButtonPtr = (ZKButton*)findControlByID(ID_UPDATE_InitUpdateButton);
+    mDeviceTypeListViewPtr = (ZKListView*)findControlByID(ID_UPDATE_DeviceTypeListView);if(mDeviceTypeListViewPtr!= NULL){mDeviceTypeListViewPtr->setListAdapter(this);mDeviceTypeListViewPtr->setItemClickListener(this);}
+    mInitWindowPtr = (ZKWindow*)findControlByID(ID_UPDATE_InitWindow);
+    mDialogPainterPtr = (ZKPainter*)findControlByID(ID_UPDATE_DialogPainter);
+    mDialogButtonPtr = (ZKButton*)findControlByID(ID_UPDATE_DialogButton);
+    mDialogTextViewPtr = (ZKTextView*)findControlByID(ID_UPDATE_DialogTextView);
+    mDialogWindowPtr = (ZKWindow*)findControlByID(ID_UPDATE_DialogWindow);
+    mFindBackButtonPtr = (ZKButton*)findControlByID(ID_UPDATE_FindBackButton);
+    mInstantlyButtonPtr = (ZKButton*)findControlByID(ID_UPDATE_InstantlyButton);
+    mVersionNoNewPtr = (ZKTextView*)findControlByID(ID_UPDATE_VersionNoNew);
+    mFindNewVersionNoTextViewPtr = (ZKTextView*)findControlByID(ID_UPDATE_FindNewVersionNoTextView);
+    mVersionNewPtr = (ZKTextView*)findControlByID(ID_UPDATE_VersionNew);
+    mFindNewTextViewPtr = (ZKTextView*)findControlByID(ID_UPDATE_FindNewTextView);
+    mFindNewPainterPtr = (ZKPainter*)findControlByID(ID_UPDATE_FindNewPainter);
+    mFindWindowPtr = (ZKWindow*)findControlByID(ID_UPDATE_FindWindow);
+    mInitButtonPtr = (ZKButton*)findControlByID(ID_UPDATE_InitButton);
+    mUpdateButtonPtr = (ZKButton*)findControlByID(ID_UPDATE_UpdateButton);
+    mVersionNoPtr = (ZKTextView*)findControlByID(ID_UPDATE_VersionNo);
+    mVersionNoTextViewPtr = (ZKTextView*)findControlByID(ID_UPDATE_VersionNoTextView);
+    mVersionPtr = (ZKTextView*)findControlByID(ID_UPDATE_Version);
+    mVersionTextViewPtr = (ZKTextView*)findControlByID(ID_UPDATE_VersionTextView);
+    mDeviceUpdatePicPainterPtr = (ZKPainter*)findControlByID(ID_UPDATE_DeviceUpdatePicPainter);
+    mDeviceIpdatePainterPtr = (ZKPainter*)findControlByID(ID_UPDATE_DeviceIpdatePainter);
+    mTitleTextViewPtr = (ZKTextView*)findControlByID(ID_UPDATE_TitleTextView);
+    msys_backPtr = (ZKButton*)findControlByID(ID_UPDATE_sys_back);
 	mActivityPtr = this;
 	onUI_init();
-    registerProtocolDataUpdateListener(onProtocolDataUpdate); 
-    rigesterActivityTimer();
+  registerProtocolDataUpdateListener(onProtocolDataUpdate);
+  rigesterActivityTimer();
 }
 
-void DeviceUpdateActivity::onClick(ZKBase *pBase) {
+void updateActivity::onClick(ZKBase *pBase) {
 	//TODO: add widget onClik code 
     int buttonTablen = sizeof(sButtonCallbackTab) / sizeof(S_ButtonCallback);
     for (int i = 0; i < buttonTablen; ++i) {
@@ -264,30 +251,30 @@ void DeviceUpdateActivity::onClick(ZKBase *pBase) {
 	Activity::onClick(pBase);
 }
 
-void DeviceUpdateActivity::onResume() {
+void updateActivity::onResume() {
 	Activity::onResume();
 	EASYUICONTEXT->registerGlobalTouchListener(this);
 	startVideoLoopPlayback();
 	onUI_show();
 }
 
-void DeviceUpdateActivity::onPause() {
+void updateActivity::onPause() {
 	Activity::onPause();
 	EASYUICONTEXT->unregisterGlobalTouchListener(this);
 	stopVideoLoopPlayback();
 	onUI_hide();
 }
 
-void DeviceUpdateActivity::onIntent(const Intent *intentPtr) {
+void updateActivity::onIntent(const Intent *intentPtr) {
 	Activity::onIntent(intentPtr);
 	onUI_intent(intentPtr);
 }
 
-bool DeviceUpdateActivity::onTimer(int id) {
+bool updateActivity::onTimer(int id) {
 	return onUI_Timer(id);
 }
 
-void DeviceUpdateActivity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
+void updateActivity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
 
     int seekBarTablen = sizeof(SZKSeekBarCallbackTab) / sizeof(S_ZKSeekBarCallback);
     for (int i = 0; i < seekBarTablen; ++i) {
@@ -298,7 +285,7 @@ void DeviceUpdateActivity::onProgressChanged(ZKSeekBar *pSeekBar, int progress){
     }
 }
 
-int DeviceUpdateActivity::getListItemCount(const ZKListView *pListView) const{
+int updateActivity::getListItemCount(const ZKListView *pListView) const{
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -309,7 +296,7 @@ int DeviceUpdateActivity::getListItemCount(const ZKListView *pListView) const{
     return 0;
 }
 
-void DeviceUpdateActivity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index){
+void updateActivity::obtainListItemData(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index){
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -319,7 +306,7 @@ void DeviceUpdateActivity::obtainListItemData(ZKListView *pListView,ZKListView::
     }
 }
 
-void DeviceUpdateActivity::onItemClick(ZKListView *pListView, int index, int id){
+void updateActivity::onItemClick(ZKListView *pListView, int index, int id){
     int tablen = sizeof(SListViewFunctionsCallbackTab) / sizeof(S_ListViewFunctionsCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SListViewFunctionsCallbackTab[i].id == pListView->getID()) {
@@ -329,7 +316,7 @@ void DeviceUpdateActivity::onItemClick(ZKListView *pListView, int index, int id)
     }
 }
 
-void DeviceUpdateActivity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
+void updateActivity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int index) {
     int tablen = sizeof(SSlideWindowItemClickCallbackTab) / sizeof(S_SlideWindowItemClickCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SSlideWindowItemClickCallbackTab[i].id == pSlideWindow->getID()) {
@@ -339,11 +326,11 @@ void DeviceUpdateActivity::onSlideItemClick(ZKSlideWindow *pSlideWindow, int ind
     }
 }
 
-bool DeviceUpdateActivity::onTouchEvent(const MotionEvent &ev) {
-    return onDeviceUpdateActivityTouchEvent(ev);
+bool updateActivity::onTouchEvent(const MotionEvent &ev) {
+    return onupdateActivityTouchEvent(ev);
 }
 
-void DeviceUpdateActivity::onTextChanged(ZKTextView *pTextView, const std::string &text) {
+void updateActivity::onTextChanged(ZKTextView *pTextView, const std::string &text) {
     int tablen = sizeof(SEditTextInputCallbackTab) / sizeof(S_EditTextInputCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SEditTextInputCallbackTab[i].id == pTextView->getID()) {
@@ -353,7 +340,7 @@ void DeviceUpdateActivity::onTextChanged(ZKTextView *pTextView, const std::strin
     }
 }
 
-void DeviceUpdateActivity::rigesterActivityTimer() {
+void updateActivity::rigesterActivityTimer() {
     int tablen = sizeof(REGISTER_ACTIVITY_TIMER_TAB) / sizeof(S_ACTIVITY_TIMEER);
     for (int i = 0; i < tablen; ++i) {
         S_ACTIVITY_TIMEER temp = REGISTER_ACTIVITY_TIMER_TAB[i];
@@ -362,7 +349,7 @@ void DeviceUpdateActivity::rigesterActivityTimer() {
 }
 
 
-void DeviceUpdateActivity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
+void updateActivity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg) {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
         if (SVideoViewCallbackTab[i].id == pVideoView->getID()) {
@@ -377,7 +364,7 @@ void DeviceUpdateActivity::onVideoPlayerMessage(ZKVideoView *pVideoView, int msg
     }
 }
 
-void DeviceUpdateActivity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t callbackTabIndex) {
+void updateActivity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, size_t callbackTabIndex) {
 
 	switch (msg) {
 	case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_STARTED:
@@ -417,7 +404,7 @@ void DeviceUpdateActivity::videoLoopPlayback(ZKVideoView *pVideoView, int msg, s
 	}
 }
 
-void DeviceUpdateActivity::startVideoLoopPlayback() {
+void updateActivity::startVideoLoopPlayback() {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
     	if (SVideoViewCallbackTab[i].loop) {
@@ -432,7 +419,7 @@ void DeviceUpdateActivity::startVideoLoopPlayback() {
     }
 }
 
-void DeviceUpdateActivity::stopVideoLoopPlayback() {
+void updateActivity::stopVideoLoopPlayback() {
     int tablen = sizeof(SVideoViewCallbackTab) / sizeof(S_VideoViewCallback);
     for (int i = 0; i < tablen; ++i) {
     	if (SVideoViewCallbackTab[i].loop) {
@@ -448,7 +435,7 @@ void DeviceUpdateActivity::stopVideoLoopPlayback() {
     }
 }
 
-bool DeviceUpdateActivity::parseVideoFileList(const char *pFileListPath, std::vector<string>& mediaFileList) {
+bool updateActivity::parseVideoFileList(const char *pFileListPath, std::vector<string>& mediaFileList) {
 	mediaFileList.clear();
 	if (NULL == pFileListPath || 0 == strlen(pFileListPath)) {
         LOGD("video file list is null!");
@@ -480,7 +467,7 @@ bool DeviceUpdateActivity::parseVideoFileList(const char *pFileListPath, std::ve
 	return true;
 }
 
-int DeviceUpdateActivity::removeCharFromString(string& nString, char c) {
+int updateActivity::removeCharFromString(string& nString, char c) {
     string::size_type   pos;
     while(1) {
         pos = nString.find(c);
@@ -493,14 +480,14 @@ int DeviceUpdateActivity::removeCharFromString(string& nString, char c) {
     return (int)nString.size();
 }
 
-void DeviceUpdateActivity::registerUserTimer(int id, int time) {
+void updateActivity::registerUserTimer(int id, int time) {
 	registerTimer(id, time);
 }
 
-void DeviceUpdateActivity::unregisterUserTimer(int id) {
+void updateActivity::unregisterUserTimer(int id) {
 	unregisterTimer(id);
 }
 
-void DeviceUpdateActivity::resetUserTimer(int id, int time) {
+void updateActivity::resetUserTimer(int id, int time) {
 	resetTimer(id, time);
 }

+ 35 - 48
jni/activity/ui3Activity.h

@@ -1,8 +1,8 @@
 /***********************************************
 /gen auto by zuitools
 ***********************************************/
-#ifndef __UI3ACTIVITY_H__
-#define __UI3ACTIVITY_H__
+#ifndef __UPDATEACTIVITY_H__
+#define __UPDATEACTIVITY_H__
 
 
 #include "app/Activity.h"
@@ -27,52 +27,39 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
-#define ID_UI3_TestErrorTextView    50026
-#define ID_UI3_TestConfirmButton    20008
-#define ID_UI3_TestPasswordTextView    50025
-#define ID_UI3_TestPasswordEditText    51003
-#define ID_UI3_TestPasswordWindow    110003
-#define ID_UI3_TestButton    20007
-#define ID_UI3_Ui3Painter    52001
-#define ID_UI3_sys_back   100
-#define ID_UI3_VoiceDomain    50012
-#define ID_UI3_BtnSoftVer    20006
-#define ID_UI3_BtnNetSetting    20005
-#define ID_UI3_ServerIP    50024
-#define ID_UI3_TextView7    50023
-#define ID_UI3_TextView10    50021
-#define ID_UI3_DeviceCode    50020
-#define ID_UI3_TextPwdInfo    50022
-#define ID_UI3_BtnRestart    20004
-#define ID_UI3_TextView12    50019
-#define ID_UI3_Gateway    50018
-#define ID_UI3_TextView8    50017
-#define ID_UI3_NetMask    50016
-#define ID_UI3_ServerIPMsg    50015
-#define ID_UI3_BtnServerIPConfirm    20003
-#define ID_UI3_TextView6    50014
-#define ID_UI3_EditTextServerIP    51002
-#define ID_UI3_WindowServerIP    110002
-#define ID_UI3_WindowPwd    110001
-#define ID_UI3_BtnPwdConfirm    20002
-#define ID_UI3_TextView2    50013
-#define ID_UI3_EditTextPwd    51001
-#define ID_UI3_Setting    20001
-#define ID_UI3_TextView4    50008
-#define ID_UI3_DeviceIp    50007
-#define ID_UI3_QRCode1    92001
-#define ID_UI3_TextView11    50011
-#define ID_UI3_Version    50010
-#define ID_UI3_TextView9    50009
-#define ID_UI3_VoiceId    50006
-#define ID_UI3_TextView5    50005
-#define ID_UI3_DeviceMac    50004
-#define ID_UI3_TextView3    50003
-#define ID_UI3_DeviceId    50002
-#define ID_UI3_TextView1    50001
+#define ID_UPDATE_ProgressMessageTextView    50012
+#define ID_UPDATE_ProgressLoadingTextView    50008
+#define ID_UPDATE_ProgressPainter    52005
+#define ID_UPDATE_ProgressWindow    110002
+#define ID_UPDATE_BackButton    20004
+#define ID_UPDATE_InitUpdateButton    20007
+#define ID_UPDATE_DeviceTypeListView    80001
+#define ID_UPDATE_InitWindow    110005
+#define ID_UPDATE_DialogPainter    52004
+#define ID_UPDATE_DialogButton    20006
+#define ID_UPDATE_DialogTextView    50011
+#define ID_UPDATE_DialogWindow    110003
+#define ID_UPDATE_FindBackButton    20005
+#define ID_UPDATE_InstantlyButton    20002
+#define ID_UPDATE_VersionNoNew    50016
+#define ID_UPDATE_FindNewVersionNoTextView    50015
+#define ID_UPDATE_VersionNew    50004
+#define ID_UPDATE_FindNewTextView    50005
+#define ID_UPDATE_FindNewPainter    52003
+#define ID_UPDATE_FindWindow    110001
+#define ID_UPDATE_InitButton    20003
+#define ID_UPDATE_UpdateButton    20001
+#define ID_UPDATE_VersionNo    50021
+#define ID_UPDATE_VersionNoTextView    50020
+#define ID_UPDATE_Version    50002
+#define ID_UPDATE_VersionTextView    50019
+#define ID_UPDATE_DeviceUpdatePicPainter    52002
+#define ID_UPDATE_DeviceIpdatePainter    52001
+#define ID_UPDATE_TitleTextView    50018
+#define ID_UPDATE_sys_back   100
 /*TAG:Macro宏ID END*/
 
-class ui3Activity : public Activity, 
+class updateActivity : public Activity, 
                      public ZKSeekBar::ISeekBarChangeListener, 
                      public ZKListView::IItemClickListener,
                      public ZKListView::AbsListAdapter,
@@ -82,8 +69,8 @@ class ui3Activity : public Activity,
                      public ZKVideoView::IVideoPlayerMessageListener
 {
 public:
-    ui3Activity();
-    virtual ~ui3Activity();
+    updateActivity();
+    virtual ~updateActivity();
 
     /**
      * 注册定时器

+ 3 - 0
jni/core/utilities.cpp

@@ -157,6 +157,9 @@ voip::Telephone* GetTelephone() {
           (int) sizeof(def_compression_ratio_output));
     }
 
+    zk_audio_input_set_volume_native(0, 0);
+    zk_audio_input_set_volume_native(1, 6);
+
     telephone->SetInputPcmGainSize(10.0);
     telephone->SetInputAecApcConfig(aec_conf, apc_conf);
 #else

BIN
jni/dep/lib/libvoip.a


BIN
jni/dep/lib/libzkaudio.a


+ 31 - 0
jni/include/utils/NetUtils.h

@@ -0,0 +1,31 @@
+/*
+ * NetUtils.h
+ *
+ *  Created on: Jul 27, 2018
+ *      Author: guoxs
+ */
+
+#ifndef _INCLUDE_NET_NETUTILS_H_
+#define _INCLUDE_NET_NETUTILS_H_
+
+#define INVALID_IP_ADDR			"0.0.0.0"
+#define INVALID_MAC_ADDR		"00:00:00:00:00:00"
+
+class NetUtils {
+public:
+	static bool enableIfc(const char *iname, bool isEnable);
+
+	static bool configure(const char *iname, const char *pIpAddr, const char *pMask,
+			const char *pGateway, const char *pDns1, const char *pDns2);
+	static bool getConfigureInfo(const char *iname, char *pIpAddr, char *pMask,
+				char *pGateway, char *pDns1, char *pDns2);
+
+	static bool dhcpRequestIp(const char *iname);
+	static bool dhcpReleaseIp(const char *iname);
+	static void dhcpExit();
+
+	static const char* getIp(const char *iname);
+	static const char* getMacAddr(const char *iname);
+};
+
+#endif /* _INCLUDE_NET_NETUTILS_H_ */

+ 45 - 26
jni/include/utils/TimeHelper.h

@@ -71,34 +71,53 @@ public:
 		return result;
 	}
 
-	static std::string getTimeStrOnTimeDifference(std::string str, int timeDifference) {
-		// 先把时间戳调整到对应时差
-		time_t timet = stoi(str);
-		struct tm *t = gmtime(&timet);
-		char pDate[25];
-		sprintf(pDate,"%d-%02d-%02d %02d:%02d:%02d",
-				1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday,
-				t->tm_hour + timeDifference,t->tm_min,t->tm_sec);
 
-		tm tm_;                                    // 定义tm结构体。
-		int year, month, day, hour, minute, second;// 定义时间的各个int临时变量。
-		sscanf(pDate, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);// 将string存储的日期时间,转换为int临时变量。
-		tm_.tm_year = year - 1900;                 // 年,由于tm结构体存储的是从1900年开始的时间,所以tm_year为int临时变量减去1900。
-		tm_.tm_mon = month - 1;                    // 月,由于tm结构体的月份存储范围为0-11,所以tm_mon为int临时变量减去1。
-		tm_.tm_mday = day;                         // 日。
-		tm_.tm_hour = hour;                        // 时。
-		tm_.tm_min = minute;                       // 分。
-		tm_.tm_sec = second;                       // 秒。
-		tm_.tm_isdst = 0;                          // 非夏令时。
-		time_t _timet = mktime(&tm_);                  // 将tm结构体转换成time_t格式。
+    static std::string getTimeStrOnTimeDifference(std::string str, int timeDifference) {
+        // 先把时间戳调整到对应时差
+        time_t timet = stoi(str);
+        struct tm *t = gmtime(&timet);
+        char pDate[25];
+        sprintf(pDate,"%d-%02d-%02d %02d:%02d:%02d",
+                1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday,
+                t->tm_hour + timeDifference,t->tm_min,t->tm_sec);
+        tm tm_;                                    // 定义tm结构体。
+        int year, month, day, hour, minute, second;// 定义时间的各个int临时变量。
+        sscanf(pDate, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);// 将string存储的日期时间,转换为int临时变量。
+        tm_.tm_year = year - 1900;                 // 年,由于tm结构体存储的是从1900年开始的时间,所以tm_year为int临时变量减去1900。
+        tm_.tm_mon = month - 1;                    // 月,由于tm结构体的月份存储范围为0-11,所以tm_mon为int临时变量减去1。
+        tm_.tm_mday = day;                         // 日。
+        tm_.tm_hour = hour;                        // 时。
+        tm_.tm_min = minute;                       // 分。
+        tm_.tm_sec = second;                       // 秒。
+        tm_.tm_isdst = 0;                          // 非夏令时。
+        time_t _timet = mktime(&tm_);                  // 将tm结构体转换成time_t格式。
 
-		// 再转换成字符串
-		struct tm *_t = gmtime(&_timet);
-		char _pDate[25];
-		sprintf(_pDate,"%d-%02d-%02d",
-					1900 + _t->tm_year, 1+ _t->tm_mon, _t->tm_mday);
-		std::string result = _pDate;
-		return result;
+        // 再转换成字符串
+        struct tm *_t = gmtime(&_timet);
+        char _pDate[25];
+        sprintf(_pDate,"%d-%02d-%02d",
+                    1900 + _t->tm_year, 1+ _t->tm_mon, _t->tm_mday);
+        std::string result = _pDate;
+        return result;
+    }
+
+	static time_t getDateline() {
+//		time_t timep;
+//		struct tm *p;
+//
+//		time(&timep);
+//		p = gmtime(&timep);
+		struct tm *tm_ = TimeHelper::getDateTime();
+//	    tm_->tm_year = tm_->tm_year - 1900;                 // 年,由于tm结构体存储的是从1900年开始的时间,所以tm_year为int临时变量减去1900。
+//	    tm_->tm_mon = tm_->tm_mon - 1;                    // 月,由于tm结构体的月份存储范围为0-11,所以tm_mon为int临时变量减去1。
+//	    tm_->tm_mday = tm_->tm_mday;                         // 日。
+	    tm_->tm_hour = tm_->tm_hour - 8;                        // 时。
+//	    tm_->tm_min = tm_->tm_min;                       // 分。
+//	    tm_->tm_sec = tm_->tm_sec;                       // 秒。
+//	    tm_->tm_isdst = 0;                          // 非夏令时。
+
+	    time_t t_ = mktime(tm_);                  // 将tm结构体转换成time_t格式。
+	    return t_;                                 // 返回值。
 	}
 };
 

+ 70 - 23
jni/logic/callLogic.cc

@@ -10,7 +10,7 @@
 #include "service/BusinessConfig.h"
 #include "net/tcp_client.h"
 #include "manager/ConfigManager.h"
-#include "voip/wav_player.h"
+//#include "voip/wav_player.h"
 #include "voip/media_player.h"
 #include "manager/LanguageManager.h"
 
@@ -18,7 +18,7 @@
 std::string _isOutgoing;
 std::string _toIdStr;
 
-voip::WAVPlayer wavPlayer;	// 播放音频
+//voip::WAVPlayer wavPlayer;	// 播放音频
 
 std::string tid;
 
@@ -125,9 +125,10 @@ void callActivityFinish(CallFinishType type){
 					setSleepTimerRegistered(_isSleepTimerRegistered);
 					EASYUICONTEXT->goBack();
 
-					std::string heartStr = "DOORLED,000F";
-					const char* sendMsg = heartStr.c_str();
-					sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+//					std::string heartStr = "DOORLED,000F";
+//					const char* sendMsg = heartStr.c_str();
+//					sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+					lightControl("DOORLED", "000F");
 				} else if (_isOutgoing == "false"){	//state = 5
 					mButtonAnswerPtr->setVisible(false);
 					TcpModel model = CallingStatus::instance()->getTcpModel();
@@ -220,7 +221,13 @@ static void onUI_init(){
 		}
 	}
 
-	mSeekBarOutputVolumePtr->setMax(zk_audio_output_volume_native_max());
+//	mSeekBarOutputVolumePtr->setMax(zk_audio_output_volume_native_max());
+
+    bool isVolume = StoragePreferences::getBool(STORE_VOLUME, false);
+    mSeekBarGainPtr->setVisible(isVolume);
+    mTextViewGainPtr->setVisible(isVolume);
+    mSeekBarInputPtr->setVisible(isVolume);
+    mTextViewInputPtr->setVisible(isVolume);
 
 	//打开时的声音大小
 	int serverVol = StoragePreferences::getInt(STORE_DAY_VOL,PartSetting::dayBedVol);
@@ -235,6 +242,12 @@ static void onUI_init(){
 	mSeekBarOutputVolumePtr->setProgress(vol);
 	mTextViewOutputVolumePtr->setTouchPass(true);
 
+	mSeekBarGainPtr->setProgress(StoragePreferences::getInt(STORE_GAIN_SIZE, 2));
+	mTextViewGainPtr->setTouchPass(true);
+
+	mSeekBarInputPtr->setProgress(StoragePreferences::getInt(STORE_VOLUME_NATIVE, 6));
+	mTextViewInputPtr->setTouchPass(true);
+
 //	mTextViewNamePtr->setVisible(false);
 //	mTextViewStatePtr->setVisible(false);
 //	mTextViewDurationPtr->setVisible(false);
@@ -257,6 +270,10 @@ static void onUI_intent(const Intent *intentPtr) {
 		_isOutgoing = intentPtr->getExtra(isOutgoing);
 		std::string _audioOnly = intentPtr->getExtra(audioOnly);
 
+		if (StoragePreferences::getString(STORE_SIGNAL_TYPE, SIGNAL_TYPE) == "SIP"){
+			return;
+		}
+
 		if (_isOutgoing == "true"){
 			int toId = 0;
 			_toIdStr = intentPtr->getExtra(toIdStr);
@@ -273,7 +290,7 @@ static void onUI_intent(const Intent *intentPtr) {
 			tcpModel.to_id = toId;
 			std::string req = getTcpModelString(tcpModel);
 			LOGD("TCP CALL : %s",req.c_str());
-//			TcpClient::instance()->sendMsg(req.c_str());
+			setCallTid(tcpModel.tid);
 
 			//回调注册
 			TcpCallback callback;
@@ -343,15 +360,24 @@ static void onUI_hide() {
  * 当界面完全退出时触发
  */
 static void onUI_quit() {
-	EASYUICONTEXT->showStatusBar();
-	EASYUICONTEXT->showNaviBar();
+	if (StoragePreferences::getString(STORE_SIGNAL_TYPE, SIGNAL_TYPE) == "TCP"){
+		EASYUICONTEXT->showNaviBar();
 
-//	wavPlayer.Stop();
-	mediaPlayer.Stop();
+		CallingStatus::instance()->setBusy(false);
+		CallingStatus::instance()->clearTcpModel();
 
-	CallingStatus::instance()->setBusy(false);
-	CallingStatus::instance()->clearTcpModel();
+		voip::CallInfo info = GetTelephone()->GetCallInfo();
+		if (info.state == voip::STATE_CALL_CALLING
+				|| info.state == voip::STATE_CALL_CALLING
+				|| info.state == voip::STATE_CALL_CONFIRMED){
+			GetTelephone()->Hangup(info.id, voip::SIP_STATUS_CODE_DECLINE);
+			GetTelephone()->Hangup();
+		}
+	}
+
+	EASYUICONTEXT->showStatusBar();
 
+    mediaPlayer.Stop();
 	mActivityPtr->unregisterUserTimer(goBack);
 }
 
@@ -428,9 +454,10 @@ static bool onUI_Timer(int id){
 		LOGD("TCP CALL : %s",req.c_str());
 		TcpClient::instance()->sendMsg(req.c_str());
 
-		std::string heartStr = "DOORLED,000F";
-		const char* sendMsg = heartStr.c_str();
-		sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+//		std::string heartStr = "DOORLED,000F";
+//		const char* sendMsg = heartStr.c_str();
+//		sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+		lightControl("DOORLED", "000F");
 
 		setSleepTimerRegistered(_isSleepTimerRegistered);
 		EASYUICONTEXT->goBack();
@@ -499,10 +526,7 @@ static bool onButtonClick_ButtonHangup(ZKButton *pButton) {
 				string storeModelStr = getTcpModelString(storeModel);
 				sendVoiceTcp(VoiceAction::CANCEL, storeModel, storeModel.from_id);
 
-				// 还原成无灯光的状态
-				std::string heartStr = "DOORLED,000F";
-				const char* sendMsg = heartStr.c_str();
-				sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+				lightControl("DOORLED", "000F");
 			} else {
 				storeModel.data = storeModel.json["id"].asString();
 				sendVoiceTcp(VoiceAction::REJECT, storeModel, storeModel.from_id);
@@ -513,9 +537,7 @@ static bool onButtonClick_ButtonHangup(ZKButton *pButton) {
 			sendVoiceTcp(VoiceAction::CANCEL, tcpModel, StoragePreferences::getInt(STORE_DEVICE_ID,0));
 
 			// 还原成无灯光的状态
-			std::string heartStr = "DOORLED,000F";
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+			lightControl("DOORLED", "000F");
 		}
 
 		setSleepTimerRegistered(_isSleepTimerRegistered);
@@ -550,3 +572,28 @@ static bool onButtonClick_ButtonVol(ZKButton *pButton) {
 	LOGD(" ButtonClick ButtonVol !!!\n");
 	return false;
 }
+
+
+static void onProgressChanged_SeekBarGain(ZKSeekBar *pSeekBar, int progress) {
+    //LOGD(" ProgressChanged SeekBarGain %d !!!\n", progress);
+	mTextViewGainPtr->setText(base::format("%d", progress));
+	GetTelephone()->SetInputPcmGainSize(progress);
+}
+
+static void onProgressChanged_SeekBarInput(ZKSeekBar *pSeekBar, int progress) {
+    //LOGD(" ProgressChanged SeekBarInput %d !!!\n", progress);
+	mTextViewInputPtr->setText(base::format("%d", progress));
+	zk_audio_input_set_volume_native(0, 0);
+	zk_audio_input_set_volume_native(1, progress);
+}
+
+static void onVideoViewPlayerMessageListener_VideoView(ZKVideoView *pVideoView, int msg) {
+	switch (msg) {
+	case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_STARTED:
+		break;
+	case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_COMPLETED:
+		break;
+	case ZKVideoView::E_MSGTYPE_VIDEO_PLAY_ERROR:
+		break;
+	}
+}

+ 43 - 164
jni/logic/ui3Logic.cc

@@ -2,8 +2,8 @@
 #include "uart/ProtocolSender.h"
 #include "net/NetManager.h"
 #include <string>
-#include<unistd.h>
-#include<sys/reboot.h>
+#include <unistd.h>
+#include <sys/reboot.h>
 #include "utils/TimeHelper.h"
 
 #include "core/utilities.h"
@@ -14,7 +14,7 @@
 #include "service/BusinessConfig.h"
 #include "core/jhws.h"
 #include "manager/LanguageManager.h"
-
+#include <net/NetUtils.h>
 
 #define ETHERNETMANAGER		NETMANAGER->getEthernetManager()
 #define WIFIMANAGER			NETMANAGER->getWifiManager()
@@ -48,6 +48,7 @@
 * 在Eclipse编辑器中  使用 “alt + /”  快捷键可以打开智能提示
 */
 
+
 using namespace std;
 
 struct NetworkConfiguration {
@@ -61,19 +62,10 @@ NetworkConfiguration GetNetworkConfiguration() {
 	char gateway[64] = {0};
 	char dns1[64] = {0};
 	char dns2[64] = {0};
-
-	ENetChannel channel = NETMANAGER->getConnChannel();
-	switch (channel) {
-	case E_NET_CHANNEL_ETHERNET:
-		if (ETHERNETMANAGER->isAutoMode()) {
-			ETHERNETMANAGER->getConfigureInfo(ip, mask, gateway, dns1, dns2);
-		} else {
-			ETHERNETMANAGER->getStaticConfigureInfo(ip, mask, gateway, dns1, dns2);
-		}
-		break;
-	case E_NET_CHANNEL_WIFI:
-		WIFIMANAGER->getConfigureInfo(ip, mask, gateway, dns1, dns2);
-		break;
+	if (ETHERNETMANAGER->isAutoMode()) {
+		ETHERNETMANAGER->getConfigureInfo(ip, mask, gateway, dns1, dns2);
+	} else {
+		ETHERNETMANAGER->getStaticConfigureInfo(ip, mask, gateway, dns1, dns2);
 	}
 	return NetworkConfiguration{ip, mask, gateway};
 }
@@ -229,16 +221,6 @@ const bool checkAddr(string addr)
 //	return true;
 }
 
-
-static uint32_t color = 0xFFF84D61;
-static uint32_t redLightColour = 0xFFF9C5C5;
-static uint32_t redDeepColour = 0xFFF84D61;
-static uint32_t buleLightColour = 0xFFD2E2F2;
-static uint32_t buleDeepColour = 0xFF2F9DF1;
-void setUi3BgColor(uint32_t _color) {
-	color = _color;
-}
-
 /**
  * 注册定时器
  * 填充数组用于注册定时器
@@ -254,24 +236,22 @@ static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
  */
 static void onUI_init(){
     //Tips :添加 UI初始化的显示代码到这里,如:mText1Ptr->setText("123");
-	string qrStr = "http://m.wdklian.com/care/apk/care.user?type=NCS_DEVICE&code=&mac=" + std::string(ETHERNETMANAGER->getMacAddr()) + "&model=&hard_ver=HV1.0&soft_ver=SW1.0&device_type=3&device_name=门口机";
-	mQRCode1Ptr->loadQRCode(qrStr.c_str());
+	string qrStr = "http://m.wdklian.com/care/apk/care.user?type=NCS_DEVICE&code=&mac=" + StoragePreferences::getString(STORE_MAC_ADDR, "0.0.0.0") + "&model=&hard_ver=HV1.0&soft_ver=SW1.0&device_type=3&device_name=门口机";
+	mQRCodePtr->loadQRCode(qrStr.c_str());
 
 	mDeviceIdPtr->setText(StoragePreferences::getInt(STORE_DEVICE_ID, 0));
 	mDeviceCodePtr->setText(GetDeviceUid());
-	mDeviceMacPtr->setText(ETHERNETMANAGER->getMacAddr());
-
-	ENetChannel channel = NETMANAGER->getConnChannel();
-	switch (channel) {
-	case E_NET_CHANNEL_ETHERNET:
+	mDeviceMacPtr->setText(StoragePreferences::getString(STORE_MAC_ADDR, "0.0.0.0"));
+	if (ETHERNETMANAGER->isConnected() || WIFIMANAGER->isConnected()) {
 		mDeviceIpPtr->setText(ETHERNETMANAGER->getIp());
-		break;
-	case E_NET_CHANNEL_WIFI:
-		mDeviceIpPtr->setText(WIFIMANAGER->getIp());
-		break;
+		mNetMaskPtr->setText(GetNetworkConfiguration().sub_network_mask);
+		mGatewayPtr->setText(GetNetworkConfiguration().gateway);
+	}
+	else {
+		mDeviceIpPtr->setText("0.0.0.0");
+		mNetMaskPtr->setText("0.0.0.0");
+		mGatewayPtr->setText("0.0.0.0");
 	}
-	mNetMaskPtr->setText(GetNetworkConfiguration().sub_network_mask);
-	mGatewayPtr->setText(GetNetworkConfiguration().gateway);
 
 	//sip
 	//StoragePreferences::putString(SIP_REG_ACCOUNT, SIP_REG_ACCOUNT_DEFAULT);
@@ -285,32 +265,6 @@ static void onUI_init(){
 	//server ip
 	string sIP = StoragePreferences::getString(STORE_GATEWAY, serverIP);
 	mServerIPPtr->setText(sIP);
-
-	if (color == redDeepColour) {
-		mUi3PainterPtr->setBackgroundColor(redLightColour);
-		mWindowServerIPPtr->setBackgroundColor(0xFFFF8080);
-		mWindowPwdPtr->setBackgroundColor(0xFFFF8080);
-		mTestPasswordWindowPtr->setBackgroundColor(0xFFFF8080);
-	}
-	else {
-		mUi3PainterPtr->setBackgroundColor(buleLightColour);
-		mWindowServerIPPtr->setBackgroundColor(0xFF92C5EB);
-		mWindowPwdPtr->setBackgroundColor(0xFF92C5EB);
-		mTestPasswordWindowPtr->setBackgroundColor(0xFF92C5EB);
-	}
-
-	// 界面上
-	mBtnRestartPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
-	mSettingPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
-	mBtnNetSettingPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
-	mBtnSoftVerPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
-	mTestButtonPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
-	msys_backPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
-
-	// 窗口上
-	mBtnServerIPConfirmPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
-	mBtnPwdConfirmPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
-	mTestConfirmButtonPtr->setBgStatusColor(ZK_CONTROL_STATUS_NORMAL, color);
 }
 
 /**
@@ -378,7 +332,7 @@ static bool onUI_Timer(int id){
  *         false
  *            触摸事件将继续传递到控件上
  */
-static bool onui3ActivityTouchEvent(const MotionEvent &ev) {
+static bool ondeviceInfoActivityTouchEvent(const MotionEvent &ev) {
     switch (ev.mActionStatus) {
 		case MotionEvent::E_ACTION_DOWN://触摸按下
 			//LOGD("时刻 = %ld 坐标  x = %d, y = %d", ev.mEventTime, ev.mX, ev.mY);
@@ -392,118 +346,43 @@ static bool onui3ActivityTouchEvent(const MotionEvent &ev) {
 	}
 	return false;
 }
-static bool onButtonClick_Setting(ZKButton *pButton) {
-    LOGD(" ButtonClick Setting !!!\n");
-    mWindowPwdPtr->showWnd();
-    return false;
-}
-static void onEditTextChanged_EditTextPwd(const std::string &text) {
-    //LOGD(" onEditTextChanged_ EditTextPwd %s !!!\n", text.c_str());
-}
-
-static bool onButtonClick_BtnPwdConfirm(ZKButton *pButton) {
-    LOGD(" ButtonClick BtnPwdConfirm !!!\n");
-    string pwd = mEditTextPwdPtr->getText();
-
-//    //密码为当前日时
-//    struct tm *t = TimeHelper::getDateTime();
-//    char cpwd[10];
-//    sprintf(cpwd,"%02d%02d",t->tm_mday,t->tm_hour);
-//    LOGD("cpwd is %s", cpwd);
-
-	// 密码为666
-	string cpwd = "666";
-    if (pwd == cpwd){
-    	mWindowPwdPtr->hideWnd();
-		mWindowServerIPPtr->showWnd();
-		return false;
-    } else {
-    	mTextPwdInfoPtr->setTextTr("PasswordWrong");
-    }
 
+static bool onButtonClick_SettingButton(ZKButton *pButton) {
+    LOGD(" ButtonClick SettingButton !!!\n");
+    Intent* intent = new Intent();
+	intent->putExtra(functionWindows, "setting");
+	EASYUICONTEXT->openActivity("functionActivity", intent);
     return false;
 }
-static void onEditTextChanged_EditTextServerIP(const std::string &text) {
-    //LOGD(" onEditTextChanged_ EditTextServerIP %s !!!\n", text.c_str());
-}
-
-// 设置服务器ip
-static bool onButtonClick_BtnServerIPConfirm(ZKButton *pButton) {
-    LOGD("设置服务器ip !!!\n");
-    LOGD("服务器ip set to %s",mEditTextServerIPPtr->getText().c_str());
-
-    if(false == checkAddr(mEditTextServerIPPtr->getText())){
-    	mServerIPMsgPtr->setTextTr("ServerIPWrong");
-    	return false;
-    }
-
-    StoragePreferences::putString(STORE_GATEWAY, mEditTextServerIPPtr->getText().c_str());
-
-    //mWindowServerIPPtr->hideWnd();
 
-	const char* req = "-1";
-	TcpClient::instance()->sendMsg(req);
-    //重启
-    sync();
-    reboot(RB_AUTOBOOT);
+static bool onButtonClick_ServerButton(ZKButton *pButton) {
+    LOGD(" ButtonClick ServerButton !!!\n");
+    Intent* intent = new Intent();
+	intent->putExtra(functionWindows, "serverChange");
+	EASYUICONTEXT->openActivity("functionActivity", intent);
     return false;
 }
-static bool onButtonClick_BtnRestart(ZKButton *pButton) {
-    LOGD(" ButtonClick BtnRestart !!!\n");
 
-	const char* req = "-1";
-	TcpClient::instance()->sendMsg(req);
-    //重启
-	sync();
-	reboot(RB_AUTOBOOT);
-    return false;
-}
-static bool onButtonClick_BtnNetSetting(ZKButton *pButton) {
-    LOGD(" ButtonClick BtnNetSetting !!!\n");
+static bool onButtonClick_NetworkButton(ZKButton *pButton) {
+    LOGD(" ButtonClick NetworkButton !!!\n");
 //    EASYUICONTEXT->openActivity("EthernetSettingActivity");
     EASYUICONTEXT->openActivity("NetSettingActivity");
     return false;
 }
 
-static bool onButtonClick_BtnSoftVer(ZKButton *pButton) {
-    LOGD(" ButtonClick BtnSoftVer !!!\n");
-    EASYUICONTEXT->openActivity("DeviceUpdateActivity");
-    return false;
-}
-static bool onButtonClick_BackButton(ZKButton *pButton) {
-    LOGD(" ButtonClick BackButton !!!\n");
-    return false;
-}
-static bool onButtonClick_sys_back(ZKButton *pButton) {
-    LOGD(" ButtonClick sys_back !!!\n");
-    return false;
-}
-static bool onButtonClick_TestButton(ZKButton *pButton) {
-    LOGD(" ButtonClick TestButton !!!\n");
-    mTestPasswordWindowPtr->showWnd();
+static bool onButtonClick_VersionButton(ZKButton *pButton) {
+    LOGD(" ButtonClick VersionButton !!!\n");
+    EASYUICONTEXT->openActivity("updateActivity");
     return false;
 }
-static bool onButtonClick_TestConfirmButton(ZKButton *pButton) {
-    LOGD(" ButtonClick TestConfirmButton !!!\n");
-    string pwd = mTestPasswordEditTextPtr->getText();
-
-	// 密码为888
-	string cpwd = "888";
-    if (pwd == cpwd){
-    	// 关闭密码输入界面
-        mTestPasswordWindowPtr->hideWnd();
-        // 切换成SIP模式
-    	StoragePreferences::putString(STORE_SIGNAL_TYPE, "SIP");
-    	// 打开SIP调试界面
-        EASYUICONTEXT->openActivity("sipTestActivity");
-		return false;
-    } else {
-    	mTestErrorTextViewPtr->setTextTr("PasswordWrong");
-    }
 
-    return false;
-}
+static bool onButtonClick_RestartButton(ZKButton *pButton) {
+    LOGD(" ButtonClick RestartButton !!!\n");
 
-static void onEditTextChanged_TestPasswordEditText(const std::string &text) {
-    //LOGD(" onEditTextChanged_ TestPasswordEditText %s !!!\n", text.c_str());
+	const char* req = "-1";
+	TcpClient::instance()->sendMsg(req);
+    //重启
+	sync();
+	reboot(RB_AUTOBOOT);
+    return false;
 }

+ 308 - 0
jni/logic/functionLogic.cc

@@ -0,0 +1,308 @@
+#pragma once
+#include "uart/ProtocolSender.h"
+#include "service/BusinessConfig.h"
+#include "voip/media_player.h"
+#include "manager/ConfigManager.h"
+
+#include <sys/reboot.h>
+/*
+*此文件由GUI工具生成
+*文件功能:用于处理用户的逻辑相应代码
+*功能说明:
+*========================onButtonClick_XXXX
+当页面中的按键按下后系统会调用对应的函数,XXX代表GUI工具里面的[ID值]名称,
+如Button1,当返回值为false的时候系统将不再处理这个按键,返回true的时候系统将会继续处理此按键。比如SYS_BACK.
+*========================onSlideWindowItemClick_XXXX(int index) 
+当页面中存在滑动窗口并且用户点击了滑动窗口的图标后系统会调用此函数,XXX代表GUI工具里面的[ID值]名称,
+如slideWindow1;index 代表按下图标的偏移值
+*========================onSeekBarChange_XXXX(int progress) 
+当页面中存在滑动条并且用户改变了进度后系统会调用此函数,XXX代表GUI工具里面的[ID值]名称,
+如SeekBar1;progress 代表当前的进度值
+*========================ogetListItemCount_XXXX() 
+当页面中存在滑动列表的时候,更新的时候系统会调用此接口获取列表的总数目,XXX代表GUI工具里面的[ID值]名称,
+如List1;返回值为当前列表的总条数
+*========================oobtainListItemData_XXXX(ZKListView::ZKListItem *pListItem, int index)
+ 当页面中存在滑动列表的时候,更新的时候系统会调用此接口获取列表当前条目下的内容信息,XXX代表GUI工具里面的[ID值]名称,
+如List1;pListItem 是贴图中的单条目对象,index是列表总目的偏移量。具体见函数说明
+*========================常用接口===============
+*LOGD(...)  打印调试信息的接口
+*mTextXXXPtr->setText("****") 在控件TextXXX上显示文字****
+*mButton1Ptr->setSelected(true); 将控件mButton1设置为选中模式,图片会切换成选中图片,按钮文字会切换为选中后的颜色
+*mSeekBarPtr->setProgress(12) 在控件mSeekBar上将进度调整到12
+*mListView1Ptr->refreshListView() 让mListView1 重新刷新,当列表数据变化后调用
+*mDashbroadView1Ptr->setTargetAngle(120) 在控件mDashbroadView1上指针显示角度调整到120度
+*
+* 在Eclipse编辑器中  使用 “alt + /”  快捷键可以打开智能提示
+*/
+
+Json::Value bedList;
+Json::Value chooseBed;
+int chooseId = 0;
+static string _functionWindows;
+static string _functionText;
+static string _nursingText;
+static string _warnText;
+static string _goActivity;
+
+static base::MediaPlayer mediaPlayer;
+
+#define FUNCTION_TIMER_HANDLE 3	// 增援的定时器id
+
+
+
+void warn(string warnText) {
+	mWarnTextViewPtr->setText(warnText);
+	mWarnWindowPtr->showWnd();
+}
+
+
+void pwdWindowInfo() {
+	mPwdEditTextPtr->setText("");
+	mPwdPromptTextViewPtr->setTextColor(0xFF000000);
+	mPwdPromptTextViewPtr->setText(LANGUAGEMANAGER->getValue("PasswordTag"));
+	mPwdWindowPtr->showWnd();
+
+	mServerIpEditTextPtr->setText("");
+	mServerPortEditTextPtr->setText("");
+	mServerPromptTextViewPtr->setText(LANGUAGEMANAGER->getValue("ServerTag"));
+	mPwdPromptTextViewPtr->setTextColor(0xFF000000);
+}
+
+
+
+
+/**
+ * 注册定时器
+ * 填充数组用于注册定时器
+ * 注意:id不能重复
+ */
+static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
+	//{0,  6000}, //定时器id=0, 时间间隔6秒
+	//{1,  1000},
+};
+
+/**
+ * 当界面构造时触发
+ */
+static void onUI_init(){
+    //Tips :添加 UI初始化的显示代码到这里,如:mText1Ptr->setText("123");
+	mFunctionPainterPtr->setAlpha(102);
+}
+
+/**
+ * 当切换到该界面时触发
+ */
+static void onUI_intent(const Intent *intentPtr) {
+    if (intentPtr != NULL) {
+        //TODO=
+
+		// 键值解析
+		_functionWindows = intentPtr->getExtra(functionWindows);
+		LOGD("_functionWindows == %s", _functionWindows.c_str());
+		if (_functionWindows == "warn") {
+			_warnText = intentPtr->getExtra(warnText);
+			warn(_warnText);
+		}
+		else if (_functionWindows == "serverChange" ||
+				_functionWindows == "setting" ||
+				_functionWindows == "init") {
+			pwdWindowInfo();
+		}
+    }
+}
+
+/*
+ * 当界面显示时触发
+ */
+static void onUI_show() {
+}
+
+/*
+ * 当界面隐藏时触发
+ */
+static void onUI_hide() {
+}
+
+/*
+ * 当界面完全退出时触发
+ */
+static void onUI_quit() {
+	mFunctionWindowPtr->hideWnd();
+	mWarnWindowPtr->hideWnd();
+
+}
+
+/**
+ * 串口数据回调接口
+ */
+static void onProtocolDataUpdate(const SProtocolData &data) {
+
+}
+
+/**
+ * 定时器触发函数
+ * 不建议在此函数中写耗时操作,否则将影响UI刷新
+ * 参数: id
+ *         当前所触发定时器的id,与注册时的id相同
+ * 返回值: true
+ *             继续运行当前定时器
+ *         false
+ *             停止运行当前定时器
+ */
+static bool onUI_Timer(int id){
+	switch (id) {
+		case FUNCTION_TIMER_HANDLE:
+			mFunctionWindowPtr->hideWnd();
+			EASYUICONTEXT->closeActivity("functionActivity");
+			return false;
+			break;
+		default:
+			break;
+	}
+    return true;
+}
+
+/**
+ * 有新的触摸事件时触发
+ * 参数:ev
+ *         新的触摸事件
+ * 返回值:true
+ *            表示该触摸事件在此被拦截,系统不再将此触摸事件传递到控件上
+ *         false
+ *            触摸事件将继续传递到控件上
+ */
+static bool onfunctionActivityTouchEvent(const MotionEvent &ev) {
+    switch (ev.mActionStatus) {
+		case MotionEvent::E_ACTION_DOWN://触摸按下
+			//LOGD("时刻 = %ld 坐标  x = %d, y = %d", ev.mEventTime, ev.mX, ev.mY);
+			break;
+		case MotionEvent::E_ACTION_MOVE://触摸滑动
+			break;
+		case MotionEvent::E_ACTION_UP:  //触摸抬起
+			break;
+		default:
+			break;
+	}
+	return false;
+}
+
+static bool onButtonClick_backButton(ZKButton *pButton) {
+    LOGD(" ButtonClick backButton !!!\n");
+    EASYUICONTEXT->goBack();
+    return false;
+}
+static bool onButtonClick_FunctionButton(ZKButton *pButton) {
+    LOGD(" ButtonClick FunctionButton !!!\n");
+    if (_functionWindows == "help" ||
+    		_functionWindows == "helpResonse" ||
+			_functionWindows == "position" ||
+			_functionWindows == "roomPatrol"
+			) {
+    	mActivityPtr->unregisterUserTimer(FUNCTION_TIMER_HANDLE);
+    }
+
+	EASYUICONTEXT->closeActivity("functionActivity");
+    return false;
+}
+
+
+static void onEditTextChanged_PwdEditText(const std::string &text) {
+    //LOGD(" onEditTextChanged_ PwdEditText %s !!!\n", text.c_str());
+}
+
+static bool onButtonClick_PwdConfirmButton(ZKButton *pButton) {
+    LOGD(" ButtonClick PwdConfirmButton !!!\n");
+	string pwd = mPwdEditTextPtr->getText();
+
+    if (_functionWindows == "serverChange") {
+    	// 密码为666
+		string cpwd = "666";
+		if (pwd == cpwd){
+			mPwdWindowPtr->hideWnd();
+			mServerWindowPtr->showWnd();
+		} else {
+			mPwdPromptTextViewPtr->setTextTr("PasswordWrong");
+			mPwdPromptTextViewPtr->setTextColor(0xFFFF0000);
+		}
+    }
+    else if (_functionWindows == "setting") {
+
+		// 密码为888
+		string cpwd = "888";
+		if (pwd == cpwd){
+			// 关闭密码输入界面
+			mPwdWindowPtr->hideWnd();
+			EASYUICONTEXT->closeActivity("functionActivity");
+			// 打开设置界面
+//			EASYUICONTEXT->openActivity("settingActivity");
+			EASYUICONTEXT->openActivity("sipTestActivity");
+			EASYUICONTEXT->closeActivity("deviceInfoActivity");
+		} 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);
+		}
+	}
+    return false;
+}
+
+static bool onButtonClick_PwdBackButton(ZKButton *pButton) {
+    LOGD(" ButtonClick PwdBackButton !!!\n");
+	// 关闭密码输入界面
+	mPwdWindowPtr->hideWnd();
+	EASYUICONTEXT->closeActivity("functionActivity");
+    return false;
+}
+
+static void onEditTextChanged_ServerIpEditText(const std::string &text) {
+    //LOGD(" onEditTextChanged_ ServerIpEditText %s !!!\n", text.c_str());
+}
+
+static void onEditTextChanged_ServerPortEditText(const std::string &text) {
+    //LOGD(" onEditTextChanged_ ServerPortEditText %s !!!\n", text.c_str());
+}
+
+static bool onButtonClick_ServerConfirmButton(ZKButton *pButton) {
+    LOGD(" ButtonClick ServerConfirmButton !!!\n");
+    LOGD("设置服务器ip !!!\n");
+    LOGD("服务器ip set to %s", mServerIpEditTextPtr->getText().c_str());
+    LOGD("服务器port set to %s", mServerPortEditTextPtr->getText().c_str());
+
+    if (false == checkAddr(mServerIpEditTextPtr->getText())) {
+    	mServerPromptTextViewPtr->setTextTr("ServerIPWrong");
+		mPwdPromptTextViewPtr->setTextColor(0xFFFF0000);
+    	return false;
+    }
+
+    StoragePreferences::putString(STORE_GATEWAY, mServerIpEditTextPtr->getText().c_str());
+    StoragePreferences::putInt(STORE_HTTP_PORT, std::atoi(mServerPortEditTextPtr->getText().c_str()));
+
+	const char* req = "-1";
+	TcpClient::instance()->sendMsg(req);
+    //重启
+    sync();
+    reboot(RB_AUTOBOOT);
+    return false;
+}
+
+static bool onButtonClick_ServerCancelButton(ZKButton *pButton) {
+    LOGD(" ButtonClick ServerCancelButton !!!\n");
+	// 关闭密码输入界面
+    mServerWindowPtr->hideWnd();
+	EASYUICONTEXT->closeActivity("functionActivity");
+    return false;
+}

+ 132 - 333
jni/logic/mainLogic.cc

@@ -57,9 +57,9 @@ BabySex BabySex;
 Json::Value babyList;
 static std::string babySex = BabySex.girl;	// 默认是女孩,有可能是男孩boy,也有可能是双胞胎twins,有女娃的就twins_girl,都是男娃的就twins_boy
 static uint32_t redLightColour = 0xFFF9C5C5;
-static uint32_t redDeepColour = 0xFFF84D61;
+static uint32_t redDeepColour = 0xFFFEB8BF;
 static uint32_t buleLightColour = 0xFFD2E2F2;
-static uint32_t buleDeepColour = 0xFF2F9DF1;
+static uint32_t buleDeepColour = 0xFF68A5FF;
 
 static bool dataInit = false;	// false表示需要从数据库里获取数据,true表示从缓存里获取数据
 PartSetting partSetting;
@@ -92,23 +92,26 @@ public:
 		LOGD("请求服务器信息. url = %s", url.c_str());
 		//发起HTTP GET请求
 		RestClient::Response r = RestClient::get(url);
+        LOGD("请求服务器信息. result = %s", r.body.c_str());
 		//解析json
 		Json::Reader reader;
 		Json::Value root;
 		if (reader.parse(r.body, root, false)){
-			// http
-			StoragePreferences::putString(STORE_GATEWAY, root["http_local_ip"].asString());
-			StoragePreferences::putInt(STORE_HTTP_PORT, root["http_port"].asInt());
+            if (root.isMember("http_local_ip")) {
+				// http
+				StoragePreferences::putString(STORE_GATEWAY, root["http_local_ip"].asString());
+				StoragePreferences::putInt(STORE_HTTP_PORT, root["http_port"].asInt());
 
-			// tcp
-			StoragePreferences::putString(STORE_TCP_LOCAL_IP, root["tcp_local_ip"].asString());
-			StoragePreferences::putInt(STORE_TCP_PORT, root["tcp_port"].asInt());
+				// tcp
+				StoragePreferences::putString(STORE_TCP_LOCAL_IP, root["tcp_local_ip"].asString());
+				StoragePreferences::putInt(STORE_TCP_PORT, root["tcp_port"].asInt());
 
-			// sip
-			StoragePreferences::putString(SIP_REG_DOMAIN, root["sip_ip"].asString());
-			StoragePreferences::putInt(SIP_REG_PORT, root["sip_port"].asInt());
+				// sip
+				StoragePreferences::putString(SIP_REG_DOMAIN, root["sip_ip"].asString());
+				StoragePreferences::putInt(SIP_REG_PORT, root["sip_port"].asInt());
 
-			serverInfo = false;	// 只有请求成功了,才不需要重复请求
+				serverInfo = false;	// 只有请求成功了,才不需要重复请求
+            }
 		}
 
 	}
@@ -129,25 +132,27 @@ public:
 		Json::Reader reader;
 		Json::Value root;
 		if (reader.parse(r.body, root, false)){
-			string partName = root["part_display"].asString();
-			StoragePreferences::putString(STORE_PARTNAME,partName);
-			NavibarSetPartName(partName);
-			//设备
-			StoragePreferences::putInt(STORE_DEVICE_ID, root["id"].asInt());
-			StoragePreferences::putInt(STORE_DEVICE_TYPE, root["device_type"].asInt());
-
-			//SIP存储
-//			StoragePreferences::putString(SIP_REG_DOMAIN, root["sip_ip"].asString());	// 应该去找配置文件里的sip-ip
-			StoragePreferences::putString(SIP_REG_ACCOUNT,root["sip_id"].asString());
-			StoragePreferences::putString(SIP_REG_PASSWORD, root["sip_password"].asString());
-
-			//获取科室设置
-			string partId = root["part_id"].asString();
-			StoragePreferences::putString(STORE_PARTID, partId);
-			getPartSetting(partId);
-			getVersion();
-			setFrameInfo(root);
-			getFrameRoom(root["frame_id"].asInt());
+            if (root.isMember("id")) {
+				string partName = root["part_display"].asString();
+				StoragePreferences::putString(STORE_PARTNAME,partName);
+				NavibarSetPartName(partName);
+				//设备
+				StoragePreferences::putInt(STORE_DEVICE_ID, root["id"].asInt());
+				StoragePreferences::putInt(STORE_DEVICE_TYPE, root["device_type"].asInt());
+
+				//SIP存储
+	//			StoragePreferences::putString(SIP_REG_DOMAIN, root["sip_ip"].asString());	// 应该去找配置文件里的sip-ip
+				StoragePreferences::putString(SIP_REG_ACCOUNT,root["sip_id"].asString());
+				StoragePreferences::putString(SIP_REG_PASSWORD, root["sip_password"].asString());
+
+				//获取科室设置
+				string partId = root["part_id"].asString();
+				StoragePreferences::putString(STORE_PARTID, partId);
+				getPartSetting(partId);
+				getVersion();
+				setFrameInfo(root);
+				getFrameRoom(root["frame_id"].asInt());
+            }
 		}
 	}
 
@@ -163,7 +168,7 @@ public:
 
 	// 读取空间缓存的数据
 	static void getFrameInfo() {
-		mRoomNamePtr->setText(frameInfo["full_name"].asString());
+		mRoomNameTextViewPtr->setText(frameInfo["full_name"].asString());
 	}
 
 	static void getFrameRoom(int frame_id) {
@@ -211,40 +216,40 @@ public:
 			getMainInfo();
 		}
 
-		int customerId = frameBed["customer_id"].asInt();
-		if (customerId != 0) {
-			getClerk(frameBed["customer_id"].asInt());
-		}
+//		int customerId = frameBed["customer_id"].asInt();
+//		if (customerId != 0) {
+//			getClerk(frameBed["customer_id"].asInt());
+//		}
 	}
 
 	static void getClerk(int customerId) {
-		string url = getHttpGateway() + "/deviceRoom/get_clerk_by_customer_id/" + to_string(customerId);
-		LOGD("请求护士信息. url = %s", url.c_str());
-		//发起HTTP GET请求
-		RestClient::Response r = RestClient::get(url);
-		LOGD("获得护士信息. result = %s", r.body.c_str());
-		//解析json
-		Json::Reader reader;
-		Json::Value root;
-		if (reader.parse(r.body, root, false)){
-			nurseInfo = root;
-			string clerkName = nurseInfo["clerk_name"].asString();
-			if (clerkName != "") {
-				mNurseNameTextViewPtr->setText(nurseInfo["clerk_name"].asCString());
-			}
-		}
-
-		if (babySex == BabySex.girl || babySex == BabySex.twins_girl) {
-			// 护士
-			mNursePhotoPainterPtr->setBackgroundPic("nurse_red.png");
-			mNurseNameTextViewPtr->setTextColor(redDeepColour);
-		}
-		else {
-			// 护士
-			mNursePhotoPainterPtr->setBackgroundPic("nurse_blue.png");
-			mNurseNameTextViewPtr->setTextColor(buleDeepColour);
-
-		}
+//		string url = getHttpGateway() + "/deviceRoom/get_clerk_by_customer_id/" + to_string(customerId);
+//		LOGD("请求护士信息. url = %s", url.c_str());
+//		//发起HTTP GET请求
+//		RestClient::Response r = RestClient::get(url);
+//		LOGD("获得护士信息. result = %s", r.body.c_str());
+//		//解析json
+//		Json::Reader reader;
+//		Json::Value root;
+//		if (reader.parse(r.body, root, false)){
+//			nurseInfo = root;
+//			string clerkName = nurseInfo["clerk_name"].asString();
+//			if (clerkName != "") {
+//				mNurseNameTextViewPtr->setText(nurseInfo["clerk_name"].asCString());
+//			}
+//		}
+//
+//		if (babySex == BabySex.girl || babySex == BabySex.twins_girl) {
+//			// 护士
+//			mNursePhotoPainterPtr->setBackgroundPic("nurse_red.png");
+//			mNurseNameTextViewPtr->setTextColor(redDeepColour);
+//		}
+//		else {
+//			// 护士
+//			mNursePhotoPainterPtr->setBackgroundPic("nurse_blue.png");
+//			mNurseNameTextViewPtr->setTextColor(buleDeepColour);
+//
+//		}
 	}
 
 
@@ -254,13 +259,10 @@ public:
 		if (customerName == "") {
 			return;
 		}
-
-		mCustomerNameTextViewPtr->setText(customerName);
-		string descText = frameBed["customer_illness_desc"].asString();
-		if (descText != "") {
-			mDescTextViewPtr->setText(descText);
-			mDescTextViewPtr->setVisible(true);
-		}
+		string customerAge = frameBed["customer_age"].asString();
+		string customerAgeUnit = frameBed["customer_age_unit"].asString();
+		string customerAndAge = customerName + "  " + customerAge + customerAgeUnit;
+		mCustomerNameAndAgeTextViewPtr->setText(customerAndAge);
 
 		string inDateStr = LANGUAGEMANAGER->getValue("InTime");
 		string inDate = frameBed["customer_in_date"].asString();
@@ -283,296 +285,74 @@ public:
 
 		if (babySex == BabySex.girl || babySex == BabySex.twins_girl) {
 			// 背景
-			mMainPainterPtr->setBackgroundColor(redLightColour);
-
-			// 房间
-//			mPainterInfoPtr->setBackgroundPic("/main/title_red.png");
-			mPainterInfoPtr->setBackgroundColor(redDeepColour);
-
-			// 用户
-			mCustomerNameTextViewPtr->setTextColor(redDeepColour);
-			mDescTextViewPtr->setBackgroundColor(redDeepColour);
-
-			mInDateTextViewPtr->setTextColor(redDeepColour);
-			mOutDateTextViewPtr->setTextColor(redDeepColour);
-			mMsgPainterPtr->setBackgroundPic("/main/msg_red.png");
-
-			// 更多
-			mMoreButtonPtr->setTextColor(redDeepColour);
+			mMainPainterPtr->setBackgroundColor(redDeepColour);
+			mRoomNameTextViewPtr->setTextColor(redDeepColour);
+			mCustomerInfoTextViewPtr->setBackgroundPic("main/infoBg_red.png");
+			mCustomerNameTitleTextViewPtr->setBackgroundPic("/main/infoTitleBg_red.png");
+			mCustomerAgeTitleTextViewPtr->setBackgroundPic("/main/infoTitleBg_red.png");
+			mBabyInfoTextViewPtr->setBackgroundPic("main/infoBg_red.png");
+			mBabyNameTitleTextViewPtr->setBackgroundPic("/main/infoTitleBg_red.png");
+			mBabySexTitleTextViewPtr->setBackgroundPic("/main/infoTitleBg_red.png");
 
 			// 设置科室名称和时间
-			setPartNameAndDateColor(redDeepColour);
-
-			// 设置ui3界面的颜色
-			setUi3BgColor(redDeepColour);
+			setStatusbarBdColor(redDeepColour);
 
 			if (babyList.size() == 0) {
 				return;
 			}
 			if (babySex == BabySex.girl) {	// 只有一个女孩的时候
 				// 主图
-				mCustomerInfoPainterPtr->setBackgroundPic("/main/girl.png");
-
-				// 婴儿姓名
-				mBayNameTextViewPtr->setVisible(true);
-				mBayNameTextViewPtr->setText(babyList[0]["relative_member_name"].asCString());
-				mBayNameTextViewPtr->setTextColor(redDeepColour);
-
-				// 婴儿出生日期
-				mBabyBirTextViewPtr->setVisible(true);
-				string babyBirStr = LANGUAGEMANAGER->getValue("BirTime");
-				string babyBir = babyList[0]["relative_birthday"].asString();
-				babyBir = babyBir.substr(0, 10);
-				if (babyBir != "") {
-					time_t timet = stoi(babyBir);
-					struct tm *t = gmtime(&timet);
-					char pDate[25];
-					sprintf(pDate,"%d-%02d-%02d",
-							1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday);
-					babyBir = pDate;
-				}
-				babyBirStr += babyBir;
-				mBabyBirTextViewPtr->setText(babyBirStr);
-
-				mBabySexTextViewPtr->setVisible(true);
-				mBabySexTextViewPtr->setText(LANGUAGEMANAGER->getValue("Woman"));
-				mBabySexTextViewPtr->setBackgroundColor(redDeepColour);
-
-				mBabyNameTextView2Ptr->setVisible(false);
-				mBabyBirTextView2Ptr->setText("");
-				mBabySexTextView2Ptr->setVisible(false);
+				mBabyPicRightPainterPtr->setBackgroundPic("/main/nv_right.png");
+				mBabyPicRightPainterPtr->setVisible(true);
+				mBabyPicLeftPainterPtr->setVisible(false);
 			}
 			else {	// 双胞胎女孩
 				// 主图
-				mCustomerInfoPainterPtr->setBackgroundPic("/main/twins_girl.png");
-
-				// 婴儿姓名
-				mBayNameTextViewPtr->setVisible(true);
-				mBayNameTextViewPtr->setText(babyList[0]["relative_member_name"].asCString());
-				mBayNameTextViewPtr->setTextColor(redDeepColour);
-
-				// 婴儿出生日期
-				mBabyBirTextViewPtr->setVisible(true);
-				string babyBirStr = LANGUAGEMANAGER->getValue("BirTime");
-				string babyBir = babyList[0]["relative_birthday"].asString();
-				if (babyBir != "") {
-					babyBir = babyBir.substr(0, 10);
-					time_t timet = stoi(babyBir);
-					struct tm *t = gmtime(&timet);
-					char pDate[25];
-					sprintf(pDate,"%d-%02d-%02d",
-							1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday);
-					babyBir = pDate;
-				}
-				babyBirStr += babyBir;
-				mBabyBirTextViewPtr->setText(babyBirStr);
-
-				mBabySexTextViewPtr->setVisible(true);
-				mBabySexTextViewPtr->setText(LANGUAGEMANAGER->getValue("Woman"));
-				mBabySexTextViewPtr->setBackgroundColor(redDeepColour);
-
-				// 婴儿姓名
-				mBabyNameTextView2Ptr->setVisible(true);
-				mBabyNameTextView2Ptr->setText(babyList[1]["relative_member_name"].asCString());
-				mBabyNameTextView2Ptr->setTextColor(redDeepColour);
-
-				// 婴儿出生日期
-				mBabyBirTextView2Ptr->setVisible(true);
-				string babyBir2Str = LANGUAGEMANAGER->getValue("BirTime");
-				string babyBir2 = babyList[1]["relative_birthday"].asString();
-				babyBir2 = babyBir2.substr(0, 10);
-				if (babyBir != "") {
-					time_t timet = stoi(babyBir2);
-					struct tm *t = gmtime(&timet);
-					char pDate[25];
-					sprintf(pDate,"%d-%02d-%02d",
-							1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday);
-					babyBir2 = pDate;
-				}
-				babyBir2Str += babyBir2;
-				mBabyBirTextView2Ptr->setText(babyBir2Str);
-
-				mBabySexTextView2Ptr->setVisible(true);
-				mBabySexTextView2Ptr->setText(LANGUAGEMANAGER->getValue("Woman"));
-				mBabySexTextView2Ptr->setBackgroundColor(redDeepColour);
+				mBabyPicRightPainterPtr->setBackgroundPic("/main/nv_right.png");
+				mBabyPicRightPainterPtr->setVisible(true);
+				mBabyPicLeftPainterPtr->setBackgroundPic("/main/nv_left.png");
+				mBabyPicLeftPainterPtr->setVisible(true);
 			}
 
 		}
 		else {
 			// 背景
-			mMainPainterPtr->setBackgroundColor(buleLightColour);
-
-			// 房间
-//			mPainterInfoPtr->setBackgroundPic("/main/title_blue.png");
-			mPainterInfoPtr->setBackgroundColor(buleDeepColour);
-
-			// 用户
-			mCustomerNameTextViewPtr->setTextColor(buleDeepColour);
-			mDescTextViewPtr->setBackgroundColor(buleDeepColour);
-
-			mInDateTextViewPtr->setTextColor(buleDeepColour);
-			mOutDateTextViewPtr->setTextColor(buleDeepColour);
-			mMsgPainterPtr->setBackgroundPic("/main/msg_blue.png");
-			// 更多
-			mMoreButtonPtr->setTextColor(buleDeepColour);
+			mMainPainterPtr->setBackgroundColor(buleDeepColour);
+			mRoomNameTextViewPtr->setTextColor(buleDeepColour);
+			mCustomerInfoTextViewPtr->setBackgroundPic("main/infoBg_blue.png");
+			mCustomerNameTitleTextViewPtr->setBackgroundPic("/main/infoTitleBg_blue.png");
+			mCustomerAgeTitleTextViewPtr->setBackgroundPic("/main/infoTitleBg_blue.png");
+			mBabyInfoTextViewPtr->setBackgroundPic("main/infoBg_blue.png");
+			mBabyNameTitleTextViewPtr->setBackgroundPic("/main/infoTitleBg_blue.png");
+			mBabySexTitleTextViewPtr->setBackgroundPic("/main/infoTitleBg_blue.png");
 
 			// 设置科室名称和时间
-			setPartNameAndDateColor(buleDeepColour);
-
-			// 设置ui3界面的颜色
-			setUi3BgColor(buleDeepColour);
+			setStatusbarBdColor(buleDeepColour);
 
 			if (babyList.size() == 0) {
 				return;
 			}
 			if (babySex == BabySex.boy) {	// 只有一个男孩
 				// 主图
-				mCustomerInfoPainterPtr->setBackgroundPic("/main/boy.png");
-
-				// 婴儿姓名
-				mBayNameTextViewPtr->setVisible(true);
-				mBayNameTextViewPtr->setText(babyList[0]["relative_member_name"].asCString());
-				mBayNameTextViewPtr->setTextColor(buleDeepColour);
-
-				// 婴儿出生日期
-				mBabyBirTextViewPtr->setVisible(true);
-				string babyBirStr = LANGUAGEMANAGER->getValue("BirTime");
-				string babyBir = babyList[0]["relative_birthday"].asString();
-				babyBir = babyBir.substr(0, 10);
-				if (babyBir != "") {
-					time_t timet = stoi(babyBir);
-					struct tm *t = gmtime(&timet);
-					char pDate[25];
-					sprintf(pDate,"%d-%02d-%02d",
-							1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday);
-					babyBir = pDate;
-				}
-				babyBirStr += babyBir;
-				mBabyBirTextViewPtr->setText(babyBirStr);
-
-				mBabySexTextViewPtr->setVisible(true);
-				mBabySexTextViewPtr->setText(LANGUAGEMANAGER->getValue("Man"));
-				mBabySexTextViewPtr->setBackgroundColor(buleDeepColour);
-
-
-				mBabyNameTextView2Ptr->setVisible(false);
-				mBabyBirTextView2Ptr->setText("");
-				mBabySexTextView2Ptr->setVisible(false);
+				mBabyPicRightPainterPtr->setBackgroundPic("/main/nan_right.png");
+				mBabyPicRightPainterPtr->setVisible(true);
+				mBabyPicLeftPainterPtr->setVisible(false);
 
 			}
 			else if (babySex == BabySex.twins_boy) {	// 双胞胎男孩
 				// 主图
-				mCustomerInfoPainterPtr->setBackgroundPic("/main/twins_boy.png");
-
-				// 婴儿姓名
-				mBayNameTextViewPtr->setVisible(true);
-				mBayNameTextViewPtr->setText(babyList[0]["relative_member_name"].asCString());
-				mBayNameTextViewPtr->setTextColor(buleDeepColour);
-
-				// 婴儿出生日期
-				mBabyBirTextViewPtr->setVisible(true);
-				string babyBirStr = LANGUAGEMANAGER->getValue("BirTime");
-				string babyBir = babyList[0]["relative_birthday"].asString();
-				if (babyBir != "") {
-					babyBir = babyBir.substr(0, 10);
-					time_t timet = stoi(babyBir);
-					struct tm *t = gmtime(&timet);
-					char pDate[25];
-					sprintf(pDate,"%d-%02d-%02d",
-							1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday);
-					babyBir = pDate;
-				}
-				babyBirStr += babyBir;
-				mBabyBirTextViewPtr->setText(babyBirStr);
-
-				mBabySexTextViewPtr->setVisible(true);
-				mBabySexTextViewPtr->setText(LANGUAGEMANAGER->getValue("Man"));
-				mBabySexTextViewPtr->setBackgroundColor(buleDeepColour);
-
-				// 婴儿姓名
-				mBabyNameTextView2Ptr->setVisible(true);
-				mBabyNameTextView2Ptr->setText(babyList[1]["relative_member_name"].asCString());
-				mBabyNameTextView2Ptr->setTextColor(buleDeepColour);
-
-				// 婴儿出生日期
-				mBabyBirTextView2Ptr->setVisible(true);
-				string babyBir2Str = LANGUAGEMANAGER->getValue("BirTime");
-				string babyBir2 = babyList[1]["relative_birthday"].asString();
-				babyBir2 = babyBir2.substr(0, 10);
-				if (babyBir != "") {
-					time_t timet = stoi(babyBir2);
-					struct tm *t = gmtime(&timet);
-					char pDate[25];
-					sprintf(pDate,"%d-%02d-%02d",
-							1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday);
-					babyBir2 = pDate;
-				}
-				babyBir2Str += babyBir2;
-				mBabyBirTextView2Ptr->setText(babyBir2Str);
-
-				mBabySexTextView2Ptr->setVisible(true);
-				mBabySexTextView2Ptr->setText(LANGUAGEMANAGER->getValue("Man"));
-				mBabySexTextView2Ptr->setBackgroundColor(buleDeepColour);
+				mBabyPicRightPainterPtr->setBackgroundPic("/main/nan_right.png");
+				mBabyPicRightPainterPtr->setVisible(true);
+				mBabyPicLeftPainterPtr->setBackgroundPic("/main/nan_left.png");
+				mBabyPicLeftPainterPtr->setVisible(true);
 
 			}
 			else if (babySex == BabySex.twins_boy_and_girl) {	// 龙凤胎
 				// 主图
-				mCustomerInfoPainterPtr->setBackgroundPic("/main/twins_boy_girl.png");
-
-				for (int i = 0; i < babyList.size(); i++) {
-					if (babyList[i]["relative_sex"].asInt() == 1) {
-						// 婴儿姓名
-						mBayNameTextViewPtr->setVisible(true);
-						mBayNameTextViewPtr->setText(babyList[i]["relative_member_name"].asCString());
-						mBayNameTextViewPtr->setTextColor(buleDeepColour);
-
-						// 婴儿出生日期
-						mBabyBirTextViewPtr->setVisible(true);
-						string babyBirStr = LANGUAGEMANAGER->getValue("BirTime");
-						string babyBir = babyList[i]["relative_birthday"].asString();
-						if (babyBir != "") {
-							babyBir = babyBir.substr(0, 10);
-							time_t timet = stoi(babyBir);
-							struct tm *t = gmtime(&timet);
-							char pDate[25];
-							sprintf(pDate,"%d-%02d-%02d",
-									1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday);
-							babyBir = pDate;
-						}
-						babyBirStr += babyBir;
-						mBabyBirTextViewPtr->setText(babyBirStr);
-
-						mBabySexTextViewPtr->setVisible(true);
-						mBabySexTextViewPtr->setText(LANGUAGEMANAGER->getValue("Man"));
-						mBabySexTextViewPtr->setBackgroundColor(buleDeepColour);
-					}
-					else {
-						// 婴儿姓名
-						mBabyNameTextView2Ptr->setVisible(true);
-						mBabyNameTextView2Ptr->setText(babyList[i]["relative_member_name"].asCString());
-						mBabyNameTextView2Ptr->setTextColor(redDeepColour);
-
-						// 婴儿出生日期
-						mBabyBirTextView2Ptr->setVisible(true);
-						string babyBir2Str = LANGUAGEMANAGER->getValue("BirTime");
-						string babyBir2 = babyList[i]["relative_birthday"].asString();
-						babyBir2 = babyBir2.substr(0, 10);
-						if (babyBir2 != "") {
-							time_t timet = stoi(babyBir2);
-							struct tm *t = gmtime(&timet);
-							char pDate[25];
-							sprintf(pDate,"%d-%02d-%02d",
-									1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday);
-							babyBir2 = pDate;
-						}
-						babyBir2Str += babyBir2;
-						mBabyBirTextView2Ptr->setText(babyBir2Str);
-
-						mBabySexTextView2Ptr->setVisible(true);
-						mBabySexTextView2Ptr->setText(LANGUAGEMANAGER->getValue("Woman"));
-						mBabySexTextView2Ptr->setBackgroundColor(redDeepColour);
-					}
-				}
+				mBabyPicRightPainterPtr->setBackgroundPic("/main/nv_right.png");
+				mBabyPicRightPainterPtr->setVisible(true);
+				mBabyPicLeftPainterPtr->setBackgroundPic("/main/nan_left.png");
+				mBabyPicLeftPainterPtr->setVisible(true);
 			}
 		}
 	}
@@ -699,7 +479,7 @@ public:
 			if (currentVersionNo < responseVersionNo) {
 				Intent* intent = new Intent();
 				intent->putExtra(appUpdate, "true");
-				EASYUICONTEXT->openActivity("DeviceUpdateActivity", intent);
+				EASYUICONTEXT->openActivity("updateActivity", intent);
 			}
 		}
 
@@ -969,8 +749,27 @@ static bool onmainActivityTouchEvent(const MotionEvent &ev) {
 	return false;
 }
 
-static bool onButtonClick_MoreButton(ZKButton *pButton) {
-    LOGD(" ButtonClick MoreButton !!!\n");
-	EASYUICONTEXT->openActivity("ui3Activity");
-    return false;
+
+static int getListItemCount_BabyInfoListView(const ZKListView *pListView) {
+    //LOGD("getListItemCount_BabyInfoListView !\n");
+    return babyList.size();
+}
+
+static void obtainListItemData_BabyInfoListView(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index) {
+    //LOGD(" obtainListItemData_ BabyInfoListView  !!!\n");
+	ZKListView::ZKListSubItem* babyName = pListItem->findSubItemByID(ID_MAIN_BabyNameSubItem);
+	ZKListView::ZKListSubItem* babySex = pListItem->findSubItemByID(ID_MAIN_BabySexSubItem);
+
+	babyName->setText(babyList[index]["relative_member_name"].asCString());
+	int babySexInt = babyList[index]["relative_sex"].asInt();
+	if (babySexInt == 1) {
+		babySex->setText(LANGUAGEMANAGER->getValue("Boy"));
+	}
+	else if (babySexInt == 0) {
+		babySex->setText(LANGUAGEMANAGER->getValue("Girl"));
+	}
+}
+
+static void onListItemClick_BabyInfoListView(ZKListView *pListView, int index, int id) {
+    //LOGD(" onListItemClick_ BabyInfoListView  !!!\n");
 }

+ 28 - 17
jni/logic/sipTestLogic.cc

@@ -49,12 +49,10 @@ class RecordTest : public Thread {
 	void recordAudio() {
         file = wavfile_write_open("/mnt/usb1/record.wav");
 
-        //设置录音(输入)音量
-        zk_audio_input_set_volume_native(0, 0);
-        zk_audio_input_set_volume_native(1, zk_audio_input_volume_native_max());
-
         if (0 != zk_audio_input_init(2, 8000)) {
             LOGD("audio input init failed");
+    	    mRecordTestButtonPtr->setText(LANGUAGEMANAGER->getValue("RecordFailed"));
+    	    mRecordTestButtonPtr->setSelected(false);
             return;
         }
 //        //aec apc 初始化
@@ -66,9 +64,9 @@ class RecordTest : public Thread {
         buf[1] = (uint8_t*)malloc(buf_len);
 
         time_t deadline = time(NULL) + 5;
-        int n = 0;
         while (time(NULL) < deadline) {
         	zk_audio_input_get_frame((uint8_t**)buf);
+
             wavfile_write(file, ( short*) buf[1],
                 ZK_AUDIO_NUMBER_OF_SAMPLES_PER_FRAME);
         }
@@ -78,7 +76,7 @@ class RecordTest : public Thread {
         zk_audio_input_deinit();
         wavfile_write_close(file);
 
-		mRecordTestTextViewPtr->setText(LANGUAGEMANAGER->getValue("RecordPlay"));
+		mRecordTestButtonPtr->setText(LANGUAGEMANAGER->getValue("RecordPlay"));
     	playAudio();
 	}
 	void playAudio() {
@@ -100,7 +98,6 @@ class RecordTest : public Thread {
 	    uint8_t buffer[256];
 
 	    player.Play();
-	    int m = 0;
 	    while (!ifs.eof()) {
 	      ifs.read((char*)buffer, int(sizeof(buffer)));
 	      int n = ifs.gcount();
@@ -109,13 +106,13 @@ class RecordTest : public Thread {
 	    ifs.close();
 	    player.Stop();
 
-		mRecordTestTextViewPtr->setText(LANGUAGEMANAGER->getValue("RecordStop"));
+		mRecordTestButtonPtr->setText(LANGUAGEMANAGER->getValue("RecordStop"));
 	    mRecordTestButtonPtr->setSelected(false);
 	}
 
 	void Record() {
 		if(!isRunning()) {
-			mRecordTestTextViewPtr->setText(LANGUAGEMANAGER->getValue("RecordStart"));
+			mRecordTestButtonPtr->setText(LANGUAGEMANAGER->getValue("RecordStart"));
 			play_ = true;
 			this->run("recordTest");
 		}
@@ -180,7 +177,6 @@ static void onUI_init(){
 /**
  * 当切换到该界面时触发
  */
-
 static void onUI_intent(const Intent *intentPtr) {
     if (intentPtr != NULL) {
         //TODO
@@ -191,6 +187,10 @@ static void onUI_intent(const Intent *intentPtr) {
  * 当界面显示时触发
  */
 static void onUI_show() {
+	EASYUICONTEXT->hideNaviBar();
+	EASYUICONTEXT->hideStatusBar();
+	// 切换成SIP模式
+	StoragePreferences::putString(STORE_SIGNAL_TYPE, "SIP");
 
 }
 
@@ -205,6 +205,11 @@ static void onUI_hide() {
  * 当界面完全退出时触发
  */
 static void onUI_quit() {
+	LOGD(">>>>>>>>>>> sip test quit !!!\n");
+	EASYUICONTEXT->showStatusBar();
+	EASYUICONTEXT->showNaviBar();
+	// 切换回TCP模式
+	StoragePreferences::putString(STORE_SIGNAL_TYPE, "TCP");
 
 }
 
@@ -269,16 +274,14 @@ static bool onButtonClick_CallButton(ZKButton *pButton) {
 	std::string od_number = StoragePreferences::getString(SIP_REG_DOOR_ACCOUNT, SIP_REG_DOOR_ACCOUNT_DEFAULT);
 	std::string od_number_uri = URI(od_number, domain, port);
 	LOGD("od_number_uri: %s", od_number_uri.c_str());
-	GetTelephone()->MakeCall(od_number_uri);
-    return false;
-}
 
-static bool onButtonClick_sys_back(ZKButton *pButton) {
-    LOGD(" ButtonClick sys_back !!!\n");
-	// 切换回TCP模式
-	StoragePreferences::putString(STORE_SIGNAL_TYPE, "TCP");
+	voip::CallSetting setting;
+	setting.enable_video = false;
+
+	GetTelephone()->MakeCall(od_number_uri, setting);
     return false;
 }
+
 static void onCheckedChanged_Checkbox1(ZKCheckBox* pCheckBox, bool isChecked) {
     LOGD(" Checkbox Checkbox1 checked %d", isChecked);
 }
@@ -302,3 +305,11 @@ static bool onButtonClick_RecordTestButton(ZKButton *pButton) {
 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);
+}

+ 103 - 123
jni/logic/startLogic.cc

@@ -6,6 +6,7 @@
 #include "net/tcp_client.h"
 #include "net/tcp_model.h"
 #include "server/http_server.h"
+#include "base/strings.hpp"
 
 #include "utils/GpioHelper.h"
 #include "utils/TimeHelper.h"
@@ -20,15 +21,15 @@
 static bool sosTimerRegistered = true;
 static bool isSleepTimerRegistered = false;		// 是否开启息屏定时任务
 static bool isSleep = false;	// 是否在息屏
+static bool isNursing = false;	// 用于启动时判断是否处于护理状态
 static string callTid = "";
-#define HELP_TIMER_HANDLE 3	// 增援的定时器id
+#define FUNCTION_TIMER_HANDLE 3	// 增援的定时器id
 #define SOS_CLICK_TIME_HANDLE 4	// sos的定时器id
 #define SOS_LAMP_TIME_HANDLE 5	// sos的门灯定时器id
-#define NURSING_TIME_HANDLE 6	// 护理的定时器id
 #define EVENT_TIME_HANDLE 8		// 事件定时器
 #define SLEEP_STRAT_TIME_HANDLE 9	// 息屏
 #define SYS_RESTART 10	// 重启
-
+#define PROMPT_TIME_HANDLE 11	// 提示语
 
 #define HTTP_SERVER_PORT  80
 
@@ -62,6 +63,7 @@ namespace {
 				//EASYUICONTEXT->goHome();
 				EASYUICONTEXT->openActivity("callActivity");
 				CloseUi();
+				sleep(1);
 			}
 
 			voip::CallInfo info = GetTelephone()->GetCallInfo();
@@ -69,6 +71,18 @@ namespace {
 			LOGD("info.remote_uri == %s", info.remote_uri.c_str());
 			LOGD("info.remote_contact == %s", info.remote_contact.c_str());
 
+			string sipId = info.remote_uri.substr(info.remote_uri.find(":") + 1, info.remote_uri.find("@") - info.remote_uri.find(":") - 1);
+			LOGD("sipId == %s", sipId.c_str());
+			if (sipId != "0000000000") {
+				const char* currentAppName = EASYUICONTEXT->currentAppName();
+				string _currentAppName = currentAppName;
+				if (_currentAppName != "callActivity" || _currentAppName != "sipTestActivity") {
+					telephone->Hangup();
+					LOGD("=================> 不在通话界面,直接挂断!");
+					return;
+				}
+			}
+
 			if (state == voip::STATE_CALL_INCOMING) {
 				if (telephone->GetCallCount() > 1) {
 					LOGD("call count > 1, return");
@@ -90,7 +104,8 @@ namespace {
 				return;
 			}
 			if (StoragePreferences::getString(STORE_SIGNAL_TYPE, SIGNAL_TYPE) == "SIP"){
-				EASYUICONTEXT->goHome();
+				//EASYUICONTEXT->goHome();
+				EASYUICONTEXT->goBack();
 			}
 
 			//保存通话记录
@@ -135,26 +150,33 @@ namespace {
 	}
 }
 
+
 // 门灯还原
-void doorLampRestoration() {
-	if (StoragePreferences::getBool(STORE_NURSING_TYPE, false)) {
-		std::string color = StoragePreferences::getString(STORE_NURSING_COLOR_RGB, "010");
-		std::string heartStr;
-		if (color != "" && color.size() == 3) {
-			heartStr = "DOORLED," + color + "F";
-		} else {
-			heartStr = "DOORLED,010F";
+void lightControl(std::string typeStr, std::string lightColorStr) {
+	// 类型是门灯,并且还原成白色灯
+	std::string heartStr;
+	if (typeStr == "DOORLED" && lightColorStr == "000F") {
+		//护理状态,需要还原成护理灯
+		if (StoragePreferences::getBool(STORE_NURSING_TYPE, false)) {
+			std::string color = StoragePreferences::getString(STORE_NURSING_COLOR_RGB, "010");
+			if (color != "" && color.size() == 3) {
+				heartStr = "DOORLED," + color + "F";
+			} else {
+				heartStr = "DOORLED,010F";
+			}
 		}
-		const char* sendMsg = heartStr.c_str();
-		sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
-	}
-	else {
-		// 收到ACCEPT,需要灭灯
-		// 还原成无灯光的状态
-		std::string heartStr = "DOORLED,000F";
-		const char* sendMsg = heartStr.c_str();
-		sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+		else {
+			// 还原成无灯光的状态
+			heartStr = "DOORLED,000F";
+		}
+	} else {
+		heartStr = typeStr + "," + lightColorStr;
 	}
+
+	LOGD("=====> the heartStr == %s", heartStr.c_str());
+	const char* sendMsg = heartStr.c_str();
+	sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+
 }
 
 // 接收tcp消息
@@ -193,15 +215,6 @@ void handleMsg(byte* inBytes){
 
 			dataRefresh();
 		}
-	} else if (tcpModel.type == TcpType::REINFORCE){
-		if (tcpModel.action == ReinforceAction::RESPONSED){
-
-			//回调
-			TcpCallback callback = TcpCacheManager::instance()->getFunc(tcpModel.tid);
-			if (callback.tid != "0"){
-				callback.onSuccess(tcpModel.json);
-			}
-		}
 	} else if (tcpModel.type == TcpType::DEVICE){
 		if (tcpModel.action == DeviceAction::APP_UPDATE){	//软件升级
 			if (isSleep) {
@@ -210,7 +223,7 @@ void handleMsg(byte* inBytes){
 			}
 			Intent* intent = new Intent();
 			intent->putExtra(appUpdate, "true");
-			EASYUICONTEXT->openActivity("DeviceUpdateActivity", intent);
+			EASYUICONTEXT->openActivity("updateActivity", intent);
 		}
 		else if (tcpModel.action == DeviceAction::RESTART) {	// 重启设备
 			const char* req = "-1";
@@ -218,6 +231,13 @@ void handleMsg(byte* inBytes){
 			sync();
 			reboot(RB_AUTOBOOT);
 		}
+        else if (tcpModel.action == DeviceAction::REBOOT) {
+            const char* req = "-1";
+            TcpClient::instance()->sendMsg(req);
+            //重启
+            sync();
+            reboot(RB_AUTOBOOT);
+        }
 		else if (tcpModel.action == DeviceAction::DEVICE_REFRESH) {	// 设备刷新
 			dataRefresh();
 		}
@@ -241,14 +261,11 @@ void handleMsg(byte* inBytes){
 	} else if (tcpModel.type == TcpType::VOICE){
 		if (tcpModel.action == VoiceAction::FAILED){
 			callActivityFinish(CallFinishType::FAILED);
-			
+
 		} else if (tcpModel.action == VoiceAction::SUCCESS){
 			CallingStatus::instance()->setTcpModel(tcpModel);	// 只有呼叫成功才闪红灯
 
-			std::string heartStr = "DOORLED,200F";	// 红灯闪烁
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
-
+			lightControl("DOORLED", "200F");
 		} else if (tcpModel.action == VoiceAction::ACCEPT){
 			if (CallingStatus::instance()->busy()){
 				CallingStatus::instance()->setTcpModel(tcpModel);
@@ -258,29 +275,24 @@ void handleMsg(byte* inBytes){
 				buildSIP(toSipId);
 			}
 
-			// 还原成无灯光的状态
-			std::string heartStr = "DOORLED,000F";
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
-
+			// 进行门灯还原
+			lightControl("DOORLED", "000F");
 		} else if (tcpModel.action == VoiceAction::REJECT){
 			if (CallingStatus::instance()->busy()){
 				callActivityFinish(CallFinishType::REJECT);
 
-				// 还原成无灯光的状态
-				std::string heartStr = "DOORLED,000F";
-				const char* sendMsg = heartStr.c_str();
-				sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+				// 进行门灯还原
+				lightControl("DOORLED", "000F");
 			}
 		} else if (tcpModel.action == VoiceAction::CANCEL){
-			//CallingStatus::instance()->setTcpModel(tcpModel);
 			if (CallingStatus::instance()->busy()){
 				callActivityFinish(CallFinishType::CANCEL);
 			}
+
 		} else if (tcpModel.action == VoiceAction::CALLING){
-			//CallingStatus::instance()->setTcpModel(tcpModel);
 			//对方忙线
 			callActivityFinish(CallFinishType::BUSY);
+
 		} else if (tcpModel.action == VoiceAction::CALL){
 			//我方忙线判断
 			if (CallingStatus::instance()->busy()){
@@ -309,19 +321,15 @@ void handleMsg(byte* inBytes){
 	else if (tcpModel.type == TcpType::SOS) {
 		if (tcpModel.action == SosAction::CANCEL) {
 			// SOS还原成无灯光的状态
-			std::string heartStr = "ULED,0F";
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
-
-			// 门灯还原成无灯光的状态
-			std::string heartStr2 = "DOORLED,000F";
-			const char* sendMsg2 = heartStr2.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg2), strlen(sendMsg2));
+			lightControl("ULED", "0F");
+			// 进行门灯还原
+			lightControl("DOORLED", "000F");
 			mActivityPtr->unregisterUserTimer(SOS_LAMP_TIME_HANDLE);
 		}
 	}
 	else if (tcpModel.type == TcpType::SIDE) {
 		if (tcpModel.action == SideAction::NURSING) {
+			StoragePreferences::putString(STORE_NURSING_INTERACTION_ID, tcpModel.json["id"].asString());
 
 			// 收到nursing,需要把通话给挂断了
 			voip::CallInfo info = GetTelephone()->GetCallInfo();
@@ -341,62 +349,43 @@ void handleMsg(byte* inBytes){
 			}
 
 			std::string color = StoragePreferences::getString(STORE_NURSING_COLOR_RGB, "010");
-			std::string heartStr;
 			if (color != "" && color.size() == 3) {
-				heartStr = "DOORLED," + color + "F";
+				color = color + "F";
 			} else {
-				heartStr = "DOORLED,010F";
+				color = "010F";
 			}
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
-
-			// 删除这个定时器
-			mActivityPtr->unregisterUserTimer(NURSING_TIME_HANDLE);
-			LOGD("收到服务器返回的消息,关闭Nursing的定时器");
-
+			lightControl("DOORLED", color);
 		}
 		else if (tcpModel.action == SideAction::NURSING_END) {
 			// 收到nursing_end
-
-			std::string heartStr = "DOORLED,000F";
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+			lightControl("DOORLED", "000F");
 		}
 		else if (tcpModel.action == SideAction::CALL) {
 			// 收到CALL,需要亮红灯
-			std::string heartStr = "DOORLED,200F";	// 红灯闪烁
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+			lightControl("DOORLED", "200F");
 		}
 		else if (tcpModel.action == SideAction::ACCEPT) {
 			// 进行门灯还原
-			doorLampRestoration();
+			lightControl("DOORLED", "000F");
 		}
 		else if (tcpModel.action == SideAction::CANCEL) {
 			// 进行门灯还原
-			doorLampRestoration();
+			lightControl("DOORLED", "000F");
 
 		}
 		else if (tcpModel.action == SideAction::SOS_CALL) {
 			// 收到SOS_CALL,需要亮红灯
-			// SOS亮红灯
-			string heartStr = "ULED,1F";
 			// 门灯亮红灯
-			std::string heartStr2 = "DOORLED,200F";
-			const char* sendMsg2 = heartStr2.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg2), strlen(sendMsg2));
+			lightControl("DOORLED", "200F");
 
 			sosTimerRegistered = false;
 			mActivityPtr->registerUserTimer(SOS_CLICK_TIME_HANDLE, 10000);		// 10秒后才能触发
 			mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
 
-			int deviceId = tcpModel.from_id;
-			string fromFrameFullName = tcpModel.json["fromFrameFullName"].asString();
 		}
 		else if (tcpModel.action == SideAction::SOS_CANCEL) {
-
 			// 进行门灯还原
-			doorLampRestoration();
+			lightControl("DOORLED", "000F");
 		}
 	}
 	else if (tcpModel.type == TcpType::CALLBACK) {
@@ -428,9 +417,7 @@ void handleMsg(byte* inBytes){
 				callActivityFinish(CallFinishType::FAILED);
 			}
 		}
-
 	}
-
 }
 
 bool getSleepTimerRegistered() {
@@ -471,6 +458,9 @@ void scrrenOn() {
 	BRIGHTNESSHELPER->screenOn();
 }
 
+void setCallTid(std::string tid) {
+	callTid = tid;
+}
 
 //================================= IO 口操作
 //紧急按钮灯,明/灭
@@ -589,6 +579,7 @@ static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
 		{2, 30*1000}
 };
 
+
 /**
  * 当界面构造时触发
  */
@@ -614,6 +605,16 @@ static void onUI_init(){
 	//开启网页
 	httpServer.RunAsync(HTTP_SERVER_PORT);
 
+	// 启动的时候更改为tcp模式
+	StoragePreferences::putString(STORE_SIGNAL_TYPE, "TCP");
+
+	if (StoragePreferences::getBool(STORE_NURSING_TYPE, false)) {
+		LOGD("===============> 关闭护理状态");
+		StoragePreferences::putBool(STORE_NURSING_TYPE, false);
+		isNursing = true;
+	}
+
+
 	//请求版本号
 //	if(UartContext::Uart3IsOpen()) {
 //		string heartStr = "ASK,VNF-0";
@@ -659,6 +660,7 @@ static void onUI_intent(const Intent *intentPtr) {
  * 当界面显示时触发
  */
 static void onUI_show() {
+	StoragePreferences::putString(STORE_SIGNAL_TYPE, "TCP");
 	//进入主界面
 	EASYUICONTEXT->openActivity("mainActivity");
 }
@@ -770,19 +772,16 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 					tcpModel.type = TcpType::SOS;
 					tcpModel.action = SosAction::CALL;
 					tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID, 0);
+					tcpModel.tid = base::format("t%d",TimeHelper::getCurrentTime());
 					std::string req = getTcpModelString(tcpModel);
 					LOGD("TCP SOS_CALL : %s",req.c_str());
 					TcpClient::instance()->sendMsg(req.c_str());
 
-
 					// SOS亮红灯
-					heartStr = "ULED,1F";
+					lightControl("ULED", "1F");
 					// 门灯亮红灯
-					std::string heartStr2 = "DOORLED,200F";
-					const char* sendMsg2 = heartStr2.c_str();
-					sendProtocolTo(UART_TTYS2, (byte*)(sendMsg2), strlen(sendMsg2));
+					lightControl("DOORLED", "200F");
 
-					sosTimerRegistered = false;
 					mActivityPtr->registerUserTimer(SOS_CLICK_TIME_HANDLE, 10000);		// 10秒后才能触发
 					mActivityPtr->registerUserTimer(SOS_LAMP_TIME_HANDLE, 120000);		// 2分钟后才能触发
 				}
@@ -795,7 +794,7 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 				if (isSleep) {
 					scrrenOn();
 				}
-				heartStr = "DOORLED,100F";
+//				heartStr = "DOORLED,000F";
 			}
 			else if (data.cmd == "KEY>") {	// key>是面板挂断按钮
 				if (!StoragePreferences::getInt(STORE_SCREEN_LIGHT, 0)) {
@@ -808,9 +807,7 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 						if (CallingStatus::instance()->busy()){
 							callActivityFinish(CallFinishType::A1CLICK);
 
-							heartStr = "DOORLED,000F";
-							const char* sendMsg = heartStr.c_str();
-							sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+							lightControl("DOORLED", "000F");
 						}
 					}
 				}
@@ -821,9 +818,7 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 					if (CallingStatus::instance()->busy()){
 						callActivityFinish(CallFinishType::A1CLICK);
 
-						heartStr = "DOORLED,000F";
-						const char* sendMsg = heartStr.c_str();
-						sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+						lightControl("DOORLED", "000F");
 					}
 				}
 			}
@@ -831,18 +826,20 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 				if (isSleep) {
 					scrrenOn();
 				}
-				heartStr = "DOORLED,111F";
+//				heartStr = "DOORLED,111F";
+				lightControl("DOORLED", "111F");
 			}
 			else {
 				if (isSleep) {
 					scrrenOn();
 				}
-				heartStr = "DOORLED,000F";
+//				heartStr = "DOORLED,000F";
+				lightControl("DOORLED", "000F");
 			}
 
 			// 发送给板子的指令
-			const char* sendMsg = heartStr.c_str();
-			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
+//			const char* sendMsg = heartStr.c_str();
+//			sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
 		}
 	}
 }
@@ -878,19 +875,6 @@ static bool onUI_Timer(int id){
 		TcpClient::instance()->sendMsg(req);
 	}
 		break;
-//	case HELP_TIMER_HANDLE:
-//	{
-//		SetPainterInfo(0xFFFFFFFF,"");
-//		setHelpButton("/button/button_help2.png", true);
-//		setReinforce(false);		// 设置增援状态为false
-////		//取消计时
-////		if (isHelpTimerRegistered) {
-////			mActivityPtr->unregisterUserTimer(HELP_TIMER_HANDLE);
-////			isHelpTimerRegistered = false;
-////		 }
-//		return false;
-//	}
-//		break;
 	case SOS_CLICK_TIME_HANDLE: {
 		sosTimerRegistered = true;
 		return false;
@@ -899,14 +883,10 @@ static bool onUI_Timer(int id){
 
 	case SOS_LAMP_TIME_HANDLE: {
 		// SOS还原成无灯光的状态
-		std::string heartStr = "ULED,0F";
-		const char* sendMsg = heartStr.c_str();
-		sendProtocolTo(UART_TTYS2, (byte*)(sendMsg), strlen(sendMsg));
-
-		// 门灯还原成无灯光的状态
-		std::string heartStr2 = "DOORLED,000F";
-		const char* sendMsg2 = heartStr2.c_str();
-		sendProtocolTo(UART_TTYS2, (byte*)(sendMsg2), strlen(sendMsg2));
+		lightControl("ULED", "0F");
+
+		// 进行门灯还原
+		lightControl("DOORLED", "000F");
 		return false;
 	}
 		break;

+ 92 - 28
jni/logic/statusbar.cc

@@ -13,6 +13,7 @@
 #include "service/BusinessConfig.h"
 #include "net/tcp_client.h"
 #include <sys/reboot.h>
+#include <net/NetUtils.h>
 /*
  *此文件由GUI工具生成
  *文件功能:用于处理用户的逻辑相应代码
@@ -122,7 +123,7 @@ static void _dhcp_lease_cb(dhcp_lease_type_e type, void *data) {
 
 
 void NavibarSetPartName(const std::string& partName){
-	mPartNamePtr->setText(partName);
+	mPartNameButtonPtr->setText(partName);
 }
 
 static int netOffCount = 0;	//断网计数,每秒+1
@@ -166,30 +167,10 @@ static void updateNetState(){
 			mPainter1Ptr->setBackgroundColor(0xFF949494);
 		}
 		break;
+    default:
+        mPainter1Ptr->setBackgroundColor(0xFF949494);
+        break;
 	}
-
-//	EEthConnState connState = ETHERNETMANAGER->getConnState();
-//	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;
-//	}
 }
 
 void OnRegisterStateChanged(voip::Telephone* telephone, int code){
@@ -215,6 +196,75 @@ void tcpStatus(){
 	}
 }
 
+int pingCount = 0;
+class PingThread: public Thread {
+public:
+	 /**
+	* 线程创建成功后会调用该函数,可以在该函数中做一些初始化操作
+	* return true   继续线程
+	*        false  退出线程
+	*/
+   virtual bool readyToRun() {
+	 LOGD("Ping Thread 已经创建完成");
+	 return true;
+   }
+
+   /**
+	* 线程循环函数
+	*
+	* return true  继续线程循环
+	*        false 推出线程
+	*/
+   virtual bool threadLoop() {
+	 //为了方便观察,这里添加休眠500ms
+	 usleep(1 * 60 * 1000 * 1000);
+
+	 //检查是否有退出线程的请求,如果有,则返回false,立即退出线程
+	 if (exitPending()) {
+	   return false;
+	 }
+
+	 LOGD("Ping 线程循环函数");
+
+	 if (ETHERNETMANAGER->isAutoMode()) {
+		 string serverIp = StoragePreferences::getString(STORE_GATEWAY, serverIP);
+		 LOGD("===================> ping %s", serverIp.c_str());
+		 string pingStr = "ping " + serverIp + " -c 3";
+		 int result = system(pingStr.c_str());
+		 LOGD("===================> ping 服务器返回的结果:  %d", result);
+		 if (result != 0) {	// 如果不是0,就代表ping不通,需要重新请求dhcp
+			 LOGD("无法ping通服务器地址:%s", serverIp.c_str());
+             pingCount += 1;
+             LOGD("pingCount计数 == %d", pingCount);
+             if (pingCount == 3) {
+                 NetUtils::dhcpExit();
+                 usleep(20 * 1000);
+                 NetUtils::enableIfc("eth0", false);
+                 usleep(100 * 1000);
+                 NetUtils::enableIfc("eth0", true);
+                 pingCount = 0;
+             }
+         }
+         else {
+             pingCount = 0;
+         }
+	 }
+
+	 //返回真,继续下次线程循环
+	 return true;
+   }
+};
+
+
+static PingThread ping_thread;
+void pingThreadExitPending() {
+   bool result = ping_thread.isRunning();
+   if (result) {
+	   ping_thread.requestExitAndWait();
+	   LOGD("ping_thread已关闭");
+   }
+}
+
 
 int getTime(char* timeStr) {
 	int hour, minute, second;// 定义时间的各个int临时变量。
@@ -261,9 +311,8 @@ void isTimeScale(char* timeStr) {
 }
 
 
-void setPartNameAndDateColor(uint32_t color) {
-	mPartNamePtr->setTextColor(color);
-	mDateViewPtr->setTextColor(color);
+void setStatusbarBdColor(uint32_t color) {
+	mStatusbarPainterPtr->setBackgroundColor(color);
 }
 
 namespace {
@@ -359,7 +408,7 @@ static void onUI_init(){
 	//SIP
 	GetTelephone()->AddRegisteredStateListener(OnRegisterStateChanged);
 
-	mPartNamePtr->setText(StoragePreferences::getString(STORE_PARTNAME,""));
+	mPartNameButtonPtr->setText(StoragePreferences::getString(STORE_PARTNAME,""));
 
 	updateUI_time();
 
@@ -378,6 +427,8 @@ static void onUI_init(){
 	// 这里也检测网络是否连接上 (有可能启动前网络已经连接触发不到回调),启动dhcp租赁检测,之后都是根据网络的连接断开执行相应的操作
 	_start_wifi_dhcp_client();
 	_start_eth_dhcp_client();
+
+	ping_thread.run("ping");
 }
 
 /*
@@ -444,3 +495,16 @@ static bool onstatusbarActivityTouchEvent(const MotionEvent &ev) {
 	}
 	return false;
 }
+static bool onButtonClick_PartNameButton(ZKButton *pButton) {
+    LOGD(" ButtonClick PartNameButton !!!\n");
+
+	const char* currentAppName = EASYUICONTEXT->currentAppName();
+	string _currentAppName = currentAppName;
+	if (_currentAppName == "mainActivity") {
+		EASYUICONTEXT->openActivity("deviceInfoActivity");
+	}
+	else {
+		EASYUICONTEXT->goBack();
+	}
+    return false;
+}

+ 163 - 94
jni/logic/DeviceUpdateLogic.cc

@@ -1,6 +1,7 @@
 #pragma once
 #include "uart/ProtocolSender.h"
 
+#include <sys/sysinfo.h>
 #include "manager/ConfigManager.h"
 #include "net/NetManager.h"
 #include "core/update_assistant.h"
@@ -15,7 +16,35 @@
 #include "core/jhws.h"
 #include "service/BusinessConfig.h"
 #include "manager/LanguageManager.h"
-
+/*
+*此文件由GUI工具生成
+*文件功能:用于处理用户的逻辑相应代码
+*功能说明:
+*========================onButtonClick_XXXX
+当页面中的按键按下后系统会调用对应的函数,XXX代表GUI工具里面的[ID值]名称,
+如Button1,当返回值为false的时候系统将不再处理这个按键,返回true的时候系统将会继续处理此按键。比如SYS_BACK.
+*========================onSlideWindowItemClick_XXXX(int index) 
+当页面中存在滑动窗口并且用户点击了滑动窗口的图标后系统会调用此函数,XXX代表GUI工具里面的[ID值]名称,
+如slideWindow1;index 代表按下图标的偏移值
+*========================onSeekBarChange_XXXX(int progress) 
+当页面中存在滑动条并且用户改变了进度后系统会调用此函数,XXX代表GUI工具里面的[ID值]名称,
+如SeekBar1;progress 代表当前的进度值
+*========================ogetListItemCount_XXXX() 
+当页面中存在滑动列表的时候,更新的时候系统会调用此接口获取列表的总数目,XXX代表GUI工具里面的[ID值]名称,
+如List1;返回值为当前列表的总条数
+*========================oobtainListItemData_XXXX(ZKListView::ZKListItem *pListItem, int index)
+ 当页面中存在滑动列表的时候,更新的时候系统会调用此接口获取列表当前条目下的内容信息,XXX代表GUI工具里面的[ID值]名称,
+如List1;pListItem 是贴图中的单条目对象,index是列表总目的偏移量。具体见函数说明
+*========================常用接口===============
+*LOGD(...)  打印调试信息的接口
+*mTextXXXPtr->setText("****") 在控件TextXXX上显示文字****
+*mButton1Ptr->setSelected(true); 将控件mButton1设置为选中模式,图片会切换成选中图片,按钮文字会切换为选中后的颜色
+*mSeekBarPtr->setProgress(12) 在控件mSeekBar上将进度调整到12
+*mListView1Ptr->refreshListView() 让mListView1 重新刷新,当列表数据变化后调用
+*mDashbroadView1Ptr->setTargetAngle(120) 在控件mDashbroadView1上指针显示角度调整到120度
+*
+* 在Eclipse编辑器中  使用 “alt + /”  快捷键可以打开智能提示
+*/
 namespace {
 	base::UpdateAssistant assistant;
 	base::VersionInfo info;
@@ -29,6 +58,8 @@ namespace {
 
 Json::Value linuxVersionList;
 string updateUrl;
+int chooseVersionId;
+
 static void getLinuxVersionList() {
 		std::string url = getHttpGateway() + "/util/get_linux_version_list";
 
@@ -53,23 +84,23 @@ static void getLinuxVersionList() {
 
 
 void NavibarSetProgressWindowVisible(bool visible) {
-	mWindowProgressPtr->setVisible(visible);
+	mProgressWindowPtr->setVisible(visible);
 }
 
 void NavibarSetDialog1WindowVisible(bool visible) {
-	mWindowDialog1Ptr->setVisible(visible);
+	mDialogWindowPtr->setVisible(visible);
 }
 
 void NavibarSetProgressMessage(const std::string& msg) {
-	mTextViewProgressMessagePtr->setText(msg);
+	mProgressMessageTextViewPtr->setText(msg);
 }
 
 void NavibarSetDialog1Message(const std::string& msg) {
-	mTextViewDialog1Ptr->setText(msg);
+	mDialogTextViewPtr->setText(msg);
 }
 
 void NavibarProgressAnimation(bool visible) {
-	mTextViewProgressLoadingPtr->setVisible(visible);
+	mProgressLoadingTextViewPtr->setVisible(visible);
 	if (visible) {
 		loading_index = 0;
 		mActivityPtr->registerUserTimer(kTimerProgress, 100);
@@ -85,7 +116,29 @@ void NavibarDialog1ClickOk() {
 	//EASYUICONTEXT->hideNaviBar();
 }
 
+struct sysinfo info2;
+static bool isUpdate = false;
+bool getIsUpdate() {
+    return isUpdate;
+}
+
 void updateDevice(){
+    sysinfo(&info2);
+    LOGD("关闭页面前,totalram == %ld", info2.totalram);
+    LOGD("关闭页面前,freeram == %ld", info2.freeram);
+
+	EASYUICONTEXT->closeActivity("mianActivity");
+	EASYUICONTEXT->closeActivity("callActivity");
+	EASYUICONTEXT->closeActivity("settingActivity");
+	EASYUICONTEXT->closeActivity("sipTestActivity");
+	EASYUICONTEXT->closeActivity("deviceInfoActivity");
+
+    sysinfo(&info2);
+    LOGD("关闭页面后,存在延迟,totalram == %ld", info2.totalram);
+    LOGD("关闭页面后,存在延迟,freeram == %ld", info2.freeram);
+
+    isUpdate = true;
+
 	PopupService::Show([](PopupService* srv){
 
 		base::HttpClient client;
@@ -95,6 +148,10 @@ void updateDevice(){
 		std::string url = getHttpGateway() + "/" + info.url.c_str();
 		LOGD("请求更新文件的url: %s", url.c_str());
 
+        sysinfo(&info2);
+        LOGD("进行下载前,totalram == %ld", info2.totalram);
+        LOGD("进行下载前,freeram == %ld", info2.freeram);
+
 		base::HttpRequest req("GET", url, "");	// 去获取文件
 		const char* tmp_file = "/tmp/update.img";
 		base::HttpResponse response =
@@ -112,20 +169,34 @@ void updateDevice(){
 			string msg = LANGUAGEMANAGER->getValue("DownloadFailed") + "%d";
 		  srv->SetMessage(base::format(msg.c_str(), response.ErrorCode()));
 		  return -1;
+          isUpdate = false;
 		}
 
+        const char* msg = "-1";
+        TcpClient::instance()->sendMsg(msg);
+        TcpClient::instance()->closeTcp();
+
+        pingThreadExitPending();
+
 		// TODO: 应该去判断一下,下载的版本是否真的大于当前版本号
 		UpgradeMonitor::getInstance()->checkUpgradeFile("/mnt/extsd");
 		LOGD("img版本-> %s", "");
 
-		const char* msg = "-1";
-		TcpClient::instance()->sendMsg(msg);
 		system("touch /tmp/zkautoupgrade");
 		UPGRADEMONITOR->checkUpgradeFile("/tmp");
 		return 0;
 	});
 }
 
+void openInitWindow() {
+	getLinuxVersionList();
+
+	chooseVersionId = 0;
+	mInitWindowPtr->showWnd();
+}
+
+
+
 /**
  * 注册定时器
  * 填充数组用于注册定时器
@@ -140,22 +211,29 @@ static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
  * 当界面构造时触发
  */
 static void onUI_init(){
-//	mVersionPtr->setText(StoragePreferences::getString(WDKL_VERSION, GetVersion()));
-//	int currentVersionNo = StoragePreferences::getInt(JHWS_VERSION_NUMBER, GetVersionNo());
+    //Tips :添加 UI初始化的显示代码到这里,如:mText1Ptr->setText("123");
 
 	std::string currentVersion = getVersion();
 	int currentVersionNo = getVersionNo();
 
 	mVersionPtr->setText(currentVersion);	// 写入界面的版本
 	mVersionNoPtr->setText(to_string(currentVersionNo));	// 写入界面的版本号
-	mWindowProgressPtr->setVisible(false);
-	mWindowDialog1Ptr->setVisible(false);
+	mProgressWindowPtr->setVisible(false);
+	mDialogWindowPtr->setVisible(false);
+	mInitWindowPtr->hideWnd();
+
 }
 
 /**
  * 当切换到该界面时触发
  */
 static void onUI_intent(const Intent *intentPtr) {
+    sysinfo(&info2);
+    LOGD("跳转到升级页面,totalram == %ld", info2.totalram);
+    LOGD("跳转到升级页面,freeram == %ld", info2.freeram);
+
+    isUpdate = false;
+
     if (intentPtr != NULL) {
     	std::string _appUpdate = intentPtr->getExtra(appUpdate);
     	if (_appUpdate == "true") {
@@ -166,6 +244,9 @@ static void onUI_intent(const Intent *intentPtr) {
 			if (currentVersionNo < info.versionNo) {
 				updateDevice();
 			}
+			else {
+				EASYUICONTEXT->closeActivity("updateActivity");
+			}
     	}
     }
 }
@@ -212,10 +293,11 @@ static bool onUI_Timer(int id){
 	switch (id) {
 		case kTimerProgress: {
 				loading_index = (loading_index + 1) % 8;
-				mTextViewProgressLoadingPtr->setBackgroundPic(
+				mProgressLoadingTextViewPtr->setBackgroundPic(
 						base::format("loading/%d.png", loading_index).c_str());
 			}
 			break;
+
 		default:
 			break;
 	}
@@ -231,7 +313,7 @@ static bool onUI_Timer(int id){
  *         false
  *            触摸事件将继续传递到控件上
  */
-static bool onDeviceUpdateActivityTouchEvent(const MotionEvent &ev) {
+static bool onupdateActivityTouchEvent(const MotionEvent &ev) {
     switch (ev.mActionStatus) {
 		case MotionEvent::E_ACTION_DOWN://触摸按下
 			//LOGD("时刻 = %ld 坐标  x = %d, y = %d", ev.mEventTime, ev.mX, ev.mY);
@@ -250,17 +332,58 @@ static bool onButtonClick_sys_back(ZKButton *pButton) {
     return false;
 }
 
-static bool onButtonClick_ButtonUpdate(ZKButton *pButton) {
-    LOGD(" ButtonClick ButtonUpdate !!!\n");
-    mWindow1Ptr->hideWnd();
+static int getListItemCount_DeviceTypeListView(const ZKListView *pListView) {
+    //LOGD("getListItemCount_DeviceTypeListView !\n");
+	if (linuxVersionList.size() > 4) {
+		return linuxVersionList.size();
+	}
+    return 4;
+}
+
+static void obtainListItemData_DeviceTypeListView(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index) {
+    //LOGD(" obtainListItemData_ DeviceTypeListView  !!!\n");
+	string version = linuxVersionList[index]["type_name"].asString() + "         " + linuxVersionList[index]["version_code"].asString();
+		if (version != "         ") {
+			pListItem->setText(version);
+		}
+		else {
+			pListItem->setText("");
+		}
+
+		if (index == chooseVersionId) {
+			updateUrl = linuxVersionList[chooseVersionId]["app_path"].asString();
+			pListItem->setSelected(true);
+		}
+		else {
+			pListItem->setSelected(false);
+		}
+}
+
+static void onListItemClick_DeviceTypeListView(ZKListView *pListView, int index, int id) {
+    //LOGD(" onListItemClick_ DeviceTypeListView  !!!\n");
+	chooseVersionId = index;
+	updateUrl = linuxVersionList[index]["app_path"].asString();
+}
+
+static bool onButtonClick_BackButton(ZKButton *pButton) {
+    LOGD(" ButtonClick BackButton !!!\n");
+    mInitWindowPtr->hideWnd();
+    return false;
+}
+static bool onButtonClick_FindBackButton(ZKButton *pButton) {
+    LOGD(" ButtonClick FindBackButton !!!\n");
+    EASYUICONTEXT->goBack();
+    return false;
+}
 
+static bool onButtonClick_UpdateButton(ZKButton *pButton) {
+    LOGD(" ButtonClick UpdateButton !!!\n");
     PopupService::Show([](PopupService* srv){
-    	string msg = LANGUAGEMANAGER->getValue("Searching");
+		string msg = LANGUAGEMANAGER->getValue("Searching");
 		srv->SetMessage(msg);
 		if (!NETMANAGER->getEthernetManager()->isConnected()) {
 			std::string msg = LANGUAGEMANAGER->getValue("EthernetDisconnect");
 		  srv->SetMessage(msg);
-		  mWindow1Ptr->showWnd();
 		  return -1;
 		}
 		int ret = assistant.GetLatest("bed", &info);
@@ -279,65 +402,41 @@ static bool onButtonClick_ButtonUpdate(ZKButton *pButton) {
 			msg = LANGUAGEMANAGER->getValue("IsTheLastVersion");	// 已经是最新版本
 
 		  srv->SetMessage(msg);
-		  mWindow1Ptr->showWnd();
 		  return -1;
 		}
 
 		mVersionNewPtr->setText(info.version);
 		mVersionNoNewPtr->setText(to_string(info.versionNo));
-		mWindowFindPtr->showWnd();
+		mFindWindowPtr->showWnd();
 		return 0;
 	});
-
     return false;
 }
 
-static bool onButtonClick_ButtonInstantly(ZKButton *pButton) {
-    LOGD(" ButtonClick ButtonInstantly !!!\n");
-    updateDevice();
-    return false;
-}
-static bool onButtonClick_ButtonDialog1(ZKButton *pButton) {
-    LOGD(" ButtonClick ButtonDialog1 !!!\n");
+static bool onButtonClick_InitButton(ZKButton *pButton) {
+    LOGD(" ButtonClick InitButton !!!\n");
+    Intent* intent = new Intent();
+	intent->putExtra(functionWindows, "init");
+	EASYUICONTEXT->openActivity("functionActivity", intent);
     return false;
 }
-static bool onButtonClick_ButtonInit(ZKButton *pButton) {
-    LOGD(" ButtonClick ButtonInit !!!\n");
-//	getLinuxVersionList();
-//  mWindowInitPtr->showWnd();
-	mWindowPwdPtr->showWnd();
+
+static bool onButtonClick_InstantlyButton(ZKButton *pButton) {
+    LOGD(" ButtonClick InstantlyButton !!!\n");
+    updateDevice();
     return false;
 }
-static int getListItemCount_DeviceTypeListView(const ZKListView *pListView) {
-    //LOGD("getListItemCount_DeviceTypeListView !\n");
-	if (linuxVersionList.size() > 5) {
-		return linuxVersionList.size();
-	}
-    return 5;
-}
-
-static void obtainListItemData_DeviceTypeListView(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index) {
-    //LOGD(" obtainListItemData_ DeviceTypeListView  !!!\n");
-	ZKListView::ZKListSubItem* down = pListItem->findSubItemByID(ID_DEVICEUPDATE_DownSubItem);
 
-	string version = linuxVersionList[index]["type_name"].asString() + "         " + linuxVersionList[index]["version_code"].asString();
-	if (version != "         ") {
-		pListItem->setText(version);
-		down->setText(LANGUAGEMANAGER->getValue("SoftDown"));
-	}
-	else {
-		pListItem->setText("");
-		down->setText("");
-	}
+static bool onButtonClick_DialogButton(ZKButton *pButton) {
+    LOGD(" ButtonClick DialogButton !!!\n");
+    return false;
 }
 
-static void onListItemClick_DeviceTypeListView(ZKListView *pListView, int index, int id) {
-    //LOGD(" onListItemClick_ DeviceTypeListView  !!!\n");
-
-	// 小于的时候,代表在linuxVersionList里面
-	if (linuxVersionList[index]["app_path"].asString() != "") {
-		mWindowProgressPtr->showWnd();
-		updateUrl = linuxVersionList[index]["app_path"].asString();
+static bool onButtonClick_InitUpdateButton(ZKButton *pButton) {
+    LOGD(" ButtonClick InitUpdateButton !!!\n");
+    // 小于的时候,代表在linuxVersionList里面
+	if (updateUrl != "") {
+		mProgressWindowPtr->showWnd();
 
 		PopupService::Show([](PopupService* srv){
 
@@ -364,7 +463,7 @@ static void onListItemClick_DeviceTypeListView(ZKListView *pListView, int index,
 			if (response.StatusCode() != 200) {	// 下载失败
 				string msg = LANGUAGEMANAGER->getValue("DownloadFailed") + "%d";
 			  srv->SetMessage(base::format(msg.c_str(), response.ErrorCode()));
-			  mWindowProgressPtr->hideWnd();
+			  mProgressWindowPtr->hideWnd();
 			  return -1;
 			}
 
@@ -372,42 +471,12 @@ static void onListItemClick_DeviceTypeListView(ZKListView *pListView, int index,
 			UpgradeMonitor::getInstance()->checkUpgradeFile("/mnt/extsd");
 			LOGD("img版本-> %s", "");
 
-			const char* msg = "-1";
-			TcpClient::instance()->sendMsg(msg);
+//			const char* msg = "-1";
+//			TcpClient::instance()->sendMsg(msg);
 			system("touch /tmp/zkautoupgrade");
 			UPGRADEMONITOR->checkUpgradeFile("/tmp");
 			return 0;
 		});
 	}
-}
-
-static bool onButtonClick_BackButton(ZKButton *pButton) {
-    LOGD(" ButtonClick BackButton !!!\n");
-    mWindowInitPtr->hideWnd();
-    return false;
-}
-static bool onButtonClick_FindBackButton(ZKButton *pButton) {
-    LOGD(" ButtonClick FindBackButton !!!\n");
-    EASYUICONTEXT->goBack();
-    return false;
-}
-static void onEditTextChanged_EditTextPwd(const std::string &text) {
-    //LOGD(" onEditTextChanged_ EditTextPwd %s !!!\n", text.c_str());
-}
-
-static bool onButtonClick_BtnPwdConfirm(ZKButton *pButton) {
-    LOGD(" ButtonClick BtnPwdConfirm !!!\n");
-
-    string pwd = mEditTextPwdPtr->getText();
-	// 密码为666
-	string cpwd = "666";
-    if (pwd == cpwd){
-    	getLinuxVersionList();
-    	mWindowPwdPtr->hideWnd();
-        mWindowInitPtr->showWnd();
-		return false;
-    } else {
-    	mTextPwdInfoPtr->setTextTr("PasswordWrong");
-    }
     return false;
 }

+ 0 - 149
jni/logic/warnLogic.cc

@@ -1,149 +0,0 @@
-#pragma once
-#include "uart/ProtocolSender.h"
-#include <string>
-#include "core/utilities.h"
-#include "base/strings.hpp"
-#include "storage/StoragePreferences.h"
-#include "service/BusinessConfig.h"
-#include "manager/ConfigManager.h"
-#include "manager/LanguageManager.h"
-/*
-*此文件由GUI工具生成
-*文件功能:用于处理用户的逻辑相应代码
-*功能说明:
-*========================onButtonClick_XXXX
-当页面中的按键按下后系统会调用对应的函数,XXX代表GUI工具里面的[ID值]名称,
-如Button1,当返回值为false的时候系统将不再处理这个按键,返回true的时候系统将会继续处理此按键。比如SYS_BACK.
-*========================onSlideWindowItemClick_XXXX(int index) 
-当页面中存在滑动窗口并且用户点击了滑动窗口的图标后系统会调用此函数,XXX代表GUI工具里面的[ID值]名称,
-如slideWindow1;index 代表按下图标的偏移值
-*========================onSeekBarChange_XXXX(int progress) 
-当页面中存在滑动条并且用户改变了进度后系统会调用此函数,XXX代表GUI工具里面的[ID值]名称,
-如SeekBar1;progress 代表当前的进度值
-*========================ogetListItemCount_XXXX() 
-当页面中存在滑动列表的时候,更新的时候系统会调用此接口获取列表的总数目,XXX代表GUI工具里面的[ID值]名称,
-如List1;返回值为当前列表的总条数
-*========================oobtainListItemData_XXXX(ZKListView::ZKListItem *pListItem, int index)
- 当页面中存在滑动列表的时候,更新的时候系统会调用此接口获取列表当前条目下的内容信息,XXX代表GUI工具里面的[ID值]名称,
-如List1;pListItem 是贴图中的单条目对象,index是列表总目的偏移量。具体见函数说明
-*========================常用接口===============
-*LOGD(...)  打印调试信息的接口
-*mTextXXXPtr->setText("****") 在控件TextXXX上显示文字****
-*mButton1Ptr->setSelected(true); 将控件mButton1设置为选中模式,图片会切换成选中图片,按钮文字会切换为选中后的颜色
-*mSeekBarPtr->setProgress(12) 在控件mSeekBar上将进度调整到12
-*mListView1Ptr->refreshListView() 让mListView1 重新刷新,当列表数据变化后调用
-*mDashbroadView1Ptr->setTargetAngle(120) 在控件mDashbroadView1上指针显示角度调整到120度
-*
-* 在Eclipse编辑器中  使用 “alt + /”  快捷键可以打开智能提示
-*/
-
-std::string _warnText;
-
-/**
- * 注册定时器
- * 填充数组用于注册定时器
- * 注意:id不能重复
- */
-static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
-	//{0,  6000}, //定时器id=0, 时间间隔6秒
-	//{1,  1000},
-};
-
-/**
- * 当界面构造时触发
- */
-static void onUI_init(){
-    //Tips :添加 UI初始化的显示代码到这里,如:mText1Ptr->setText("123");
-
-}
-
-/**
- * 当切换到该界面时触发
- */
-static void onUI_intent(const Intent *intentPtr) {
-    if (intentPtr != NULL) {
-        //TODO
-		// 键值解析
-		_warnText = intentPtr->getExtra(warnText);
-    	mWarnTextViewPtr->setText(_warnText);
-    }
-}
-
-/*
- * 当界面显示时触发
- */
-static void onUI_show() {
-
-}
-
-/*
- * 当界面隐藏时触发
- */
-static void onUI_hide() {
-
-}
-
-/*
- * 当界面完全退出时触发
- */
-static void onUI_quit() {
-
-}
-
-/**
- * 串口数据回调接口
- */
-static void onProtocolDataUpdate(const SProtocolData &data) {
-
-}
-
-/**
- * 定时器触发函数
- * 不建议在此函数中写耗时操作,否则将影响UI刷新
- * 参数: id
- *         当前所触发定时器的id,与注册时的id相同
- * 返回值: true
- *             继续运行当前定时器
- *         false
- *             停止运行当前定时器
- */
-static bool onUI_Timer(int id){
-	switch (id) {
-
-		default:
-			break;
-	}
-    return true;
-}
-
-/**
- * 有新的触摸事件时触发
- * 参数:ev
- *         新的触摸事件
- * 返回值:true
- *            表示该触摸事件在此被拦截,系统不再将此触摸事件传递到控件上
- *         false
- *            触摸事件将继续传递到控件上
- */
-static bool onwarnActivityTouchEvent(const MotionEvent &ev) {
-    switch (ev.mActionStatus) {
-		case MotionEvent::E_ACTION_DOWN://触摸按下
-			//LOGD("时刻 = %ld 坐标  x = %d, y = %d", ev.mEventTime, ev.mX, ev.mY);
-			break;
-		case MotionEvent::E_ACTION_MOVE://触摸滑动
-			break;
-		case MotionEvent::E_ACTION_UP:  //触摸抬起
-			break;
-		default:
-			break;
-	}
-	return false;
-}
-static bool onButtonClick_WarnConfirmButton(ZKButton *pButton) {
-    LOGD(" ButtonClick WarnConfirmButton !!!\n");
-    return false;
-}
-static bool onButtonClick_sys_back(ZKButton *pButton) {
-    LOGD(" ButtonClick sys_back !!!\n");
-    return false;
-}

+ 7 - 3
jni/net/tcp_client.cpp

@@ -16,6 +16,7 @@
 #include "base/strings.hpp"
 #include "net/NetManager.h"
 #include "service/BusinessConfig.h"
+#include "core/utilities.h"
 
 
 #define ETHERNETMANAGER		NETMANAGER->getEthernetManager()
@@ -98,7 +99,7 @@ public:
 			tcpModel.action = DeviceAction::CONNECT;
 //			tcpModel.data = ETHERNETMANAGER->getMacAddr();
 			Json::Value json;
-			json["identification"] = ETHERNETMANAGER->getMacAddr();
+			json["identification"] = StoragePreferences::getString(STORE_MAC_ADDR, "0.0.0.0");
 			json["software_version"] = version;
 			json["model"] = "linux_door";;
 			json["code"] = "SW10600101C-CM";
@@ -150,8 +151,11 @@ void TcpClient::startTcp(){
 }
 
 void TcpClient::closeTcp() {
-	my_thread.requestExitAndWait();
-//		my_thread.requestExit();
+    bool result = my_thread.isRunning();
+    if (result) {
+        my_thread.requestExitAndWait();
+        LOGD("my_thread已关闭");
+    }
 }
 
 bool TcpClient::busy() {

+ 21 - 0
jni/net/tcp_model.cpp

@@ -9,6 +9,7 @@
 #include "json/json.h"
 #include <utils/TimeHelper.h>
 #include "base/strings.hpp"
+#include "service/BusinessConfig.h"
 
 std::string getTcpModelString(TcpModel model){
 	Json::Value root;
@@ -75,3 +76,23 @@ TcpModel getTcpModel(byte* inBytes){
 	return tcpModel;
 }
 
+
+void sendTcpModel(TcpModel tcpModel) {
+
+	std::string req = getTcpModelString(tcpModel);
+	LOGD("TCP : %s",req.c_str());
+
+	//回调注册
+	TcpCallback callback;
+	callback.tid = tcpModel.tid;
+	callback.jsonStr = req;
+	callback.onSuccess = [](Json::Value json){
+		LOGD("event callback success");
+		return 0;
+	};
+	callback.onFalied = [](Json::Value json){
+		LOGD("event callback failed");
+		return 0;
+	};
+	TcpClient::instance()->sendMsgWithCb(req.c_str(), callback);
+}

+ 52 - 0
jni/net/tcp_model.h

@@ -24,6 +24,14 @@ public:
 	inline static std::string TIME = "TIME";
 	inline static std::string SIDE = "SIDE";
 	inline static std::string CALLBACK = "CALLBACK";
+
+    /** 新增床旁交互Tcp类型 **/
+	inline static std::string SIGN_IN = "SIGN_IN";
+	inline static std::string POSITION = "POSITION";
+	inline static std::string COUNTDOWN = "COUNTDOWN";
+	inline static std::string ROOMCHECK = "ROOMCHECK";
+	inline static std::string SCREEN_TIP = "SCREEN_TIP";
+	inline static std::string AUTH = "AUTH";
 };
 
 class VoiceAction {
@@ -61,6 +69,7 @@ public:
 class DeviceAction {
 public:
 	inline static std::string RESTART = "RESTART";
+	inline static std::string REBOOT = "REBOOT";
 	inline static std::string CONNECT = "CONNECT";
 	inline static std::string APP_UPDATE = "APP_UPDATE";
 	inline static std::string DEVICE_REFRESH = "DEVICE_REFRESH";
@@ -102,6 +111,47 @@ public:
 	inline static std::string FAILED = "FAILED";	// 失败
 };
 
+class SignInAction {
+public:
+	inline static std::string SIGN_IN = "SIGN_IN";			// 发起签到
+	inline static std::string SIGN_IN_SUCCESS = "SIGN_IN_SUCCESS";	// 签到成功
+	inline static std::string SIGN_IN_FAILED = "SIGN_IN_FAILED";	// 签到失败
+};
+
+class PositionAction {
+public:
+	inline static std::string POSITION_START = "POSITION_START";	// 定位开始
+	inline static std::string POSITION_END = "POSITION_END";	// 结束定位
+};
+
+class CountdownAction {
+public:
+	inline static std::string START = "START";	// 倒计时开始
+	inline static std::string END = "END";	// 倒计时结束
+	inline static std::string CANCEL = "CANCEL";	// 倒计时取消
+};
+
+
+class RoomCheckAction {
+public:
+	inline static std::string START = "START";	// 巡房开始
+	inline static std::string END = "END";	// 巡房结束
+};
+
+
+class ScreenTipAction {
+public:
+	inline static std::string START = "START";	// 提示语开始
+	inline static std::string QUIT = "QUIT";	// 提示语退出
+};
+
+
+class AuthAction {
+public:
+	inline static std::string LOGIN = "LOGIN";	// 登录
+	inline static std::string LOGOUT = "LOGOUT";	// 退出登录
+};
+
 class TcpAction{
 	VoiceAction voiceAction;
 };
@@ -122,4 +172,6 @@ std::string getTcpModelString(TcpModel model);
 
 TcpModel getTcpModel(byte* inBytes);
 
+void sendTcpModel(TcpModel tcpModel);
+
 #endif /* JNI_NET_TCP_MODEL_H_ */

+ 2 - 2
jni/restclient-cpp/restclient.cpp

@@ -49,7 +49,7 @@ void RestClient::disable() {
 RestClient::Response RestClient::get(const std::string& url) {
   RestClient::Response ret;
   RestClient::Connection *conn = new RestClient::Connection("");
-  conn->SetTimeout(3);
+  conn->SetTimeout(10);
   if (strstr(url.c_str(), "https://") == url.c_str()) {
     conn->SetCAInfoFilePath(ConfigManager::getInstance()->getResFilePath("cacert.pem"));
   }
@@ -72,7 +72,7 @@ RestClient::Response RestClient::post(const std::string& url,
                                       const std::string& data) {
   RestClient::Response ret;
   RestClient::Connection *conn = new RestClient::Connection("");
-  conn->SetTimeout(3);
+  conn->SetTimeout(10);
   if (strstr(url.c_str(), "https://") == url.c_str()) {
     conn->SetCAInfoFilePath(ConfigManager::getInstance()->getResFilePath("cacert.pem"));
   }

+ 53 - 16
jni/service/BusinessConfig.h

@@ -46,13 +46,26 @@
 
 #define STORE_NURSING_COLOR_RGB "nursing_color_rgb"
 #define STORE_NURSING_TYPE "nursing_type"	// 护理的状态,如果是true,那就在护理中,如果是false,那就不在护理中
+#define STORE_NURSING_INTERACTION_ID "nursing_interaction_id"		//	护理的交互记录id
+
 
 #define STORE_AUDO_ANSWER "auto_answer"
 #define STORE_SCREEN_LIGHT "screen_light"
+#define STORE_ROOM_CALL_BED "room_call_bed"
+#define STORE_AUTO_POSITION "auto_position"
+
+#define STORE_LIGHT "light"
+#define STORE_VOLUME "volume"
+
 #define SIGNAL_TYPE "TCP" //TCP,SIP
 
-static std::string version = "v1.0.27";
-static int versionNo = 27;
+#define STORE_VOLUME_NATIVE "volume_native"
+#define STORE_GAIN_SIZE "gain_size"
+
+#define STORE_MAC_ADDR "mac_addr"
+
+static std::string version = "v1.0.35";
+static int versionNo = 35;
 static std::string serverIP = "172.28.100.100";
 static std::string tcpIP = "172.28.100.100";
 static int serverHttpPort = 8006;
@@ -96,10 +109,9 @@ void NavibarSetPartName(const std::string& partName);
 
 // 传入时间,获取时间的总秒数
 int getTime(char* timeStr);
-
 // 门灯还原
-void doorLampRestoration();
-
+//void doorLampRestoration();
+void lightControl(std::string typeStr, std::string lightColorStr);
 /**
  * 刷新设备数据
  */
@@ -114,15 +126,29 @@ bool getSleepTimerRegistered();
 // 设置是否开启息屏定时任务
 void setSleepTimerRegistered(bool result);
 
-// 设置顶上颜色
-void setPartNameAndDateColor(uint32_t color);
-
-// 设置ui3界面的颜色
-void setUi3BgColor(uint32_t color);
+// 设置callTid
+void setCallTid(std::string tid);
 
 // 设置调试的按键框
 void setCheckbox(std::string check);
 
+void setIsLight(bool _isLight);
+
+void pingThreadExitPending();
+
+bool getIsUpdate();
+
+// 控制呼叫床位按钮是否显示
+void callBedButtonSetVisible();
+
+Json::Value getFrame();
+
+const bool checkAddr(std::string addr);
+
+void openInitWindow();
+
+void setStatusbarBdColor(uint32_t color);
+
 enum CallFinishType {
 	CANCEL,
 	REJECT,
@@ -202,16 +228,21 @@ public:
 	inline static int twoColorDoorLightValid;
 	inline static std::string qrUrl;
 	inline static int screenLight;
+	inline static int roomCallBed;
+	inline static int autoPosition;
+	inline static int linuxBedVolumeNative;
+	inline static int linuxBedGainSize;
+	inline static int linuxDoorVolumeNative;
+	inline static int linuxDoorGainSize;
 };
 
-
 class BabySex {
 public:
-	inline static std::string boy = "boy";
-	inline static std::string girl = "girl";
-	inline static std::string twins_boy = "twins_boy";
-	inline static std::string twins_girl = "twins_girl";
-	inline static std::string twins_boy_and_girl = "twins_boy_and_girl";
+    inline static std::string boy = "boy";
+    inline static std::string girl = "girl";
+    inline static std::string twins_boy = "twins_boy";
+    inline static std::string twins_girl = "twins_girl";
+    inline static std::string twins_boy_and_girl = "twins_boy_and_girl";
 };
 
 /**
@@ -245,7 +276,13 @@ static std::string isOutgoing = "isOutgoing";
 static std::string audioOnly = "audioOnly";
 static std::string toIdStr = "toIdStr";
 static std::string callName = "callName";
+static std::string functionWindows = "functionWindows";
+static std::string functionText = "functionText";
+static std::string nursingText = "nursingText";
 static std::string warnText = "warnText";
+static std::string promptText2 = "promptText2";
+static std::string promptTime2 = "promptTime2";
+static std::string goActivity = "goActivity";
 
 class CallingStatus{
 public:

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/sipTestActivity.o


BIN
obj/activity/startActivity.o


BIN
obj/activity/statusbar.o


BIN
obj/activity/ui3Activity.o


BIN
obj/activity/updateActivity.o


BIN
obj/activity/warnActivity.o


BIN
obj/core/update_assistant.o


BIN
obj/core/utilities.o


BIN
obj/net/tcp_client.o


BIN
obj/net/tcp_model.o


BIN
obj/restclient-cpp/restclient.o


BIN
obj/server/http_server.o


BIN
obj/service/BusinessConfig.o


BIN
obj/service/time.o


BIN
resources/Harmony_231030.ttf


BIN
resources/arrow/left.png


BIN
resources/arrow/left2.png


BIN
resources/arrow/left_grey.png


BIN
resources/arrow/left_two.png


BIN
resources/arrow/left_two_grey.png


BIN
resources/arrow/right.png


BIN
resources/arrow/right2.png


BIN
resources/arrow/right_grey.png


BIN
resources/arrow/right_two.png


BIN
resources/arrow/right_two_grey.png


BIN
resources/back2.png


BIN
resources/background1024x600.png


BIN
resources/bg.jpeg


BIN
resources/btn_primary.9.png


BIN
resources/btn_primary_active.9.png


BIN
resources/btn_secondary.9.png


BIN
resources/btn_secondary_active.9.png


BIN
resources/button/back_bule.png


BIN
resources/button/back_grey.png


BIN
resources/button/back_white.png


BIN
resources/button/bg_bottom_btn.png


BIN
resources/button/button_advice1.png


BIN
resources/button/button_advice2.png


BIN
resources/button/button_back.png


BIN
resources/button/button_back2.png


BIN
resources/button/button_bule.png


BIN
resources/button/button_bule1.png


BIN
resources/button/button_bule2.png


BIN
resources/button/button_call1.png


BIN
resources/button/button_call2.png


BIN
resources/button/button_down.png


BIN
resources/button/button_down2.png


BIN
resources/button/button_fee1.png


BIN
resources/button/button_fee2.png


BIN
resources/button/button_help1.png


BIN
resources/button/button_help2.png


BIN
resources/button/button_help3.png


BIN
resources/button/button_home.png


BIN
resources/button/button_home2.png


BIN
resources/button/button_more1.png


BIN
resources/button/button_more2.png


BIN
resources/button/button_nursing1.png


+ 0 - 0
resources/button/button_nursing2.png


Vissa filer visades inte eftersom för många filer har ändrats