US_Model_Def.h 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487
  1. #pragma once
  2. // 下列 ifdef 块是创建使从 DLL 导出更简单的
  3. // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 US_MODEL_DEF_EXPORTS
  4. // 符号编译的。在使用此 DLL 的
  5. // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
  6. // US_MODEL_DEF_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
  7. // 符号视为是被导出的。
  8. #ifdef US_MODEL_DEF_EXPORTS
  9. #define US_MODEL_DEF_API __declspec(dllexport)
  10. #define US_MODEL_DEF_C_API extern "C" __declspec(dllexport)
  11. #else
  12. #define US_MODEL_DEF_API __declspec(dllimport)
  13. #define US_MODEL_DEF_C_API extern "C" __declspec(dllimport)
  14. #endif
  15. #ifndef US_MODEL_DEF_EXPORTS
  16. #ifdef _WIN64
  17. #ifdef _DEBUG
  18. #pragma comment(lib, "US_Model_DefX64D.lib")
  19. #else
  20. #pragma comment(lib, "US_Model_DefX64.lib")
  21. #endif
  22. #else
  23. #ifdef _DEBUG
  24. #pragma comment(lib, "US_Model_DefD.lib")
  25. #else
  26. #pragma comment(lib, "US_Model_Def.lib")
  27. #endif
  28. #endif
  29. #endif
  30. #include "DiosLock.h"
  31. #include "ResDataObject.h"
  32. #define US_BeanFormer ("BEANFORMER")
  33. //整数:32,64,128,256,512
  34. #define BfChannels ("BFCHANNELS")
  35. #define TrChannels ("TRCHANNELS")
  36. #define MaxTrChannels ("MAXTRCHANNELS")
  37. //工作模式
  38. #define US_SelectedTr ("SELECTEDTR")
  39. typedef enum _Us_TrSelectStatus {
  40. US_TR_SELECT_NULL,
  41. US_TR_SELECT_OK,
  42. US_TR_SELECT_MAX,
  43. }USTRSELECTSTATUS;
  44. #define US_TrList ("TRLIST")
  45. #define US_BfModeList ("BFMODELIST")
  46. #define US_CurBfMode ("CURBFMODELIST")
  47. #define BfMode ("BFMODE")
  48. typedef enum _Bf_Mode {
  49. BF_B_MODE,
  50. BF_B_THI_MODE,
  51. BF_COLOR_MODE,
  52. BF_CW_MODE,
  53. BF_PW_MODE,
  54. BF_M_MODE,
  55. BF_MODE_MAX
  56. }BF_MODE;
  57. //设备状态,WORK状态下选定工作模式的一种.
  58. #define BfStatus ("BFSTATUS")
  59. typedef enum _Bf_Status {
  60. BF_STATUS_SHUTDOWN,
  61. BF_STATUS_INIT,//start machine
  62. BF_STATUS_SLEEP,//fpga shutdown&&dios cpu sleep.
  63. BF_STATUS_WAKEUP,//fpga shutdown
  64. BF_STATUS_STANDBY,//all ready
  65. BF_STATUS_WORK,
  66. BF_STATUS_ERROR,
  67. BF_STATUS_MAX
  68. }BF_STATUS;
  69. //Work状态下的工作状态
  70. #define BfReadyStatus ("BFREADYSTATUS")
  71. typedef enum _Bf_WorkStatus {
  72. BF_WORKSTATUS_PREP,
  73. BF_WORKSTATUS_READY,
  74. BF_WORKSTATUS_MAX,
  75. }BFWORKSTATUS;
  76. //US 手闸状态:On,Off
  77. #define Us_Xmit ("USXMIT")
  78. typedef enum _Us_XmitStatus {
  79. US_STOPXMIT,
  80. US_STARTXMIT,
  81. US_XMIT_MAX,
  82. }USXMITSTATUS;
  83. //US 冻结状态:On,Off
  84. #define Us_Freeze ("USFREEZE")
  85. typedef enum _Us_FreezeStatus {
  86. US_UNFREEZE,
  87. US_FREEZE,
  88. US_FREEZE_MAX,
  89. }USFREEZESTATUS;
  90. #define US_TrName ("TRNAME")
  91. #define US_TrConnectStatus ("TRCONNECTSTATUS")
  92. #define US_TrExamType ("TREXAMTYPE")
  93. #define US_TrType ("TRTYPE")
  94. typedef enum _Tr_Type {
  95. TR_TYPE_LINNEAR,
  96. TR_TYPE_CURVE,
  97. TR_TYPE_PHASE,
  98. TR_TYPE_MAX,
  99. }TRTYPE;
  100. //发射焦点深度
  101. #define US_FrameRate ("FRAMERATE")
  102. //正整数 > 0
  103. #define US_FOCUS ("FOCUS")
  104. //正整数 > 0
  105. #define US_FOCUSZONE ("FOCUSZONE")
  106. //正整数 0 - 100
  107. #define US_GAIN ("GAIN")
  108. //正整数 0 - 255
  109. //uchar[8],使用UINT64
  110. #define US_TGC ("TGC")
  111. //uchar[2],使用USHORT
  112. #define US_LGC ("LGC")
  113. //浮点,3.5Mhz,6Mhz...
  114. #define US_FREQUENCY ("FREQUENCY")
  115. //正数,0开始
  116. #define US_PULSEDELAY ("PULSEDELAY")
  117. //正数
  118. #define US_POWER ("POWER")
  119. //正数
  120. #define US_PulseWidth ("PULSEWIDTH")
  121. //浮点数:物理参数
  122. #define US_View_LineAngle ("LINEANGLE")
  123. #define US_View_LeftMargin ("LEFTLINEMARGIN")
  124. #define US_View_RightMargin ("RIGHTLINEMARGIN")
  125. #define US_View_AngleStep ("LINEANGLESTEP")
  126. #define US_View_InnerDepth ("INNERDEPTH")
  127. #define US_View_OuterDepth ("OUTERDEPTH")
  128. #define US_Roi_LineHigh ("ROILINEHIGH")
  129. #define US_Roi_LineLow ("ROILINELOW")
  130. #define US_Roi_LineLeft ("ROILINELEFT")
  131. #define US_Roi_LineRight ("ROILINERIGHT")
  132. #define US_LineDensity ("LINEDENSITY")
  133. typedef enum _Us_LineDensity {
  134. US_LINEDENSITY_LOW,
  135. US_LINEDENSITY_MID,
  136. US_LINEDENSITY_HIGH,
  137. US_LINEDENSITY_MAX
  138. }US_LINEDENSITY;
  139. //浮点:正数
  140. #define US_ScanLineAngle ("SCANLINEANGLE")
  141. //正整数
  142. #define US_MultiLine ("MULTILINE")
  143. //正浮点数(米为单位)
  144. #define US_ReceiveDepth ("RECEIVEDEPTH")
  145. //bool值
  146. #define US_Harmonic ("HARMONIC")
  147. //正数 1-5,0-4
  148. #define US_Fusion ("FUSION")
  149. //正数
  150. #define US_Compress ("COMPRESS")
  151. //正数
  152. #define US_Packet ("PACKET")
  153. //正浮点数
  154. #define US_GateStartDepth ("GATESTARTDEPTH")
  155. //正浮点数
  156. #define US_GateLength ("GATELENGTH")
  157. #define US_ModeActiveStatus ("MODEACTIVESTATUS")
  158. #define US_ROI_Area ("USROIAREA")
  159. #define US_ROI_Type ("USROITYPE")
  160. typedef enum _Us_RoiType {
  161. US_ROI_TYPE_FANTYPE,
  162. US_ROI_TYPE_PARALLELOGRAM,
  163. US_ROI_TYPE_MAX
  164. }US_ROITYPE;
  165. #define US_ElementWidth ("ELEMENTWIDTH")
  166. #define US_ElementSpace ("ELEMENTSPACE")
  167. #define US_XmtLensFocus ("XMTLENSFOCUS")
  168. #define US_Elevation ("ELEVATION")
  169. #define US_LensThickness ("LENSTHICKNESS")
  170. //正数
  171. #define US_Dynamic ("DYNAMIC")
  172. //正数
  173. #define US_DwallFilter ("DWALLFILTER")
  174. //正数
  175. #define US_CwallFilter ("CWALLFILTER")
  176. //正数
  177. #define US_Smooth ("SMOOTH")
  178. #define US_BModeInf ("BModeInfo")
  179. #define US_CModeInf ("CModeInfo")
  180. #define US_PWModeInf ("PWModeInfo")
  181. #define US_BModeXmit ("BXmit")
  182. #define US_BModeRecv ("BRecv")
  183. #define US_CModeXmit ("CXmit")
  184. #define US_CModeRecv ("CRecv")
  185. #define US_DModeXmit ("DXmit")
  186. #define US_DModeRecv ("DRecv")
  187. class US_MODEL_DEF_API UsRoiArea : public ExJsonDataObject
  188. {
  189. //key:UsRoiArea
  190. public:
  191. UsRoiArea(US_ROITYPE RoiType);
  192. virtual ~UsRoiArea();
  193. };
  194. class US_MODEL_DEF_API BModeXmit : public ExJsonDataObject
  195. {
  196. //key:BModeXmit
  197. public:
  198. BModeXmit();
  199. virtual ~BModeXmit();
  200. };
  201. class US_MODEL_DEF_API BModeReceive : public ExJsonDataObject
  202. {
  203. //key:BModeReceive
  204. public:
  205. BModeReceive();
  206. virtual ~BModeReceive();
  207. };
  208. class US_MODEL_DEF_API BModeInfo : public ExJsonDataObject
  209. {
  210. //key:BModeInfo
  211. public:
  212. BModeInfo();
  213. virtual ~BModeInfo();
  214. };
  215. class US_MODEL_DEF_API CModeXmit : public ExJsonDataObject
  216. {
  217. //key:CModeXmit
  218. public:
  219. CModeXmit();
  220. virtual ~CModeXmit();
  221. };
  222. class US_MODEL_DEF_API CModeReceive : public ExJsonDataObject
  223. {
  224. //key:CModeReceive
  225. public:
  226. CModeReceive();
  227. virtual ~CModeReceive();
  228. };
  229. class US_MODEL_DEF_API CModeInfo : public ExJsonDataObject
  230. {
  231. //key:CModeInfo
  232. public:
  233. CModeInfo();
  234. virtual ~CModeInfo();
  235. };
  236. class US_MODEL_DEF_API PWModeXmit : public ExJsonDataObject
  237. {
  238. //key:PWModeXmit
  239. public:
  240. PWModeXmit();
  241. virtual ~PWModeXmit();
  242. };
  243. class US_MODEL_DEF_API PWModeReceive : public ExJsonDataObject
  244. {
  245. //key:PWModeReceive
  246. public:
  247. PWModeReceive();
  248. virtual ~PWModeReceive();
  249. };
  250. class US_MODEL_DEF_API PWModeInfo : public ExJsonDataObject
  251. {
  252. //key:PWModeInfo
  253. public:
  254. PWModeInfo();
  255. virtual ~PWModeInfo();
  256. };
  257. class US_MODEL_DEF_API ModelTranducer : public ExJsonDataObject
  258. {
  259. //key:Tranducer
  260. //US_BfModeList
  261. //US_TrType
  262. public:
  263. ModelTranducer();
  264. virtual ~ModelTranducer();
  265. };
  266. class US_MODEL_DEF_API ModelBeanFormer : public ExJsonDataObject
  267. {
  268. //key:BeanFormer
  269. //B Mode
  270. BModeInfo m_BMode;
  271. //C Mode
  272. CModeInfo m_CMode;
  273. //PW Mode
  274. PWModeInfo m_PwMode;
  275. //BfStatus
  276. //BfReadyStatus
  277. //TR表
  278. //激活的TR
  279. public:
  280. ModelBeanFormer();
  281. virtual ~ModelBeanFormer();
  282. bool SelectTR(const char *pTRName);
  283. bool StartAcq();
  284. bool StopAcq();
  285. //rule No1.只要激活状态,B模式 always on Active.
  286. //rule No2.Active B,C,D情况下,三个都有激活
  287. //rule No3.再次Active已激活的模式的话,会Deactive 所有其他模式
  288. void ActiveMode(BF_MODE Mode);
  289. //设置参数
  290. //设置单独的参数
  291. //设置一个Mode的参数
  292. ResDataObject &operator [](const char *pKey);
  293. //设置全部参数
  294. bool SetFullModeParams(ResDataObject &Res);
  295. };
  296. class US_MODEL_DEF_API ModelSignalProcess : public ExJsonDataObject
  297. {
  298. //key:SignalProcess
  299. public:
  300. ModelSignalProcess();
  301. virtual ~ModelSignalProcess();
  302. };
  303. #define Us_DiosImageInfo ("UsImageInfo")
  304. #define Us_ImageBmodeInfo ("UsImageBModeInfo")
  305. #define Us_ImageCmodeInfo ("UsImageBModeInfo")
  306. #define Us_ImageDmodeInfo ("UsImageBModeInfo")
  307. #define Us_DiosImageType ("USIMAGETYPE")
  308. #define Us_DiosImageViewTypeSupprt ("USIMAGETYPESUPPORT")
  309. #define Us_DiosImageHeight ("USIMAGEHEIGHT")
  310. #define Us_DiosImageWidth ("USIMAGEWIDTH")
  311. #define Us_DiosImageBits ("USIMAGEBITS")
  312. typedef enum _Us_ImageType {
  313. US_IMAGETYPE_BMODE,
  314. US_IMAGETYPE_CMODE,
  315. US_IMAGETYPE_DMODE,
  316. US_IMAGETYPE_MAX
  317. }USIMAGETYPE;
  318. class US_MODEL_DEF_API UsImageBModeInfo : public ExJsonDataObject
  319. {
  320. //key:UsImageBModeInfo
  321. public:
  322. UsImageBModeInfo();
  323. virtual ~UsImageBModeInfo();
  324. };
  325. class US_MODEL_DEF_API UsImageCModeInfo : public ExJsonDataObject
  326. {
  327. //key:UsImageCModeInfo
  328. public:
  329. UsImageCModeInfo();
  330. virtual ~UsImageCModeInfo();
  331. };
  332. class US_MODEL_DEF_API UsImageDModeInfo : public ExJsonDataObject
  333. {
  334. //key:UsImageDModeInfo
  335. public:
  336. UsImageDModeInfo();
  337. virtual ~UsImageDModeInfo();
  338. };
  339. class US_MODEL_DEF_API ModelAcousticProcess : public ExJsonDataObject
  340. {
  341. //key:AcousticProcess
  342. UsImageBModeInfo m_BImageMode;
  343. UsImageCModeInfo m_CImageMode;
  344. UsImageDModeInfo m_DImageMode;
  345. public:
  346. ModelAcousticProcess();
  347. virtual ~ModelAcousticProcess();
  348. };