AxsCtrl.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. #pragma once
  2. #include "ResDataObject.h"
  3. #include "CCOS.Dev.FPD.AxsDM.h"
  4. #include "AxsFunc.h"
  5. #include "ZSKKCalibration.h"
  6. #define CALIBRATION_EVENT_COUNT 6
  7. #define ASSIST_EVENT_COUNT 8
  8. enum eDetOperationMode
  9. {
  10. PIX_OM_RAD = 1,
  11. PIX_OM_TOMO,
  12. PIX_OM_AED = 4
  13. };
  14. enum eDetPixImgType
  15. {
  16. PIX_IMG_NONE,
  17. PIX_IMG_PRE,
  18. PIX_IMG_RAW,
  19. PIX_IMG_FULL = 4
  20. };
  21. enum HW_EXPOSURE_MDOE
  22. {
  23. EM_ERROR = 0,
  24. EM_NORMAL, //normal exposure mode
  25. EM_AEC, //AEC exposure mode
  26. EM_AEC_TIME = 2,
  27. EM_DE, //Dual Energy exposure mode
  28. EM_HDR, //HDR exposure mode
  29. EM_STITCHING, //Stitching mode
  30. EM_WARMUP,
  31. EM_AEC_FILTER,
  32. EM_AEC_KV,
  33. EM_QC,
  34. EM_VET_QUICK,
  35. EM_TOMO,
  36. EM_DDR
  37. };
  38. enum eAcqMode
  39. {
  40. ACQ_UNKNOWN = 0,
  41. RAD,
  42. AEC,//AEC
  43. FLU
  44. };
  45. class CAXSCtrl
  46. {
  47. public:
  48. CAXSCtrl();
  49. ~CAXSCtrl();
  50. bool DriverEntry(CFPDDeviceAXS* pDrvDPC, ResDataObject& Configuration);
  51. bool Connect(CFPDDeviceAXS* pDrvDPC, const char* szWorkPath);
  52. bool Disconnect();
  53. void EnterExamMode(int nExamMode);
  54. bool SetAcqMode(int nLogicMode, CFPDDeviceAXS* pDrvDPC);
  55. void SetSynMode(int nMode);
  56. bool PrepareAcquisition(CFPDDeviceAXS* pDrvDPC);
  57. bool SelectExamMode(int nLogicMode, CFPDDeviceAXS* pDrvDPC);
  58. bool StartAcquisition(CFPDDeviceAXS* pDrvDPC);
  59. bool StopAcquisition(CFPDDeviceAXS* pDrvDPC);
  60. bool ActiveCalibration(CFPDDeviceAXS* pDrvDPC, CCOS_CALIBRATION_TYPE eType);
  61. bool PrepareCalibration(CFPDDeviceAXS* pDrvDPC);
  62. bool StartCalibration(CFPDDeviceAXS* pDrvDPC);
  63. bool StopCalibration(CFPDDeviceAXS* pDrvDPC);
  64. bool ResetDetector(CFPDDeviceAXS* pDrvDPC);
  65. bool SetReferenceNum(int nReferenceNum);
  66. bool GetCalibrationStep(int nCalibCurrentCalibrationRound, int nCalibrationRounds, int nCalibCurrentExposureIndex, int nExposureNumCurrentRound);
  67. bool AcceptCalibration();
  68. bool RejectCalibration();
  69. bool AbortCalibration();
  70. bool SaveCalibrationFile();
  71. bool CompleteCalibration(CFPDDeviceAXS* pDrvDPC);
  72. bool NotifyCalibrationTime(int nDetectorID = -1);
  73. void SetCalibMode(CCOS_CALIBRATION_MODE eCalibMode);
  74. CCOS_CALIBRATION_TYPE GetCAXSCtrlCalibType();
  75. PZDPC_State GetPZDPCState();
  76. int GetCalImagesLeftCount();//厂商校正时获取剩余需要曝光的次数
  77. void eventCallback(PEGASUS_EventType myEvent, PEGASUS_ErrorCode err, void* pContext);
  78. void multiEventCallback(PEGASUS_MultiEventType myEvent, PEGASUS_ErrorCode err, int sequenceId, int imageIndex);
  79. private:
  80. //探测器信息
  81. struct CPanelStatus
  82. {
  83. bool bLostTemplate; //是否缺少校正文件
  84. bool bPanelInReady; //探测器在ready状态
  85. bool bConnectStatus; //是否连接
  86. SYNC_MODE eSyncMode; //同步模式
  87. bool bConnErrorInInit; //初始化阶段的断线错误
  88. bool bInitError; //初始化错误,一般不可恢复
  89. string strPanelType; //探测器类型,AddDPC时赋值
  90. string strPanelSN; //探测器序列号,连接成功后获取信息时被赋值
  91. bool bIsPortable;
  92. bool bCharging;
  93. bool bStatusPolling;
  94. bool bDC_AED;
  95. bool bDarkCalibDone; //offset刷新结束
  96. bool bAEDDarkCalibDone;
  97. bool bLTEDarkCalibDone; //长曝光offset刷新结束
  98. string strModuleIP; //探测器IP地址,attach或收到init回调时赋值
  99. bool bBatteryTooLow;
  100. bool bImagePending;
  101. bool bIsLoadRef; //是否加载了校正文件,加载过了不用再次加载
  102. int nBattery; //电池电量
  103. bool bInitOK; //初始化过程探测器连接完毕,用于重连判断
  104. bool bNeedUpdateFW; //是否需要固件升级的标记位
  105. bool bSelftested; //Selftest执行完毕
  106. int nTotalShockNumber; //探测器的shocksenseor总数
  107. int nFWStatus; //探测器固件状态
  108. string strPartNumber; //产品编号,连接成功后获取信息时被赋值
  109. ResDataObject objPanelConfig;
  110. bool bHaveAutonumousMode; //是否支持离线采集
  111. bool bAutonumousMode; //true: 离线模式;false:在线模式
  112. CPanelStatus()
  113. {
  114. bLostTemplate = false;
  115. bPanelInReady = false;
  116. bConnectStatus = false;
  117. eSyncMode = SYNC_SOFTWARE; //默认使用软同步作为缺省值
  118. bConnErrorInInit = false;
  119. bInitError = false;
  120. strPanelType = "";
  121. strPanelSN = "";
  122. bIsPortable = false;
  123. bCharging = false;
  124. bStatusPolling = false;
  125. bDC_AED = false;
  126. bDarkCalibDone = false;
  127. bAEDDarkCalibDone = false;
  128. bLTEDarkCalibDone = false;
  129. strModuleIP = "";
  130. bBatteryTooLow = false;
  131. bImagePending = false;
  132. bIsLoadRef = false;
  133. nBattery = 0;
  134. bInitOK = false;
  135. bNeedUpdateFW = false;
  136. bSelftested = false;
  137. nTotalShockNumber = -1;
  138. nFWStatus = -1;
  139. strPartNumber = "";
  140. bHaveAutonumousMode = false;
  141. bAutonumousMode = false;
  142. }
  143. };
  144. map<CFPDDeviceAXS*, int>* m_pDPC2PanelID;
  145. map<int, CFPDDeviceAXS*>* m_pPanelID2DPC;
  146. CPanelStatus* m_pStPanelStatus[3];//探测器信息 内部还有自己的FPDConfig 注意赋值(为了以后连接多个板子用)
  147. int m_nPanelCount; //探测器数量
  148. std::string m_strWorkPath; //保存工作路径,用于加载SDK和配置
  149. int m_nCurrentPanelID;
  150. ResDataObject m_objFPDConfig; //保存DPC模块下发的配置
  151. std::string m_strTplDarkPath; // references\serialnumber\dark
  152. std::string m_strTplFloodPath; // references\serialnumber\flood
  153. PZDPC_State m_ePZDPCstate; //DPC或ctrl模块当前处于什么状态
  154. bool m_bHavePreview;//是否有预览图
  155. int m_nImageMode;//图像类型
  156. int m_nAecImageWidth;//预览图宽
  157. int m_nAecImageHeight;//预览图高
  158. int m_nAecImageSize;//宽(22)*高(28)*像素大小(4)=2464
  159. int m_nAecImageBits;//AEC图像位数--------------
  160. int m_nAecPixelSize;//像素大小(用来计算图像占用多少字节)默认4
  161. int m_nRawImgWidth; //原始图像宽
  162. int m_nRawImgHeight; //原始图像高
  163. int m_nRawImageSize;//宽(2816)*高(3650)*像素大小(2)= 20556800
  164. int m_nRawImageBits;//原始图图像位数-----------------
  165. int m_nRawPixelSize;//像素大小(用来计算图像占用多少字节)默认2
  166. int m_nLeftOffset;//左侧裁剪长度
  167. int m_nTopOffset;//上边裁剪长度
  168. int m_nRightOffset;//右侧裁剪长度
  169. int m_nBottomOffset;//下边裁剪长度-----------------
  170. int m_nImageWidth;//有效图像宽
  171. int m_nImageHeight;//有效图像高
  172. int m_nImageSize;//宽(2816)*高(3584)*像素大小(2)= 20185088
  173. int m_nImageBits;//有效图图像位数----------------
  174. int m_nImagePixelSize;//像素大小(用来计算图像占用多少字节)默认2
  175. WORD* m_pAecImgBuffer;//预览图buffer
  176. WORD* m_pRawImgBuffer; //原始图buffer
  177. WORD* m_pImgBuffer; //有效图像buffer
  178. int m_nPixelPitch;
  179. int m_nSequenceId;//图像序列ID
  180. int m_nImageIndex;//有几张图像需要恢复
  181. int m_nSaveRaw; //0:不存; 1:预览图; 2:raw图; 4:实际尺寸图像;
  182. int m_nExamMode; //记录工作界面
  183. CCOS_CALIBRATION_MODE m_nCalibrationMode;//校正模式 0-ZSKK 1-OTHER
  184. CCOS_CALIBRATION_TYPE m_eType; // 记录当前校正类型
  185. PZ_CALIBRATION_State m_eCalState;//探测器校正状态
  186. bool m_bCalibrationOver; // true 正常结束校正(校正路程走完) false 异常结束校正(流程没走完就结束)
  187. //切换平板需要重置初始值
  188. PEGASUS_State m_detectorState;//探测器状态
  189. CZSKKCalibrationCtrl* m_pZSKKCalib;
  190. string m_strPanelType; //探测器类型。命名方式截取自config_Pixrad路径下的ini文件,以Detector3543EZe.ini为例,m_strPanelType=3543EZe
  191. string m_strSerialNumber;//探测器SN
  192. bool m_bLoadedSDK; //true 已经加载了SDK,避免重复调用,主要用于ReInit流程
  193. bool m_bInitializedSDK; //true 已经init了SDK,避免重复调用,主要用于ReInit流程
  194. ResDataObject m_ModeConfig;
  195. int m_nCalibrationRounds;//总的校正轮数
  196. int m_nCalibCurrentCalibrationRound;//当前处于的校正轮数
  197. int m_nExposureNumCurrentRound;//当前校正轮数需要曝光的总次数
  198. int m_nCalibCurrentExposureIndex;//当前校正轮数第几次曝光
  199. bool m_bOnlyHaveFpd;//当前环境是否只有探测器一个真实设备并且处于AED同步模式,其他设备是demo的 1-是 0-否 默认否
  200. PEGASUS_Context m_context;
  201. eAcqMode m_nCurrentAcqMode; //记录探测器当前采集模式
  202. PEGASUS_TargetFilter m_targetFilter;
  203. PEGASUS_Image m_ResultImage;
  204. bool m_bReadyForExp;//探测器是否ready
  205. bool m_bChangeAcqProperties;//探测器切换采集模式是否成功
  206. UINT_PTR m_nTimerHardWare;//定时获取平板参数
  207. bool m_bShutDownFlag;//是否调用了shutdown接口
  208. bool m_bTimeOutFlag;//是否曝光超时
  209. LogicClient* m_pAcqUnitCient; // CCOS/DEVICE/Detector/+/+/+/Notify/#
  210. //end
  211. HMODULE m_hPZSDKModule; //SDK module
  212. HANDLE m_hRespond;//等待探测器响应时使用
  213. bool m_bExitGetInfoThread;//退出获取探测器信息线程的标志
  214. HANDLE m_hDetectorInfoThread;//探测器信息获取线程,例如温度
  215. bool m_bExitFpdScanThread;//退出辅助线程的标志
  216. //辅助线程相关
  217. HANDLE m_hFPDScanThread;
  218. HANDLE m_hStopScanEvent;
  219. HANDLE m_hAecImgEvent;
  220. HANDLE m_hCorrectedImgEvent;
  221. HANDLE m_hXWinOnEvent;
  222. HANDLE m_hInitFPDEvent;
  223. HANDLE m_hReInitEvent;
  224. HANDLE m_hRecoverImage;
  225. HANDLE m_hArrayEvent[ASSIST_EVENT_COUNT];
  226. //end
  227. bool m_bExitCalibrationThread;//退出校正线程的标志
  228. //校正线程以及相应事件
  229. HANDLE m_hCalibrationThread;
  230. HANDLE m_hStopCalibEvent; //退出校正线程
  231. HANDLE m_hPZMStartOffset; //调用api,开始采集暗场图
  232. HANDLE m_hPZMInOffset; //调用api 停止采集暗场图
  233. HANDLE m_hPZMStartGain; //调用api,开始采集亮场图
  234. HANDLE m_hPZMInGain; //调用api,停止采集亮场图
  235. HANDLE m_hEndCalibEvent;//结束校正 可能是正常结束,可能是异常结束,正常结束就重新生成校正文件,异常结束就重新加载之前的校正文件
  236. HANDLE m_hPZMCalibration[CALIBRATION_EVENT_COUNT];
  237. //end
  238. bool LoadSdkDll();
  239. PEGASUS_ErrorCode InitSDK();
  240. bool LoadZskkMap();
  241. PEGASUS_ErrorCode GetDetectorInfo();
  242. static DWORD __stdcall onFPDScanThread(PVOID pvoid);
  243. void OnProcessAecImg();
  244. void OnProcessCorrectedImg();
  245. void OnProcessInitFPD();
  246. void OnReInitFPD();
  247. void OnRecoverImage();
  248. void OnProcessGenNotify();
  249. static DWORD __stdcall onCalibrationThread(PVOID pvoid);
  250. bool OnProcessCalibration();
  251. void SaveRawFunc(WORD* pInImg, int nImgWidth, int nImgHeight);
  252. bool SaveRawImage(const char* pImgName, const WORD* pRawImg, int nWidth, int nHeight);
  253. int CropImageMargin(LPVOID pDstData, int& nDstWidth, int& nDstHeight,
  254. LPVOID pScrData, int nSrcWidth, int nSrcHeight, int nBits,
  255. int nLeftMargin, int nTopMargin, int nRightMargin, int nBottomMargin);
  256. bool TestError(PEGASUS_ErrorCode nRet, const char* szFuncName = "Func");
  257. bool WaitRespond(int nTimeOut = 65000, const char* szPosition = "");
  258. void StopWaiting(const char* szPosition = "");
  259. bool SetFPDTplPath();
  260. void SetPZDPCState(PZDPC_State ePZDPCstate);
  261. void GetConfigParam();
  262. bool StartContinuousAcquisition();
  263. void ShowExposureParam(PEGASUS_ExposureData& expData);
  264. bool ChangeAcqProperties(int nAcqMode);
  265. static DWORD __stdcall OnGetFpdInfo(PVOID pvoid);
  266. //回调
  267. void ConfFeedback(int nEventID, int nDetectorID = -1, const char* pszMsg = "", int nParam1 = 0, float fParam2 = 0, int nPtrParamLen = 0, void* pParam = NULL);
  268. void InfoFeedback(int nEventID, int nDetectorID = -1, int nParam1 = 0, float fParam2 = 0, const char* pszMsg = "", int nPtrParamLen = 0, void* pParam = NULL);
  269. void StatusFeedback(int nEventID, int nParam1 = 0, const char* pszMsg = "", int nDetectorID = -1, float fParam2 = 0, int nPtrParamLen = 0, void* pParam = NULL);
  270. void DataFeedback(int nEventID, void* pParam = NULL, int nParam1 = 0, float fParam2 = 0, const char* pszMsg = "", int nPtrParamLen = 0, int nDetectorID = -1);
  271. void WarnFeedback(int nEventID, const char* pszMsg = "", int nParam1 = 0, float fParam2 = 0, int nPtrParamLen = 0, void* pParam = NULL, int nDetectorID = -1);
  272. void ErrorFeedback(int nEventID, const char* pszMsg = "", int nDetectorID = -1, int nParam1 = 0, float fParam2 = 0, int nPtrParamLen = 0, void* pParam = NULL);
  273. AXS_PEGASUS_RegisterProgressionCallback API_PEGASUS_RegisterProgressionCallback;
  274. AXS_PEGASUS_Initialize API_PEGASUS_Initialize;
  275. AXS_PEGASUS_QuickInitialize API_PEGASUS_QuickInitialize;
  276. AXS_PEGASUS_Shutdown API_PEGASUS_Shutdown;//并没有断开连接,只是进入了低功耗模式
  277. AXS_PEGASUS_LoadContext API_PEGASUS_LoadContext;
  278. AXS_PEGASUS_DetailedInformation API_PEGASUS_DetailedInformation;
  279. AXS_PEGASUS_SystemDetailedInformation API_PEGASUS_SystemDetailedInformation;
  280. AXS_PEGASUS_Information API_PEGASUS_Information;
  281. AXS_PEGASUS_CalibrationInformation API_PEGASUS_CalibrationInformation;
  282. AXS_PEGASUS_GetCalibrationInformation API_PEGASUS_GetCalibrationInformation;
  283. AXS_PEGASUS_GetCalibrationInformationUsingType API_PEGASUS_GetCalibrationInformationUsingType;
  284. AXS_PEGASUS_IsReadyForExposure API_PEGASUS_IsReadyForExposure;
  285. AXS_PEGASUS_Acquire API_PEGASUS_Acquire;
  286. AXS_PEGASUS_AbortAcquire API_PEGASUS_AbortAcquire;
  287. AXS_PEGASUS_StartContinuousAcquisition API_PEGASUS_StartContinuousAcquisition;
  288. //AXS_PEGASUS_StartContinuousAcquisitionEx API_PEGASUS_StartContinuousAcquisitionEx;//EX是厂商为了向后兼容加的,我们用不带EX的函数就行
  289. AXS_PEGASUS_ChangeContinuousAcquisitionProperties API_PEGASUS_ChangeContinuousAcquisitionProperties;
  290. //AXS_PEGASUS_ChangeContinuousAcquisitionPropertiesEx API_PEGASUS_ChangeContinuousAcquisitionPropertiesEx;
  291. AXS_PEGASUS_GetContinuousAcquisitionProperties API_PEGASUS_GetContinuousAcquisitionProperties;
  292. //AXS_PEGASUS_GetContinuousAcquisitionPropertiesEx API_PEGASUS_GetContinuousAcquisitionPropertiesEx;
  293. AXS_PEGASUS_OverrideTargetFilter API_PEGASUS_OverrideTargetFilter;
  294. AXS_PEGASUS_GetAecImage API_PEGASUS_GetAecImage;
  295. AXS_PEGASUS_GetCorrectedImage API_PEGASUS_GetCorrectedImage;
  296. AXS_PEGASUS_GetInformationOfFirstAvailableImage API_PEGASUS_GetInformationOfFirstAvailableImage;
  297. AXS_PEGASUS_StartSingleAcquisition API_PEGASUS_StartSingleAcquisition;
  298. AXS_PEGASUS_PrepareForExposure API_PEGASUS_PrepareForExposure;
  299. AXS_PEGASUS_TriggerAcquisition API_PEGASUS_TriggerAcquisition;
  300. AXS_PEGASUS_RecoverImage API_PEGASUS_RecoverImage;
  301. //AXS_PEGASUS_RecoverImageEx API_PEGASUS_RecoverImageEx;
  302. AXS_PEGASUS_CancelImageRecovery API_PEGASUS_CancelImageRecovery;
  303. AXS_PEGASUS_RecoverLastSequenceID API_PEGASUS_RecoverLastSequenceID;
  304. AXS_PEGASUS_Calibrate API_PEGASUS_Calibrate;//开始GAIN校正,会回调ready事件
  305. //AXS_PEGASUS_CalibrateEx API_PEGASUS_CalibrateEx;
  306. AXS_PEGASUS_GetNbrCalImagesLeft API_PEGASUS_GetNbrCalImagesLeft;//厂商校正时获取剩余需要曝光的次数(有效曝光次数)
  307. AXS_PEGASUS_AbortCalibration API_PEGASUS_AbortCalibration;
  308. AXS_PEGASUS_AddImageToCalibration API_PEGASUS_AddImageToCalibration;//接受当前曝光
  309. AXS_PEGASUS_RejectCalibrationImage API_PEGASUS_RejectCalibrationImage;//拒绝当前曝光
  310. AXS_PEGASUS_AutoCalibrate API_PEGASUS_AutoCalibrate;
  311. AXS_PEGASUS_CalibrateUsingType API_PEGASUS_CalibrateUsingType;
  312. AXS_PEGASUS_StopComServer API_PEGASUS_StopComServer;
  313. AXS_PEGASUS_GetLogLevel API_PEGASUS_GetLogLevel;
  314. AXS_PEGASUS_SetLogLevel API_PEGASUS_SetLogLevel;
  315. AXS_PEGASUS_SelfTest API_PEGASUS_SelfTest;
  316. AXS_PEGASUS_Sleep API_PEGASUS_Sleep;
  317. AXS_PEGASUS_ServiceImageInformation API_PEGASUS_ServiceImageInformation;
  318. AXS_PEGASUS_GetServiceImage API_PEGASUS_GetServiceImage;
  319. AXS_PEGASUS_UpdateDefectMap API_PEGASUS_UpdateDefectMap;
  320. AXS_PEGASUS_GetWeakDefect API_PEGASUS_GetWeakDefect;
  321. AXS_PEGASUS_UpdateWeakDefect API_PEGASUS_UpdateWeakDefect;
  322. AXS_PEGASUS_GetErrorDescription API_PEGASUS_GetErrorDescription;
  323. AXS_PEGASUS_GetEventDescription API_PEGASUS_GetEventDescription;
  324. AXS_PEGASUS_GetMultiEventDescription API_PEGASUS_GetMultiEventDescription;
  325. AXS_PEGASUS_GetDebugDump API_PEGASUS_GetDebugDump;
  326. AXS_PEGASUS_GetDetectorTypeDescription API_PEGASUS_GetDetectorTypeDescription;
  327. AXS_PEGASUS_GetProductTypeDescription API_PEGASUS_GetProductTypeDescription;
  328. AXS_PEGASUS_GetContextCodeDescription API_PEGASUS_GetContextCodeDescription;
  329. AXS_PEGASUS_GetDetectorStateDescription API_PEGASUS_GetDetectorStateDescription;
  330. AXS_PEGASUS_GetPegasusStateDescription API_PEGASUS_GetPegasusStateDescription;
  331. AXS_PEGASUS_GetLogLevelCodeDescription API_PEGASUS_GetLogLevelCodeDescription;
  332. AXS_PEGASUS_GetSelfTestTypeDescription API_PEGASUS_GetSelfTestTypeDescription;
  333. AXS_PEGASUS_GetTargetFilterTypeDescription API_PEGASUS_GetTargetFilterTypeDescription;
  334. AXS_PEGASUS_GetFocusTypeDescription API_PEGASUS_GetFocusTypeDescription;
  335. AXS_PEGASUS_GetServiceImageTypeDescription API_PEGASUS_GetServiceImageTypeDescription;
  336. AXS_PEGASUS_GetPixelFormatDescription API_PEGASUS_GetPixelFormatDescription;
  337. AXS_PEGASUS_GetDefectTypeDescription API_PEGASUS_GetDefectTypeDescription;
  338. AXS_PEGASUS_GetCalibrationTypeDescription API_PEGASUS_GetCalibrationTypeDescription;
  339. AXS_PEGASUS_GetAvailableContext API_PEGASUS_GetAvailableContext;
  340. AXS_PEGASUS_Entry API_PEGASUS_Entry;
  341. AXS_PEGASUS_Exit API_PEGASUS_Exit;
  342. AXS_PEGASUS_TerminateAcquisition API_PEGASUS_TerminateAcquisition;
  343. };