Jelajahi Sumber

根据配置修改探测器开窗时间和AED灵敏度!

lwk 2 minggu lalu
induk
melakukan
6c612c54be

+ 15 - 6
Detector/TiRay/CCOS.Dev.FPD.TiRayDR/CCOS.Dev.FPD.TiRayDR.cpp

@@ -2,6 +2,7 @@
 #include "common_api.h"
 #include "DICOMImageHeadKey.h"
 #include "Detector_TiRayDR.h"
+#include "LogLocalHelper.h"       
 #include "Log4CPP.h"
 
 namespace nsFPD = CCOS::Dev::Detail::Detector;
@@ -44,12 +45,21 @@ nsFPD::TiRayDriver::~TiRayDriver()
 
 void nsFPD::TiRayDriver::Prepare()
 {
-	string strLogPath = GetProcessDirectory() + R"(\Conf\log_config.xml)";
 	// 初始化日志系统
-	if (!Log4CPP::init("DevTiRay", "FPD.TiRay", strLogPath, true)) {
-		std::cerr << "Failed to initialize log system! Using default configuration." << std::endl;
-		// 即使配置文件加载失败,也可以继续使用默认配置
-	}
+	std::string strLogPath = GetProcessDirectory() + R"(/Conf/log_config.xml)";
+	std::string LogHost = "DevTiRay"; // 确保这是正确的值
+	std::string moduleName = "DevTiRay";
+	bool ret = initLogModule(
+		LogHost,       // 主机名(用于日志路径中的{host}占位符)
+		moduleName,        // 唯一模块名
+		strLogPath,  // 配置文件路径
+		true           // 是否输出到控制台(可选)
+	);
+	if (!ret) {
+		std::cerr << "Log init failed!" << std::endl;
+		return;
+	}
+	TiRaySetLocalModuleName(moduleName);
 
 	FINFO("Code Build datetime [{$} {$}]", __DATE__, __TIME__);
 }
@@ -528,7 +538,6 @@ nsFPD::FPDDeviceTiRay::FPDDeviceTiRay(std::shared_ptr<IOEventCenter> center, std
 	m_CalibUnit.reset(new OemCalib(center, this));
 	m_DetectorConfiguration.reset(new DetectorConfiguration(strConfigPath));
 
-	logHostName = "DevTiRay";
 	std::string strErrorInfoPath = m_strWorkPath + "\\OEMDrivers\\Detector\\Conf\\";
 	//m_WarnAndError.reset(new FPDErrorWarning(center, DetectorUnitType, strErrorInfoPath));
 

+ 3 - 1
Detector/TiRay/CCOS.Dev.FPD.TiRayDR/CCOS.Dev.FPD.TiRayDR.h

@@ -121,7 +121,9 @@ namespace CCOS::Dev::Detail::Detector
 		RET_STATUS UpdateCalibrationFileExpireTime(std::string in);
 		RET_STATUS AbortCalibration();
 		RET_STATUS SaveCalibrationFile(bool bSaveFlag);
-
+		std::string getLogHostName() const override {
+			return "DevTiRay"; // ×ÓÀàµÄ¾ßÌåÖµ
+		}
 		void OnFPDCallback(int nDetectorID, int nEventID, int nEventLevel, const char* pszMsg, int nParam1, float fParam2, int nPtrParamLen, void* pParam);
 		bool Support_DarkCalib();
 		bool Support_XrayCalib();

+ 2 - 0
Detector/TiRay/CCOS.Dev.FPD.TiRayDR/CMakeLists.txt

@@ -62,6 +62,8 @@ set(SRC_FILES
     PixMatrix.cpp
     TiRayApi.h
     TiRayDef.h
+    LogLocalHelper.h
+    LogLocalHelper.cpp
     ZSKKCalibration.h
     ZSKKCalibration.cpp
 	${PhysicalDevice_DELIVER_INCLUDE_DIR}/CCOS.Dev.MSGMould.hpp

+ 2 - 0
Detector/TiRay/CCOS.Dev.FPD.TiRayDR/DetectorConfiguration.cpp

@@ -1,6 +1,8 @@
 #include "DetectorConfiguration.h"
 #include "Detector_Model_Def.h"
 #include "common_api.h"
+#include "LogLocalHelper.h"       
+#include "Log4CPP.h"
 
 DetectorConfiguration::DetectorConfiguration(string ConfigPath)
 {

+ 8 - 3
Detector/TiRay/CCOS.Dev.FPD.TiRayDR/Detector_TiRayDR.cpp

@@ -3,6 +3,7 @@
 #include "MyPingip.h"
 #include <dlfcn.h> 
 #include <pthread.h>
+#include "LogLocalHelper.h"       
 #include "Log4CPP.h"
 using EventListenerType = void(*)(TiRayEvent, void*);
 Detector_TiRayDR* g_pDetector = nullptr;
@@ -1137,7 +1138,7 @@ bool Detector_TiRayDR::OpenDetector()
 	string ip = "0.0.0.0";
 	StartupOption option{};
 	memcpy(option.Ip, ip.c_str(), std::min(ip.size(), sizeof(option.Ip) - 1));
-	option.EnableLog = true;
+	option.EnableLog = false;
     // 调用解析函数处理设备类型
 	ModelResolveResult resolveResult = ResolveModelType(target_res.model);
 	if (!resolveResult.isValid) {
@@ -1227,7 +1228,11 @@ bool Detector_TiRayDR::OpenDetector()
 	//if (m_nCalibrationMode) //TiRayCalibration
 	SetSyncMode(3);
 
-	err = write_attribute(Attr_PhotoInterval, 3000);
+
+	int nSensitivity = (int)m_ModeConfig["ModeTable"][0]["Sensitivity"];
+	int nXWindow = (int)m_ModeConfig["ModeTable"][0]["XWindow"];
+
+	err = write_attribute(Attr_PhotoInterval, nXWindow);
 	if (err != Err_Success)
 		FINFO("[Detector_TiRayDR::OpenDetector] Failed to write Attr_PhotoInterval. Error code: {$}", err);
 
@@ -1237,7 +1242,7 @@ bool Detector_TiRayDR::OpenDetector()
 
 	LoadCalibrationFile(4);
 
-	err = write_attribute(Attr_AEDSensitivity, 1000);
+	err = write_attribute(Attr_AEDSensitivity, nSensitivity);
 	if (err != Err_Success)
 		FINFO("[Detector_TiRayDR::OpenDetector] Failed to write Attr_AEDSensitivity. Error code: {$}", err);