vothin vor 3 Monaten
Ursprung
Commit
2f34a30a54
42 geänderte Dateien mit 1184 neuen und 23 gelöschten Zeilen
  1. 1 0
      .cproject
  2. 3 0
      .settings/com.zksw.flythings.easyui.prefs
  3. BIN
      Release/libzkgui.so
  4. BIN
      Release/src/activity/callActivity.o
  5. BIN
      Release/src/activity/deviceInfoActivity.o
  6. BIN
      Release/src/activity/functionActivity.o
  7. BIN
      Release/src/activity/mainActivity.o
  8. BIN
      Release/src/activity/medicalCareActivity.o
  9. BIN
      Release/src/activity/moreActivity.o
  10. BIN
      Release/src/activity/navibar.o
  11. BIN
      Release/src/activity/promptActivity.o
  12. BIN
      Release/src/activity/settingActivity.o
  13. BIN
      Release/src/activity/sipTestActivity.o
  14. BIN
      Release/src/activity/startActivity.o
  15. BIN
      Release/src/activity/statusbar.o
  16. BIN
      Release/src/activity/updateActivity.o
  17. BIN
      Release/src/core/update_assistant.o
  18. BIN
      Release/src/net/tcp_client.o
  19. BIN
      Release/src/net/tcp_model.o
  20. BIN
      Release/src/net/tcp_util.o
  21. BIN
      Release/src/server/http_server.o
  22. BIN
      Release/src/service/BusinessConfig.o
  23. BIN
      Release/src/service/time.o
  24. BIN
      Release/src/uart/UartContext.o
  25. 238 2
      i18n/en_US.tr
  26. 303 0
      i18n/es_ES-西班牙语.tr
  27. 303 0
      i18n/ru_RU-俄语.tr
  28. 2 0
      i18n/zh_CN.tr
  29. BIN
      resources/Harmony_240927.ttf
  30. 19 0
      src/activity/settingActivity.cpp
  31. 5 0
      src/activity/settingActivity.h
  32. 71 2
      src/logic/functionLogic.cc
  33. 62 0
      src/logic/mainLogic.cc
  34. 1 2
      src/logic/medicalCareLogic.cc
  35. 7 7
      src/logic/moreLogic.cc
  36. 35 0
      src/logic/settingLogic.cc
  37. 122 8
      src/logic/startLogic.cc
  38. 0 1
      src/net/tcp_model.cpp
  39. 12 1
      src/service/BusinessConfig.h
  40. BIN
      ui/deviceInfo.ftu
  41. BIN
      ui/medicalCare.ftu
  42. BIN
      ui/setting.ftu

+ 1 - 0
.cproject

@@ -159,4 +159,5 @@
 		</scannerConfigBuildInfo>
 	</storageModule>
 	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
 </cproject>

+ 3 - 0
.settings/com.zksw.flythings.easyui.prefs

@@ -0,0 +1,3 @@
+easyui.cfg.debug={"baud"\:"115200","defBrightness"\:-1,"font"\:"/mnt/extsd/ui/Harmony_250212.ttf","languageCode"\:"zh_CN","languagePath"\:"/mnt/extsd/tr/","resPath"\:"/mnt/extsd/ui/","rotateScreen"\:90,"rotateTouch"\:0,"screensaverTimeOut"\:30,"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_250212.ttf","languageCode"\:"zh_CN","languagePath"\:"/res/tr/","resPath"\:"/res/ui/","rotateScreen"\:90,"rotateTouch"\:0,"screensaverTimeOut"\:30,"startupLibPath"\:"/res/lib/libzkgui.so","startupTouchCalib"\:false,"touchDev"\:"/dev/input/event1","uart"\:"ttyS1","zkdebug"\:false}
+eclipse.preferences.version=1

BIN
Release/libzkgui.so


BIN
Release/src/activity/callActivity.o


BIN
Release/src/activity/deviceInfoActivity.o


BIN
Release/src/activity/functionActivity.o


BIN
Release/src/activity/mainActivity.o


BIN
Release/src/activity/medicalCareActivity.o


BIN
Release/src/activity/moreActivity.o


BIN
Release/src/activity/navibar.o


BIN
Release/src/activity/promptActivity.o


BIN
Release/src/activity/settingActivity.o


BIN
Release/src/activity/sipTestActivity.o


BIN
Release/src/activity/startActivity.o


BIN
Release/src/activity/statusbar.o


BIN
Release/src/activity/updateActivity.o


BIN
Release/src/core/update_assistant.o


BIN
Release/src/net/tcp_client.o


BIN
Release/src/net/tcp_model.o


BIN
Release/src/net/tcp_util.o


BIN
Release/src/server/http_server.o


BIN
Release/src/service/BusinessConfig.o


BIN
Release/src/service/time.o


BIN
Release/src/uart/UartContext.o


+ 238 - 2
i18n/en_US.tr

@@ -1,4 +1,240 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <string name="hello_world">Hello world!</string>
-</resources>
+    <!-- 时间相关 -->
+	<string name="Year">-</string>
+	<string name="Month">-</string>
+	<string name="Day"> </string>
+	<string name="Monday">Monday</string>
+	<string name="Tuesday">Tuesday</string>
+	<string name="Wednesday">Wednesday</string>
+	<string name="Thursday">Thursday</string>
+	<string name="Friday">Friday</string>
+	<string name="Saturday">Saturday</string>
+	<string name="Sunday">Sunday</string>
+    <!-- 按钮 -->
+	<string name="Home">Home</string>
+	<string name="Healthcare">Healthcare</string>
+	<string name="More">More</string>
+	<string name="Fee">Fee</string>
+	<string name="Help">Reinforcement</string>
+	<string name="HelpInfo">Help requested. Please wait.</string>
+	<string name="HelpResponse">Help is on the way.</string>
+	<string name="Call">Call</string>
+	<string name="Reboot">Reboot</string>
+	<string name="SettingServerIP">Server settings</string>
+	<string name="SettingNet">Network settings</string>
+	<string name="SoftVersion">Software version</string>
+	<string name="SoftInitialization">Initialize</string>
+	<string name="SoftDown">Download</string>
+	<string name="SoftVersionCheck">Check for updates</string>
+	<string name="SoftUpdateNow">Update now</string>
+	<string name="Setting">Settings</string>
+	<string name="Test">Debug</string>
+	<string name="Confirm">Confirm</string>
+	<string name="Cancel">Cancel</string>
+	<string name="Save">Save</string>
+	<string name="Back">Back</string>
+	<string name="CallBed">Call Bed</string>
+	<string name="CallNurse">Call Nurse</string>
+	<string name="CallCancel">Cancel Call</string>
+	<string name="CallInfo">Initiate Call</string>
+	<string name="SOSCallInfo">Initiate SOS Call</string>
+	<string name="Voice">Voice</string>
+    <!-- 首页 -->
+	<string name="Room">Room</string>
+	<string name="InBedNum">Occupants</string>
+	<string name="EmptyBedNum">Empty Beds</string>
+	<string name="EmptyBed">Empty Bed</string>
+	<string name="EmptyCustomer">No Occupant</string>
+	<string name="None">No occupancy</string>
+	<string name="BedNum">Bed number</string>
+	<string name="Woman">Female</string>
+	<string name="Man">Male</string>
+	<string name="Unknown">Unknown</string>
+	<string name="NurseConfig">Nursing items</string>
+	<string name="Oxygen">Oxygen countdown</string>
+	<string name="OxygenInhalation">Oxygen</string>
+	<string name="SkinTest">Skin test</string>
+	<string name="Infusion">Infusion</string>
+	<string name="SettingTime">Custom time</string>
+	<string name="CountdownProgress">Countdown in progress</string>
+	<string name="CountdownCancel">Cancel countdown</string>
+	<string name="CountdownEnded">Countdown has ended</string>
+	<string name="Description">Description:</string>
+	<string name="Advice">Advice</string>
+	<string name="AdviceType">Advice type</string>
+	<string name="LONG_TERM">Long-term</string>
+	<string name="TEMP">Temporary</string>
+	<string name="LoseEfficacy">Expiration</string>
+	<string name="TakeEffect">Take effect</string>
+	<string name="StartTime">Start time:</string>
+	<string name="EndTime">End time:</string>
+	<string name="Content">Content</string>
+	<string name="Detail">Parameters</string>
+	<string name="ResponsibleDoctor">Responsible doctor</string>
+	<string name="ResponsibleNurse">Responsible nurse</string>
+    <!-- 导航栏 -->
+    <!-- 功能界面 -->
+	<string name="CallableBeds">Currently callable beds</string>
+	<string name="ConfirmCall">Confirm call</string>
+	<string name="CancelCall">Cancel call</string>
+	<string name="LogoutMedicalCareMsg">Confirm to exit healthcare?</string>
+	<string name="ConfirmLogout">Confirm Logout</string>
+	<string name="CancelLogoutl">Cancel Logout</string>
+	<string name="PostitionedMsg">Positioned: </string>
+	<string name="RoomPatrolMsg">Patrolled: </string>
+	<string name="PromptQuit">Prompt ended</string>
+	<string name="RebootDevice">Reboot device</string>
+	<string name="RebootPower">Reboot power</string>
+	<string name="RebootLine">Reboot line</string>
+	<string name="ThemeBlue">Switch the theme color to blue</string>
+	<string name="ThemeRed">Switch the theme color to red</string>
+	<string name="ThemeGreen">Switch the theme color to green</string>
+	<string name="ThemeConfirm">After confirming the theme color switch, the device will restart</string>
+	<string name="Mode1">Switch to mode 1</string>
+	<string name="Mode2">Switch to Mode 2</string>
+	<string name="ModeConfirm">After confirming the mode switch, the machine will restart</string>
+	<string name="SosCalling">The alarm has been issued</string>
+	<string name="DeviceSettingChange">Device settings have changed, restarting</string>
+    <!-- 医护界面 -->
+	<string name="MedicalLoginMsg">Enter the correct password to access healthcare features</string>
+	<string name="InputMedicalPassword">Enter password for healthcare</string>
+	<string name="InputMedicalPasswordMsg">Password is numeric</string>
+	<string name="NfcText">Tap NFC card to access healthcare</string>
+	<string name="NfcMsgText">Tap valid NFC card to enter healthcare</string>
+	<string name="PromptMsg">Lock screen display</string>
+	<string name="JobNumber">Job number</string>
+	<string name="Password">Password</string>
+	<string name="EnteringMedicalCare">Enter medical care</string>
+	<string name="ChooseMsg">Please select the corresponding employee to enter the medical care function</string>
+	<string name="Hello">Hello,</string>
+	<string name="MedicalCareMsg">Currently your personal medical care section</string>
+	<string name="LogoutMedicalCare">Log out</string>
+	<string name="Position">Locate</string>
+	<string name="Positioned">Located</string>
+	<string name="RoomPatrol">Patrol</string>
+	<string name="RoomPatrolCompleted">Patrolled</string>
+	<string name="Nursing">Nursing</string>
+	<string name="NursingMsg">Bed in nursing</string>
+	<string name="SetNursingMsg">Set to nursing?</string>
+	<string name="InNursing">In Nursing</string>
+	<string name="NursingEnd">End Nursing</string>
+	<string name="SetNursingEndMsg">End nursing for this bed?</string>
+	<string name="Prompt">Prompt</string>
+	<string name="PromptMsg">Lock screen display</string>>
+    <!-- 提示语界面 -->
+	<string name="SetPrompt">Set prompt</string>
+	<string name="CustomInput">Custom input</string>
+	<string name="QuickPrompt">Quick prompt</string>
+	<string name="SetPromptTime">Set prompt time</string>
+	<string name="StartPrompt">Start setting</string>
+	<string name="BeQuiet">Keep quiet</string>
+	<string name="DoNotDisturb">Do not disturb during nursing</string>
+	<string name="KeepQuiet">Do not make loud noises</string>
+	<string name="DoNotVisit">Do not visit</string>
+	<string name="InRestroom">Do not enter during restroom</string>
+	<string name="DoNotGather">Do not gather too many people</string>
+	<string name="10Minutes">10 minutes</string>
+	<string name="15Minutes">15 minutes</string>
+	<string name="20Minutes">20 minutes</string>
+	<string name="30Minutes">30 minutes</string>
+	<string name="45Minutes">45 minutes</string>
+	<string name="60Minutes">60 minutes</string>
+	<string name="90Minutes">90 minutes</string>
+	<string name="120Minutes">120 minutes</string>
+	<string name="ExitPrompt">Exit prompt</string>
+    <!-- 通话界面 -->
+	<string name="RemoteRefuse">Rejected by the other party</string>
+	<string name="RemoteBusy">Busy by the other party</string>
+	<string name="CallFailed">Call failed</string>
+	<string name="Calling">Calling</string>
+	<string name="CallConfirmed">Calling</string>
+	<string name="CallConnecting">Connecting</string>
+	<string name="CallInComing">Incoming call</string>
+	<string name="CallOutTitle">Call nurse</string>
+	<string name="Call">Call</string>
+	<string name="NotFound">The target device's sip was not found, the call failed</string>
+	<string name="RequestTimes">The call connection is abnormal, please try to call again</string>
+    <!-- 更多界面 -->
+	<string name="DeviceInfoText">Device settings</string>
+	<string name="DeviceInfo">Device information</string>
+	<string name="DeviceDebug">Device debugging</string>
+	<string name="Null">None</string>
+	<string name="InDate">Date of admission</string>
+	<string name="Advice">Advice</string>
+	<string name="DeviceId">ID</string>
+	<string name="DeviceSign">Internal ID</string>
+	<string name="MAC">MAC</string>
+	<string name="DeviceIp">IP</string>
+	<string name="NETMASK">Subnet Mask</string>
+	<string name="GATEWAY">Gateway</string>
+	<string name="VoiceId">Voice ID</string>
+	<string name="VoiceDomain">Voice Gateway</string>
+	<string name="ServerIP">Server IP</string>
+	<string name="InputServer">Enter server address and port</string>
+	<string name="ServerTag">Numbers and dots only</string>
+	<string name="ServerIPWrong">Server address is incorrect</string>
+	<string name="InputPassword">Please enter password</string>
+	<string name="PasswordWrong">Password error</string>
+	<string name="PasswordTag">Password is only 3 digits</string>
+	<string name="PasswordText">3 digit password</string>
+	<string name="PasswordInput">Enter password</string>
+	<string name="RestartTime">Restart countdown:</string>
+	<string name="ScanQRCode">Scan QR code</string>
+    <!-- 设置界面 -->
+	<string name="SettingText">Device settings</string>
+	<string name="IsLight">Is it always on</string>
+	<string name="IsVolume">Turn on volume control</string>
+	<string name="ThemeText">Select theme color</string>
+	<string name="ThemeBule">Blue</string>
+	<string name="ThemeRed">Red</string>
+	<string name="ThemeGreen">Green</string>
+	<string name="ModeText">Select display mode</string>
+	<string name="ChooseLang">Choose language</string>
+    <!-- 测试界面 -->
+	<string name="DebugText">Device debugging</string>
+	<string name="InputSip">Please enter the target SIP account</string>
+	<string name="InputSipMsg">Enter the account for testing</string>
+	<string name="OtherDevicesTest">External device test</string>
+	<string name="OtherDevicesTestMsg">Please check whether the external device is connected before starting the test</string>
+	<string name="ChangeToRtc">Switch to RTC call</string>
+	<string name="ChangeToSip">Switch to SIP call</string>
+	<string name="HandleKeys">Handle key test</string>
+	<string name="PanelCallKeys">Panel call key test</string>
+	<string name="PanelCancelKeys">Panel cancel key test</string>
+	<string name="SosKeys">SOS key test</string>
+	<string name="RecordTest">Recording test</string>
+	<string name="RecordText">Click the recording test button to test the microphone</string>
+	<string name="RecordStart">Recording starts, recording time 5 seconds</string>
+	<string name="RecordPlay">Recording ends, start playing</string>
+	<string name="RecordStop">Recording playback ends</string>
+	<string name="RecordFailed">Recording failed</string>
+	<string name="DoorLightTest">Door light test</string>
+	<string name="ColorTest">Color test</string>
+    <!-- 颜色测试界面 -->
+	<string name="ColorMsg">Click to change color</string>
+	<string name="ContactButton">Contact interface</string>
+    <!-- 错误提示 -->
+	<string name="NoBedList">There is no bed in the current room</string>
+	<string name="NoCustomer">The current room user is checked in</string>
+	<string name="NoBedDevice">There is no device in the current bed, call failed</string>
+	<string name="AccountPasswordError">Account or password error</string>
+	<string name="WrongPassword">Password error</string>
+	<string name="ConfigureEmployeeID">Please configure employee ID first</string>
+	<string name="PassNoError">The employee with the card was not found</string>
+    <!-- 版本界面 -->
+	<string name="VersionTitle">Version upgrade</string>
+	<string name="VersionInfo">Version information</string>
+	<string name="VersionNow">Current device version</string>
+	<string name="VersionNoNow">Current version number</string>
+	<string name="Version">Version name</string>
+	<string name="VersionNo">Version number</string>
+	<string name="VersionMsg">Are you sure you want to restart the device? </string>
+	<string name="GetVersionFailed">Failed to get version, error code</string>
+	<string name="Searching">Searching...</string>
+	<string name="IsTheLastVersion">Already the latest version</string>
+	<string name="FindNewVersion">Found a new version</string>
+	<string name="Downloading">Downloading</string>
+	<string name="EthernetDisconnect">Not connected to the network</string>
+	<string name="DownloadFailed">Download error, error code</string>
+</resources>

+ 303 - 0
i18n/es_ES-西班牙语.tr

@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- 时间相关 -->
+	<string name="year">-</string>
+	<string name="Month">-</string>
+	<string name="Day"> </string>
+	<string name="Monday">Lunes</string>
+	<string name="Tuesday">Martes</string>
+	<string name="Wednesday">Miércoles</string>
+	<string name="Thursday">Jueves</string>
+	<string name="Friday">Viernes</string>
+	<string name="Saturday">Sábado</string>
+	<string name="Sunday">Domingo</string>
+    <!-- 按钮 -->
+	<string name="Home">Inicio</string>
+	<string name="Healthcare">Salud</string>
+	<string name="More">Más</string>
+	<string name="Fee">Tarifa</string>
+	<string name="Help">Refuerzo</string>
+	<string name="HelpInfo">Solicitud de ayuda. Espere.</string>
+	<string name="HelpResponse">La ayuda está en camino.</string>
+	<string name="Call">Llamar</string>
+	<string name="Reboot">Reiniciar</string>
+	<string name="SettingServerIP">Configuración del servidor</string>
+	<string name="SettingNet">Configuración de red</string>
+	<string name="SoftVersion">Versión del software</string>
+	<string name="SoftInitialization">Inicializar</string>
+	<string name="SoftDown">Descargar</string>
+	<string name="SoftVersionCheck">Buscar actualizaciones</string>
+	<string name="SoftUpdateNow">Actualizar ahora</string>
+	<string name="Setting">Configuración</string>
+	<string name="Test">Depurar</string>
+	<string name="Test">Ingresar a depuración</string>
+	<string name="Confirmar">Confirmar</string>
+	<string name="Cancelar">Cancelar</string>
+	<string name="Guardar">Guardar</string>
+	<string name="Atrás">Atrás</string>
+	<string name="CallBed">Cama</string>
+	<string name="CallNurse">Enfermera</string>
+	<string name="CallCancel">Cancelar</string>
+	<string name="CallInfo">Llamar</string>
+	<string name="SOSCallInfo">Iniciar Llamada SOS</string>
+	<string name="Voice">Voz</string>
+    <!-- 首页 -->
+	<string name="Habitación">Habitación</string>
+	<string name="InBedNum">Ocupantes</string>
+	<string name="EmptyBedNum">Camas Vacías</string>
+	<string name="EmptyBed">Cama Vacía</string>
+	<string name="EmptyCustomer">Sin Ocupante</string>
+	<string name="None">Sin ocupación</string>
+	<string name="BedNum">Cama Número</string>
+	<string name="Woman">Femenino</string>
+	<string name="Man">Hombre</string>
+	<string name="Unknown">Desconocido</string>
+	<string name="NurseConfig">Elementos de enfermería</string>
+	<string name="Oxygen">Cuenta regresiva de oxígeno</string>
+	<string name="OxygenInhalation">Oxígeno</string>
+	<string name="SkinTest">Prueba cutánea</string>
+	<string name="Infusion">Infusión</string>
+	<string name="SettingTime">Tiempo personalizado</string>
+	<string name="CountdownProgress">Cuenta regresiva en curso</string>
+	<string name="CountdownCancel">Cancelar cuenta regresiva</string>
+	<string name="CountdownEnded">La cuenta regresiva ha finalizado</string>
+	<string name="Description">Descripción:</string>
+	<string name="Advice">Consejo</string>
+	<string name="AdviceType">Tipo de consejo</string>
+	<string name="LONG_TERM">Largo plazo</string>
+	<string name="TEMP">Temporal</string>
+	<string name="LoseEfficacy">Vencimiento</string>
+	<string name="TakeEffect">Entrar en vigor</string>
+	<string name="StartTime">Hora de inicio:</string>
+	<string name="EndTime">Hora de finalización:</string>
+	<string name="Content">Contenido</string>
+	<string name="Detail">Parámetros</string>
+	<string name="ResponsibleDoctor">Médico responsable</string>
+	<string name="ResponsibleNurse">Responsable Enfermera</string>
+    <!-- 导航栏 -->
+    <!-- 功能界面 -->
+	<string name="CallableBeds">Camas actualmente disponibles</string>
+	<string name="ConfirmCall">Confirmar llamada</string>
+	<string name="CancelCall">Cancelar llamada</string>
+	<string name="LogoutMedicalCareMsg">¿Confirmar salir del cuidado?</string>
+	<string name="ConfirmLogout">Confirmar cierre de sesión</string>
+	<string name="CancelLogoutl">Cancelar cierre de sesión</string>
+	<string name="PostitionedMsg">Posicionado: </string>
+	<string name="RoomPatrolMsg">Rondado: </string>
+	<string name="PromptQuit">Aviso terminado</string>
+	<string name="RebootDevice">Reiniciar dispositivo</string>
+	<string name="RebootPower">Reiniciar alimentación</string>
+	<string name="RebootLine">Reiniciar línea</string>
+	<string name="ThemeBlue">Cambiar el color del tema a azul</string>
+	<string name="ThemeRed">Cambiar el color del tema a rojo</string>
+	<string name="ThemeGreen">Cambiar el color del tema a verde</string>
+	<string name="ThemeConfirm">Después de confirmar el cambio de color del tema, el dispositivo Reiniciar</string>
+	<string name="Mode1">Cambiar al modo 1</string>
+	<string name="Mode2">Cambiar al modo 2</string>
+	<string name="ModeConfirm">Tras confirmar el cambio de modo, la máquina se reiniciará.</string>
+	<string name="SosCalling">Se ha emitido la alarma.</string>
+	<string name="DeviceSettingChange">Los ajustes del dispositivo han cambiado, reiniciando</string>
+    <!-- 医护界面 -->
+	<string name="MedicalLoginMsg">Ingrese la contraseña correcta para acceder a las funciones de salud</string>
+	<string name="InputMedicalPassword">Ingrese la contraseña para el cuidado de la salud</string>
+	<string name="InputMedicalPasswordMsg">La contraseña es numérica</string>
+	<string name="NfcText">Toca la tarjeta NFC en el lector</string>
+	<string name="NfcMsgText">Toque una tarjeta NFC válida para entrar al cuidado de la salud</string>
+	<string name="PromptMsg">Pantalla de bloqueo</string>
+	<string name="JobNumber">Número de trabajo</string>
+	<string name="Password">Contraseña</string>
+	<string name="EnteringMedicalCare">Ingresar atención médica</string>
+	<string name="ChooseMsg">Seleccione el empleado correspondiente para acceder a la función de atención médica</string>
+	<string name="Hello">Hola,</string>
+	<string name="MedicalCareMsg">Actualmente su sección personal de atención médica</string>
+	<string name="LogoutMedicalCare">Cerrar sesión</string>
+	<string name="Position">Localizar</string>
+	<string name="Positioned">Localizado</string>
+	<string name="RoomPatrol">Ronda</string>
+	<string name="RoomPatrolCompleted">Rondado</string>
+	<string name="Nursing">Enfermería</string>
+	<string name="NursingMsg">Cama en enfermería</string>
+	<string name="SetNursingMsg">Establecer en enfermería?</string>
+	<string name="InNursing">En enfermería</string>
+	<string name="NursingEnd">Terminar enfermería</string>
+	<string name="SetNursingEndMsg">Terminar enfermería para esta cama?</string>
+	<string name="Prompt">Aviso</string>
+	<string name="PromptMsg">Pantalla bloqueada</string>
+    <!-- 提示语界面 -->
+	<string name="SetPrompt">Establecer aviso</string>
+	<string name="CustomInput">Entrada personalizada</string>
+	<string name="QuickPrompt">Aviso rápido</string>
+	<string name="SetPromptTime">Establecer tiempo de aviso</string>
+	<string name="StartPrompt">Configuración de inicio</string>
+	<string name="BeQuiet">Mantener silencio</string>
+	<string name="DoNotDisturb">No molestar durante la lactancia</string>
+	<string name="KeepQuiet">No hacer ruidos fuertes</string>
+	<string name="DoNotVisit">No visitar</string>
+	<string name="InRestroom">No entrar durante el baño</string>
+	<string name="DoNotGather">No reunir demasiadas personas</string>
+	<string name="10Minutes">10 minutos</string>
+	<string name="15Minutes">15 minutos</string>
+	<string name="20Minutes">20 minutos</string>
+	<string name="30Minutes">30 minutos</string>
+	<string name="45Minutes">45 minutos</string>
+	<string name="60Minutes">60 minutos</string>
+	<string name="90Minutes">90 minutos</string>
+	<string name="120Minutes">120 minutos</string>
+	<string name="ExitPrompt">Mensaje de salida</string>
+    <!-- 通话界面 -->
+	<string name="RemoteRefuse">Rechazado por la otra parte</string>
+	<string name="RemoteBusy">Ocupado por la otra parte</string>
+	<string name="CallFailed">Llamada fallida</string>
+	<string name="Calling">Llamando</string>
+	<string name="CallConfirmed">Llamando</string>
+	<string name="CallConnecting">Conectando</string>
+	<string name="CallInComing">Llamada entrante</string>
+	<string name="CallOutTitle">Llamar a la enfermera</string>
+	<string name="Call">Llamar</string>
+	<string name="NotFound">No se encontró el SIP del dispositivo de destino; la llamada falló</string>
+	<string name="RequestTimes">La conexión de la llamada es anormal. Intente llamar de nuevo</string>
+    <!-- 更多界面 -->
+	<string name="DeviceInfoText">Ajustes del dispositivo</string>
+	<string name="DeviceInfo">Información del dispositivo</string>
+	<string name="DeviceDebug">Depuración del dispositivo</string>
+	<string name="Null">Ninguno</string>
+	<string name="InDate">Fecha de ingreso</string>
+	<string name="Advice">Asesoramiento</string>
+	<string name="DeviceId">ID</string>
+	<string name="DeviceSign">ID interno</string>
+	<string name="MAC">MAC</string>
+	<string name="DeviceIp">IP</string>
+	<string name="NETMASK">Máscara de subred</string>
+	<string name="GATEWAY">Puerta de enlace</string>
+	<string name="VoiceId">ID de voz</string>
+	<string name="VoiceDomain">Puerta de enlace de voz</string>
+	<string name="ServerIP">IP del servidor</string>
+	<string name="InputServer">Ingrese dirección y puerto del servidor</string>
+	<string name="ServerTag">Sólo números y puntos</string>
+	<string name="ServerIPWrong">Dirección del servidor incorrecta</string>
+	<string name="InputPassword">Introduzca la contraseña</string>
+	<string name="PasswordWrong">Error de contraseña</string>
+	<string name="PasswordTag">La contraseña solo tiene 3 dígitos</string>
+	<string name="PasswordText">Contraseña de 3 dígitos</string>
+	<string name="PasswordInput">Introducir contraseña</string>
+	<string name="RestartTime">Reiniciar cuenta regresiva:</string>
+	<string name="ScanQRCode">Escanear código QR</string>
+    <!-- 设置界面 -->
+	<string name="SettingText">Ajustes del dispositivo</string>
+	<string name="IsLight">¿Siempre está encendido?</string>
+	<string name="IsVolume">Activar el control de volumen</string>
+	<string name="ThemeText">Seleccionar color del tema</string>
+	<string name="ThemeBule">Azul</string>
+	<string name="ThemeRed">Rojo</string>
+	<string name="ThemeGreen">Verde</string>
+	<string name="ModeText">Seleccionar modo de visualización</string>
+	<string name="ChooseLang">Elegir idioma</string>
+    <!-- 测试界面 -->
+	<string name="DebugText">Depuración del dispositivo</string>
+	<string name="InputSip">Introduzca el SIP de destino Cuenta</string>
+	<string name="InputSipMsg">Ingrese la cuenta para la prueba</string>
+	<string name="OtherDevicesTest">Prueba de dispositivo externo</string>
+	<string name="OtherDevicesTestMsg">Compruebe si el dispositivo externo está conectado antes de iniciar la prueba</string>
+	<string name="ChangeToRtc">Cambiar a llamada RTC</string>
+	<string name="ChangeToSip">Cambiar a llamada SIP</string>
+	<string name="HandleKeys">Prueba de teclas de control</string>
+	<string name="PanelCallKeys">Prueba de tecla de llamada del panel</string>
+	<string name="PanelCancelKeys">Prueba de tecla de cancelación del panel</string>
+	<string name="SosKeys">Prueba de tecla SOS</string>
+	<string name="RecordTest">Prueba de grabación</string>
+	<string name="RecordText">Pulse el botón de prueba de grabación para probar el micrófono</string>
+	<string name="RecordStart">Inicio de grabación, tiempo de grabación: 5 segundos</string>
+	<string name="RecordPlay">Fin de grabación, iniciar reproducción</string>
+	<string name="RecordStop">Fin de reproducción de grabación</string>
+	<string name="RecordFailed">Error de grabación</string>
+	<string name="DoorLightTest">Prueba de luz de puerta</string>
+	<string name="ColorTest">Prueba de color</string>
+    <!-- 颜色测试界面 -->
+	<string name="ColorMsg">Pulse para cambiar de color</string>
+	<string name="ContactButton">Interfaz de contacto</string>
+    <!-- 错误提示 -->
+	<string name="NoBedList">No hay cama en la habitación actual</string>
+	<string name="NoCustomer">El usuario de la habitación actual está registrado</string>
+	<string name="NoBedDevice">No hay dispositivo en la cama actual; la llamada ha fallado</string>
+	<string name="AccountPasswordError">Error de cuenta o contraseña</string>
+	<string name="WrongPassword">Error de contraseña</string>
+	<string name="ConfigureEmployeeID">Configure primero el ID del empleado</string>
+	<string name="PassNoError">No se encontró el empleado con la tarjeta</string>
+    <!-- 版本界面 -->
+	<string name="VersionTitle">Actualización de versión</string>
+	<string name="VersionInfo">Información de la versión</string>
+	<string name="VersionNow">Versión actual del dispositivo</string>
+	<string name="VersionNoNow">Número de versión actual</string>
+	<string name="Version">Nombre de la versión</string>
+	<string name="VersionNo">Número de versión</string>
+	<string name="VersionMsg">¿Está seguro de que desea reiniciar el dispositivo?</string>
+	<string name="GetVersionFailed">Error al obtener la versión, código de error</string>
+	<string name="Searching">Buscando...</string>
+	<string name="IsTheLastVersion">Ya está disponible la última versión</string>
+	<string name="FindNewVersion">Se encontró una nueva versión</string>
+	<string name="Downloading">Descargando</string>
+	<string name="EthernetDisconnect">No conectado a la red</string>
+	<string name="DownloadFailed">Error de descarga, código de error</string>
+		<!-- 内置 -->
+	<string name="sys_setup">Configuración</string>
+	<string name="sys_developer_options">Opciones para desarrolladores</string>
+	<string name="sys_debug_switch">Interruptor de depuración</string>
+	<string name="sys_net_setup">Configuración de red</string>
+	<string name="sys_wifi_setup">Configuración de WIFI</string>
+	<string name="sys_lte4g_setup">Configuración de 4G</string>
+	<string name="sys_hotspot_setup">Configuración de punto de acceso</string>
+	<string name="sys_ethernet_setup">Configuración de Ethernet</string>
+	<string name="sys_hotspot_switch">Activar/Desactivar punto de acceso</string>
+	<string name="sys_hotspot_name">Nombre del punto de acceso:</string>
+	<string name="sys_hotspot_password">Contraseña del punto de acceso:</string>
+	<string name="sys_show_password">Mostrar contraseña</string>
+	<string name="sys_save">Guardar</string>
+	<string name="sys_lang_setup">Configuración de idioma</string>
+	<string name="sys_cancel">Cancelar</string>
+	<string name="sys_confirm">Confirmar</string>
+	<string name="sys_lang_switch_tip">¿Desea cambiar el idioma del sistema a %s?</string>
+	<string name="sys_wifi_name">Nombre:</string>
+	<string name="sys_wifi_encryption_method">Método de encriptación:</string>
+	<string name="sys_wifi_encryption_encrypted">Encriptado</string>
+	<string name="sys_wifi_encryption_open">Abierto</string>
+	<string name="sys_wifi_password">Contraseña:</string>
+	<string name="sys_wifi_status">Estado:</string>
+	<string name="sys_wifi_connect">Conectar</string>
+	<string name="sys_wifi_disconnect">Desconectar</string>
+	<string name="sys_wifi_status_authenticating">Autenticando...</string>
+	<string name="sys_wifi_status_handshake">Obteniendo IP...</string>
+	<string name="sys_wifi_status_connected">Conectado</string>
+	<string name="sys_wifi_ip_addr">Dirección IP:</string>
+	<string name="sys_wifi_mac_addr">Dirección MAC:</string>
+	<string name="sys_wifi_password_error">Error de contraseña</string>
+	<string name="sys_lte4g_manufacturer">Fabricante:</string>
+	<string name="sys_lte4g_version">Versión:</string>
+	<string name="sys_ethernet_connect_type">Tipo de conexión</string>
+	<string name="sys_ethernet_dynamic_ip">Obtener IP automáticamente</string>
+	<string name="sys_ethernet_static_ip">IP estática</string>
+	<string name="sys_ethernet_ip_addr">Dirección IP</string>
+	<string name="sys_ethernet_mask">Máscara de subred</string>
+	<string name="sys_ethernet_gateway">Puerta de enlace predeterminada</string>
+	<string name="sys_ethernet_first_dns">Servidor DNS principal</string>
+	<string name="sys_ethernet_second_dns">Servidor DNS secundario</string>
+	<string name="sys_ethernet_save_ok">Guardado exitosamente</string>
+	<string name="sys_ethernet_save_error">Error al guardar</string>
+	<string name="sys_touch_calibration">Calibración de toque</string>
+	<string name="sys_upgrade">Actualizar</string>
+	<string name="sys_upgrade_need_reboot">El sistema reiniciará para actualizar</string>
+	<string name="sys_upgrade_success">Actualización exitosa, el sistema reiniciará</string>
+	<string name="sys_upgrade_fail">La actualización falló</string>
+	<string name="sys_upgrade_pack_format_error">El formato del paquete de actualización es incorrecto, por favor genere uno nuevo!</string>
+	<string name="sys_upgrade_type_no_match_error">El modelo del paquete de actualización no coincide!</string>
+	<string name="sys_upgrade_forbid_error">La actualización está prohibida!</string>
+	<string name="sys_upgrade_image_size_error">La imagen es mayor que el tamaño de la partición, la actualización falló</string>
+	<string name="sys_upgrade_logo_size_error">La resolución de la imagen del logotipo de inicio es mayor que la del monitor, la actualización falló</string>
+	<string name="sys_upgrade_not_support_logo_error">No se admite la actualización del logotipo de inicio, la actualización falló</string>
+	<string name="sys_exit">Salir</string>
+	<string name="sys_upgrade_warning">En proceso de actualización, no desconecte la energía</string>
+	<string name="sys_upgrade_ts_tip_warning">Atención: Después de la actualización, por favor elimine el archivo ts.cfg en la tarjeta T para evitar una actualización repetida!</string>
+	<string name="sys_ts_type">Tipo:</string>
+	<string name="sys_ts_version">Versión:</string>
+	<string name="sys_ts_pix">Resolución:</string>
+	<string name="sys_ts_date">Fecha:</string>
+</resources>

+ 303 - 0
i18n/ru_RU-俄语.tr

@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- 时间相关 -->
+	<string name="Year">-</string>
+	<string name="Month">-</string>
+	<string name="Day"> </string>
+	<string name="Monday">Понедельник</string>
+	<string name="Tuesday">Вторник</string>
+	<string name="Wednesday">Среда</string>
+	<string name="Thursday">Четверг</string>
+	<string name="Friday">Пятница</string>
+	<string name="Saturday">Суббота</string>
+	<string name="Sunday">Воскресенье</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="Call">Вызов</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="SoftUpdateNow">Обновить сейчас</string>
+	<string name="Setting">Настройки</string>
+	<string name="Test">Отладка</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="CallCancel">Отмена</string>
+	<string name="CallInfo">Вызов</string>
+	<string name="SOSCallInfo">Начать экстренный вызов</string>
+	<string name="Voice">Голос</string>
+    <!-- 首页 -->
+	<string name="Room">Палата</string>
+	<string name="InBedNum">Заселение</string>
+	<string name="EmptyBedNum">Свободные кровати</string>
+	<string name="EmptyBed">Свободная кровать</string>
+	<string name="EmptyCustomer">Нет заселения</string>
+	<string name="None">Нет занятости</string>
+	<string name="BedNum">Номер кровати</string>
+	<string name="Woman">Женщина</string>
+	<string name="Man">Мужчина</string>
+	<string name="Unknown">Неизвестно</string>
+	<string name="NurseConfig">Настройки медсестры</string>
+	<string name="Oxygen">Отсчет кислорода</string>
+	<string name="OxygenInhalation">Кислород</string>
+	<string name="SkinTest">Тест на кожу</string>
+	<string name="Infusion">Инфузия</string>
+	<string name="SettingTime">Пользовательское время</string>
+	<string name="CountdownProgress">Отсчет идет</string>
+	<string name="CountdownCancel">Отменить отсчет</string>
+	<string name="CountdownEnded">Отсчет завершен</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="CallableBeds">Доступные кровати</string>
+	<string name="ConfirmCall">Подтвердить вызов</string>
+	<string name="CancelCall">Отменить вызов</string>
+	<string name="LogoutMedicalCareMsg">Подтвердите выход из системы?</string>
+	<string name="ConfirmLogout">Подтвердить выход</string>
+	<string name="CancelLogoutl">Отменить выход</string>
+	<string name="PostitionedMsg">Определено местоположение: </string>
+	<string name="RoomPatrolMsg">Обход завершен: </string>
+	<string name="PromptQuit">Сообщение завершено</string>
+	<string name="RebootDevice">Перезагр.</string>
+	<string name="RebootPower">Перезагр. питания</string>
+	<string name="RebootLine">Перезагр. линии</string>
+	<string name="ThemeBlue">Переключить цветовую тему на синий</string>
+	<string name="ThemeRed">Переключить цветовую тему на красный</string>
+	<string name="ThemeGreen">Переключить цветовую тему на зеленый</string>
+	<string name="ThemeConfirm">После подтверждения смены цветовой темы устройство перезагрузится</string>
+	<string name="Mode1">Переключиться на режим 1</string>
+	<string name="Mode2">Переключиться на режим 2</string>
+	<string name="ModeConfirm">После подтверждения смены режима устройство перезагрузится</string>
+	<string name="SosCalling">Сигнал тревоги был отправлен</string>
+	<string name="DeviceSettingChange">Настройки устройства изменены, перезапуск</string>
+    <!-- 医护界面 -->
+	<string name="MedicalLoginMsg">Введите правильный пароль для доступа к медицинским функциям</string>
+	<string name="InputMedicalPassword">Введите пароль для медицинских функций</string>
+	<string name="InputMedicalPasswordMsg">Пароль состоит из цифр</string>
+	<string name="NfcText">Приложите NFC-карту к считывателю</string>
+	<string name="NfcMsgText">Приложите действительную NFC-карту для входа</string>
+	<string name="PromptMsg">Дисплей экрана блокировки</string>
+	<string name="JobNumber">Номер сотрудника</string>
+	<string name="Password">Пароль</string>
+	<string name="EnteringMedicalCare">Вход в медицинскую помощь</string>
+	<string name="ChooseMsg">Пожалуйста, выберите соответствующего сотрудника для входа в функцию медицинской помощи</string>
+	<string name="Hello">Здравствуйте,</string>
+	<string name="MedicalCareMsg">В данный момент ваша личная медицинская помощь</string>
+	<string name="LogoutMedicalCare">Выйти</string>
+	<string name="Position">Mестоположение</string>
+	<string name="Positioned">Определено</string>
+	<string name="RoomPatrol">Обход</string>
+	<string name="RoomPatrolCompleted">Обход завершен</string>
+	<string name="Nursing">Уход</string>
+	<string name="NursingMsg">Кровать в уходе</string>
+	<string name="SetNursingMsg">Установить в уход?</string>
+	<string name="InNursing">В уходе</string>
+	<string name="NursingEnd">Завершить уход</string>
+	<string name="SetNursingEndMsg">Завершить уход для этой кровати?</string>
+	<string name="Prompt">Сообщение</string>
+	<string name="PromptMsg">Заблокировать экран</string>
+    <!-- 提示语界面 -->
+	<string name="SetPrompt">Установить подсказку</string>
+	<string name="CustomInput">Пользовательский ввод</string>
+	<string name="QuickPrompt">Быстрая подсказка</string>
+	<string name="SetPromptTime">Установить время подсказки</string>
+	<string name="StartPrompt">Начать настройку</string>
+	<string name="BeQuiet">Соблюдать тишину</string>
+	<string name="DoNotDisturb">Не беспокоить во время ухода</string>
+	<string name="KeepQuiet">Не создавать шум</string>
+	<string name="DoNotVisit">Не входить</string>
+	<string name="InRestroom">Не входить в туалет</string>
+	<string name="DoNotGather">Не собираться в больших группах</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="ExitPrompt">Выйти из подсказки</string>
+    <!-- 通话界面 -->
+	<string name="RemoteRefuse">Отказано другой стороной</string>
+	<string name="RemoteBusy">Другая сторона занята</string>
+	<string name="CallFailed">Не удалось выполнить вызов</string>
+	<string name="Calling">Звонок</string>
+	<string name="CallConfirmed">Звонок подтвержден</string>
+	<string name="CallConnecting">Соединение</string>
+	<string name="CallInComing">Входящий звонок</string>
+	<string name="CallOutTitle">Вызов медсестры</string>
+	<string name="Call">Вызов</string>
+	<string name="NotFound">Не удалось найти целевой SIP-аккаунт, вызов не удался</string>
+	<string name="RequestTimes">Соединение вызова не удалось, попробуйте снова</string>
+    <!-- 更多界面 -->
+	<string name="DeviceInfoText">Настройки устройства</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="DeviceSign">Внутренний ID</string>
+	<string name="MAC">MAC</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="ServerIP">IP сервера</string>
+	<string name="InputServer">Введите адрес и порт сервера</string>
+	<string name="ServerTag">Только цифры и точки</string>
+	<string name="ServerIPWrong">Неверный адрес сервера</string>
+	<string name="InputPassword">Пожалуйста, введите пароль</string>
+	<string name="PasswordWrong">Ошибка пароля</string>
+	<string name="PasswordTag">Пароль должен состоять из 3 цифр</string>
+	<string name="PasswordText">Пароль из 3 цифр</string>
+	<string name="PasswordInput">Введите пароль</string>
+	<string name="RestartTime">Отсчет перезагрузки:</string>
+	<string name="ScanQRCode">Сканировать QR код</string>
+    <!-- 设置界面 -->
+	<string name="SettingText">Настройки устройства</string>
+	<string name="IsLight">Всегда включено</string>
+	<string name="IsVolume">Включить управление громкостью</string>
+	<string name="ThemeText">Выберите цветовую тему</string>
+	<string name="ThemeBule">Синий</string>
+	<string name="ThemeRed">Красный</string>
+	<string name="ThemeGreen">Зеленый</string>
+	<string name="ModeText">Выберите режим отображения</string>
+	<string name="ChooseLang">Выберите язык</string>
+    <!-- 测试界面 -->
+	<string name="DebugText">Отладка устройства</string>
+	<string name="InputSip">Введите целевой SIP-аккаунт</string>
+	<string name="InputSipMsg">Введите аккаунт для тестирования</string>
+	<string name="OtherDevicesTest">Тест внешних устройств</string>
+	<string name="OtherDevicesTestMsg">Проверьте подключение внешнего устройства перед началом теста</string>
+	<string name="ChangeToRtc">Переключиться на RTC вызов</string>
+	<string name="ChangeToSip">Переключиться на SIP вызов</string>
+	<string name="HandleKeys">Тестирование кнопок</string>
+	<string name="PanelCallKeys">Тестирование кнопок вызова панели</string>
+	<string name="PanelCancelKeys">Тестирование кнопок отмены панели</string>
+	<string name="SosKeys">Тест кнопок SOS</string>
+	<string name="RecordTest">Тест записи</string>
+	<string name="RecordText">Нажмите кнопку для теста микрофона</string>
+	<string name="RecordStart">Начало записи, время записи 5 секунд</string>
+	<string name="RecordPlay">Конец записи, начало воспроизведения</string>
+	<string name="RecordStop">Воспроизведение записи завершено</string>
+	<string name="RecordFailed">Ошибка записи</string>
+	<string name="DoorLightTest">Тест подсветки двери</string>
+	<string name="ColorTest">Цветовой тест</string>
+    <!-- 颜色测试界面 -->
+	<string name="ColorMsg">Нажмите для смены цвета</string>
+	<string name="ContactButton">Контактный интерфейс</string>
+    <!-- 错误提示 -->
+	<string name="NoBedList">Нет кроватей в текущей палате</string>
+	<string name="NoCustomer">В текущей палате нет зарегистрированных пациентов</string>
+	<string name="NoBedDevice">Нет устройства в текущей кровати, вызов не удался</string>
+	<string name="AccountPasswordError">Ошибка аккаунта или пароля</string>
+	<string name="WrongPassword">Ошибка пароля</string>
+	<string name="ConfigureEmployeeID">Пожалуйста, сначала настройте ID сотрудника</string>
+	<string name="PassNoError">Сотрудник с картой не найден</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="sys_setup">Настройка</string>
+	<string name="sys_developer_options">Параметры разработчика</string>
+	<string name="sys_debug_switch">Переключатель отладки</string>
+	<string name="sys_net_setup">Настройки сети</string>
+	<string name="sys_wifi_setup">Настройки WIFI</string>
+	<string name="sys_lte4g_setup">Настройки 4G</string>
+	<string name="sys_hotspot_setup">Настройки точки доступа</string>
+	<string name="sys_ethernet_setup">Настройки Ethernet</string>
+	<string name="sys_hotspot_switch">Переключатель точки доступа</string>
+	<string name="sys_hotspot_name">Имя точки доступа:</string>
+	<string name="sys_hotspot_password">Пароль точки доступа:</string>
+	<string name="sys_show_password">Показать пароль</string>
+	<string name="sys_save">Сохранить</string>
+	<string name="sys_lang_setup">Настройка языка</string>
+	<string name="sys_cancel">Отмена</string>
+	<string name="sys_confirm">Подтвердить</string>
+	<string name="sys_lang_switch_tip">Подтвердить?</string>
+	<string name="sys_wifi_name">Имя:</string>
+	<string name="sys_wifi_encryption_method">Метод шифрования:</string>
+	<string name="sys_wifi_encryption_encrypted">Шифрование</string>
+	<string name="sys_wifi_encryption_open">Открыть</string>
+	<string name="sys_wifi_password">Пароль:</string>
+	<string name="sys_wifi_status">Статус:</string>
+	<string name="sys_wifi_connect">Подключиться</string>
+	<string name="sys_wifi_disconnect">Отключиться</string>
+	<string name="sys_wifi_status_authenticating">Аутентификация...</string>
+	<string name="sys_wifi_status_handshake">Получение IP</string>
+	<string name="sys_wifi_status_connected">Подключено</string>
+	<string name="sys_wifi_ip_addr">IP-адрес:</string>
+	<string name="sys_wifi_mac_addr">MAC-адрес:</string>
+	<string name="sys_wifi_password_error">Ошибка пароля</string>
+	<string name="sys_lte4g_manufacturer">Производитель:</string>
+	<string name="sys_lte4g_version">Версия:</string>
+	<string name="sys_ethernet_connect_type">Тип подключения</string>
+	<string name="sys_ethernet_dynamic_ip">Получить IP автоматически</string>
+	<string name="sys_ethernet_static_ip">Статический IP</string>
+	<string name="sys_ethernet_ip_addr">IP-адрес</string>
+	<string name="sys_ethernet_mask">Маска подсети</string>
+	<string name="sys_ethernet_gateway">Шлюз по умолчанию</string>
+	<string name="sys_ethernet_first_dns">Предпочитаемый DNS-сервер</string>
+	<string name="sys_ethernet_ Second_dns">Резервный DNS-сервер</string>
+	<string name="sys_ethernet_save_ok">Сохранить успешно</string>
+	<string name="sys_ethernet_save_error">Не удалось сохранить</string>
+	<string name="sys_touch_ Calibration">Сенсорная калибровка</string>
+	<string name="sys_upgrade">Обновление</string>
+	<string name="sys_upgrade_need_reboot">Система собирается перезагрузиться для обновления</string>
+	<string name="sys_upgrade_success">Обновление прошло успешно, система перезагрузится</string>
+	<string name="sys_upgrade_fail">Ошибка обновления</string>
+	<string name="sys_upgrade_pack_format_error">Ошибка формата пакета обновления. Создайте пакет обновления заново! </string>
+	<string name="sys_upgrade_type_no_match_error">Модель пакета обновления не соответствует! </string>
+	<string name="sys_upgrade_forbid_error">Обновление запрещено! </string>
+	<string name="sys_upgrade_image_size_error"> обновление не выполнено</string>
+	<string name="sys_upgrade_logo_size_error">Разрешение загрузочного логотипа превышает разрешение экрана, обновление не выполнено</string>
+	<string name="sys_upgrade_not_support_logo_error">Не поддерживает обновление загрузочного логотипа, обновление не выполнено</string>
+	<string name="sys_exit">Выход</string>
+	<string name="sys_upgrade_warning">Обновление, не выключайте</string>
+	<string name="sys_upgrade_ts_tip_warning">Примечание. После завершения обновления удалите файл ts.cfg на карте T, чтобы предотвратить дальнейшие обновления!</string>
+	<string name="sys_ts_type">Тип:</string>
+	<string name="sys_ts_version">Версия:</string>
+	<string name="sys_ts_pix">Разрешение:</string>
+	<string name="sys_ts_date">Дата:</string>
+</resources>

+ 2 - 0
i18n/zh_CN.tr

@@ -95,6 +95,7 @@
     <string name="Mode2">是否切换成模式2</string>
     <string name="ModeConfirm">确认切换模式后,本机会重启</string>
     <string name="SosCalling">报警已发出</string>
+    <string name="DeviceSettingChange">设备设置发生变更,正在重启</string>
     <!-- 医护界面 -->
     <string name="MedicalLoginMsg">请输入正确的密码,进入医护功能</string>
     <string name="InputMedicalPassword">输入密码进入医护</string>
@@ -189,6 +190,7 @@
     <string name="ThemeRed">红</string>
     <string name="ThemeGreen">绿</string>
     <string name="ModeText">选择显示模式</string>
+    <string name="ChooseLang">选择语言</string>
     <!-- 测试界面 -->
     <string name="DebugText">设备调试</string>
     <string name="InputSip">请输入目标SIP账号</string>

BIN
resources/Harmony_240927.ttf


+ 19 - 0
src/activity/settingActivity.cpp

@@ -4,6 +4,11 @@
 #include "settingActivity.h"
 
 /*TAG:GlobalVariable全局变量*/
+static ZKTextView* mChooseLangTextViewPtr;
+static ZKButton* mEsEsButtonPtr;
+static ZKButton* mRuRuButtonPtr;
+static ZKButton* mEnUsButtonPtr;
+static ZKButton* mZhCnButtonPtr;
 static ZKRadioGroup* mModeRadioGroupPtr;
 static ZKTextView* mModeTextViewPtr;
 static ZKRadioGroup* mThemeRadioGroupPtr;
@@ -53,6 +58,10 @@ typedef struct {
 
 /*TAG:ButtonCallbackTab按键映射表*/
 static S_ButtonCallback sButtonCallbackTab[] = {
+    ID_SETTING_EsEsButton, onButtonClick_EsEsButton,
+    ID_SETTING_RuRuButton, onButtonClick_RuRuButton,
+    ID_SETTING_EnUsButton, onButtonClick_EnUsButton,
+    ID_SETTING_ZhCnButton, onButtonClick_ZhCnButton,
     ID_SETTING_sys_back, onButtonClick_sys_back,
     ID_SETTING_TestButton, onButtonClick_TestButton,
 };
@@ -149,6 +158,11 @@ settingActivity::~settingActivity() {
     unregisterProtocolDataUpdateListener(onProtocolDataUpdate);
     onUI_quit();
     mActivityPtr = NULL;
+    mChooseLangTextViewPtr = NULL;
+    mEsEsButtonPtr = NULL;
+    mRuRuButtonPtr = NULL;
+    mEnUsButtonPtr = NULL;
+    mZhCnButtonPtr = NULL;
     mModeRadioGroupPtr = NULL;
     mModeTextViewPtr = NULL;
     mThemeRadioGroupPtr = NULL;
@@ -170,6 +184,11 @@ const char* settingActivity::getAppName() const{
 //TAG:onCreate
 void settingActivity::onCreate() {
 	Activity::onCreate();
+    mChooseLangTextViewPtr = (ZKTextView*)findControlByID(ID_SETTING_ChooseLangTextView);
+    mEsEsButtonPtr = (ZKButton*)findControlByID(ID_SETTING_EsEsButton);
+    mRuRuButtonPtr = (ZKButton*)findControlByID(ID_SETTING_RuRuButton);
+    mEnUsButtonPtr = (ZKButton*)findControlByID(ID_SETTING_EnUsButton);
+    mZhCnButtonPtr = (ZKButton*)findControlByID(ID_SETTING_ZhCnButton);
     mModeRadioGroupPtr = (ZKRadioGroup*)findControlByID(ID_SETTING_ModeRadioGroup);if(mModeRadioGroupPtr!= NULL){mModeRadioGroupPtr->setCheckedChangeListener(this);}
     mModeTextViewPtr = (ZKTextView*)findControlByID(ID_SETTING_ModeTextView);
     mThemeRadioGroupPtr = (ZKRadioGroup*)findControlByID(ID_SETTING_ThemeRadioGroup);if(mThemeRadioGroupPtr!= NULL){mThemeRadioGroupPtr->setCheckedChangeListener(this);}

+ 5 - 0
src/activity/settingActivity.h

@@ -29,6 +29,11 @@
 #include "window/ZKSlideWindow.h"
 
 /*TAG:Macro宏ID*/
+#define ID_SETTING_ChooseLangTextView    50006
+#define ID_SETTING_EsEsButton    20003
+#define ID_SETTING_RuRuButton    20004
+#define ID_SETTING_EnUsButton    20002
+#define ID_SETTING_ZhCnButton    20001
 #define ID_SETTING_ModeRadioButton2    22005
 #define ID_SETTING_ModeRadioButton1    22004
 #define ID_SETTING_ModeRadioGroup    94002

+ 71 - 2
src/logic/functionLogic.cc

@@ -49,6 +49,7 @@ static uint32_t functionColor = buleDeepColour;
 static base::MediaPlayer mediaPlayer;
 
 #define FUNCTION_TIMER_HANDLE 3	// 增援的定时器id
+#define REBOOT_TIME_HANDLE 99 // 重启
 
 
 void setFunctionTheme() {
@@ -163,7 +164,6 @@ static void help() {
 	else if (functionThemeInt == 3) {
 		mIconPainterPtr->setBackgroundPic("icon/zengyuan2-green.png");
 		mFunctionButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_green2.png");
-
 	}
 	mFunctionTextViewPtr->setText(LANGUAGEMANAGER->getValue("HelpInfo"));
 	mStateTextViewPtr->setVisible(false);
@@ -323,6 +323,54 @@ void functionSosCall() {
 }
 
 
+void setLanguage(string functionText) {
+	mIconPainterPtr->setBackgroundPic("icon/chenggong.png");
+	if (functionText == "zh_CN") {
+		mFunctionTextViewPtr->setText("切换成中文");
+		mFunctionButtonPtr->setText("确定");
+	}
+	else if (functionText == "en_US") {
+		mFunctionTextViewPtr->setText("Switch to English");
+		mFunctionButtonPtr->setText("Confirm");
+	}
+	else if (functionText == "es_ES") {
+		mFunctionTextViewPtr->setText("Cambiar al español");
+		mFunctionButtonPtr->setText("Determinar");
+	}
+	else if (functionText == "ru_RU") {
+		mFunctionTextViewPtr->setText("Переключиться на русский");
+		mFunctionButtonPtr->setText("Определение");
+	}
+	mStateTextViewPtr->setVisible(false);
+	if (functionThemeInt == 1) {
+		mFunctionButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_bule2.png");
+	}
+	else if (functionThemeInt == 2) {
+		mFunctionButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_pink2.png");
+	}
+	else if (functionThemeInt == 3) {
+		mFunctionButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_green2.png");
+	}
+	mFunctionWindowPtr->showWnd();
+}
+
+void deviceSettingChange() {
+	mFunctionTextViewPtr->setText(LANGUAGEMANAGER->getValue("DeviceSettingChange"));
+	mStateTextViewPtr->setVisible(false);
+	if (functionThemeInt == 1) {
+		mFunctionButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_bule2.png");
+	}
+	else if (functionThemeInt == 2) {
+		mFunctionButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_pink2.png");
+	}
+	else if (functionThemeInt == 3) {
+		mFunctionButtonPtr->setButtonStatusPic(ZK_CONTROL_STATUS_NORMAL, "button/elliptic_green2.png");
+	}
+	mFunctionWindowPtr->showWnd();
+
+	mActivityPtr->registerUserTimer(REBOOT_TIME_HANDLE, 10 * 1000);	// 10秒
+}
+
 
 
 /**
@@ -412,6 +460,17 @@ static void onUI_intent(const Intent *intentPtr) {
         else if (_functionWindows == "sosCall") {
             functionSosCall();
         }
+		else if (_functionWindows == "language") {
+			_functionText = intentPtr->getExtra(functionText);
+			 setLanguage(_functionText);
+		}
+		else if (_functionWindows == "deviceSettingChange") {
+			deviceSettingChange();
+		}
+		else {
+			_warnText = LANGUAGEMANAGER->getValue("NotActivity");
+			warn(_warnText);
+		}
     }
 }
 
@@ -465,6 +524,10 @@ static bool onUI_Timer(int id){
 			EASYUICONTEXT->closeActivity("functionActivity");
 			return false;
 			break;
+		case REBOOT_TIME_HANDLE: {
+			deviceReboot();
+		}
+			break;
 		default:
 			break;
 	}
@@ -618,7 +681,13 @@ static bool onButtonClick_FunctionButton(ZKButton *pButton) {
             StoragePreferences::putInt(STORE_MODE, 2);
     	}
     	deviceReboot();
-
+    }
+    else if (_functionWindows == "language") {
+    	StoragePreferences::putString(STORE_LANG, _functionText);
+    	deviceReboot();
+    }
+    else if (_functionWindows == "deviceSettingChange") {
+    	deviceReboot();
     }
 
 	EASYUICONTEXT->closeActivity("functionActivity");

+ 62 - 0
src/logic/mainLogic.cc

@@ -312,6 +312,22 @@ public:
 			partSetting.autoPosition = root["auto_position"].asInt();
 	        partSetting.customerAgeHiddenOnDoor = root["customer_age_hidden_on_door"].asInt();
 
+			if (root.isMember("language")) {
+				partSetting.language = root["language"].asString();
+			}
+			else {
+				partSetting.language = "";
+			}
+			if (root.isMember("time_zone")) {
+				partSetting.timeZone = root["time_zone"].asString();
+			}
+			else {
+				partSetting.timeZone = "";
+			}
+			if (deviceSettingChange()) {
+				return;
+			}
+
 			if (root.isMember("linux_bed_volume_native")) {
 				partSetting.linuxDoorVolumeNative = root["linux_door_volume_native"].asInt();
 				partSetting.linuxDoorGainSize = root["linux_door_gain_size"].asInt();
@@ -356,6 +372,52 @@ public:
 		}
 	}
 
+
+	static bool deviceSettingChange() {
+		int count = 0;
+		count += setPartLanguage();
+		count += setPartTimeZone();
+
+		if (count > 0) {
+			Intent* intent = new Intent();
+			intent->putExtra(functionWindows, "deviceSettingChange");
+			EASYUICONTEXT->openActivity("functionActivity", intent);
+			return true;
+		}
+		return false;
+	}
+
+
+	static int setPartLanguage() {
+		if (partSetting.language != "") {
+			if (StoragePreferences::getString(STORE_LANG, defaultLang) != defaultLang) {
+				LOGD("拥有设备固定语言:%s,无需切换", StoragePreferences::getString(STORE_LANG, defaultLang).c_str());
+			}
+			else{
+				if (partSetting.language == StoragePreferences::getString(STORE_PART_LANG, defaultPartLang)) {
+					LOGD("与当前语言为:%s,无需切换", partSetting.language.c_str());
+				}
+				else {
+					LOGD("与当前语言:%s 不相同,切换至语言:%s", StoragePreferences::getString(STORE_PART_LANG, defaultPartLang).c_str(), partSetting.language.c_str());
+					StoragePreferences::putString(STORE_PART_LANG, partSetting.language);
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	static int setPartTimeZone() {
+		if (partSetting.timeZone != "") {
+			if (StoragePreferences::getString(STORE_PART_TIME_ZONE, defaultPartTimeZone) != partSetting.timeZone) {
+				LOGD("与当前时区:%s 不相同,切换至时区:%s", StoragePreferences::getString(STORE_PART_TIME_ZONE, defaultPartTimeZone).c_str(), partSetting.timeZone.c_str());
+				StoragePreferences::putString(STORE_PART_TIME_ZONE, partSetting.timeZone);
+				return true;
+			}
+		}
+		return false;
+	}
+
 	static void getVersion() {
 		std::string url = getHttpGateway() + "/deviceRoom/get_app_version?device_type=403&part_id=" + StoragePreferences::getString(STORE_PARTID, "");
 		std::string content_type = std::string("application/json");

+ 1 - 2
src/logic/medicalCareLogic.cc

@@ -108,7 +108,7 @@ static void getClerkList() {
 		if (root.size() > 0) {
 			Json::Value clerks;
 			for (int i = 0; i < root.size(); i++) {
-				if (root[i]["pass_no"].asString() != "") {
+				if (root[i].isMember("pass_no") && root[i]["pass_no"].asString() != "") {
 					clerks.append(root[i]);
 				}
 			}
@@ -475,7 +475,6 @@ static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
  */
 static void onUI_init(){
     //Tips :添加 UI初始化的显示代码到这里,如:mText1Ptr->setText("123");
-
 	Json::Value frameRoom = getFrame();
 	frameFullName = frameRoom["frame_room"]["full_name"].asString();
 	mPositionTextViewPtr->setText(frameFullName);

+ 7 - 7
src/logic/moreLogic.cc

@@ -86,7 +86,7 @@ void getDeviceMenu() {
 			if (count == 0) {
 				Json::Value deviceInfo;
 				deviceInfo["icon_src"] = "/more/shebi.png";
-				deviceInfo["name"] = "设备信息";
+				deviceInfo["name"] = LANGUAGEMANAGER->getValue("DeviceInfo");
 				deviceInfo["introduction"] = "查看信息和设置";
 				deviceInfo["act_name"] = "deviceInfoActivity";
 				deviceMenus.append(deviceInfo);
@@ -113,14 +113,14 @@ static void onUI_init(){
     //Tips :添加 UI初始化的显示代码到这里,如:mText1Ptr->setText("123");
 
 	deviceMenus[0]["icon_src"] = deviceInfoPic;
-	deviceMenus[0]["name"] = "设备信息";
+	deviceMenus[0]["name"] = LANGUAGEMANAGER->getValue("DeviceInfo");
 	deviceMenus[0]["introduction"] = "查看信息和设置";
 	deviceMenus[0]["act_name"] = "deviceInfoActivity";
 
 	deviceMenus[1]["icon_src"] ="/more/keshi.png";
-	deviceMenus[1]["name"] = "呼叫床位";
+	deviceMenus[1]["name"] = LANGUAGEMANAGER->getValue("CallBed");
 	deviceMenus[1]["introduction"] = "呼叫床位分机";
-	deviceMenus[0]["act_name"] = "callBedActivity";
+	deviceMenus[1]["act_name"] = "callBedActivity";
 
 //	deviceMenus[1]["icon_src"] ="/more/keshi.png";
 //	deviceMenus[1]["name"] = "科室介绍";
@@ -235,12 +235,12 @@ static void obtainListItemData_DeviceMenuListView(ZKListView *pListView,ZKListVi
 static void onListItemClick_DeviceMenuListView(ZKListView *pListView, int index, int id) {
     //LOGD(" onListItemClick_ DeviceMenuListView  !!!\n");
 
-	string name = deviceMenus[index]["name"].asString();
-	if (name == "设备信息") {
+	string actName = deviceMenus[index]["act_name"].asString();
+	if (actName == "deviceInfoActivity") {
 		EASYUICONTEXT->openActivity("deviceInfoActivity");
 	}
 
-	else if (name == "呼叫床位") {
+	else if (actName == "callBedActivity") {
 		Intent* intent = new Intent();
 		intent->putExtra(functionWindows, "callBed");
 		EASYUICONTEXT->openActivity("functionActivity", intent);

+ 35 - 0
src/logic/settingLogic.cc

@@ -220,3 +220,38 @@ static void onCheckedChanged_ModeRadioGroup(ZKRadioGroup* pRadioGroup, int check
 	EASYUICONTEXT->openActivity("functionActivity", intent);
 
 }
+static bool onButtonClick_ZhCnButton(ZKButton *pButton) {
+    LOGD(" ButtonClick ZhCnButton !!!\n");
+    Intent* intent = new Intent();
+	intent->putExtra(functionWindows, "language");
+	intent->putExtra(functionText, "zh_CN");
+	EASYUICONTEXT->openActivity("functionActivity", intent);
+    return false;
+}
+
+static bool onButtonClick_EnUsButton(ZKButton *pButton) {
+    LOGD(" ButtonClick EnUsButton !!!\n");
+    Intent* intent = new Intent();
+	intent->putExtra(functionWindows, "language");
+	intent->putExtra(functionText, "en_US");
+	EASYUICONTEXT->openActivity("functionActivity", intent);
+    return false;
+}
+
+static bool onButtonClick_RuRuButton(ZKButton *pButton) {
+    LOGD(" ButtonClick RuRuButton !!!\n");
+    Intent* intent = new Intent();
+	intent->putExtra(functionWindows, "language");
+	intent->putExtra(functionText, "ru_RU");
+	EASYUICONTEXT->openActivity("functionActivity", intent);
+    return false;
+}
+
+static bool onButtonClick_EsEsButton(ZKButton *pButton) {
+    LOGD(" ButtonClick EsEsButton !!!\n");
+    Intent* intent = new Intent();
+	intent->putExtra(functionWindows, "language");
+	intent->putExtra(functionText, "es_ES");
+	EASYUICONTEXT->openActivity("functionActivity", intent);
+    return false;
+}

+ 122 - 8
src/logic/startLogic.cc

@@ -27,6 +27,8 @@ static int netresetInt = 0;
 static string callTid = "";
 Json::Value sosInteraction;
 
+static int timeDifference = 8;
+
 #define FUNCTION_TIMER_HANDLE 3	// 增援的定时器id
 #define SOS_CLICK_TIME_HANDLE 4	// sos的定时器id
 #define SOS_LAMP_TIME_HANDLE 5	// sos的门灯定时器id
@@ -36,6 +38,7 @@ Json::Value sosInteraction;
 #define PROMPT_TIME_HANDLE 11	// 提示语
 
 #define HTTP_SERVER_PORT  80
+#define REBOOT_TIME_HANDLE 99 // 重启
 
 #define goback 200
 #define SIP_RECONNECT_TIME_HANDLE 201
@@ -194,6 +197,89 @@ void systemRestart() {
     	mActivityPtr->registerUserTimer(SYS_RESTART_TIME_HANDLE, 1000);
     }
 }
+void setTimeDifference() {
+	std::string _timeZone = StoragePreferences::getString(STORE_PART_TIME_ZONE, defaultPartTimeZone);
+	if (_timeZone == "Africa/Lome") {
+		timeDifference = 0;
+	}
+	else if (_timeZone == "Africa/Luanda") {
+		timeDifference = 1;
+	}
+	else if (_timeZone == "Africa/Kigali") {
+		timeDifference = 2;
+	}
+	else if (_timeZone == "Europe/Moscow") {
+		timeDifference = 3;
+	}
+	else if (_timeZone == "Europe/Astrakhan") {
+		timeDifference = 4;
+	}
+	else if (_timeZone == "Asia/Karachi") {
+		timeDifference = 5;
+	}
+	else if (_timeZone == "Asia/Dhaka") {
+		timeDifference = 6;
+	}
+	else if (_timeZone == "Asia/Ho_Chi_Minh") {
+		timeDifference = 7;
+	}
+	else if (_timeZone == "Asia/Seoul") {
+		timeDifference = 9;
+	}
+	else if (_timeZone == "Asia/Ust-Nera") {
+		timeDifference = 10;
+	}
+	else if (_timeZone == "Asia/Magadan") {
+		timeDifference = 11;
+	}
+	else if (_timeZone == "Asia/Anadyr") {
+		timeDifference = 12;
+	}
+	else if (_timeZone == "Pacific/Apia") {
+		timeDifference = 13;
+	}
+	else if (_timeZone == "Pacific/Kiritimati") {
+		timeDifference = 14;
+	}
+	else if (_timeZone == "Atlantic/Cape_Verde") {
+		timeDifference = -1;
+	}
+	else if (_timeZone == "America/Noronha") {
+		timeDifference = -2;
+	}
+	else if (_timeZone == "America/Sao_Paulo") {
+		timeDifference = -3;
+	}
+	else if (_timeZone == "America/Montserrat") {
+		timeDifference = -4;
+	}
+	else if (_timeZone == "America/Bogota") {
+		timeDifference = -5;
+	}
+	else if (_timeZone == "America/Merida") {
+		timeDifference = -6;
+	}
+	else if (_timeZone == "America/Creston") {
+		timeDifference = -7;
+	}
+	else if (_timeZone == "Pacific/Pitcairn") {
+		timeDifference = -8;
+	}
+	else if (_timeZone == "Pacific/Gambier") {
+		timeDifference = -9;
+	}
+	else if (_timeZone == "Pacific/Honolulu") {
+		timeDifference = -10;
+	}
+	else if (_timeZone == "Pacific/Midway") {
+		timeDifference = -11;
+	}
+}
+
+int getTimeDifference() {
+	return timeDifference;
+}
+
 
 // 门灯还原
 void lightControl(std::string typeStr, std::string lightColorStr) {
@@ -240,14 +326,15 @@ void handleMsg(byte* inBytes){
 			}
 			LOGD("sync time : %s", serverTime.c_str());
 
-			time_t timet = stoi(serverTime);
-			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 + 8,t->tm_min,t->tm_sec);
-			LOGD("transfered time : %s", pDate);
-			TimeHelper::setDateTime(pDate);
+//			time_t timet = stoi(serverTime);
+//			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 + 8,t->tm_min,t->tm_sec);
+//			LOGD("transfered time : %s", pDate);
+//			TimeHelper::setDateTime(pDate);
+			TimeUtil::setDataTimeByTimeDifference(serverTime, timeDifference);
 
 			dataRefresh();
 
@@ -553,6 +640,31 @@ void setCallTid(std::string tid) {
 	callTid = tid;
 }
 
+
+void setLangeuage() {
+	std::string deviceLanguage = StoragePreferences::getString(STORE_LANG, defaultLang);
+	std::string partLanguage = StoragePreferences::getString(STORE_PART_LANG, defaultPartLang);
+	if (deviceLanguage != defaultLang) {
+		LOGD("设备自身拥有语言:%s", deviceLanguage.c_str());
+		EASYUICONTEXT->updateLocalesCode(deviceLanguage.c_str());
+	}
+	else {
+		LOGD("科室语言:%s", partLanguage.c_str());
+		if (partLanguage == "en") {
+			EASYUICONTEXT->updateLocalesCode("en_US");
+		}
+		else if (partLanguage == "es") {
+			EASYUICONTEXT->updateLocalesCode("es_ES");
+		}
+		else if (partLanguage == "ru") {
+			EASYUICONTEXT->updateLocalesCode("ru_RU");
+		}
+		else {
+			EASYUICONTEXT->updateLocalesCode("zh_CN");
+		}
+	}
+}
+
 //================================= IO 口操作
 //紧急按钮灯,明/灭
 void setSOS_A5(bool light){
@@ -675,6 +787,8 @@ static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
  * 当界面构造时触发
  */
 static void onUI_init(){
+	setTimeDifference();
+	setLangeuage();
 	//IO监测
 //	IGpioListener *iGpioListenerA1 = new A1GpioListener();
 //	GpioHelper::registerGpioListener("A1", iGpioListenerA1, E_GPIO_EDGE_TYPE_FALLING);

+ 0 - 1
src/net/tcp_model.cpp

@@ -62,7 +62,6 @@ TcpModel getTcpModel(byte* inBytes){
 			tcpModel.to_id = root["toId"].asInt();
 		}
 		if (root.isMember("data")){
-			LOGD("tcp model str2 = %s", str);
 			if (root["data"].isInt()){
 				std::string s = std::to_string(root["data"].asInt());
 				tcpModel.data = s.c_str();

+ 12 - 1
src/service/BusinessConfig.h

@@ -67,7 +67,15 @@
 #define STORE_GAIN_SIZE "gain_size"
 
 #define STORE_MAC_ADDR "mac_addr"
-
+#define STORE_LANG "language"
+#define STORE_PART_LANG "part_language"
+#define STORE_PART_TIME_ZONE "part_time_zone"
+//static std::string defaultLang = "zh_CN";
+//static std::string defaultLang = "en_US";
+//static std::string defaultLang = "ru_RU";
+//static std::string defaultPartLang = "cn";
+static std::string defaultPartLang = "ru";
+static std::string defaultPartTimeZone = "Asia/Shanghai";
 
 static uint32_t redLightColour = 0xFEB8BF;
 static uint32_t redDeepColour = 0xF78B8F;
@@ -197,6 +205,7 @@ void goHome();
 void deviceReboot();
 void systemRestart();
 bool isConnectServer();
+int getTimeDifference();
 
 enum CallFinishType {
 	CANCEL,
@@ -290,6 +299,8 @@ public:
     inline static int customerNameHiddenOnDoor;
     inline static int customerAgeHiddenOnDoor;
     inline static int clerkNameHiddenOnDoor;
+	inline static std::string timeZone;
+	inline static std::string language;
 };
 
 /**

BIN
ui/deviceInfo.ftu


BIN
ui/medicalCare.ftu


BIN
ui/setting.ftu