| ¶Ô±ÈÐÂÎļþ |
| | |
| | | #ifndef SECS_RUNTIME_MANAGER_H |
| | | #define SECS_RUNTIME_MANAGER_H |
| | | |
| | | #include <string> |
| | | #include <vector> |
| | | #include <mutex> |
| | | #include "Database.h" |
| | | |
| | | class SECSRuntimeManager { |
| | | public: |
| | | /** |
| | | * è·ååä¾å®ä¾ |
| | | * @return SECSRuntimeManagerå®ä¾çå¼ç¨ |
| | | */ |
| | | static SECSRuntimeManager& getInstance(); |
| | | |
| | | /** |
| | | * è®¾ç½®æ°æ®åºè¿æ¥ |
| | | * @param db æ°æ®åºè¿æ¥çæé |
| | | */ |
| | | void setDatabase(BL::Database* db); |
| | | |
| | | /** |
| | | * åå§åSECSè¿è¡è®¾ç½®ç®¡çåº |
| | | * @return æåè¿åtrueï¼å¤±è´¥è¿åfalse |
| | | */ |
| | | bool initRuntimeSetting(); |
| | | |
| | | /** |
| | | * 鿝SECSè¿è¡è®¾ç½®ç®¡çåº |
| | | */ |
| | | void termRuntimeSetting(); |
| | | |
| | | /** |
| | | * åå§åSystemSV表 |
| | | */ |
| | | void initSystemSVTable(); |
| | | |
| | | /** |
| | | * æ·»å SystemSV æ°æ® |
| | | * @param nID: éè¦æ·»å ç SystemSV ç IDï¼å¿
é¡»æ¯å¯ä¸çã |
| | | * @param sName: éè¦æ·»å ç SystemSV çåç§°ï¼å¿
é¡»æ¯å¯ä¸çã |
| | | * @param sDataType: æ°æ®ç±»åï¼è¡¨ç¤ºè¯¥ç³»ç»å¼çç±»åï¼ä¾å¦ "ASCII"ã"UINT_1" çã |
| | | * @param nLength: ç³»ç»å¼çæ°æ®é¿åº¦ï¼é常为ä¸ä¸ªæ£æ´æ°ï¼ç¨äºè¡¨ç¤ºè¯¥æ°æ®çé¿åº¦ã |
| | | * @param sUnit: ç³»ç»å¼çåä½ãå¦æä¸ºç©ºæè
为 "NULL"ï¼åæå
¥æ°æ®åºä¸ç NULL å¼ã |
| | | * @param sRemark: 夿³¨ä¿¡æ¯ï¼æè¿°è¯¥ç³»ç»å¼çå
¶ä»ä¿¡æ¯ï¼å¯ç¨äºè¯´æè¯¥å段çç¨éæç¹æ§ã |
| | | * @param nSystemID: è¯¥æ°æ®æå±çç³»ç» IDï¼ç¨äºä¸å
¶ä»è¡¨è¿è¡å
³èã |
| | | * @return 1: æ°æ®åºæªè¿æ¥ã |
| | | * @return 2: ID éå¤ï¼æ æ³æå
¥æ°æ®ã |
| | | * @return 3: Name éå¤ï¼æ æ³æå
¥æ°æ®ã |
| | | * @return 4: æå
¥æ°æ®å¤±è´¥ã |
| | | * @return 0: æå
¥æåï¼æ°æ®å·²æ·»å å° SystemSV 表ä¸ã |
| | | * |
| | | * æ¤å½æ°ç¨äºå°ä¸æ¡æ°çæ°æ®æå
¥å° SystemSV 表ä¸ãå®é¦å
伿£æ¥ä¼ å
¥ç `ID` å `Name` æ¯å¦å·²åå¨äºè¡¨ä¸ï¼ |
| | | * 妿åå¨åè¿åç¸åºçé误代ç ã妿 `Unit` åæ°ä¸º "NULL" æè
为空ï¼å½æ°ä¼å°å
¶è½¬æ¢ä¸ºæ°æ®åºä¸ç NULL å¼ã |
| | | * ç¶åï¼æé ä¸ä¸ª SQL æå
¥è¯å¥å¹¶æ§è¡æå
¥æä½ã妿æå
¥å¤±è´¥ï¼åæåºå¼å¸¸ã |
| | | * 妿ä¸å顺å©ï¼è¿å 0 è¡¨ç¤ºæ°æ®æåæå
¥ã |
| | | */ |
| | | int addSystemSV(int nID, const std::string& sName, const std::string& sDataType, int nLength, const std::string& sUnit, const std::string& sRemark, int nSystemID); |
| | | |
| | | /** |
| | | * æ´æ°æå® ID ç SystemSV æ°æ® |
| | | * @param nID: éè¦æ´æ°ç SystemSV çå½å IDã |
| | | * @param sNewID: è¦æ´æ°ä¸ºçæ° IDã |
| | | * @return 1: æ°æ®åºæªè¿æ¥ã |
| | | * @return 2: æªæ¾å°æå®ç IDã |
| | | * @return 3: æ°ç ID å·²ç»åå¨ï¼æ æ³æ´æ°ã |
| | | * @return 4: æ´æ°æä½å¤±è´¥ã |
| | | * @return 0: æ´æ°æåã |
| | | * |
| | | * æ¤å½æ°ç¨äºæ´æ° `SystemSV` è¡¨ä¸æå® `nID` çè®°å½ï¼å°å
¶ `ID` åæ®µæ´æ°ä¸º `sNewID`ã |
| | | * 卿§è¡æ´æ°åï¼å½æ°ä¼æ£æ¥ï¼ |
| | | * 1. å½åç `nID` æ¯å¦åå¨äºè¡¨ä¸ã |
| | | * 2. æ°ç `sNewID` æ¯å¦å·²ç»åå¨äºè¡¨ä¸ï¼å¦æåå¨ï¼åæ æ³è¿è¡æ´æ°ã |
| | | * |
| | | * 妿 `nID` ä¸åå¨ï¼åè¿åé误代ç 2ã妿 `sNewID` å·²ç»åå¨ï¼åè¿åé误代ç 3ã |
| | | * å¦ææ°æ®åºæ´æ°å¤±è´¥ï¼åè¿åé误代ç 4ãæåæ¶ï¼è¿å 0 表示æä½æåã |
| | | */ |
| | | int updateIDSystemSV(int nID, int sNewID); |
| | | |
| | | /** |
| | | * æ´æ°ææ SystemSV æ°æ® |
| | | * @param nID: éè¦æ´æ°ç SystemSV çå½å IDã |
| | | * @param sNewID: è¦æ´æ°ä¸ºçæ° IDï¼å¦æä¸ºç©ºæä¸º -1ï¼å䏿´æ° IDã |
| | | * @param sName: æ°çåç§°ï¼å¦æä¸ºç©ºï¼å䏿´æ°ã |
| | | * @param sDataType: æ°çæ°æ®ç±»åï¼å¦æä¸ºç©ºï¼å䏿´æ°ã |
| | | * @param nLength: æ°çæ°æ®é¿åº¦ï¼å¦æä¸ºè´å¼æé¶ï¼å䏿´æ°ã |
| | | * @param sUnit: æ°çåä½ï¼å¦æä¸ºç©ºæ "NULL"ï¼å䏿´æ°ã |
| | | * @param sRemark: æ°ç夿³¨ï¼å¦æä¸ºç©ºï¼å䏿´æ°ã |
| | | * @param nSystemID: æ°çç³»ç» IDï¼å¦æä¸ºè´å¼ï¼å䏿´æ°ã |
| | | * @return 1: æ°æ®åºæªè¿æ¥ã |
| | | * @return 2: æ²¡ææ¾å°è¯¥ ID 对åºçè®°å½ã |
| | | * @return 3: æ°ç ID å·²ç»åå¨ï¼æ æ³æ´æ°ã |
| | | * @return 4: æ´æ°æä½å¤±è´¥ã |
| | | * @return 0: æ´æ°æåã |
| | | * |
| | | * æ¤å½æ°ç¨äºæ´æ°æå® `ID` ç `SystemSV` æ°æ®ã妿æä¸ªå段为空ï¼åè·³è¿è¯¥åæ®µçæ´æ°ã |
| | | * 妿ç»å®ç `ID` ä¸åå¨ï¼åè¿åé误代ç 2ã妿æ°ç `ID` å·²ç»åå¨ï¼åè¿åé误代ç 3ã |
| | | * |
| | | * 妿忮µä¸ºç©ºï¼è·³è¿è¯¥åæ®µçæ´æ°ã |
| | | */ |
| | | int updateAllSystemSV(int nID, int sNewID, const std::string& sName, const std::string& sDataType, int nLength, const std::string& sUnit, const std::string& sRemark, int nSystemID); |
| | | |
| | | /** |
| | | * å é¤æå® ID ç SystemSV æ°æ® |
| | | * @param nID: éè¦å é¤ç SystemSV ç IDã |
| | | * @return 1: æ°æ®åºæªè¿æ¥ã |
| | | * @return 2: æªæ¾å°æå®ç ID 对åºçè®°å½ã |
| | | * @return 3: å 餿ä½å¤±è´¥ã |
| | | * @return 0: å 餿åã |
| | | * |
| | | * æ¤å½æ°ç¨äºå é¤ `SystemSV` è¡¨ä¸æå® `nID` çè®°å½ã妿ç»å®ç `nID` ä¸åå¨ï¼åè¿åé误代ç 2ã |
| | | * å 餿使ååï¼è¿å 0 表示å 餿åã |
| | | */ |
| | | int deleteSystemSVByID(int nID); |
| | | |
| | | /** |
| | | * å 餿æ SystemSV æ°æ® |
| | | * @return 1: æ°æ®åºæªè¿æ¥ã |
| | | * @return 2: å 餿ä½å¤±è´¥ã |
| | | * @return 0: å 餿åã |
| | | * |
| | | * æ¤å½æ°ç¨äºå é¤ `SystemSV` 表ä¸çææè®°å½ãå¦ææ°æ®åºæªè¿æ¥ï¼åè¿åé误代ç 1ã |
| | | * 妿å 餿ä½å¤±è´¥ï¼åè¿åé误代ç 2ãå 餿ååï¼è¿å 0 表示å 餿åã |
| | | */ |
| | | int deleteAllSystemSV(); |
| | | |
| | | /** |
| | | * åå§åEqp表 |
| | | */ |
| | | void initEqpSVTable(); |
| | | |
| | | /** |
| | | * æ·»å EqpSV æ°æ® |
| | | * @param nID: éè¦æ·»å ç EqpSV ç IDï¼å¿
é¡»æ¯å¯ä¸çã |
| | | * @param sName: éè¦æ·»å ç EqpSV çåç§°ï¼å¿
é¡»æ¯å¯ä¸çã |
| | | * @param sDataType: æ°æ®ç±»åï¼è¡¨ç¤ºè¯¥è®¾å¤å¼çç±»åï¼ä¾å¦ "ASCII"ã"UINT_1" çã |
| | | * @param nLength: 设å¤å¼çæ°æ®é¿åº¦ï¼é常为ä¸ä¸ªæ£æ´æ°ï¼ç¨äºè¡¨ç¤ºè¯¥æ°æ®çé¿åº¦ã |
| | | * @param sUnit: 设å¤å¼çåä½ãå¦æä¸ºç©ºæè
为 "NULL"ï¼åæå
¥æ°æ®åºä¸ç NULL å¼ã |
| | | * @param sRemark: 夿³¨ä¿¡æ¯ï¼æè¿°è¯¥è®¾å¤å¼çå
¶ä»ä¿¡æ¯ï¼å¯ç¨äºè¯´æè¯¥å段çç¨éæç¹æ§ã |
| | | * @param nSeqNo: è¯¥æ°æ®çåºå·ï¼ç¨äºæåºã |
| | | * @return 1: æ°æ®åºæªè¿æ¥ã |
| | | * @return 2: ID éå¤ï¼æ æ³æå
¥æ°æ®ã |
| | | * @return 3: Name éå¤ï¼æ æ³æå
¥æ°æ®ã |
| | | * @return 4: æå
¥æ°æ®å¤±è´¥ã |
| | | * @return 0: æå
¥æåï¼æ°æ®å·²æ·»å å° EqpSV 表ä¸ã |
| | | * |
| | | * æ¤å½æ°ç¨äºå°ä¸æ¡æ°çæ°æ®æå
¥å° EqpSV 表ä¸ãå®é¦å
伿£æ¥ä¼ å
¥ç `ID` å `Name` æ¯å¦å·²åå¨äºè¡¨ä¸ï¼ |
| | | * 妿åå¨åè¿åç¸åºçé误代ç ã妿 `Unit` åæ°ä¸º "NULL" æè
为空ï¼å½æ°ä¼å°å
¶è½¬æ¢ä¸ºæ°æ®åºä¸ç NULL å¼ã |
| | | * ç¶åï¼æé ä¸ä¸ª SQL æå
¥è¯å¥å¹¶æ§è¡æå
¥æä½ã妿æå
¥å¤±è´¥ï¼åæåºå¼å¸¸ã |
| | | * 妿ä¸å顺å©ï¼è¿å 0 è¡¨ç¤ºæ°æ®æåæå
¥ã |
| | | */ |
| | | int addEqpSV(int nID, const std::string& sName, const std::string& sDataType, int nLength, const std::string& sUnit, const std::string& sRemark, int nSeqNo); |
| | | |
| | | /** |
| | | * åå§åSystemDV表 |
| | | */ |
| | | void initSystemDVTable(); |
| | | |
| | | /** |
| | | * åå§åEqpDV表 |
| | | */ |
| | | void initEqpDVTable(); |
| | | |
| | | /** |
| | | * åå§åSystemEC表 |
| | | */ |
| | | void initSystemECTable(); |
| | | |
| | | /** |
| | | * åå§åEqpEC表 |
| | | */ |
| | | void initEqpECTable(); |
| | | |
| | | /** |
| | | * åå§åSystemEvent表 |
| | | */ |
| | | void initSystemEventTable(); |
| | | |
| | | /** |
| | | * åå§åEqpEvent表 |
| | | */ |
| | | void initEqpEventTable(); |
| | | |
| | | /** |
| | | * åå§åEventLink表 |
| | | */ |
| | | void initEventLinkTable(); |
| | | |
| | | /** |
| | | * åå§åPPID表 |
| | | */ |
| | | void initPPIDTable(); |
| | | |
| | | /** |
| | | * åå§åRPTID表 |
| | | */ |
| | | void initRPTIDTable(); |
| | | |
| | | private: |
| | | SECSRuntimeManager(); |
| | | ~SECSRuntimeManager(); |
| | | |
| | | // ç¦æ¢æ·è´åèµå¼ |
| | | SECSRuntimeManager(const SECSRuntimeManager&) = delete; |
| | | SECSRuntimeManager& operator=(const SECSRuntimeManager&) = delete; |
| | | |
| | | // 仿°æ®åºä¸è·åæ´æ° |
| | | int getIntFromDB(const std::string& query); |
| | | |
| | | // 夿VIDæ¯å¦éå¤ |
| | | bool isIDDuplicate(int nID); |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ |
| | | bool isNameDuplicate(const std::string& sName); |
| | | |
| | | BL::Database* m_pDB; |
| | | static std::mutex m_mutex; |
| | | }; |
| | | |
| | | #endif // SECS_RUNTIME_MANAGER_H |