/* * BusinessConfig.h * * Created on: 2022年9月29日 * Author: Allen */ #include #include #include "storage/StoragePreferences.h" #include "utils/BrightnessHelper.h" #include "utils/TimeHelper.h" #include "utils/Log.h" #include #include "net/tcp_client.h" #include "net/tcp_model.h" #include "net/tcp_util.h" #include #ifndef JNI_SERVICE_BUSINESSCONFIG_H_ #define JNI_SERVICE_BUSINESSCONFIG_H_ #define STORE_DEVICE_ID "device_id" #define STORE_DEVICE_TYPE "device_type" #define STORE_PARTID "part_id" #define STORE_PARTNAME "part_name" #define STORE_CUSTOMER_ID "customer_id" #define STORE_GATEWAY "gateway" #define STORE_HTTP_PORT "http_port" #define STORE_TCP_LOCAL_IP "tcp_local_ip" #define STORE_TCP_PORT "tcp_port" #define STORE_SIGNAL_TYPE "signal_type" //语音信令方式, TCP、SIP #define STORE_SLEEP_TIME "sleep_time" #define STORE_DAY_START "day_start" #define STORE_DAY_LIGHT "day_light" #define STORE_DAY_VOL "day_vol" #define STORE_DAY_RING_TIMES "day_ring_times" #define STORE_NIGHT_START "night_start" #define STORE_NIGHT_LIGHT "night_light" #define STORE_NIGHT_VOL "night_vol" #define STORE_NIGHT_RING_TIMES "night_ring_times" #define STORE_DOCTOR_TITLE "doctor_title" #define STORE_DOCTOR_VISIBLE "doctor_visible" #define STORE_NURSE_TITLE "nurse_title" #define STORE_NURSE_VISIBLE "nurse_visible" #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 STORE_THEME "theme" #define STORE_MODE "mode" #define SIGNAL_TYPE "TCP" //TCP,SIP #define STORE_VOLUME_NATIVE "volume_native" #define STORE_GAIN_SIZE "gain_size" #define STORE_MAC_ADDR "mac_addr" static uint32_t redLightColour = 0xFEB8BF; static uint32_t redDeepColour = 0xF78B8F; static uint32_t buleLightColour = 0x759FFF; static uint32_t buleDeepColour = 0x3A78EF; static uint32_t greenLightColour = 0x15B525; static uint32_t greenDeepColour = 0x379891; static uint32_t yellowDeepColour = 0xE68024; static uint32_t whiteColour = 0xFFFFFF; static int defaultThemeInt = 1; static int defaultModeInt = 1; static std::string versionCode = "v1.0.51"; static int versionNo = 51; static std::string serverIP = "172.28.100.100"; static std::string tcpIP = "172.28.100.100"; static int serverHttpPort = 8006; static int serverTcpPort = 5086; static std::string getHttpGateway(){ std::string sserverIP = StoragePreferences::getString(STORE_GATEWAY, serverIP); int sserverHttpPort = StoragePreferences::getInt(STORE_HTTP_PORT, serverHttpPort); char gateWay[100]; sprintf(gateWay,"http://%s:%d",sserverIP.c_str(),sserverHttpPort); LOGD("getHttpGateway %s",gateWay); return gateWay; } static std::string getTcpGateway(){ std::string sserverIP = StoragePreferences::getString(STORE_TCP_LOCAL_IP, tcpIP); StoragePreferences::putInt(STORE_TCP_PORT, serverTcpPort); int sserverTcpPort = StoragePreferences::getInt(STORE_TCP_PORT, serverTcpPort); char gateWay[100]; sprintf(gateWay,"%s:%d",sserverIP.c_str(),sserverTcpPort); LOGD("getTcpGateway %s",gateWay); return gateWay; } static std::string getVersionCode() { LOGD("version -> %s",versionCode); return versionCode; } static int getVersionNo() { LOGD("versionNo -> %d", versionNo); return versionNo; } /** * 设置科室名称 */ void NavibarSetPartName(const std::string& partName); // 传入时间,获取时间的总秒数 int getTime(char* timeStr); // 门灯还原 //void doorLampRestoration(); void lightControl(std::string typeStr, std::string lightColorStr); /** * 刷新设备数据 */ void dataRefresh(); // 获取科室设置 void getPartSetting(); // 获取息屏定时任务 bool getSleepTimerRegistered(); // 设置是否开启息屏定时任务 void setSleepTimerRegistered(bool result); // 设置callTid void setCallTid(std::string tid); // 设置调试的按键框 void setCheckbox(std::string check); void setIsLight(bool _isLight); void pingThreadExitPending(); bool getIsUpdate(); // 控制呼叫床位按钮是否显示 //void callBedButtonSetVisible(); Json::Value getFrame(); void toFunctionActivity(std::string data); void logoutMedicalCare(); void setNursingEnd(); void setNursing(bool setNursing); const bool checkAddr(std::string addr); void openInitWindow(); void setPosistionItId(int id); void setRoomCheckItId(int id); void setPromptTimeItId(int id); void setPositionButton(bool setPosition); void setRoomPatrolButton(bool setRoomPatrol); void sendPromptQuit(int id); int getAuthItId(); void setAuthItId(int id); void goHome(); void goMore(); void goCare(); std::string getClerkPassNo(); void nfcLogin(std::string revStr); void setClerk(std::string clerk_name, std::string pass_no, int _authItid); void goHome(); void deviceReboot(); void systemRestart(); bool isConnectServer(); enum CallFinishType { CANCEL, REJECT, CANCEL_BY_DOOR, BUSY, HANDOFF, FAILED, ACCEPT, A1CLICK, KEY6_CLICK, NOT_FOUND, REQUEST_TIMES, }; void callActivityFinish(CallFinishType type); void buildSIP(std::string toSipId); void acceptSIP(); void removeSipRegisterStateListener(); void addSipRegisterStateListener(); void sendVoiceTcp(std::string action, TcpModel model, int toId); class PartSetting{ public: inline static int id; inline static std::string unionId; inline static int partId; inline static std::string dayStart; inline static int dayLight; inline static int dayVol; inline static int dayRingVol; inline static int dayRingTimes; inline static int dayNurseLed; inline static int dayDoorVol; inline static int dayBedVol; inline static int dayTransferBoxVol; inline static int dayTransferBoxSystemVol; inline static std::string nightStart; inline static int nightLight; inline static int nightVol; inline static int nightRingVol; inline static int nightRingTimes; inline static int nightNurseLed; inline static int nightDoorVol; inline static int nightBedVol; inline static int nightTransferBoxVol; inline static int nightTransferBoxSystemVol; inline static int sleepSecondsNurse; inline static int sleepSecondsDoor; inline static int sleepSecondsBed; inline static int sipOvertime; inline static int transferDuration; inline static int transferDurationLeader; inline static int communicationModeBed; inline static int communicationModeNurse; inline static int communicationModeMobile; inline static int customizeRoleCallFirst; inline static int customizeRoleCallSecond; inline static int customizeRoleCallThird; inline static int customizeRoleCallFourth; inline static int customizeRoleCallFifth; inline static int customizeHospitalCallFirst; inline static std::string customizeHospitalCallFirstName; inline static int customizeHospitalCallSecond; inline static std::string customizeHospitalCallSecondName; inline static int customizeHospitalCallThird; inline static std::string customizeHospitalCallThirdName; inline static std::string doctorTitle; inline static int doctorValid; inline static std::string nurseTitle; inline static int nurseValid; inline static std::string doorNurseTitle; inline static int doorNurseValid; inline static std::string doorNursingTitle; inline static int doorNursingValid; inline static int upSeconds; inline static int autoAccept; inline static bool boardShowEmptyBed; inline static int eventForward; inline static std::string nursingColorRgb; 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; inline static int customerNameHiddenOnDoor; inline static int customerAgeHiddenOnDoor; inline static int clerkNameHiddenOnDoor; }; /** * 是否白天 */ static bool checkIsDay(){ struct tm *t = TimeHelper::getDateTime(); //获得当前日期 char cDate[20]; sprintf(cDate,"%d-%02d-%02d", 1900 + t->tm_year, 1+ t->tm_mon, t->tm_mday); std::string cDateStr = cDate; //组合白天与黑夜开始时间 std::string dayStart = cDateStr + StoragePreferences::getString(STORE_DAY_START, " 07:00:00"); std::string nightStart = cDateStr + StoragePreferences::getString(STORE_NIGHT_START, " 18:00:00"); //LOGD("dayStart %s . nightStart %s", dayStart.c_str(), nightStart.c_str()); time_t tDayStart = TimeHelper::StringToDatetime(dayStart); time_t tNightStart = TimeHelper::StringToDatetime(nightStart); time_t currentTime = mktime(t) - 28800; if (currentTime>=tDayStart && currentTime<= tNightStart){ return true; } return false; //LOGD("tiDayStart %ld . tNightStart %ld . currentTime %ld", tDayStart, tNightStart, currentTime); } 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: virtual ~CallingStatus(); static CallingStatus* instance(); void setBusy(bool busy); void setTcpModel(TcpModel tcpModel); void clearTcpModel(); static bool busy(); TcpModel getTcpModel(); long getInteractionId(); private: CallingStatus(); private: std::atomic _busy; TcpModel _tcpModel; long _interactionId; }; class TcpCallback{ public: std::string tid; std::string jsonStr; std::function onSuccess; std::function onFalied; }; class TcpCacheManager{ public: virtual ~TcpCacheManager(); static TcpCacheManager* instance(); void setFunc(std::string tid, TcpCallback callback); TcpCallback getFunc(std::string tid); private: TcpCacheManager(); private: std::map cb; }; static std::string appUpdate = "appUpdate"; #endif /* JNI_SERVICE_BUSINESSCONFIG_H_ */