lwk 3 дней назад
Родитель
Сommit
13df85e4fa

+ 25 - 11
Detector/CCOS.Dev.FPD.Demo/CCOS.Dev.FPD.Demo.cpp

@@ -508,6 +508,7 @@ nsFPD::FPDDemoDevice::FPDDemoDevice(std::shared_ptr<IOEventCenter> center, strin
 	m_bIsSendFluFrame = false;
 	m_bRadMode = true;
 	m_bFluMode = false;
+	m_bDDRMode = false;
 	m_nSendImageInterval = 0;
 	m_bFor750MT = false;
 	m_fFluPPS = 40.0f;
@@ -798,6 +799,7 @@ bool nsFPD::FPDDemoDevice::Acq_Proc()
 			sleep(1);
 			ret = MakeFrame(DEMOEXAMMODE_RAD);
 			m_SyncUnit->XWindowOffNotify();
+			m_SyncUnit->XrayOffNotify();
 		}
 		else if (m_bRadMode)
 		{
@@ -809,6 +811,7 @@ bool nsFPD::FPDDemoDevice::Acq_Proc()
 			}
 			ret = MakeFrame(DEMOEXAMMODE_RAD);
 			m_SyncUnit->XWindowOffNotify();
+			m_SyncUnit->XrayOffNotify();
 		}
 		else if (m_bFluMode)
 		{
@@ -938,7 +941,6 @@ bool nsFPD::FPDDemoDevice::MakeFrame(DEMOEXAMMODE eExamMode)
 		FINFO("Full image create time-{$}:{$}:{$}:{$}", m_stImgCreateTime.wHour, m_stImgCreateTime.wMinute, m_stImgCreateTime.wSecond, m_stImgCreateTime.wMilliseconds);
 
 		m_SyncUnit->ImageReadingNotify();
-
 		m_AcqUnit->ImagerPixelSpacingNotify(m_nPixelSpacing);
 
 		FINFO("Add rad raw({$} {$})", m_nFullWidth, m_nFullHeight);
@@ -952,8 +954,10 @@ bool nsFPD::FPDDemoDevice::MakeFrame(DEMOEXAMMODE eExamMode)
 	{
 		m_SyncUnit->ImageReadingNotify();
 		FINFO("Add flu raw({$} {$})", m_nFullWidth, m_nFullHeight);
-		AddFrameWithRawHead(IMAGE_FULL, m_pSeqList->GetImage(), m_nFullWidth * m_nFullHeight);
-		FINFO("Send Frame ID:{$}",m_pSeqList->GetCurrentFrameID());
+		//AddFrameWithRawHead(IMAGE_FULL, m_pSeqList->GetImage(), m_nFullWidth * m_nFullHeight);
+		string ImageFULL = GetProcessDirectory() + "/DemoImage/ImageFULL.raw";
+		AddFrameWithRawHead(IMAGE_FULL, m_nFullWidth * m_nFullHeight, ImageFULL);
+		//FINFO("Send Frame ID:{$}",m_pSeqList->GetCurrentFrameID());
 
 		FINFO("End FLU");
 		return true;
@@ -997,10 +1001,10 @@ void nsFPD::FPDDemoDevice::SendFluFrame()
 	m_bIsSendFluFrame = true;
 
 	//先重置frameID
-	ResetFrame();
+	//ResetFrame();
 	FINFO("m_nSendImageInterval:{$}", m_nSendImageInterval);
-
-	while (m_bIsSendFluFrame)
+	int loopCount = 0;
+	while (m_bIsSendFluFrame && loopCount < 6)
 	{
 		//这里根据设置的帧率计算睡多长时间
 		int sleepTime = m_nSendImageInterval;
@@ -1016,17 +1020,18 @@ void nsFPD::FPDDemoDevice::SendFluFrame()
 			FERROR("Send flu frame fail!");
 			m_bIsSendFluFrame = false;
 		}
+		loopCount++;
 		//把dcm中的图发送一遍后就结束
-		FINFO("m_pSeqList->GetCurrentFrameID:{$},m_nTotalFrameNum:{$}", m_pSeqList->GetCurrentFrameID(), m_nTotalFrameNum);
+		/*FINFO("m_pSeqList->GetCurrentFrameID:{$},m_nTotalFrameNum:{$}", m_pSeqList->GetCurrentFrameID(), m_nTotalFrameNum);
 		if (m_pSeqList->GetCurrentFrameID() == m_nTotalFrameNum - 1)
 		{
 			FINFO("stop send image");
 			break;
-		}
-		m_pSeqList->GetNext();
+		}*/
+		//m_pSeqList->GetNext();
 	}
 	m_SyncUnit->XWindowOffNotify();
-
+	m_SyncUnit->XrayOffNotify();
 	m_DetectorCtrlUnit->SetDetectorStatus(to_string(DETECTOR_STATUS_STANDBY));//SendFluFrame 结束
 	FINFO("SendFluFrame Over");
 }
@@ -1188,6 +1193,10 @@ bool nsFPD::FPDDemoDevice::GetLogicMode(string& strAcqMode, int& nLogicMode)
 	{
 		nLogicMode = STITCH;
 	}
+	else if (strAcqMode == "DDR")
+	{
+		nLogicMode = DDR;
+	}
 	else if (strAcqMode == "1")
 	{
 		nLogicMode = RAD;
@@ -1204,6 +1213,10 @@ bool nsFPD::FPDDemoDevice::GetLogicMode(string& strAcqMode, int& nLogicMode)
 	{
 		nLogicMode = STITCH;
 	}
+	else if (strAcqMode == "DDR")
+	{
+		nLogicMode = DDR;
+	}
 	else
 	{
 		FERROR("Not support mode!");
@@ -1273,7 +1286,7 @@ RET_STATUS nsFPD::FPDDemoDevice::SetAcqMode(string strAcqMode)
 		{
 			m_bRadMode = false;
 		}
-		if (nLogicMode == CF || nLogicMode == PF)
+		if (nLogicMode == CF || nLogicMode == PF || nLogicMode == DDR)
 		{
 			m_bFluMode = true;
 		}
@@ -1386,6 +1399,7 @@ RET_STATUS nsFPD::FPDDemoDevice::StartAcquisition(string in)
 
 	m_eWorkStatus = DETECTOR_WORK_ACQUIRE;
 	m_DetectorCtrlUnit->SetDetectorStatus(to_string(DETECTOR_STATUS_ACQ));
+	m_SyncUnit->XrayOnNotify();
 	m_SyncUnit->XWindowOnNotify();
 	//推图
 	m_AcqReqEvt->SetEvent();

+ 1 - 0
Detector/CCOS.Dev.FPD.Demo/CCOS.Dev.FPD.Demo.h

@@ -116,6 +116,7 @@ namespace CCOS::Dev::Detail::Detector
 		bool m_bIsSendFluFrame;//透视模式发送图片的flag  true-发送 false-停止发送
 		bool m_bRadMode;//true:rad模式
 		bool m_bFluMode;//true:透视模式
+		bool m_bDDRMode;//true:透视模式
 		int m_nSendImageInterval;//透视时发送图像的间隔
 		bool m_bFor750MT;
 

+ 1 - 1
Detector/CCOS.Dev.FPD.Demo/DetectorConfiguration.cpp

@@ -26,7 +26,7 @@ bool DetectorConfiguration::LoadConfigurations(DeviceIndexStruct & DeviceConf, R
 
 		//解析config
 		int nAcqMode = 1;
-		char sstream[10] = { 0 }; //用于转换值
+		char sstream[32] = { 0 }; //用于转换值
 
 		DeviceConf.strDeviceName = (string)m_Configurations[DetectorDescription];
 		DeviceConf.strPanelSerial = (string)m_Configurations[DetectorSerialNumber];

+ 2 - 1
Detector/CCOS.Dev.FPD.Demo/FPDCtrlDefinition.h

@@ -18,7 +18,8 @@ enum AcqMode
 	RAD,
 	CF,
 	PF,
-	STITCH
+	STITCH,
+	DDR
 };
 
 typedef enum