APS168x64.cs 127 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace Venus_RT.Devices.AdLinkEthercat
  4. {
  5. //ADLINK Structure++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  6. [StructLayout(LayoutKind.Sequential)]
  7. public struct STR_SAMP_DATA_4CH
  8. {
  9. public Int32 tick;
  10. public Int32 data0; //Total channel = 4
  11. public Int32 data1;
  12. public Int32 data2;
  13. public Int32 data3;
  14. }
  15. [StructLayout(LayoutKind.Sequential)]
  16. public struct MOVE_PARA
  17. {
  18. public Int16 i16_accType; //Axis parameter
  19. public Int16 i16_decType; //Axis parameter
  20. public Int32 i32_acc; //Axis parameter
  21. public Int32 i32_dec; //Axis parameter
  22. public Int32 i32_initSpeed; //Axis parameter
  23. public Int32 i32_maxSpeed; //Axis parameter
  24. public Int32 i32_endSpeed; //Axis parameter
  25. }
  26. [StructLayout(LayoutKind.Sequential)]
  27. public struct POINT_DATA
  28. {
  29. public Int32 i32_pos; // Position data (relative or absolute) (pulse)
  30. public Int16 i16_accType; // Acceleration pattern 0: T-curve, 1: S-curve
  31. public Int16 i16_decType; // Deceleration pattern 0: T-curve, 1: S-curve
  32. public Int32 i32_acc; // Acceleration rate ( pulse / ss )
  33. public Int32 i32_dec; // Deceleration rate ( pulse / ss )
  34. public Int32 i32_initSpeed; // Start velocity ( pulse / s )
  35. public Int32 i32_maxSpeed; // Maximum velocity ( pulse / s )
  36. public Int32 i32_endSpeed; // End velocity ( pulse / s )
  37. public Int32 i32_angle; // Arc move angle ( degree, -360 ~ 360 )
  38. public Int32 u32_dwell; // Dwell times ( unit: ms )
  39. public Int32 i32_opt; // Option //0xABCD , D:0 absolute, 1:relative
  40. }
  41. [StructLayout(LayoutKind.Sequential)]
  42. public struct PNT_DATA
  43. {
  44. // Point table structure (One dimension)
  45. public UInt32 u32_opt; // option, [0x00000000,0xFFFFFFFF]
  46. public Int32 i32_x; // x-axis component (pulse), [-2147483648,2147484647]
  47. public Int32 i32_theta; // x-y plane arc move angle (0.001 degree), [-360000,360000]
  48. public Int32 i32_acc; // acceleration rate (pulse/ss), [0,2147484647]
  49. public Int32 i32_dec; // deceleration rate (pulse/ss), [0,2147484647]
  50. public Int32 i32_vi; // initial velocity (pulse/s), [0,2147484647]
  51. public Int32 i32_vm; // maximum velocity (pulse/s), [0,2147484647]
  52. public Int32 i32_ve; // ending velocity (pulse/s), [0,2147484647]
  53. }
  54. [StructLayout(LayoutKind.Sequential)]
  55. public struct PNT_DATA_2D
  56. {
  57. public UInt32 u32_opt; // option, [0x00000000,0xFFFFFFFF]
  58. public Int32 i32_x; // x-axis component (pulse), [-2147483648,2147484647]
  59. public Int32 i32_y; // y-axis component (pulse), [-2147483648,2147484647]
  60. public Int32 i32_theta; // x-y plane arc move angle (0.000001 degree), [-360000,360000]
  61. public Int32 i32_acc; // acceleration rate (pulse/ss), [0,2147484647]
  62. public Int32 i32_dec; // deceleration rate (pulse/ss), [0,2147484647]
  63. public Int32 i32_vi; // initial velocity (pulse/s), [0,2147484647]
  64. public Int32 i32_vm; // maximum velocity (pulse/s), [0,2147484647]
  65. public Int32 i32_ve; // ending velocity (pulse/s), [0,2147484647]
  66. }
  67. [StructLayout(LayoutKind.Sequential)]
  68. public struct PNT_DATA_2D_F64
  69. {
  70. public UInt32 u32_opt; // option, [0x00000000,0xFFFFFFFF]
  71. public Double f64_x; // x-axis component (pulse), [-2147483648,2147484647]
  72. public Double f64_y; // y-axis component (pulse), [-2147483648,2147484647]
  73. public Double f64_theta; // x-y plane arc move angle (0.000001 degree), [-360000,360000]
  74. public Double f64_acc; // acceleration rate (pulse/ss), [0,2147484647]
  75. public Double f64_dec; // deceleration rate (pulse/ss), [0,2147484647]
  76. public Double f64_vi; // initial velocity (pulse/s), [0,2147484647]
  77. public Double f64_vm; // maximum velocity (pulse/s), [0,2147484647]
  78. public Double f64_ve; // ending velocity (pulse/s), [0,2147484647]
  79. public Double f64_sf; // s-factor [0.0 ~ 1.0]
  80. }
  81. [StructLayout(LayoutKind.Sequential)]
  82. public struct PNT_DATA_4DL
  83. {
  84. public UInt32 u32_opt; // option, [0x00000000,0xFFFFFFFF]
  85. public Int32 i32_x; // x-axis component (pulse), [-2147483648,2147484647]
  86. public Int32 i32_y; // y-axis component (pulse), [-2147483648,2147484647]
  87. public Int32 i32_z; // z-axis component (pulse), [-2147483648,2147484647]
  88. public Int32 i32_u; // u-axis component (pulse), [-2147483648,2147484647]
  89. public Int32 i32_acc; // acceleration rate (pulse/ss), [0,2147484647]
  90. public Int32 i32_dec; // deceleration rate (pulse/ss), [0,2147484647]
  91. public Int32 i32_vi; // initial velocity (pulse/s), [0,2147484647]
  92. public Int32 i32_vm; // maximum velocity (pulse/s), [0,2147484647]
  93. public Int32 i32_ve; // ending velocity (pulse/s), [0,2147484647]
  94. }
  95. [StructLayout(LayoutKind.Sequential)]
  96. public struct POINT_DATA_EX
  97. {
  98. public Int32 i32_pos; //(Center)Position data (could be relative or absolute value)
  99. public Int16 i16_accType; //Acceleration pattern 0: T curve, 1:S curve
  100. public Int16 i16_decType; // Deceleration pattern 0: T curve, 1:S curve
  101. public Int32 i32_acc; //Acceleration rate ( pulse / sec 2 )
  102. public Int32 i32_dec; //Deceleration rate ( pulse / sec 2 )
  103. public Int32 i32_initSpeed; //Start velocity ( pulse / s )
  104. public Int32 i32_maxSpeed; //Maximum velocity ( pulse / s )
  105. public Int32 i32_endSpeed; //End velocity ( pulse / s )
  106. public Int32 i32_angle; //Arc move angle ( degree, -360 ~ 360 )
  107. public UInt32 u32_dwell; //dwell times ( unit: ms ) *Divided by system cycle time.
  108. public Int32 i32_opt; //Point move option. (*)
  109. public Int32 i32_pitch; // pitch for helical move
  110. public Int32 i32_totalheight; // total hight
  111. public Int16 i16_cw; // cw or ccw
  112. public Int16 i16_opt_ext; // option extend
  113. }
  114. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  115. public struct POINT_DATA2
  116. {
  117. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
  118. public Int32[] i32_pos; // Position data (relative or absolute) (pulse)
  119. public Int32 i32_initSpeed; // Start velocity ( pulse / s )
  120. public Int32 i32_maxSpeed; // Maximum velocity ( pulse / s )
  121. public Int32 i32_angle; // Arc move angle ( degree, -360 ~ 360 )
  122. public UInt32 u32_dwell; // Dwell times ( unit: ms )
  123. public Int32 i32_opt; // Option //0xABCD , D:0 absolute, 1:relative
  124. }
  125. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  126. public struct POINT_DATA3
  127. {
  128. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
  129. public Int32[] i32_pos;
  130. public Int32 i32_maxSpeed;
  131. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
  132. public Int32[] i32_endPos;
  133. public Int32 i32_dir;
  134. public Int32 i32_opt;
  135. }
  136. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  137. public struct VAO_DATA
  138. {
  139. //Param
  140. public Int32 outputType; //Output type, [0, 3]
  141. public Int32 inputType; //Input type, [0, 1]
  142. public Int32 config; //PWM configuration according to output type
  143. public Int32 inputSrc; //Input source by axis, [0, 0xf]
  144. //Mapping table
  145. public Int32 minVel; //Minimum linear speed, [ positive ]
  146. public Int32 velInterval; //Speed interval, [ positive ]
  147. public Int32 totalPoints; //Total points, [1, 32]
  148. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  149. public Int32[] mappingDataArr; //mapping data array
  150. }
  151. [StructLayout(LayoutKind.Sequential)]
  152. public struct PTSTS
  153. {
  154. public UInt16 BitSts; //b0: Is PTB work? [1:working, 0:Stopped]
  155. //b1: Is point buffer full? [1:full, 0:not full]
  156. //b2: Is point buffer empty? [1:empty, 0:not empty]
  157. //b3, b4, b5: Reserved for future
  158. //b6~: Be always 0
  159. public UInt16 PntBufFreeSpace;
  160. public UInt16 PntBufUsageSpace;
  161. public UInt32 RunningCnt;
  162. }
  163. [StructLayout(LayoutKind.Sequential)]
  164. public struct LPSTS
  165. {
  166. public UInt32 MotionLoopLoading;
  167. public UInt32 HostLoopLoading;
  168. public UInt32 MotionLoopLoadingMax;
  169. public UInt32 HostLoopLoadingMax;
  170. }
  171. [StructLayout(LayoutKind.Sequential)]
  172. public struct DEBUG_DATA
  173. {
  174. public UInt16 ServoOffCondition;
  175. public Double DspCmdPos;
  176. public Double DspFeedbackPos;
  177. public Double FpgaCmdPos;
  178. public Double FpgaFeedbackPos;
  179. public Double FpgaOutputVoltage;
  180. }
  181. [StructLayout(LayoutKind.Sequential)]
  182. public struct DEBUG_STATE
  183. {
  184. public UInt16 AxisState;
  185. public UInt16 GroupState;
  186. public UInt16 AxisSuperState;
  187. }
  188. [StructLayout(LayoutKind.Sequential)]
  189. public struct PTDWL
  190. {
  191. public Double DwTime; //Unit is ms
  192. }
  193. [StructLayout(LayoutKind.Sequential)]
  194. public struct PTLINE
  195. {
  196. public Int32 Dim;
  197. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
  198. public Double[] Pos;
  199. }
  200. [StructLayout(LayoutKind.Sequential)]
  201. public struct PTA2CA
  202. {
  203. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
  204. public Byte[] Index; //Index X,Y
  205. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
  206. public Double[] Center; //Center Arr
  207. public Double Angle; //Angle
  208. }
  209. //[StructLayout(LayoutKind.Sequential, Pack = 1)]
  210. [StructLayout(LayoutKind.Sequential)]
  211. public struct PTA2CE
  212. {
  213. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
  214. public Byte[] Index; //Index X,Y
  215. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
  216. public Double[] Center; //
  217. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
  218. public Double[] End; //
  219. public Int16 Dir; //
  220. }
  221. //[StructLayout(LayoutKind.Sequential, Pack = 1)]
  222. [StructLayout(LayoutKind.Sequential)] // revised 20160801
  223. public struct PTA3CA
  224. {
  225. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  226. public Byte[] Index; //Index X,Y
  227. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  228. public Double[] Center; //Center Arr
  229. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  230. public Double[] Normal; //Normal Arr
  231. public Double Angle; //Angle
  232. }
  233. //[StructLayout(LayoutKind.Sequential, Pack = 1)]
  234. [StructLayout(LayoutKind.Sequential)] // revised 20160801
  235. public struct PTA3CE
  236. {
  237. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  238. public Byte[] Index; //Index X,Y
  239. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  240. public Double[] Center; //Center Arr
  241. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  242. public Double[] End; //End Arr
  243. public Int16 Dir; //
  244. }
  245. //[StructLayout(LayoutKind.Sequential, Pack = 1)]
  246. [StructLayout(LayoutKind.Sequential)] // revised 20160801
  247. public struct PTHCA
  248. {
  249. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  250. public Byte[] Index; //Index X,Y
  251. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  252. public Double[] Center; //Center Arr
  253. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  254. public Double[] Normal; //Normal Arr
  255. public Double Angle; //Angle
  256. public Double DeltaH;
  257. public Double FinalR;
  258. }
  259. //[StructLayout(LayoutKind.Sequential, Pack = 1)]
  260. [StructLayout(LayoutKind.Sequential)] // revised 20160801
  261. public struct PTHCE
  262. {
  263. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  264. public Byte[] Index; //Index X,Y
  265. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  266. public Double[] Center; //Center Arr
  267. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  268. public Double[] Normal; //Normal Arr
  269. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  270. public Double[] End; //End Arr
  271. public Int16 Dir; //
  272. }
  273. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  274. public struct PTINFO
  275. {
  276. public Int32 Dimension;
  277. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
  278. public Int32[] AxisArr;
  279. }
  280. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  281. public struct STR_SAMP_DATA_8CH
  282. {
  283. public Int32 tick;
  284. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
  285. public Int32[] data; //Total channel = 8
  286. }
  287. [StructLayout(LayoutKind.Sequential)]
  288. public struct STR_SAMP_DATA_8CH_ASYNC
  289. {
  290. public Int32 tick;
  291. public Int32 data0;
  292. public Int32 data1;
  293. public Int32 data2;
  294. public Int32 data3;
  295. public Int32 data4;
  296. public Int32 data5;
  297. public Int32 data6;
  298. public Int32 data7;
  299. }
  300. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  301. public struct SAMP_PARAM
  302. {
  303. public Int32 rate; //Sampling rate
  304. public Int32 edge; //Trigger edge
  305. public Int32 level; //Trigger level
  306. public Int32 trigCh; //Trigger channel
  307. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
  308. public Int32[] sourceByCh;
  309. //Sampling source by channel. E.g.,
  310. // sourceByCh[0] --> Channel 0 sampling source number
  311. // sourceByCh[1] --> Chaneel 0 sampling axis number
  312. // sourceByCh[2] --> Channel 1 sampling source number
  313. // sourceByCh[3] --> Chaneel 1 sampling axis number
  314. // .....
  315. // sourceByCh[14] --> Channel 7 sampling source number
  316. // sourceByCh[15] --> Chaneel 7 sampling axis number
  317. }
  318. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  319. public struct STR_SAMP_DATA_ADV
  320. {
  321. public Int32 tick;
  322. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
  323. public Int32[] data; //Total channel = 16
  324. }
  325. [StructLayout(LayoutKind.Sequential)]
  326. public struct STR_SAMP_DATA_ADV_ASYNC
  327. {
  328. public Int32 tick;
  329. public Int32 data0;
  330. public Int32 data1;
  331. public Int32 data2;
  332. public Int32 data3;
  333. public Int32 data4;
  334. public Int32 data5;
  335. public Int32 data6;
  336. public Int32 data7;
  337. public Int32 data8;
  338. public Int32 data9;
  339. public Int32 data10;
  340. public Int32 data11;
  341. public Int32 data12;
  342. public Int32 data13;
  343. public Int32 data14;
  344. public Int32 data15;
  345. }
  346. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  347. public struct SAMP_PARAM_ADV
  348. {
  349. public Int32 rate; //Sampling rate
  350. public Int32 edge; //Trigger edge
  351. public Int32 level; //Trigger level
  352. public Int32 trigCh; //Trigger channel
  353. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  354. public Int32[] sourceByCh;
  355. //Sampling source by channel. E.g.,
  356. // sourceByCh[0] --> Channel 0 sampling source number
  357. // sourceByCh[1] --> Chaneel 0 sampling axis number
  358. // sourceByCh[2] --> Channel 1 sampling source number
  359. // sourceByCh[3] --> Chaneel 1 sampling axis number
  360. // .....
  361. // sourceByCh[30] --> Channel 15 sampling source number
  362. // sourceByCh[31] --> Chaneel 15 sampling axis number
  363. }
  364. [StructLayout(LayoutKind.Sequential)]
  365. public struct JOG_DATA
  366. {
  367. public Int16 i16_jogMode; // Jog mode. 0:Free running mode, 1:Step mode
  368. public Int16 i16_dir; // Jog direction. 0:positive, 1:negative direction
  369. public Int16 i16_accType; // Acceleration pattern 0: T-curve, 1: S-curve
  370. public Int32 i32_acc; // Acceleration rate ( pulse / ss )
  371. public Int32 i32_dec; // Deceleration rate ( pulse / ss )
  372. public Int32 i32_maxSpeed; // Positive value, maximum velocity ( pulse / s )
  373. public Int32 i32_offset; // Positive value, a step (pulse)
  374. public Int32 i32_delayTime; // Delay time, ( range: 0 ~ 65535 millisecond, align by cycle time)
  375. }
  376. [StructLayout(LayoutKind.Sequential)]
  377. public struct HOME_PARA
  378. {
  379. public ushort u8_homeMode;
  380. public ushort u8_homeDir;
  381. public ushort u8_curveType;
  382. public Int32 i32_orgOffset;
  383. public Int32 i32_acceleration;
  384. public Int32 i32_startVelocity;
  385. public Int32 i32_maxVelocity;
  386. public Int32 i32_OrgVelocity;
  387. }
  388. [StructLayout(LayoutKind.Sequential)]
  389. public struct POS_DATA_2D
  390. {
  391. public UInt32 u32_opt; // option, [0x00000000,0xFFFFFFFF]
  392. public Int32 i32_x; // x-axis component (pulse), [-2147483648,2147484647]
  393. public Int32 i32_y; // y-axis component (pulse), [-2147483648,2147484647]
  394. public Int32 i32_theta; // x-y plane arc move angle (0.000001 degree), [-360000,360000]
  395. }
  396. [StructLayout(LayoutKind.Sequential)]
  397. public unsafe struct ASYNCALL
  398. {
  399. public void* h_event;
  400. public Int32 i32_ret;
  401. public Byte u8_asyncMode;
  402. }
  403. [StructLayout(LayoutKind.Sequential)]
  404. public struct TSK_INFO
  405. {
  406. public UInt16 State; //
  407. public UInt16 RunTimeErr; //
  408. public UInt16 IP;
  409. public UInt16 SP;
  410. public UInt16 BP;
  411. public UInt16 MsgQueueSts;
  412. }
  413. //New ADCNC structure define
  414. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  415. [StructLayout(LayoutKind.Sequential)]
  416. public struct POS_DATA_2D_F64
  417. {
  418. /* This structure extends original point data contents from "I32" to "F64"
  419. for internal computation. It's important to prevent data overflow. */
  420. public UInt32 u32_opt; // option, [0x00000000, 0xFFFFFFFF]
  421. public Double f64_x; // x-axis component (pulse), [-9223372036854775808, 9223372036854775807]
  422. public Double f64_y; // y-axis component (pulse), [-9223372036854775808, 9223372036854775807]
  423. public Double f64_theta; // x-y plane arc move angle (0.000001 degree), [-360000, 360000]
  424. }
  425. [StructLayout(LayoutKind.Sequential)]
  426. public struct POS_DATA_2D_RPS
  427. {
  428. /* This structure adds another variable to record what point was be saved */
  429. public UInt32 u32_opt; // option, [0x00000000, 0xFFFFFFFF]
  430. public Int32 i32_x; // x-axis component (pulse), [-2147483648, 2147483647]
  431. public Int32 i32_y; // y-axis component (pulse), [-2147483648, 2147483647]
  432. public Int32 i32_theta; // x-y plane arc move angle (0.000001 degree), [-360000, 360000]
  433. public UInt32 crpi; // current reading point index
  434. }
  435. [StructLayout(LayoutKind.Sequential)]
  436. public struct POS_DATA_2D_F64_RPS
  437. {
  438. /* This structure adds another variable to record what point was be saved */
  439. public UInt32 u32_opt; // option, [0x00000000, 0xFFFFFFFF]
  440. public Double f64_x; // x-axis component (pulse), [-2147483648, 2147483647]
  441. public Double f64_y; // y-axis component (pulse), [-2147483648, 2147483647]
  442. public Double f64_theta; // x-y plane arc move angle (0.000001 degree), [-360000, 360000]
  443. public UInt32 crpi; // current reading point index
  444. }
  445. [StructLayout(LayoutKind.Sequential)]
  446. public struct PNT_DATA_2D_EXT
  447. {
  448. public UInt32 u32_opt; // option, [0x00000000,0xFFFFFFFF]
  449. public Double f64_x; // x-axis component (pulse), [-2147483648,2147484647]
  450. public Double f64_y; // y-axis component (pulse), [-2147483648,2147484647]
  451. public Double f64_theta; // x-y plane arc move angle (0.000001 degree), [-360000,360000]
  452. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
  453. public Double[] f64_acc; // acceleration rate (pulse/ss), [0,2147484647]
  454. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
  455. public Double[] f64_dec; // deceleration rate (pulse/ss), [0,2147484647]
  456. public Int32 crossover;
  457. public Int32 Iboundary; // initial boundary
  458. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
  459. public Double[] f64_vi; // initial velocity (pulse/s), [0,2147484647]
  460. public UInt32 vi_cmpr;
  461. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
  462. public Double[] f64_vm; // maximum velocity (pulse/s), [0,2147484647]
  463. public UInt32 vm_cmpr;
  464. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
  465. public Double[] f64_ve; // ending velocity (pulse/s), [0,2147484647]
  466. public UInt32 ve_cmpr;
  467. public Int32 Eboundary; // end boundary
  468. public Double f64_dist; // point distance
  469. public Double f64_angle; // path angle between previous & current point
  470. public Double f64_radius; // point radiua (used in arc move)
  471. public Int32 i32_arcstate;
  472. public UInt32 spt; // speed profile type
  473. // unit time measured by DSP sampling period
  474. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
  475. public Double[] t;
  476. // Horizontal & Vertical line flag
  477. public Int32 HorizontalFlag;
  478. public Int32 VerticalFlag;
  479. }
  480. [StructLayout(LayoutKind.Sequential)]
  481. public struct DO_DATA_EX
  482. {
  483. public UInt32 Do_ValueL; //bit[0~31]
  484. public UInt32 Do_ValueH; //bit[32~63]
  485. }
  486. [StructLayout(LayoutKind.Sequential)]
  487. public struct DI_DATA_EX
  488. {
  489. public UInt32 Di_ValueL; //bit[0~31]
  490. public UInt32 Di_ValueH; //bit[32~63]
  491. }
  492. //**********************************************
  493. // New header functions; 20151102
  494. //**********************************************
  495. [StructLayout(LayoutKind.Sequential)]
  496. public struct MCMP_POINT
  497. {
  498. public Double axisX; // x axis data for multi-dimension comparator 0
  499. public Double axisY; // y axis data for multi-dimension comparator 1
  500. public Double axisZ; // z axis data for multi-dimension comparator 2
  501. public Double axisU; // u axis data for multi-dimension comparator 3
  502. public UInt32 chInBit; // pwm output channel in bit format; 20150609
  503. }
  504. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  505. [StructLayout(LayoutKind.Sequential)]
  506. public struct EC_MODULE_INFO
  507. {
  508. public Int32 VendorID;
  509. public Int32 ProductCode;
  510. public Int32 RevisionNo;
  511. public Int32 TotalAxisNum;
  512. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  513. public Int32[] Axis_ID;
  514. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  515. public Int32[] Axis_ID_manual;
  516. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  517. public Int32[] All_ModuleType;
  518. public Int32 DI_ModuleNum;
  519. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  520. public Int32[] DI_ModuleType;
  521. public Int32 DO_ModuleNum;
  522. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  523. public Int32[] DO_ModuleType;
  524. public Int32 AI_ModuleNum;
  525. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  526. public Int32[] AI_ModuleType;
  527. public Int32 AO_ModuleNum;
  528. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  529. public Int32[] AO_ModuleType;
  530. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
  531. public string Name;
  532. }
  533. [StructLayout(LayoutKind.Sequential)]
  534. public struct EC_Sub_MODULE_INFO
  535. {
  536. public Int32 VendorID;
  537. public Int32 ProductCode;
  538. public Int32 RevisionNo;
  539. public Int32 TotalSubModuleNum;
  540. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  541. public Int32[] SubModuleID;
  542. }
  543. [StructLayout(LayoutKind.Sequential)]
  544. public struct EC_Sub_MODULE_OD_INFO
  545. {
  546. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
  547. public Byte[] DataName;
  548. public Int32 BitLength;
  549. public Int32 DataType;
  550. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  551. public Byte[] DataTypeName;
  552. }
  553. [StructLayout(LayoutKind.Sequential)]
  554. public struct PDO_OFFSET
  555. {
  556. public UInt16 DataType;
  557. public UInt32 ByteSize;
  558. public UInt32 ByteOffset;
  559. public UInt32 Index;
  560. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
  561. public Byte[] NameArr;
  562. }
  563. [StructLayout(LayoutKind.Sequential)]
  564. public struct OD_DESC_ENTRY
  565. {
  566. public UInt32 DataTypeNum;
  567. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  568. public Byte[] DataTypeName;
  569. public UInt32 BitLen;
  570. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  571. public Byte[] Description;
  572. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  573. public Byte[] Access;
  574. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  575. public Byte[] PdoMapInfo;
  576. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  577. public Byte[] UnitType;
  578. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  579. public Byte[] DefaultValue;
  580. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  581. public Byte[] MinValue;
  582. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
  583. public Byte[] MaxValue;
  584. }
  585. [StructLayout(LayoutKind.Sequential)]
  586. public struct Speed_profile
  587. {
  588. public Int32 VS; // start velocity ,range 1 ~ 4,000,000 (pulse)
  589. public Int32 Vmax; // Maximum velocity ,range 1 ~ 4,000,000
  590. public Int32 Acc; // Acceleration ,range 1 ~ 500000000
  591. public Int32 Dec; // Deceleration ,range 1 ~ 500000000
  592. public Double s_factor; // range 0 ~ 10
  593. }
  594. // For latch function, 2019.06.10
  595. [StructLayout(LayoutKind.Sequential)]
  596. public struct LATCH_POINT
  597. {
  598. public Double position; // Latched position
  599. public Int32 ltcSrcInBit; // Latch source: bit 0~7: DI; bit 8~11: trigger channel
  600. }
  601. [StructLayout(LayoutKind.Sequential)]
  602. public struct TCMP_EX_POINT
  603. {
  604. public Int32 outputPinInBit; // Trigger output mapping
  605. public Double position_f64; //reserved
  606. public Int32 position_I32;
  607. }
  608. // For measurement descriptor
  609. [StructLayout(LayoutKind.Sequential)]
  610. public struct AD_MEAS_DESC
  611. {
  612. public UInt32 curr;
  613. public UInt32 min;
  614. public UInt32 max;
  615. public UInt32 avg;
  616. }
  617. [StructLayout(LayoutKind.Sequential)]
  618. public struct STR_MOVE_SETTING
  619. {
  620. public Byte CmdType; // Execute function define.
  621. public Double Pos; // Relative move distance or absolute move position.
  622. public Double Vs; // Acceleration rate (pulse/ss), [0,2147484647]
  623. public Double Vm; // Deceleration rate (pulse/ss), [0,2147484647]
  624. public Double Ve; // initial velocity (pulse/s), [0,2147484647]
  625. public Double Acc; // maximum velocity (pulse/s), [0,2147484647]
  626. public Double Dec; // ending velocity (pulse/s), [0,2147484647]
  627. public Double MiliSecond; // Dwell time in milisecond.
  628. }
  629. public enum E_ActionType : Byte
  630. {
  631. E_ACTION_TYPE_NOP = 0,
  632. E_ACTION_TYPE_TR,
  633. E_ACTION_TYPE_TA,
  634. E_ACTION_TYPE_SR,
  635. E_ACTION_TYPE_SA,
  636. E_ACTION_TYPE_DWELL
  637. }
  638. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  639. public class APS168
  640. {
  641. // System & Initialization
  642. [DllImport("APS168.dll")] public static extern Int32 APS_initial(ref System.Int32 BoardID_InBits, System.Int32 Mode);
  643. [DllImport("APS168.dll")] public static extern Int32 APS_close();
  644. [DllImport("APS168.dll")] public static extern Int32 APS_version();
  645. [DllImport("APS168.dll")] public static extern Int32 APS_device_driver_version(System.Int32 Board_ID);
  646. [DllImport("APS168.dll")] public static extern Int32 APS_get_axis_info(System.Int32 Axis_ID, ref System.Int32 Board_ID, ref System.Int32 Axis_No, ref System.Int32 Port_ID, ref System.Int32 Module_ID);
  647. [DllImport("APS168.dll")] public static extern Int32 APS_set_board_param(System.Int32 Board_ID, System.Int32 BOD_Param_No, System.Int32 BOD_Param);
  648. [DllImport("APS168.dll")] public static extern Int32 APS_get_board_param(System.Int32 Board_ID, System.Int32 BOD_Param_No, ref System.Int32 BOD_Param);
  649. [DllImport("APS168.dll")] public static extern Int32 APS_set_axis_param(System.Int32 Axis_ID, System.Int32 AXS_Param_No, System.Int32 AXS_Param);
  650. [DllImport("APS168.dll")] public static extern Int32 APS_get_axis_param(System.Int32 Axis_ID, System.Int32 AXS_Param_No, ref System.Int32 AXS_Param);
  651. [DllImport("APS168.dll")] public static extern Int32 APS_get_device_info(System.Int32 Board_ID, System.Int32 Info_No, ref System.Int32 Info);
  652. [DllImport("APS168.dll")] public static extern Int32 APS_get_card_name(System.Int32 Board_ID, ref System.Int32 CardName);
  653. [DllImport("APS168.dll")] public static extern Int32 APS_disable_device(System.Int32 DeviceName);
  654. [DllImport("APS168.dll")] public static extern Int32 APS_load_param_from_file(string pXMLFile);
  655. [DllImport("APS168.dll")] public static extern Int32 APS_get_first_axisId(System.Int32 Board_ID, ref System.Int32 StartAxisID, ref System.Int32 TotalAxisNum);
  656. [DllImport("APS168.dll")] public static extern Int32 APS_get_system_timer(System.Int32 Board_ID, ref System.Int32 Timer);
  657. [DllImport("APS168.dll")] public static extern Int32 APS_get_system_loading(System.Int32 Board_ID, ref System.Double Loading1, ref System.Double Loading2, ref System.Double Loading3, ref System.Double Loading4);
  658. [DllImport("APS168.dll")] public static extern Int32 APS_set_security_key(System.Int32 Board_ID, System.Int32 OldPassword, System.Int32 NewPassword);
  659. [DllImport("APS168.dll")] public static extern Int32 APS_check_security_key(System.Int32 Board_ID, System.Int32 Password);
  660. [DllImport("APS168.dll")] public static extern Int32 APS_reset_security_key(System.Int32 Board_ID);
  661. //Control driver mode [For PCI-8254/58]
  662. [DllImport("APS168.dll")] public static extern Int32 APS_get_curr_sys_ctrl_mode(System.Int32 Axis_ID, ref System.Int32 Mode);
  663. //Virtual board settings [For PCI-8254/58]
  664. [DllImport("APS168.dll")] public static extern Int32 APS_register_virtual_board(System.Int32 VirCardIndex, System.Int32 Count);
  665. [DllImport("APS168.dll")] public static extern Int32 APS_get_virtual_board_info(System.Int32 VirCardIndex, ref System.Int32 Count);
  666. //Parameters setting by float [For PCI-8254/58]
  667. [DllImport("APS168.dll")] public static extern Int32 APS_set_axis_param_f(System.Int32 Axis_ID, System.Int32 AXS_Param_No, System.Double AXS_Param);
  668. [DllImport("APS168.dll")] public static extern Int32 APS_get_axis_param_f(System.Int32 Axis_ID, System.Int32 AXS_Param_No, ref System.Double AXS_Param);
  669. //[For PCI-7856, MNET series]
  670. [DllImport("APS168.dll")] public static extern Int32 APS_save_param_to_file(System.Int32 Board_ID, string pXMLFile);
  671. //Motion queue status [For PCI-8254/58]
  672. [DllImport("APS168.dll")] public static extern Int32 APS_get_mq_free_space(System.Int32 Axis_ID, ref System.Int32 Space);
  673. [DllImport("APS168.dll")] public static extern Int32 APS_get_mq_usage(System.Int32 Axis_ID, ref System.Int32 Usage);
  674. //Motion stop code [For PCI-8254/58]
  675. [DllImport("APS168.dll")] public static extern Int32 APS_get_stop_code(System.Int32 Axis_ID, ref System.Int32 Code);
  676. //Helical interpolation [For PCI-8253/56]
  677. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_helix_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Center_Pos_Array, System.Int32 Max_Arc_Speed, System.Int32 Pitch, System.Int32 TotalHeight, System.Int32 CwOrCcw);
  678. [DllImport("APS168.dll")] public static extern Int32 APS_relative_helix_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Center_PosOffset_Array, System.Int32 Max_Arc_Speed, System.Int32 Pitch, System.Int32 TotalHeight, System.Int32 CwOrCcw);
  679. //Helical interpolation [For PCI(e)-8154/58]
  680. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_helical_move(System.Int32[] Axis_ID_Array, System.Int32[] Center_Pos_Array, System.Int32[] End_Pos_Array, System.Int32 Pitch, System.Int32 Dir, System.Int32 Max_Speed);
  681. [DllImport("APS168.dll")] public static extern Int32 APS_relative_helical_move(System.Int32[] Axis_ID_Array, System.Int32[] Center_Offset_Array, System.Int32[] End_Offset_Array, System.Int32 Pitch, System.Int32 Dir, System.Int32 Max_Speed);
  682. //Circular interpolation( Support 2D and 3D ) [For PCI-8253/56]
  683. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_arc_move_3pe(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Pass_Pos_Array, System.Int32[] End_Pos_Array, System.Int32 Max_Arc_Speed);
  684. [DllImport("APS168.dll")] public static extern Int32 APS_relative_arc_move_3pe(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Pass_PosOffset_Array, System.Int32[] End_PosOffset_Array, System.Int32 Max_Arc_Speed);
  685. //Field bus motion interrupt [For PCI-7856, MNET series]
  686. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_int_factor_motion(System.Int32 Axis_ID, System.Int32 Factor_No, System.Int32 Enable);
  687. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_int_factor_motion(System.Int32 Axis_ID, System.Int32 Factor_No, ref System.Int32 Enable);
  688. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_int_factor_error(System.Int32 Axis_ID, System.Int32 Factor_No, System.Int32 Enable);
  689. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_int_factor_error(System.Int32 Axis_ID, System.Int32 Factor_No, ref System.Int32 Enable);
  690. [DllImport("APS168.dll")] public static extern Int32 APS_reset_field_bus_int_motion(System.Int32 Axis_ID);
  691. [DllImport("APS168.dll")] public static extern Int32 APS_wait_field_bus_error_int_motion(System.Int32 Axis_ID, System.Int32 Time_Out);
  692. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_int_factor_di(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 bitsOfCheck);
  693. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_int_factor_di(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 bitsOfCheck);
  694. //Flash functions [For PCI-8253/56, PCI-8392(H)]
  695. [DllImport("APS168.dll")] public static extern Int32 APS_save_parameter_to_flash(System.Int32 Board_ID);
  696. [DllImport("APS168.dll")] public static extern Int32 APS_load_parameter_from_flash(System.Int32 Board_ID);
  697. [DllImport("APS168.dll")] public static extern Int32 APS_load_parameter_from_default(System.Int32 Board_ID);
  698. //SSCNET-3 functions [For PCI-8392(H)]
  699. [DllImport("APS168.dll")] public static extern Int32 APS_start_sscnet(System.Int32 Board_ID, ref System.Int32 AxisFound_InBits);
  700. [DllImport("APS168.dll")] public static extern Int32 APS_stop_sscnet(System.Int32 Board_ID);
  701. [DllImport("APS168.dll")] public static extern Int32 APS_get_sscnet_servo_param(System.Int32 Axis_ID, System.Int32 Para_No1, ref System.Int32 Para_Dat1, System.Int32 Para_No2, ref System.Int32 Para_Dat2);
  702. [DllImport("APS168.dll")] public static extern Int32 APS_set_sscnet_servo_param(System.Int32 Axis_ID, System.Int32 Para_No1, System.Int32 Para_Dat1, System.Int32 Para_No2, System.Int32 Para_Dat2);
  703. [DllImport("APS168.dll")] public static extern Int32 APS_get_sscnet_servo_alarm(System.Int32 Axis_ID, ref System.Int32 Alarm_No, ref System.Int32 Alarm_Detail);
  704. [DllImport("APS168.dll")] public static extern Int32 APS_reset_sscnet_servo_alarm(System.Int32 Axis_ID);
  705. [DllImport("APS168.dll")] public static extern Int32 APS_save_sscnet_servo_param(System.Int32 Board_ID);
  706. [DllImport("APS168.dll")] public static extern Int32 APS_get_sscnet_servo_abs_position(System.Int32 Axis_ID, ref System.Int32 Cyc_Cnt, ref System.Int32 Res_Cnt);
  707. [DllImport("APS168.dll")] public static extern Int32 APS_save_sscnet_servo_abs_position(System.Int32 Board_ID);
  708. [DllImport("APS168.dll")] public static extern Int32 APS_load_sscnet_servo_abs_position(System.Int32 Axis_ID, System.Int32 Abs_Option, ref System.Int32 Cyc_Cnt, ref System.Int32 Res_Cnt);
  709. [DllImport("APS168.dll")] public static extern Int32 APS_get_sscnet_link_status(System.Int32 Board_ID, ref System.Int32 Link_Status);
  710. [DllImport("APS168.dll")] public static extern Int32 APS_set_sscnet_servo_monitor_src(System.Int32 Axis_ID, System.Int32 Mon_No, System.Int32 Mon_Src);
  711. [DllImport("APS168.dll")] public static extern Int32 APS_get_sscnet_servo_monitor_src(System.Int32 Axis_ID, System.Int32 Mon_No, ref System.Int32 Mon_Src);
  712. [DllImport("APS168.dll")] public static extern Int32 APS_get_sscnet_servo_monitor_data(System.Int32 Axis_ID, System.Int32 Arr_Size, System.Int32[] Data_Arr);
  713. [DllImport("APS168.dll")] public static extern Int32 APS_set_sscnet_control_mode(System.Int32 Axis_ID, System.Int32 Mode);
  714. [DllImport("APS168.dll")] public static extern Int32 APS_set_sscnet_abs_enable(System.Int32 Board_ID, System.Int32 Option);
  715. [DllImport("APS168.dll")] public static extern Int32 APS_set_sscnet_abs_enable_by_axis(System.Int32 Axis_ID, System.Int32 Option);
  716. //Motion IO & motion status functions
  717. [DllImport("APS168.dll")] public static extern Int32 APS_motion_status(System.Int32 Axis_ID);
  718. [DllImport("APS168.dll")] public static extern Int32 APS_motion_io_status(System.Int32 Axis_ID);
  719. //Monitor functions
  720. [DllImport("APS168.dll")] public static extern Int32 APS_get_command(System.Int32 Axis_ID, ref System.Int32 Command);
  721. [DllImport("APS168.dll")] public static extern Int32 APS_set_command(System.Int32 Axis_ID, System.Int32 Command);
  722. [DllImport("APS168.dll")] public static extern Int32 APS_set_servo_on(System.Int32 Axis_ID, System.Int32 Servo_On);
  723. [DllImport("APS168.dll")] public static extern Int32 APS_get_position(System.Int32 Axis_ID, ref System.Int32 Position);
  724. [DllImport("APS168.dll")] public static extern Int32 APS_set_position(System.Int32 Axis_ID, System.Int32 Position);
  725. [DllImport("APS168.dll")] public static extern Int32 APS_get_command_velocity(System.Int32 Axis_ID, ref System.Int32 Velocity);
  726. [DllImport("APS168.dll")] public static extern Int32 APS_get_feedback_velocity(System.Int32 Axis_ID, ref System.Int32 Velocity);
  727. [DllImport("APS168.dll")] public static extern Int32 APS_get_error_position(System.Int32 Axis_ID, ref System.Int32 Err_Pos);
  728. [DllImport("APS168.dll")] public static extern Int32 APS_get_target_position(System.Int32 Axis_ID, ref System.Int32 Targ_Pos);
  729. [DllImport("APS168.dll")] public static extern Int32 APS_get_command_f(System.Int32 Axis_ID, ref System.Double Command);
  730. [DllImport("APS168.dll")] public static extern Int32 APS_set_command_f(System.Int32 Axis_ID, System.Double Command);
  731. [DllImport("APS168.dll")] public static extern Int32 APS_get_position_f(System.Int32 Axis_ID, ref System.Double Position);
  732. [DllImport("APS168.dll")] public static extern Int32 APS_set_position_f(System.Int32 Axis_ID, System.Double Position);
  733. [DllImport("APS168.dll")] public static extern Int32 APS_get_command_velocity_f(System.Int32 Axis_ID, ref System.Double Velocity);
  734. [DllImport("APS168.dll")] public static extern Int32 APS_get_target_position_f(System.Int32 Axis_ID, ref System.Double Targ_Pos);
  735. [DllImport("APS168.dll")] public static extern Int32 APS_get_error_position_f(System.Int32 Axis_ID, ref System.Double Err_Pos);
  736. [DllImport("APS168.dll")] public static extern Int32 APS_get_feedback_velocity_f(System.Int32 Axis_ID, ref System.Double Velocity);
  737. // Single axis motion
  738. [DllImport("APS168.dll")] public static extern Int32 APS_relative_move(System.Int32 Axis_ID, System.Int32 Distance, System.Int32 Max_Speed);
  739. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_move(System.Int32 Axis_ID, System.Int32 Position, System.Int32 Max_Speed);
  740. [DllImport("APS168.dll")] public static extern Int32 APS_velocity_move(System.Int32 Axis_ID, System.Int32 Max_Speed);
  741. [DllImport("APS168.dll")] public static extern Int32 APS_home_move(System.Int32 Axis_ID);
  742. [DllImport("APS168.dll")] public static extern Int32 APS_stop_move(System.Int32 Axis_ID);
  743. [DllImport("APS168.dll")] public static extern Int32 APS_emg_stop(System.Int32 Axis_ID);
  744. [DllImport("APS168.dll")] public static extern Int32 APS_relative_move2(System.Int32 Axis_ID, System.Int32 Distance, System.Int32 Start_Speed, System.Int32 Max_Speed, System.Int32 End_Speed, System.Int32 Acc_Rate, System.Int32 Dec_Rate);
  745. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_move2(System.Int32 Axis_ID, System.Int32 Position, System.Int32 Start_Speed, System.Int32 Max_Speed, System.Int32 End_Speed, System.Int32 Acc_Rate, System.Int32 Dec_Rate);
  746. [DllImport("APS168.dll")] public static extern Int32 APS_home_move2(System.Int32 Axis_ID, System.Int32 Dir, System.Int32 Acc, System.Int32 Start_Speed, System.Int32 Max_Speed, System.Int32 ORG_Speed);
  747. [DllImport("APS168.dll")] public static extern Int32 APS_home_escape(System.Int32 Axis_ID);
  748. //JOG functions [For PCI-8392(H), PCI-8253/56]
  749. [DllImport("APS168.dll")] public static extern Int32 APS_set_jog_param(System.Int32 Axis_ID, ref JOG_DATA pStr_Jog, System.Int32 Mask);
  750. [DllImport("APS168.dll")] public static extern Int32 APS_get_jog_param(System.Int32 Axis_ID, ref JOG_DATA pStr_Jog);
  751. [DllImport("APS168.dll")] public static extern Int32 APS_jog_mode_switch(System.Int32 Axis_ID, System.Int32 Turn_No);
  752. [DllImport("APS168.dll")] public static extern Int32 APS_jog_start(System.Int32 Axis_ID, System.Int32 STA_On);
  753. // Interpolation
  754. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_linear_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Position_Array, System.Int32 Max_Linear_Speed);
  755. [DllImport("APS168.dll")] public static extern Int32 APS_relative_linear_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Distance_Array, System.Int32 Max_Linear_Speed);
  756. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_arc_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Center_Pos_Array, System.Int32 Max_Arc_Speed, System.Int32 Angle);
  757. [DllImport("APS168.dll")] public static extern Int32 APS_relative_arc_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Center_Offset_Array, System.Int32 Max_Arc_Speed, System.Int32 Angle);
  758. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_arc_move_f(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Center_Pos_Array, System.Int32 Max_Arc_Speed, System.Double Angle);
  759. [DllImport("APS168.dll")] public static extern Int32 APS_relative_arc_move_f(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Center_Offset_Array, System.Int32 Max_Arc_Speed, System.Double Angle);
  760. // Interrupt functions
  761. [DllImport("APS168.dll")] public static extern Int32 APS_int_enable(System.Int32 Board_ID, System.Int32 Enable);
  762. [DllImport("APS168.dll")] public static extern Int32 APS_set_int_factor(System.Int32 Board_ID, System.Int32 Item_No, System.Int32 Factor_No, System.Int32 Enable);
  763. [DllImport("APS168.dll")] public static extern Int32 APS_get_int_factor(System.Int32 Board_ID, System.Int32 Item_No, System.Int32 Factor_No, ref System.Int32 Enable);
  764. [DllImport("APS168.dll")] public static extern Int32 APS_set_int_factorH(System.Int32 Board_ID, System.Int32 Item_No, System.Int32 Factor_No, System.Int32 Enable);
  765. [DllImport("APS168.dll")] public static extern Int32 APS_int_no_to_handle(System.Int32 Int_No);
  766. [DllImport("APS168.dll")] public static extern Int32 APS_wait_single_int(System.Int32 Int_No, System.Int32 Time_Out);
  767. [DllImport("APS168.dll")] public static extern Int32 APS_wait_multiple_int(System.Int32 Int_Count, System.Int32[] Int_No_Array, System.Int32 Wait_All, System.Int32 Time_Out);
  768. [DllImport("APS168.dll")] public static extern Int32 APS_reset_int(System.Int32 Int_No);
  769. [DllImport("APS168.dll")] public static extern Int32 APS_set_int(System.Int32 Int_No);
  770. [DllImport("APS168.dll")] public static extern Int32 APS_wait_error_int(System.Int32 Board_ID, System.Int32 Item_No, System.Int32 Time_Out);
  771. //Sampling functions [For PCI-8392(H), PCI-8253/56, PCI-8254/58]
  772. [DllImport("APS168.dll")] public static extern Int32 APS_set_sampling_param(System.Int32 Board_ID, System.Int32 ParaNum, System.Int32 ParaDat);
  773. [DllImport("APS168.dll")] public static extern Int32 APS_get_sampling_param(System.Int32 Board_ID, System.Int32 ParaNum, ref System.Int32 ParaDat);
  774. [DllImport("APS168.dll")] public static extern Int32 APS_wait_trigger_sampling(System.Int32 Board_ID, System.Int32 Length, System.Int32 PreTrgLen, System.Int32 TimeOutMs, ref STR_SAMP_DATA_4CH DataArr);
  775. [DllImport("APS168.dll")] public static extern Int32 APS_wait_trigger_sampling_async(System.Int32 Board_ID, System.Int32 Length, System.Int32 PreTrgLen, System.Int32 TimeOutMs, ref STR_SAMP_DATA_4CH DataArr);
  776. [DllImport("APS168.dll")] public static extern Int32 APS_get_sampling_count(System.Int32 Board_ID, ref System.Int32 SampCnt);
  777. [DllImport("APS168.dll")] public static extern Int32 APS_stop_wait_sampling(System.Int32 Board_ID);
  778. [DllImport("APS168.dll")] public static extern Int32 APS_auto_sampling(System.Int32 Board_ID, System.Int32 StartStop);
  779. [DllImport("APS168.dll")] public static extern Int32 APS_get_sampling_data(System.Int32 Board_ID, ref System.Int32 Length, [Out] STR_SAMP_DATA_4CH[] DataArr, ref System.Int32 Status);
  780. //Sampling functions extension [For PCI-8254/58]
  781. [DllImport("APS168.dll")] public static extern Int32 APS_set_sampling_param_ex(System.Int32 Board_ID, ref SAMP_PARAM Param);
  782. [DllImport("APS168.dll")] public static extern Int32 APS_get_sampling_param_ex(System.Int32 Board_ID, ref SAMP_PARAM Param);
  783. [DllImport("APS168.dll")] public static extern Int32 APS_wait_trigger_sampling_ex(System.Int32 Board_ID, System.Int32 Length, System.Int32 PreTrgLen, System.Int32 TimeOutMs, [Out] STR_SAMP_DATA_8CH[] DataArr);
  784. [DllImport("APS168.dll")] public static extern Int32 APS_wait_trigger_sampling_async_ex(System.Int32 Board_ID, System.Int32 Length, System.Int32 PreTrgLen, System.Int32 TimeOutMs, ref STR_SAMP_DATA_8CH_ASYNC DataArr);
  785. [DllImport("APS168.dll")] public static extern Int32 APS_get_sampling_data_ex(System.Int32 Board_ID, ref System.Int32 Length, [Out] STR_SAMP_DATA_8CH[] DataArr, ref System.Int32 Status);
  786. // Sampling functions advanced ( For PCIe-833x )
  787. [DllImport("APS168.dll")] public static extern Int32 APS_set_sampling_param_advanced(System.Int32 Board_ID, ref SAMP_PARAM_ADV Param);
  788. [DllImport("APS168.dll")] public static extern Int32 APS_get_sampling_param_advanced(System.Int32 Board_ID, ref SAMP_PARAM_ADV Param);
  789. [DllImport("APS168.dll")] public static extern Int32 APS_wait_trigger_sampling_advanced(System.Int32 Board_ID, System.Int32 Length, System.Int32 PreTrgLen, System.Int32 TimeOutMs, [Out] STR_SAMP_DATA_ADV[] DataArr);
  790. [DllImport("APS168.dll")] public static extern Int32 APS_wait_trigger_sampling_async_advanced(System.Int32 Board_ID, System.Int32 Length, System.Int32 PreTrgLen, System.Int32 TimeOutMs, ref STR_SAMP_DATA_ADV_ASYNC DataArr);
  791. [DllImport("APS168.dll")] public static extern Int32 APS_get_sampling_data_advanced(System.Int32 Board_ID, ref System.Int32 Length, [Out] STR_SAMP_DATA_ADV[] DataArr, ref System.Int32 Status);
  792. //DIO & AIO functions
  793. [DllImport("APS168.dll")] public static extern Int32 APS_write_d_output(System.Int32 Board_ID, System.Int32 DO_Group, System.Int32 DO_Data);
  794. [DllImport("APS168.dll")] public static extern Int32 APS_read_d_output(System.Int32 Board_ID, System.Int32 DO_Group, ref System.Int32 DO_Data);
  795. [DllImport("APS168.dll")] public static extern Int32 APS_read_d_input(System.Int32 Board_ID, System.Int32 DI_Group, ref System.Int32 DI_Data);
  796. [DllImport("APS168.dll")] public static extern Int32 APS_write_d_channel_output(System.Int32 Board_ID, System.Int32 DO_Group, System.Int32 Ch_No, System.Int32 DO_Data);
  797. [DllImport("APS168.dll")] public static extern Int32 APS_read_d_channel_output(System.Int32 Board_ID, System.Int32 DO_Group, System.Int32 Ch_No, ref System.Int32 DO_Data);
  798. [DllImport("APS168.dll")] public static extern Int32 APS_read_d_channel_input(System.Int32 Board_ID, System.Int32 DI_Group, System.Int32 Ch_No, ref System.Int32 DI_Data);
  799. [DllImport("APS168.dll")] public static extern Int32 APS_read_a_input_value(System.Int32 Board_ID, System.Int32 Channel_No, ref System.Double Convert_Data);
  800. [DllImport("APS168.dll")] public static extern Int32 APS_read_a_input_data(System.Int32 Board_ID, System.Int32 Channel_No, ref System.Int32 Raw_Data);
  801. [DllImport("APS168.dll")] public static extern Int32 APS_write_a_output_value(System.Int32 Board_ID, System.Int32 Channel_No, System.Double Convert_Data);
  802. [DllImport("APS168.dll")] public static extern Int32 APS_write_a_output_data(System.Int32 Board_ID, System.Int32 Channel_No, System.Int32 Raw_Data);
  803. //AIO [For PCI-8254/58]
  804. [DllImport("APS168.dll")] public static extern Int32 APS_read_a_output_value(System.Int32 Board_ID, System.Int32 Channel_No, ref System.Double Convert_Data);
  805. //Point table move functions [For PCI-8253/56, PCI-8392(H)]
  806. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_table(System.Int32 Axis_ID, System.Int32 Index, ref POINT_DATA Point);
  807. [DllImport("APS168.dll")] public static extern Int32 APS_get_point_table(System.Int32 Axis_ID, System.Int32 Index, ref POINT_DATA Point);
  808. [DllImport("APS168.dll")] public static extern Int32 APS_get_running_point_index(System.Int32 Axis_ID, ref System.Int32 Index);
  809. [DllImport("APS168.dll")] public static extern Int32 APS_get_start_point_index(System.Int32 Axis_ID, ref System.Int32 Index);
  810. [DllImport("APS168.dll")] public static extern Int32 APS_get_end_point_index(System.Int32 Axis_ID, ref System.Int32 Index);
  811. [DllImport("APS168.dll")] public static extern Int32 APS_set_table_move_pause(System.Int32 Axis_ID, System.Int32 Pause_en);
  812. [DllImport("APS168.dll")] public static extern Int32 APS_set_table_move_repeat(System.Int32 Axis_ID, System.Int32 Repeat_en);
  813. [DllImport("APS168.dll")] public static extern Int32 APS_get_table_move_repeat_count(System.Int32 Axis_ID, ref System.Int32 RepeatCnt);
  814. [DllImport("APS168.dll")] public static extern Int32 APS_point_table_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 StartIndex, System.Int32 EndIndex);
  815. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_tableEx(System.Int32 Axis_ID, System.Int32 Index, ref PNT_DATA Point);
  816. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_tableEx_2D(System.Int32 Axis_ID, System.Int32 Axis_ID_2, System.Int32 Index, ref PNT_DATA_2D Point);
  817. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_table_4DL(System.Int32[] Axis_ID_Array, System.Int32 Index, ref PNT_DATA_4DL Point);
  818. //Point table + IO - Pause / Resume [For PCI-8253/56]
  819. [DllImport("APS168.dll")] public static extern Int32 APS_set_table_move_ex_pause(System.Int32 Axis_ID);
  820. [DllImport("APS168.dll")] public static extern Int32 APS_set_table_move_ex_rollback(System.Int32 Axis_ID, System.Int32 Max_Speed);
  821. [DllImport("APS168.dll")] public static extern Int32 APS_set_table_move_ex_resume(System.Int32 Axis_ID);
  822. //Point table with extend option [For PCI-8392(H)]
  823. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_table_ex(System.Int32 Axis_ID, System.Int32 Index, ref POINT_DATA_EX Point);
  824. [DllImport("APS168.dll")] public static extern Int32 APS_get_point_table_ex(System.Int32 Axis_ID, System.Int32 Index, ref POINT_DATA_EX Point);
  825. //Point table Feeder [For PCI-8253/56, PCI-8392(H)]
  826. [DllImport("APS168.dll")] public static extern Int32 APS_set_feeder_group(System.Int32 GroupId, System.Int32 Dimension, System.Int32[] Axis_ID_Array);
  827. [DllImport("APS168.dll")] public static extern Int32 APS_get_feeder_group(System.Int32 GroupId, ref System.Int32 Dimension, System.Int32[] Axis_ID_Array);
  828. [DllImport("APS168.dll")] public static extern Int32 APS_free_feeder_group(System.Int32 GroupId);
  829. [DllImport("APS168.dll")] public static extern Int32 APS_reset_feeder_buffer(System.Int32 GroupId);
  830. [DllImport("APS168.dll")] public static extern Int32 APS_set_feeder_point_2D(System.Int32 GroupId, ref PNT_DATA_2D PtArray, System.Int32 Size, System.Int32 LastFlag);
  831. [DllImport("APS168.dll")] public static extern Int32 APS_set_feeder_point_2D_ex(System.Int32 GroupId, ref PNT_DATA_2D_F64 PtArray, System.Int32 Size, System.Int32 LastFlag);
  832. [DllImport("APS168.dll")] public static extern Int32 APS_start_feeder_move(System.Int32 GroupId);
  833. [DllImport("APS168.dll")] public static extern Int32 APS_get_feeder_status(System.Int32 GroupId, ref System.Int32 State, ref System.Int32 ErrCode);
  834. [DllImport("APS168.dll")] public static extern Int32 APS_get_feeder_running_index(System.Int32 GroupId, ref System.Int32 Index);
  835. [DllImport("APS168.dll")] public static extern Int32 APS_get_feeder_feed_index(System.Int32 GroupId, ref System.Int32 Index);
  836. [DllImport("APS168.dll")] public static extern Int32 APS_set_feeder_ex_pause(System.Int32 GroupId);
  837. [DllImport("APS168.dll")] public static extern Int32 APS_set_feeder_ex_rollback(System.Int32 GroupId, System.Int32 Max_Speed);
  838. [DllImport("APS168.dll")] public static extern Int32 APS_set_feeder_ex_resume(System.Int32 GroupId);
  839. [DllImport("APS168.dll")] public static extern Int32 APS_set_feeder_cfg_acc_type(System.Int32 GroupId, System.Int32 Type);
  840. //Point table functions [For MNET-4XMO-C]
  841. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_table_mode2(System.Int32 Axis_ID, System.Int32 Mode);
  842. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_table2(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 Index, ref POINT_DATA2 Point);
  843. [DllImport("APS168.dll")] public static extern Int32 APS_point_table_continuous_move2(System.Int32 Dimension, System.Int32[] Axis_ID_Array);
  844. [DllImport("APS168.dll")] public static extern Int32 APS_point_table_single_move2(System.Int32 Axis_ID, System.Int32 Index);
  845. [DllImport("APS168.dll")] public static extern Int32 APS_get_running_point_index2(System.Int32 Axis_ID, ref System.Int32 Index);
  846. [DllImport("APS168.dll")] public static extern Int32 APS_point_table_status2(System.Int32 Axis_ID, ref System.Int32 Status);
  847. [DllImport("APS168.dll")] public static extern Int32 APS_point_table_setting_continuous_move2(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 TotalPoints, ref POINT_DATA2 Point);
  848. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_table2_maximum_speed_check(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 Index, ref POINT_DATA2 Point);
  849. //Point table functions [For HSL-4XMO]
  850. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_table3(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 Index, ref POINT_DATA3 Point);
  851. [DllImport("APS168.dll")] public static extern Int32 APS_point_table_move3(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 StartIndex, System.Int32 EndIndex);
  852. [DllImport("APS168.dll")] public static extern Int32 APS_set_point_table_param3(System.Int32 FirstAxid, System.Int32 ParaNum, System.Int32 ParaDat);
  853. //Digital filter functions [For PCI-8253/56]
  854. [DllImport("APS168.dll")] public static extern Int32 APS_set_filter_param(System.Int32 Axis_ID, System.Int32 Filter_paramNo, System.Int32 param_val);
  855. [DllImport("APS168.dll")] public static extern Int32 APS_get_filter_param(System.Int32 Axis_ID, System.Int32 Filter_paramNo, ref System.Int32 param_val);
  856. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_device_info(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Info_No, ref System.Int32 Info);
  857. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_slave_first_axisno(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 AxisNo, ref System.Int32 TotalAxes);
  858. //Field bus DIO slave functions [For PCI-8392(H)]
  859. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_d_channel_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Int32 DO_Value);
  860. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_d_channel_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, ref System.Int32 DO_Value);
  861. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_d_channel_input(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, ref System.Int32 DI_Value);
  862. //Field bus AIO slave function
  863. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_a_output_plc(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Double AO_Value, System.Int16 RunStep);
  864. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_a_input_plc(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, ref System.Double AI_Value, System.Int16 RunStep);
  865. //Field bus comparing trigger functions
  866. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_trigger_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Param_No, System.Int32 Param_Val);
  867. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_trigger_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Param_No, ref System.Int32 Param_Val);
  868. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_trigger_linear(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 LCmpCh, System.Int32 StartPoint, System.Int32 RepeatTimes, System.Int32 Interval);
  869. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_trigger_table(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TCmpCh, System.Int32[] DataArr, System.Int32 ArraySize);
  870. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_trigger_manual(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TrgCh);
  871. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_trigger_manual_s(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TrgChInBit);
  872. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_trigger_table_cmp(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TCmpCh, ref System.Int32 CmpVal);
  873. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_trigger_linear_cmp(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 LCmpCh, ref System.Int32 CmpVal);
  874. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_trigger_count(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TrgCh, ref System.Int32 TrgCnt);
  875. [DllImport("APS168.dll")] public static extern Int32 APS_reset_field_bus_trigger_count(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TrgCh);
  876. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_linear_cmp_remain_count(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 LCmpCh, ref System.Int32 Cnt);
  877. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_table_cmp_remain_count(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TCmpCh, ref System.Int32 Cnt);
  878. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_encoder(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 EncCh, ref System.Int32 EncCnt);
  879. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_encoder(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 EncCh, System.Int32 EncCnt);
  880. // Only support [For PCIe-8338 + EtherCAT 4xMO]
  881. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_timer_counter(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TmrCh, ref System.Int32 Cnt);
  882. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_timer_counter(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 TmrCh, System.Int32 Cnt);
  883. //Field bus latch functions
  884. [DllImport("APS168.dll")] public static extern Int32 APS_enable_field_bus_ltc_fifo(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 FLtcCh, System.Int32 Enable);
  885. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_ltc_fifo_point(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 FLtcCh, ref System.Int32 ArraySize, ref LATCH_POINT LatchPoint);
  886. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_ltc_fifo_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 FLtcCh, System.Int32 Param_No, System.Int32 Param_Val);
  887. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_ltc_fifo_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 FLtcCh, System.Int32 Param_No, ref System.Int32 Param_Val);
  888. [DllImport("APS168.dll")] public static extern Int32 APS_reset_field_bus_ltc_fifo(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 FLtcCh);
  889. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_ltc_fifo_usage(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 FLtcCh, ref System.Int32 Usage);
  890. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_ltc_fifo_free_space(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 FLtcCh, ref System.Int32 FreeSpace);
  891. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_ltc_fifo_status(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 FLtcCh, ref System.Int32 Status);
  892. // Comparing trigger functions
  893. [DllImport("APS168.dll")] public static extern Int32 APS_reset_trigger_count(System.Int32 Board_ID, System.Int32 TrgCh);
  894. [DllImport("APS168.dll")] public static extern Int32 APS_enable_trigger_fifo_cmp(System.Int32 Board_ID, System.Int32 FCmpCh, System.Int32 Enable);
  895. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_fifo_cmp(System.Int32 Board_ID, System.Int32 FCmpCh, ref System.Int32 CmpVal);
  896. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_fifo_status(System.Int32 Board_ID, System.Int32 FCmpCh, ref System.Int32 FifoSts);
  897. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_fifo_data(System.Int32 Board_ID, System.Int32 FCmpCh, System.Int32[] DataArr, System.Int32 ArraySize, System.Int32 ShiftFlag);
  898. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_encoder_counter(System.Int32 Board_ID, System.Int32 TrgCh, System.Int32 TrgCnt);
  899. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_encoder_counter(System.Int32 Board_ID, System.Int32 TrgCh, ref System.Int32 TrgCnt);
  900. [DllImport("APS168.dll")] public static extern Int32 APS_start_timer(System.Int32 Board_ID, System.Int32 TrgCh, System.Int32 Start);
  901. [DllImport("APS168.dll")] public static extern Int32 APS_get_timer_counter(System.Int32 Board_ID, System.Int32 TmrCh, ref System.Int32 Cnt);
  902. [DllImport("APS168.dll")] public static extern Int32 APS_set_timer_counter(System.Int32 Board_ID, System.Int32 TmrCh, System.Int32 Cnt);
  903. [DllImport("APS168.dll")] public static extern Int32 APS_start_trigger_timer(System.Int32 Board_ID, System.Int32 TrgCh, System.Int32 Start);
  904. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_timer_counter(System.Int32 Board_ID, System.Int32 TmrCh, ref System.Int32 TmrCnt);
  905. //VAO functions [For PCI-8253/56]
  906. [DllImport("APS168.dll")] public static extern Int32 APS_set_vao_param(System.Int32 Board_ID, System.Int32 Param_No, System.Int32 Param_Val);
  907. [DllImport("APS168.dll")] public static extern Int32 APS_get_vao_param(System.Int32 Board_ID, System.Int32 Param_No, ref System.Int32 Param_Val);
  908. [DllImport("APS168.dll")] public static extern Int32 APS_set_vao_table(System.Int32 Board_ID, System.Int32 Table_No, System.Int32 MinVelocity, System.Int32 VelInterval, System.Int32 TotalPoints, System.Int32[] MappingDataArray);
  909. [DllImport("APS168.dll")] public static extern Int32 APS_switch_vao_table(System.Int32 Board_ID, System.Int32 Table_No);
  910. [DllImport("APS168.dll")] public static extern Int32 APS_start_vao(System.Int32 Board_ID, System.Int32 Output_Ch, System.Int32 Enable);
  911. [DllImport("APS168.dll")] public static extern Int32 APS_get_vao_status(System.Int32 Board_ID, ref System.Int32 Status);
  912. [DllImport("APS168.dll")] public static extern Int32 APS_check_vao_param(System.Int32 Board_ID, System.Int32 Table_No, ref System.Int32 Status);
  913. [DllImport("APS168.dll")] public static extern Int32 APS_set_vao_param_ex(System.Int32 Board_ID, System.Int32 Table_No, ref VAO_DATA VaoData);
  914. [DllImport("APS168.dll")] public static extern Int32 APS_get_vao_param_ex(System.Int32 Board_ID, System.Int32 Table_No, ref VAO_DATA VaoData);
  915. //Simultaneous move
  916. [DllImport("APS168.dll")] public static extern Int32 APS_set_relative_simultaneous_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Distance_Array, System.Int32[] Max_Speed_Array);
  917. [DllImport("APS168.dll")] public static extern Int32 APS_set_absolute_simultaneous_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Position_Array, System.Int32[] Max_Speed_Array);
  918. [DllImport("APS168.dll")] public static extern Int32 APS_start_simultaneous_move(System.Int32 Axis_ID);
  919. [DllImport("APS168.dll")] public static extern Int32 APS_stop_simultaneous_move(System.Int32 Axis_ID);
  920. [DllImport("APS168.dll")] public static extern Int32 APS_set_velocity_simultaneous_move(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Max_Speed_Array);
  921. [DllImport("APS168.dll")] public static extern Int32 APS_Release_simultaneous_move(System.Int32 Axis_ID);
  922. [DllImport("APS168.dll")] public static extern Int32 APS_release_simultaneous_move(System.Int32 Axis_ID);
  923. [DllImport("APS168.dll")] public static extern Int32 APS_emg_stop_simultaneous_move(System.Int32 Axis_ID);
  924. //Override functions
  925. [DllImport("APS168.dll")] public static extern Int32 APS_speed_override(System.Int32 Axis_ID, System.Int32 MaxSpeed);
  926. [DllImport("APS168.dll")] public static extern Int32 APS_relative_move_ovrd(System.Int32 Axis_ID, System.Int32 Distance, System.Int32 Max_Speed);
  927. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_move_ovrd(System.Int32 Axis_ID, System.Int32 Position, System.Int32 Max_Speed);
  928. //Point table functions [For PCI-8254/58]
  929. [DllImport("APS168.dll")] public static extern Int32 APS_pt_dwell(System.Int32 Board_ID, System.Int32 PtbId, ref PTDWL Prof, ref PTSTS Status);
  930. [DllImport("APS168.dll")] public static extern Int32 APS_pt_line(System.Int32 Board_ID, System.Int32 PtbId, ref PTLINE Prof, ref PTSTS Status);
  931. [DllImport("APS168.dll")] public static extern Int32 APS_pt_arc2_ca(System.Int32 Board_ID, System.Int32 PtbId, ref PTA2CA Prof, ref PTSTS Status);
  932. [DllImport("APS168.dll")] public static extern Int32 APS_pt_arc2_ce(System.Int32 Board_ID, System.Int32 PtbId, ref PTA2CE Prof, ref PTSTS Status);
  933. [DllImport("APS168.dll")] public static extern Int32 APS_pt_arc3_ca(System.Int32 Board_ID, System.Int32 PtbId, ref PTA3CA Prof, ref PTSTS Status);
  934. [DllImport("APS168.dll")] public static extern Int32 APS_pt_arc3_ce(System.Int32 Board_ID, System.Int32 PtbId, ref PTA3CE Prof, ref PTSTS Status);
  935. [DllImport("APS168.dll")] public static extern Int32 APS_pt_spiral_ca(System.Int32 Board_ID, System.Int32 PtbId, ref PTHCA Prof, ref PTSTS Status);
  936. [DllImport("APS168.dll")] public static extern Int32 APS_pt_spiral_ce(System.Int32 Board_ID, System.Int32 PtbId, ref PTHCE Prof, ref PTSTS Status);
  937. [DllImport("APS168.dll")] public static extern Int32 APS_pt_enable(System.Int32 Board_ID, System.Int32 PtbId, System.Int32 Dimension, System.Int32[] AxisArr);
  938. [DllImport("APS168.dll")] public static extern Int32 APS_pt_disable(System.Int32 Board_ID, System.Int32 PtbId);
  939. [DllImport("APS168.dll")] public static extern Int32 APS_get_pt_info(System.Int32 Board_ID, System.Int32 PtbId, ref PTINFO Info);
  940. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_vs(System.Int32 Board_ID, System.Int32 PtbId, System.Double Vs);
  941. [DllImport("APS168.dll")] public static extern Int32 APS_pt_get_vs(System.Int32 Board_ID, System.Int32 PtbId, ref System.Double Vs);
  942. [DllImport("APS168.dll")] public static extern Int32 APS_pt_start(System.Int32 Board_ID, System.Int32 PtbId);
  943. [DllImport("APS168.dll")] public static extern Int32 APS_pt_stop(System.Int32 Board_ID, System.Int32 PtbId);
  944. [DllImport("APS168.dll")] public static extern Int32 APS_get_pt_status(System.Int32 Board_ID, System.Int32 PtbId, ref PTSTS Status);
  945. [DllImport("APS168.dll")] public static extern Int32 APS_reset_pt_buffer(System.Int32 Board_ID, System.Int32 PtbId);
  946. [DllImport("APS168.dll")] public static extern Int32 APS_pt_roll_back(System.Int32 Board_ID, System.Int32 PtbId, System.Double Max_Speed);
  947. [DllImport("APS168.dll")] public static extern Int32 APS_pt_get_error(System.Int32 Board_ID, System.Int32 PtbId, ref System.Int32 ErrCode);
  948. //Cmd buffer setting
  949. [DllImport("APS168.dll")] public static extern Int32 APS_pt_ext_set_do_ch(System.Int32 Board_ID, System.Int32 PtbId, System.Int32 Channel, System.Int32 OnOff);
  950. [DllImport("APS168.dll")] public static extern Int32 APS_pt_ext_set_table_no(System.Int32 Board_ID, System.Int32 PtbId, System.Int32 CtrlNo, System.Int32 TableNo);
  951. //Profile buffer setting
  952. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_absolute(System.Int32 Board_ID, System.Int32 PtbId);
  953. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_relative(System.Int32 Board_ID, System.Int32 PtbId);
  954. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_trans_buffered(System.Int32 Board_ID, System.Int32 PtbId);
  955. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_trans_inp(System.Int32 Board_ID, System.Int32 PtbId);
  956. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_trans_blend_dec(System.Int32 Board_ID, System.Int32 PtbId, System.Double Bp);
  957. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_trans_blend_dist(System.Int32 Board_ID, System.Int32 PtbId, System.Double Bp);
  958. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_trans_blend_pcnt(System.Int32 Board_ID, System.Int32 PtbId, System.Double Bp);
  959. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_acc(System.Int32 Board_ID, System.Int32 PtbId, System.Double Acc);
  960. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_dec(System.Int32 Board_ID, System.Int32 PtbId, System.Double Dec);
  961. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_acc_dec(System.Int32 Board_ID, System.Int32 PtbId, System.Double AccDec);
  962. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_s(System.Int32 Board_ID, System.Int32 PtbId, System.Double Sf);
  963. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_vm(System.Int32 Board_ID, System.Int32 PtbId, System.Double Vm);
  964. [DllImport("APS168.dll")] public static extern Int32 APS_pt_set_ve(System.Int32 Board_ID, System.Int32 PtbId, System.Double Ve);
  965. //Program download functions
  966. [DllImport("APS168.dll")] public static extern Int32 APS_load_vmc_program(System.Int32 Board_ID, System.Int32 TaskNum, string pFile, System.Int32 Password);
  967. [DllImport("APS168.dll")] public static extern Int32 APS_save_vmc_program(System.Int32 Board_ID, System.Int32 TaskNum, string pFile, System.Int32 Password);
  968. [DllImport("APS168.dll")] public static extern Int32 APS_load_amc_program(System.Int32 Board_ID, System.Int32 TaskNum, string pFile, System.Int32 Password);
  969. [DllImport("APS168.dll")] public static extern Int32 APS_save_amc_program(System.Int32 Board_ID, System.Int32 TaskNum, string pFile, System.Int32 Password);
  970. [DllImport("APS168.dll")] public static extern Int32 APS_set_task_mode(System.Int32 Board_ID, System.Int32 TaskNum, System.Byte Mode, System.UInt16 LastIP);
  971. [DllImport("APS168.dll")] public static extern Int32 APS_get_task_mode(System.Int32 Board_ID, System.Int32 TaskNum, ref System.Byte Mode, ref System.UInt16 LastIP);
  972. [DllImport("APS168.dll")] public static extern Int32 APS_start_task(System.Int32 Board_ID, System.Int32 TaskNum, System.Int32 CtrlCmd);
  973. [DllImport("APS168.dll")] public static extern Int32 APS_get_task_info(System.Int32 Board_ID, System.Int32 TaskNum, ref TSK_INFO Info);
  974. [DllImport("APS168.dll")] public static extern Int32 APS_get_task_msg(System.Int32 Board_ID, ref System.UInt16 QueueSts, ref System.UInt16 ActualSize, System.Byte[] CharArr);
  975. //Latch functions
  976. [DllImport("APS168.dll")] public static extern Int32 APS_get_encoder(System.Int32 Axis_ID, ref System.Int32 Encoder);
  977. [DllImport("APS168.dll")] public static extern Int32 APS_get_latch_counter(System.Int32 Axis_ID, System.Int32 Src, ref System.Int32 Counter);
  978. [DllImport("APS168.dll")] public static extern Int32 APS_get_latch_event(System.Int32 Axis_ID, System.Int32 Src, ref System.Int32 Event);
  979. //Raw command counter [For PCI-8254/58]
  980. [DllImport("APS168.dll")] public static extern Int32 APS_get_command_counter(System.Int32 Axis_ID, ref System.Int32 Counter);
  981. //Reset raw command counter [For PCIe-8338]
  982. [DllImport("APS168.dll")] public static extern Int32 APS_reset_command_counter(System.Int32 Axis_ID);
  983. //Watch dog timer
  984. [DllImport("APS168.dll")] public static extern Int32 APS_wdt_start(System.Int32 Board_ID, System.Int32 TimerNo, System.Int32 TimeOut);
  985. [DllImport("APS168.dll")] public static extern Int32 APS_wdt_get_timeout_period(System.Int32 Board_ID, System.Int32 TimerNo, ref System.Int32 TimeOut);
  986. [DllImport("APS168.dll")] public static extern Int32 APS_wdt_reset_counter(System.Int32 Board_ID, System.Int32 TimerNo);
  987. [DllImport("APS168.dll")] public static extern Int32 APS_wdt_get_counter(System.Int32 Board_ID, System.Int32 TimerNo, ref System.Int32 Counter);
  988. [DllImport("APS168.dll")] public static extern Int32 APS_wdt_set_action_event(System.Int32 Board_ID, System.Int32 TimerNo, System.Int32 EventByBit);
  989. [DllImport("APS168.dll")] public static extern Int32 APS_wdt_get_action_event(System.Int32 Board_ID, System.Int32 TimerNo, ref System.Int32 EventByBit);
  990. //Multi-axes simultaneuos move start/stop [For PCI-8254/58]
  991. [DllImport("APS168.dll")] public static extern Int32 APS_move_trigger(System.Int32 Dimension, System.Int32[] Axis_ID_Array);
  992. [DllImport("APS168.dll")] public static extern Int32 APS_stop_move_multi(System.Int32 Dimension, System.Int32[] Axis_ID_Array);
  993. [DllImport("APS168.dll")] public static extern Int32 APS_emg_stop_multi(System.Int32 Dimension, System.Int32[] Axis_ID_Array);
  994. //Gear/Gantry functions [For PCI-8254/58]
  995. [DllImport("APS168.dll")] public static extern Int32 APS_start_gear(System.Int32 Axis_ID, System.Int32 Mode);
  996. [DllImport("APS168.dll")] public static extern Int32 APS_get_gear_status(System.Int32 Axis_ID, ref System.Int32 Status);
  997. //Multi-latch functions
  998. [DllImport("APS168.dll")] public static extern Int32 APS_set_ltc_counter(System.Int32 Board_ID, System.Int32 CntNum, System.Int32 CntValue);
  999. [DllImport("APS168.dll")] public static extern Int32 APS_get_ltc_counter(System.Int32 Board_ID, System.Int32 CntNum, ref System.Int32 CntValue);
  1000. [DllImport("APS168.dll")] public static extern Int32 APS_set_ltc_fifo_param(System.Int32 Board_ID, System.Int32 FLtcCh, System.Int32 Param_No, System.Int32 Param_Val);
  1001. [DllImport("APS168.dll")] public static extern Int32 APS_get_ltc_fifo_param(System.Int32 Board_ID, System.Int32 FLtcCh, System.Int32 Param_No, ref System.Int32 Param_Val);
  1002. [DllImport("APS168.dll")] public static extern Int32 APS_manual_latch(System.Int32 Board_ID, System.Int32 LatchSignalInBits);
  1003. [DllImport("APS168.dll")] public static extern Int32 APS_enable_ltc_fifo(System.Int32 Board_ID, System.Int32 FLtcCh, System.Int32 Enable);
  1004. [DllImport("APS168.dll")] public static extern Int32 APS_reset_ltc_fifo(System.Int32 Board_ID, System.Int32 FLtcCh);
  1005. [DllImport("APS168.dll")] public static extern Int32 APS_get_ltc_fifo_data(System.Int32 Board_ID, System.Int32 FLtcCh, ref System.Int32 Data);
  1006. [DllImport("APS168.dll")] public static extern Int32 APS_get_ltc_fifo_usage(System.Int32 Board_ID, System.Int32 FLtcCh, ref System.Int32 Usage);
  1007. [DllImport("APS168.dll")] public static extern Int32 APS_get_ltc_fifo_free_space(System.Int32 Board_ID, System.Int32 FLtcCh, ref System.Int32 FreeSpace);
  1008. [DllImport("APS168.dll")] public static extern Int32 APS_get_ltc_fifo_status(System.Int32 Board_ID, System.Int32 FLtcCh, ref System.Int32 Status);
  1009. [DllImport("APS168.dll")] public static extern Int32 APS_get_ltc_fifo_point(System.Int32 Board_ID, System.Int32 FLtcCh, ref System.Int32 ArraySize, [In, Out] LATCH_POINT[] LatchPoint);
  1010. //Single latch functions
  1011. [DllImport("APS168.dll")] public static extern Int32 APS_manual_latch2(System.Int32 Axis_ID);
  1012. [DllImport("APS168.dll")] public static extern Int32 APS_get_latch_data2(System.Int32 Axis_ID, System.Int32 LatchNum, ref System.Int32 LatchData);
  1013. [DllImport("APS168.dll")] public static extern Int32 APS_set_backlash_en(System.Int32 Axis_ID, System.Int32 Enable);
  1014. [DllImport("APS168.dll")] public static extern Int32 APS_get_backlash_en(System.Int32 Axis_ID, ref System.Int32 Enable);
  1015. //ODM functions for Mechatrolink
  1016. [DllImport("APS168.dll")] public static extern Int32 APS_start_mlink(System.Int32 Board_ID, ref System.Int32 AxisFound_InBits);
  1017. [DllImport("APS168.dll")] public static extern Int32 APS_stop_mlink(System.Int32 Board_ID);
  1018. [DllImport("APS168.dll")] public static extern Int32 APS_set_mlink_servo_param(System.Int32 Axis_ID, System.Int32 Para_No, System.Int32 Para_Dat);
  1019. [DllImport("APS168.dll")] public static extern Int32 APS_get_mlink_servo_param(System.Int32 Axis_ID, System.Int32 Para_No, ref System.Int32 Para_Dat);
  1020. [DllImport("APS168.dll")] public static extern Int32 APS_config_mlink(System.Int32 Board_ID, System.Int32 TotalAxes, ref System.Int32 AxesArray);
  1021. [DllImport("APS168.dll")] public static extern Int32 APS_get_mlink_rv_ptr(System.Int32 Axis_ID, out IntPtr rptr);
  1022. [DllImport("APS168.dll")] public static extern Int32 APS_get_mlink_sd_ptr(System.Int32 Axis_ID, out IntPtr sptr);
  1023. [DllImport("APS168.dll")] public static extern Int32 APS_get_mlink_servo_alarm(System.Int32 Axis_ID, System.Int32 Alarm_No, ref System.Int32 Alarm_Detail);
  1024. [DllImport("APS168.dll")] public static extern Int32 APS_reset_mlink_servo_alarm(System.Int32 Axis_ID);
  1025. [DllImport("APS168.dll")] public static extern Int32 APS_set_mlink_pulse_per_rev(System.Int32 Axis_ID, System.Int32 PPR);
  1026. //Apply smooth servo off [For PCI-8254/58]
  1027. [DllImport("APS168.dll")] public static extern Int32 APS_smooth_servo_off(System.Int32 Axis_ID, System.Double Decay_Rate);
  1028. [DllImport("APS168.dll")] public static extern Int32 APS_set_smooth_servo_off(System.Int32 Board_ID, System.Int32 Axis_ID, System.Int32 cnt_Max, ref System.Int32 cnt_Err);
  1029. //ODM functions
  1030. [DllImport("APS168.dll")] public static extern Int32 APS_relative_move_wait(System.Int32 Axis_ID, System.Int32 Distance, System.Int32 Max_Speed, System.Int32 Time_Out, System.Int32 Delay_Time, ref System.Int32 MotionSts);
  1031. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_move_wait(System.Int32 Axis_ID, System.Int32 Position, System.Int32 Max_Speed, System.Int32 Time_Out, System.Int32 Delay_Time, ref System.Int32 MotionSts);
  1032. [DllImport("APS168.dll")] public static extern Int32 APS_relative_linear_move_wait(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Distance_Array, System.Int32 Max_Linear_Speed, System.Int32 Time_Out, System.Int32 Delay_Time, ref System.Int32 MotionSts);
  1033. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_linear_move_wait(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Position_Array, System.Int32 Max_Linear_Speed, System.Int32 Time_Out, System.Int32 Delay_Time, ref System.Int32 MotionSts);
  1034. [DllImport("APS168.dll")] public static extern Int32 APS_relative_move_non_wait(System.Int32 Axis_ID, System.Int32 Distance, System.Int32 Max_Speed, System.Int32 Time_Out, System.Int32 Delay_Time);
  1035. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_move_non_wait(System.Int32 Axis_ID, System.Int32 Position, System.Int32 Max_Speed, System.Int32 Time_Out, System.Int32 Delay_Time);
  1036. [DllImport("APS168.dll")] public static extern Int32 APS_relative_linear_move_non_wait(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Distance_Array, System.Int32 Max_Linear_Speed, System.Int32 Time_Out, System.Int32 Delay_Time);
  1037. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_linear_move_non_wait(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Position_Array, System.Int32 Max_Linear_Speed, System.Int32 Time_Out, System.Int32 Delay_Time);
  1038. [DllImport("APS168.dll")] public static extern Int32 APS_wait_move_done(System.Int32 Axis_ID, ref System.Int32 MotionSts);
  1039. //ODM functions [For MNET-4XMO-C]
  1040. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_arc_move_ex(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32[] Center_Pos_Array, System.Int32[] End_Pos_Array, System.Int32 CwOrCcw, System.Int32 Max_Arc_Speed);
  1041. [DllImport("APS168.dll")] public static extern Int32 APS_motion_status_ex(System.Int32 Axis_ID);
  1042. [DllImport("APS168.dll")] public static extern Int32 APS_motion_io_status_ex(System.Int32 Axis_ID);
  1043. //Gantry functions [For PCI-8392(H), PCI-8253/56]
  1044. [DllImport("APS168.dll")] public static extern Int32 APS_set_gantry_param(System.Int32 Board_ID, System.Int32 GroupNum, System.Int32 ParaNum, System.Int32 ParaDat);
  1045. [DllImport("APS168.dll")] public static extern Int32 APS_get_gantry_param(System.Int32 Board_ID, System.Int32 GroupNum, System.Int32 ParaNum, ref System.Int32 ParaDat);
  1046. [DllImport("APS168.dll")] public static extern Int32 APS_set_gantry_axis(System.Int32 Board_ID, System.Int32 GroupNum, System.Int32 Master_Axis_ID, System.Int32 Slave_Axis_ID);
  1047. [DllImport("APS168.dll")] public static extern Int32 APS_get_gantry_axis(System.Int32 Board_ID, System.Int32 GroupNum, ref System.Int32 Master_Axis_ID, ref System.Int32 Slave_Axis_ID);
  1048. [DllImport("APS168.dll")] public static extern Int32 APS_get_gantry_error(System.Int32 Board_ID, System.Int32 GroupNum, ref System.Int32 GentryError);
  1049. //Field bus master functions
  1050. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 BUS_Param_No, System.Int32 BUS_Param);
  1051. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 BUS_Param_No, ref System.Int32 BUS_Param);
  1052. [DllImport("APS168.dll")] public static extern Int32 APS_start_field_bus(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 Start_Axis_ID);
  1053. [DllImport("APS168.dll")] public static extern Int32 APS_scan_field_bus(System.Int32 Board_ID, System.Int32 BUS_No);
  1054. [DllImport("APS168.dll")] public static extern Int32 APS_stop_field_bus(System.Int32 Board_ID, System.Int32 BUS_No);
  1055. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_master_status(System.Int32 Board_ID, System.Int32 BUS_No, ref System.UInt32 Status);
  1056. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_last_scan_info(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32[] Info_Array, System.Int32 Array_Size, ref System.Int32 Info_Count);
  1057. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_master_type(System.Int32 Board_ID, System.Int32 BUS_No, ref System.Int32 BUS_Type);
  1058. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_slave_type(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 MOD_Type);
  1059. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_slave_name(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 MOD_Name);
  1060. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_slave_serialID(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int16 Serial_ID);
  1061. // Diagnostic functions [Only for PCIe-833x]
  1062. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_frame_loss_diagnostic(System.Int32 Board_ID, System.Int32 BUS_No, ref System.Int32 Result);
  1063. [DllImport("APS168.dll")] public static extern Int32 APS_reset_field_bus_frame_loss_diagnostic(System.Int32 Board_ID, System.Int32 BUS_No);
  1064. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_slave_connecting_diagnostic(System.Int32 Board_ID, System.Int32 BUS_No, ref System.Int32 Result, ref System.UInt16 NumOfDisconnect, ref IntPtr DisconnectIDArray);
  1065. //Field bus slave functions
  1066. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_slave_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Int32 ParaNum, System.Int32 ParaDat);
  1067. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_slave_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Int32 ParaNum, ref System.Int32 ParaDat);
  1068. [DllImport("APS168.dll")] public static extern Int32 APS_get_slave_connect_quality(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 Sts_data);
  1069. [DllImport("APS168.dll")] public static extern Int32 APS_get_slave_online_status(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 Live);
  1070. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_slave_recovery(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No);
  1071. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_ESC_register(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 RegOffset, System.Int32 DataSize, ref System.Int32 DataValue);
  1072. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_ESC_register(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 RegOffset, System.Int32 DataSize, ref System.Int32 DataValue);
  1073. //Field bus DIO slave functions [For PCI-8392(H)]
  1074. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_d_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 DO_Value);
  1075. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_d_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 DO_Value);
  1076. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_d_input(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 DI_Value);
  1077. //Modules be 64 bits gpio
  1078. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_d_output_ex(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, DO_DATA_EX DO_Value);
  1079. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_d_output_ex(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref DO_DATA_EX DO_Value);
  1080. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_d_input_ex(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref DI_DATA_EX DI_Value);
  1081. //Field bus AIO slave functions
  1082. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_a_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Double AO_Value);
  1083. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_a_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, ref System.Double AO_Value);
  1084. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_a_input(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, ref System.Double AI_Value);
  1085. //ODM functions
  1086. [DllImport("APS168.dll")] public static extern Int32 APS_start_vao_by_mode(System.Int32 Board_ID, System.Int32 ChannelInBit, System.Int32 Mode, System.Int32 Enable);
  1087. [DllImport("APS168.dll")] public static extern Int32 APS_set_vao_pwm_burst_count(System.Int32 Board_ID, System.Int32 Table_No, System.Int32 Count);
  1088. //PWM functions
  1089. [DllImport("APS168.dll")] public static extern Int32 APS_set_pwm_width(System.Int32 Board_ID, System.Int32 PWM_Ch, System.Int32 Width);
  1090. [DllImport("APS168.dll")] public static extern Int32 APS_get_pwm_width(System.Int32 Board_ID, System.Int32 PWM_Ch, ref System.Int32 Width);
  1091. [DllImport("APS168.dll")] public static extern Int32 APS_set_pwm_frequency(System.Int32 Board_ID, System.Int32 PWM_Ch, System.Int32 Frequency);
  1092. [DllImport("APS168.dll")] public static extern Int32 APS_get_pwm_frequency(System.Int32 Board_ID, System.Int32 PWM_Ch, ref System.Int32 Frequency);
  1093. [DllImport("APS168.dll")] public static extern Int32 APS_set_pwm_on(System.Int32 Board_ID, System.Int32 PWM_Ch, System.Int32 PWM_On);
  1094. // Comparing trigger functions
  1095. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_param(System.Int32 Board_ID, System.Int32 Param_No, System.Int32 Param_Val);
  1096. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_param(System.Int32 Board_ID, System.Int32 Param_No, ref System.Int32 Param_Val);
  1097. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_linear(System.Int32 Board_ID, System.Int32 LCmpCh, System.Int32 StartPoint, System.Int32 RepeatTimes, System.Int32 Interval);
  1098. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_table(System.Int32 Board_ID, System.Int32 TCmpCh, System.Int32[] DataArr, System.Int32 ArraySize);
  1099. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_manual(System.Int32 Board_ID, System.Int32 TrgCh);
  1100. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_manual_s(System.Int32 Board_ID, System.Int32 TrgChInBit);
  1101. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_table_cmp(System.Int32 Board_ID, System.Int32 TCmpCh, ref System.Int32 CmpVal);
  1102. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_linear_cmp(System.Int32 Board_ID, System.Int32 LCmpCh, ref System.Int32 CmpVal);
  1103. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_count(System.Int32 Board_ID, System.Int32 TrgCh, ref System.Int32 TrgCnt);
  1104. //Pulser counter functions
  1105. [DllImport("APS168.dll")] public static extern Int32 APS_get_pulser_counter(System.Int32 Board_ID, ref System.Int32 Counter);
  1106. [DllImport("APS168.dll")] public static extern Int32 APS_set_pulser_counter(System.Int32 Board_ID, System.Int32 Counter);
  1107. //Reserved functions [Legacy functions]
  1108. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_slave_set_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Int32 ParaNum, System.Int32 ParaDat);
  1109. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_slave_get_param(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Int32 ParaNum, ref System.Int32 ParaDat);
  1110. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_d_set_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 DO_Value);
  1111. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_d_get_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 DO_Value);
  1112. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_d_get_input(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 DI_Value);
  1113. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_A_set_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Double AO_Value);
  1114. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_A_get_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, ref System.Double AO_Value);
  1115. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_A_get_input(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, ref System.Double AI_Value);
  1116. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_A_set_output_plc(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, System.Double AO_Value, System.Int16 RunStep);
  1117. [DllImport("APS168.dll")] public static extern Int32 APS_field_bus_A_get_input_plc(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Ch_No, ref System.Double AI_Value, System.Int16 RunStep);
  1118. [DllImport("APS168.dll")] public static extern Int32 APS_get_eep_curr_drv_ctrl_mode(System.Int32 Board_ID, ref System.Int32 ModeInBit);
  1119. //DPAC functions
  1120. [DllImport("APS168.dll")] public static extern Int32 APS_rescan_CF(System.Int32 Board_ID);
  1121. [DllImport("APS168.dll")] public static extern Int32 APS_get_battery_status(System.Int32 Board_ID, ref System.Int32 Battery_status);
  1122. //DPAC display & Display button
  1123. [DllImport("APS168.dll")] public static extern Int32 APS_get_display_data(System.Int32 Board_ID, System.Int32 displayDigit, ref System.Int32 displayIndex);
  1124. [DllImport("APS168.dll")] public static extern Int32 APS_set_display_data(System.Int32 Board_ID, System.Int32 displayDigit, System.Int32 displayIndex);
  1125. [DllImport("APS168.dll")] public static extern Int32 APS_get_button_status(System.Int32 Board_ID, ref System.Int32 buttonstatus);
  1126. //NV RAM functions
  1127. [DllImport("APS168.dll")] public static extern Int32 APS_set_nv_ram(System.Int32 Board_ID, System.Int32 RamNo, System.Int32 DataWidth, System.Int32 Offset, System.Int32 Data);
  1128. [DllImport("APS168.dll")] public static extern Int32 APS_get_nv_ram(System.Int32 Board_ID, System.Int32 RamNo, System.Int32 DataWidth, System.Int32 Offset, ref System.Int32 Data);
  1129. [DllImport("APS168.dll")] public static extern Int32 APS_clear_nv_ram(System.Int32 Board_ID, System.Int32 RamNo);
  1130. //Advanced single move & interpolation [For PCI-8254/58]
  1131. [DllImport("APS168.dll")] public static extern Int32 APS_ptp(System.Int32 Axis_ID, System.Int32 Option, System.Double Position, ref ASYNCALL Wait);
  1132. [DllImport("APS168.dll")] public static extern Int32 APS_ptp_v(System.Int32 Axis_ID, System.Int32 Option, System.Double Position, System.Double Vm, ref ASYNCALL Wait);
  1133. [DllImport("APS168.dll")] public static extern Int32 APS_ptp_all(System.Int32 Axis_ID, System.Int32 Option, System.Double Position, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1134. [DllImport("APS168.dll")] public static extern Int32 APS_vel(System.Int32 Axis_ID, System.Int32 Option, System.Double Vm, ref ASYNCALL Wait);
  1135. [DllImport("APS168.dll")] public static extern Int32 APS_vel_all(System.Int32 Axis_ID, System.Int32 Option, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1136. [DllImport("APS168.dll")] public static extern Int32 APS_line(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] PositionArray, ref System.Double TransPara, ref ASYNCALL Wait);
  1137. [DllImport("APS168.dll")] public static extern Int32 APS_line_v(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] PositionArray, ref System.Double TransPara, System.Double Vm, ref ASYNCALL Wait);
  1138. [DllImport("APS168.dll")] public static extern Int32 APS_line_all(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] PositionArray, ref System.Double TransPara, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1139. [DllImport("APS168.dll")] public static extern Int32 APS_arc2_ca(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double Angle, ref System.Double TransPara, ref ASYNCALL Wait);
  1140. [DllImport("APS168.dll")] public static extern Int32 APS_arc2_ca_v(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double Angle, ref System.Double TransPara, System.Double Vm, ref ASYNCALL Wait);
  1141. [DllImport("APS168.dll")] public static extern Int32 APS_arc2_ca_all(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double Angle, ref System.Double TransPara, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1142. [DllImport("APS168.dll")] public static extern Int32 APS_arc2_ce(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, ref ASYNCALL Wait);
  1143. [DllImport("APS168.dll")] public static extern Int32 APS_arc2_ce_v(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, System.Double Vm, ref ASYNCALL Wait);
  1144. [DllImport("APS168.dll")] public static extern Int32 APS_arc2_ce_all(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1145. [DllImport("APS168.dll")] public static extern Int32 APS_arc3_ca(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double Angle, ref System.Double TransPara, ref ASYNCALL Wait);
  1146. [DllImport("APS168.dll")] public static extern Int32 APS_arc3_ca_v(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double Angle, ref System.Double TransPara, System.Double Vm, ref ASYNCALL Wait);
  1147. [DllImport("APS168.dll")] public static extern Int32 APS_arc3_ca_all(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double Angle, ref System.Double TransPara, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1148. [DllImport("APS168.dll")] public static extern Int32 APS_arc3_ce(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, ref ASYNCALL Wait);
  1149. [DllImport("APS168.dll")] public static extern Int32 APS_arc3_ce_v(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, System.Double Vm, ref ASYNCALL Wait);
  1150. [DllImport("APS168.dll")] public static extern Int32 APS_arc3_ce_all(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1151. [DllImport("APS168.dll")] public static extern Int32 APS_spiral_ca(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double Angle, System.Double DeltaH, System.Double FinalR, ref System.Double TransPara, ref ASYNCALL Wait);
  1152. [DllImport("APS168.dll")] public static extern Int32 APS_spiral_ca_v(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double Angle, System.Double DeltaH, System.Double FinalR, ref System.Double TransPara, System.Double Vm, ref ASYNCALL Wait);
  1153. [DllImport("APS168.dll")] public static extern Int32 APS_spiral_ca_all(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double Angle, System.Double DeltaH, System.Double FinalR, ref System.Double TransPara, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1154. [DllImport("APS168.dll")] public static extern Int32 APS_spiral_ce(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, ref ASYNCALL Wait);
  1155. [DllImport("APS168.dll")] public static extern Int32 APS_spiral_ce_v(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, System.Double Vm, ref ASYNCALL Wait);
  1156. [DllImport("APS168.dll")] public static extern Int32 APS_spiral_ce_all(System.Int32[] Axis_ID_Array, System.Int32 Option, System.Double[] CenterArray, System.Double[] NormalArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1157. //Ring counter functions [For PCI-8154/8]
  1158. [DllImport("APS168.dll")] public static extern Int32 APS_set_ring_counter(System.Int32 Axis_ID, System.Int32 RingVal);
  1159. [DllImport("APS168.dll")] public static extern Int32 APS_get_ring_counter(System.Int32 Axis_ID, ref System.Int32 RingVal);
  1160. //**********************************************
  1161. // New header functions; 20151102
  1162. //**********************************************
  1163. //Pitch error compensation [For PCI-8254/58]
  1164. [DllImport("APS168.dll")] public static extern Int32 APS_set_pitch_table(System.Int32 Axis_ID, System.Int32 Comp_Type, System.Int32 Total_Points, System.Int32 MinPosition, System.UInt32 Interval, System.Int32[] Comp_Data);
  1165. [DllImport("APS168.dll")] public static extern Int32 APS_get_pitch_table(System.Int32 Axis_ID, ref System.Int32 Comp_Type, ref System.Int32 Total_Points, ref System.Int32 MinPosition, ref System.UInt32 Interval, System.Int32[] Comp_Data);
  1166. [DllImport("APS168.dll")] public static extern Int32 APS_start_pitch_comp(System.Int32 Axis_ID, System.Int32 Enable);
  1167. //2D compensation [For PCI-8254/58]
  1168. [DllImport("APS168.dll")] public static extern Int32 APS_set_2d_compensation_table(System.Int32[] AxisIdArray, System.UInt32 CompType, System.UInt32[] TotalPointArray, System.Double[] StartPosArray, System.Double[] IntervalArray, System.Double[] CompDataArrayX, System.Double[] CompDataArrayY);
  1169. [DllImport("APS168.dll")] public static extern Int32 APS_get_2d_compensation_table(System.Int32[] AxisIdArray, ref System.UInt32 CompType, System.UInt32[] TotalPointArray, System.Double[] StartPosArray, System.Double[] IntervalArray, System.Double[] CompDataArrayX, System.Double[] CompDataArrayY);
  1170. [DllImport("APS168.dll")] public static extern Int32 APS_start_2d_compensation(System.Int32 Axis_ID, System.Int32 Enable);
  1171. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_linear_move_2d_compensation(System.Int32[] Axis_ID_Array, System.Double[] Position_Array, System.Double Max_Linear_Speed);
  1172. [DllImport("APS168.dll")] public static extern Int32 APS_get_2d_compensation_command_position(System.Int32 Axis_ID, ref System.Double CommandX, ref System.Double CommandY, ref System.Double PositionX, ref System.Double PositionY);
  1173. //20200120
  1174. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_table_data(System.Int32 Board_ID, System.Int32 TCmpCh, System.Int32[] DataArr, Int32 ArraySize);
  1175. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_table_status(System.Int32 Board_ID, System.Int32 TCmpCh, ref System.Int32 FreeSpace, ref System.Int32 FifoSts);
  1176. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_cmp_value(System.Int32 Board_ID, System.Int32 TCmpCh, ref System.Int32 CmpVal);
  1177. [DllImport("APS168.dll")] public static extern Int32 APS_enable_trigger_table(System.Int32 Board_ID, System.Int32 TCmpCh, System.Int32 Enable);
  1178. [DllImport("APS168.dll")] public static extern Int32 APS_reset_trigger_table(System.Int32 Board_ID, System.Int32 TCmpCh);
  1179. //Multi-dimension comparator functions [For PCI-8254/58]
  1180. [DllImport("APS168.dll")] public static extern Int32 APS_set_multi_trigger_table(System.Int32 Board_ID, System.Int32 Dimension, MCMP_POINT[] DataArr, System.Int32 ArraySize, System.Int32 Window);
  1181. [DllImport("APS168.dll")] public static extern Int32 APS_get_multi_trigger_table_cmp(System.Int32 Board_ID, System.Int32 Dimension, ref MCMP_POINT CmpVal);
  1182. // Only support [For PCIe-833X + ECAT-4XMO-MT, ECAT-TRG4-MT]
  1183. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_multi_trigger_table(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 MTCmpCh, System.Int32 Dimension, MCMP_POINT[] DataArr, System.Int32 ArraySize, System.Int32 Window);
  1184. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_multi_trigger_table_cmp(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 MTCmpCh, System.Int32 Dimension, ref MCMP_POINT CmpVal);
  1185. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_multi_table_cmp_remain_count(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 MTCmpCh, ref System.Int32 Cnt);
  1186. //Pulser functions
  1187. [DllImport("APS168.dll")] public static extern Int32 APS_manual_pulser_start(System.Int32 Board_ID, System.Int32 Enable);
  1188. [DllImport("APS168.dll")] public static extern Int32 APS_manual_pulser_velocity_move(System.Int32 Axis_ID, System.Double SpeedLimit);
  1189. [DllImport("APS168.dll")] public static extern Int32 APS_manual_pulser_relative_move(System.Int32 Axis_ID, System.Double Distance, System.Double SpeedLimit);
  1190. [DllImport("APS168.dll")] public static extern Int32 APS_manual_pulser_home_move(System.Int32 Axis_ID);
  1191. // [Wei-Li suggests to remove]
  1192. //**********************************************
  1193. // 2D arc-interpolation for 3-point
  1194. [DllImport("APS168.dll")] public static extern Int32 APS_arc2_ct_all(System.Int32[] Axis_ID_Array, System.Int32 APS_Option, System.Double[] AnyArray, System.Double[] EndArray, System.Int16 Dir, ref System.Double TransPara, System.Double Vs, System.Double Vm, System.Double Ve, System.Double Acc, System.Double Dec, System.Double SFac, ref ASYNCALL Wait);
  1195. //**********************************************
  1196. // [Reserved for unknown usage]
  1197. //**********************************************
  1198. [DllImport("APS168.dll")] public static extern Int32 APS_get_watch_timer(System.Int32 Board_ID, ref System.Int32 Timer);
  1199. [DllImport("APS168.dll")] public static extern Int32 APS_reset_wdt(System.Int32 Board_ID, System.Int32 WDT_No);
  1200. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_slave_mapto_AxisID(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 AxisID);
  1201. //**********************************************
  1202. //for 8338
  1203. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_module_info(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, [In, Out] EC_MODULE_INFO[] Module_info);
  1204. [DllImport("APS168.dll")] public static extern Int32 APS_reset_field_bus_alarm(System.Int32 Axis_ID);
  1205. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_alarm(System.Int32 Axis_ID, ref System.UInt32 AlarmCode);
  1206. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_pdo_offset(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, out IntPtr PPTx, ref System.UInt32 NumOfTx, out IntPtr PPRx, ref System.UInt32 NumOfRx);
  1207. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_pdo(System.Int32 Board_ID, System.Int32 BUS_No, System.UInt16 ByteOffset, System.UInt16 Size, ref System.UInt32 Value);
  1208. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_pdo(System.Int32 Board_ID, System.Int32 BUS_No, System.UInt16 ByteOffset, System.UInt16 Size, System.UInt32 Value);
  1209. [DllImport("APS168.dll")]
  1210. public static extern Int32 APS_get_field_bus_sdo(
  1211. System.Int32 Board_ID,
  1212. System.Int32 BUS_No,
  1213. System.Int32 MOD_No,
  1214. System.UInt16 ODIndex,
  1215. System.UInt16 ODSubIndex,
  1216. System.Byte[] Data,
  1217. System.UInt32 DataLen,
  1218. ref System.UInt32 OutDatalen,
  1219. System.UInt32 Timeout,
  1220. System.UInt32 Flags
  1221. );
  1222. [DllImport("APS168.dll")]
  1223. public static extern Int32 APS_set_field_bus_sdo(
  1224. System.Int32 Board_ID,
  1225. System.Int32 BUS_No,
  1226. System.Int32 MOD_No,
  1227. System.UInt16 ODIndex,
  1228. System.UInt16 ODSubIndex,
  1229. System.Byte[] Data,
  1230. System.UInt32 DataLen,
  1231. System.UInt32 Timeout,
  1232. System.UInt32 Flags
  1233. );
  1234. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_pdo_ODIndex(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.UInt16 ODIndex, System.UInt16 ODSubIndex, System.Byte[] Data, System.UInt32 DataLen, System.UInt32 Mask);
  1235. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_pdo_ODIndex(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.UInt16 ODIndex, System.UInt16 ODSubIndex, System.Byte[] Data, System.UInt32 DataLen, ref System.UInt32 OutDatalen);
  1236. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_sdo_req(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.UInt16 ODIndex, System.UInt16 ODSubIndex, System.UInt32 DataLen, System.Byte[] Data, ref System.Byte Handle);
  1237. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_sdo_res(System.Int32 Board_ID, System.Int32 BUS_No, System.Byte Handle, ref System.Byte Status);
  1238. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_sdo_req(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.UInt16 ODIndex, System.UInt16 ODSubIndex, ref System.Byte Handle);
  1239. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_sdo_res(System.Int32 Board_ID, System.Int32 BUS_No, System.Byte Handle, System.UInt32 DataLen, System.Byte[] Data, ref System.UInt32 OutDataLen, ref System.Byte Status);
  1240. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_od_num(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.UInt16 Num, out IntPtr ODList);
  1241. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_od_desc(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.UInt16 ODIndex, ref System.UInt16 MaxNumSubIndex, System.Byte[] Description, System.UInt32 Size);
  1242. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_od_desc_entry(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.UInt16 ODIndex, System.UInt16 ODSubIndex, [In, Out] OD_DESC_ENTRY[] pOD_DESC_ENTRY);
  1243. [DllImport("APS168.dll")] public static extern Int32 APS_get_actual_torque(System.Int32 Axis_ID, ref System.Int32 Torque);
  1244. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_d_port_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Port_No, System.UInt32 DO_Value);
  1245. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_d_port_input(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Port_No, ref System.UInt32 DI_Value);
  1246. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_d_port_output(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 Port_No, ref System.UInt32 DO_Value);
  1247. [DllImport("APS168.dll")] public static extern Int32 APS_set_circular_limit(System.Int32 Axis_A, System.Int32 Axis_B, System.Double Center_A, System.Double Center_B, System.Double Radius, System.Int32 Stop_Mode, System.Int32 Enable);
  1248. [DllImport("APS168.dll")] public static extern Int32 APS_get_circular_limit(System.Int32 Axis_A, System.Int32 Axis_B, ref System.Double Center_A, ref System.Double Center_B, ref System.Double Radius, ref System.Int32 Stop_Mode, ref System.Int32 Enable);
  1249. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_loss_package(System.Int32 Board_ID, System.Int32 BUS_No, ref System.Int32 Loss_Count);
  1250. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_od_data(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 SubMOD_No, System.Int32 ODIndex, System.UInt32 RawData);
  1251. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_od_data(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 SubMOD_No, System.Int32 ODIndex, ref System.UInt32 RawData);
  1252. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_od_module_info(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, [In, Out] EC_Sub_MODULE_INFO[] Sub_Module_info);
  1253. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_od_number(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 SubMOD_No, ref System.Int32 TxODNum, ref System.Int32 RxODNum);
  1254. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_od_tx(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 SubMOD_No, System.Int32 TxODIndex, [In, Out] EC_Sub_MODULE_OD_INFO[] Sub_MODULE_OD_INFO);
  1255. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_od_rx(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 SubMOD_No, System.Int32 RxODIndex, [In, Out] EC_Sub_MODULE_OD_INFO[] Sub_MODULE_OD_INFO);
  1256. // PVT function;
  1257. [DllImport("APS168.dll")] public static extern Int32 APS_pvt_add_point(System.Int32 Axis_ID, System.Int32 ArraySize, System.Double[] PositionArray, System.Double[] VelocityArray, System.Double[] TimeArray);
  1258. [DllImport("APS168.dll")] public static extern Int32 APS_pvt_get_status(System.Int32 Axis_ID, ref System.Int32 FreeSize, ref System.Int32 PointCount, ref System.Int32 State);
  1259. [DllImport("APS168.dll")] public static extern Int32 APS_pvt_start(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 Enable);
  1260. [DllImport("APS168.dll")] public static extern Int32 APS_pvt_reset(System.Int32 Axis_ID);
  1261. // PT functions;
  1262. [DllImport("APS168.dll")] public static extern Int32 APS_pt_motion_add_point(System.Int32 Axis_ID, System.Int32 ArraySize, System.Double[] PositionArray, System.Double[] TimeArray);
  1263. [DllImport("APS168.dll")] public static extern Int32 APS_pt_motion_get_status(System.Int32 Axis_ID, ref System.Int32 FreeSize, ref System.Int32 PointCount, ref System.Int32 State);
  1264. [DllImport("APS168.dll")] public static extern Int32 APS_pt_motion_start(System.Int32 Dimension, System.Int32[] Axis_ID_Array, System.Int32 Enable);
  1265. [DllImport("APS168.dll")] public static extern Int32 APS_pt_motion_reset(System.Int32 Axis_ID);
  1266. //Get speed profile calculation
  1267. [DllImport("APS168.dll")] public static extern Int32 APS_relative_move_profile(System.Int32 Axis_ID, System.Int32 Distance, System.Int32 Max_Speed, ref System.Int32 StrVel, ref System.Int32 MaxVel, ref System.Double Tacc, ref System.Double Tdec, ref System.Double Tconst);
  1268. [DllImport("APS168.dll")] public static extern Int32 APS_absolute_move_profile(System.Int32 Axis_ID, System.Int32 Position, System.Int32 Max_Speed, ref System.Int32 StrVel, ref System.Int32 MaxVel, ref System.Double Tacc, ref System.Double Tdec, ref System.Double Tconst);
  1269. //ASYNC mode
  1270. [DllImport("APS168.dll")] public static extern Int32 APS_get_error_code(System.Int32 Axis_ID, System.UInt32 Index, ref System.Int32 ErrorCode);
  1271. [DllImport("APS168.dll")] public static extern Int32 APS_get_cmd_fifo_usage(System.Int32 Axis_ID, ref System.UInt32 Number);
  1272. //Get fpga latch value [For PCI-8254/58]
  1273. [DllImport("APS168.dll")] public static extern Int32 APS_get_axis_latch_data(System.Int32 Axis_ID, System.Int32 latch_channel, ref System.Int32 latch_data);
  1274. [DllImport("APS168.dll")] public static extern Int32 APS_register_emx(System.Int32 emx_online, System.Int32 option);
  1275. [DllImport("APS168.dll")] public static extern Int32 APS_get_deviceIP(System.Int32 Board_ID, ref string option);
  1276. [DllImport("APS168.dll")] public static extern Int32 APS_reset_emx_alarm(System.Int32 Axis_ID);
  1277. [DllImport("APS168.dll")] public static extern Int32 APS_check_motion_profile_emx(System.Int32 Axis_ID, ref Speed_profile profile_input, ref Speed_profile profile_output, ref System.Int32 MinDis);
  1278. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_module_map(System.Int32 Board_ID, System.Int32 BUS_No, System.UInt32[] MOD_No_Arr, System.UInt32 Size);
  1279. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_module_map(System.Int32 Board_ID, System.Int32 BUS_No, System.UInt32[] MOD_No_Arr, System.UInt32 Size);
  1280. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_analysis_topology(System.Int32 Board_ID, System.Int32 BUS_No, ref System.Int32 Error_Slave_No, [In, Out] EC_MODULE_INFO[] Current_slave_info, ref System.Int32 Current_slave_num, [In, Out] EC_MODULE_INFO[] Past_slave_info, ref System.Int32 Past_slave_num);
  1281. [DllImport("APS168.dll")] public static extern Int32 APS_get_gantry_number(System.Int32 Axis_ID, ref System.Int32 SlaveAxisIDSize);
  1282. [DllImport("APS168.dll")] public static extern Int32 APS_get_gantry_info(System.Int32 Axis_ID, System.Int32 SlaveAxisIDSize, System.Int32[] SlaveAxisIDArray);
  1283. [DllImport("APS168.dll")] public static extern Int32 APS_get_gantry_deviation(System.Int32 Axis_ID, System.Int32 SlaveAxisIDSize, System.Int32[] SlaveAxisIDArray, System.Double[] DeviationArray);
  1284. [DllImport("APS168.dll")] public static extern Int32 APS_get_field_bus_slave_state(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, ref System.Int32 State);
  1285. [DllImport("APS168.dll")] public static extern Int32 APS_set_field_bus_slave_state(System.Int32 Board_ID, System.Int32 BUS_No, System.Int32 MOD_No, System.Int32 State);
  1286. // Coordinate transform 20190624
  1287. [DllImport("APS168.dll")] public static extern Int32 APS_set_coordTransform2D_config(System.Int32 Board_ID, System.Int32 AxisID_X, System.Int32 AxisID_Y, System.Double XYAngle, System.Int32 Enable);
  1288. [DllImport("APS168.dll")] public static extern Int32 APS_get_coordTransform2D_config(System.Int32 Board_ID, ref System.Int32 AxisID_X, ref System.Int32 AxisID_Y, ref System.Double XYAngle, ref System.Int32 Enable);
  1289. [DllImport("APS168.dll")] public static extern Int32 APS_get_coordTransform2D_position(System.Int32 Board_ID, ref System.Double Cmd_transform_X, ref System.Int32 Cmd_transform_Y, ref System.Double Fbk_transform_X, ref System.Double Fbk_transform_Y);
  1290. // Torque control
  1291. [DllImport("APS168.dll")] public static extern Int32 APS_get_torque_command(System.Int32 Axis_ID, ref System.Int32 TorqueCmd);
  1292. [DllImport("APS168.dll")] public static extern Int32 APS_set_command_control_mode(System.Int32 Axis_ID, System.Byte Mode);
  1293. [DllImport("APS168.dll")] public static extern Int32 APS_get_command_control_mode(System.Int32 Axis_ID, ref System.Byte Mode);
  1294. [DllImport("APS168.dll")] public static extern Int32 APS_torque_move(System.Int32 Axis_ID, System.Int16 TorqueValue, System.UInt32 Slope, System.UInt16 Option, ref ASYNCALL Wait);
  1295. [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void callback_func();
  1296. [DllImport("APS168.dll")] public static extern Int32 APS_register_int_callback(System.Int32 ISR_No, System.Int32 Board_ID, System.Int32 Item_No, System.Int32 Factor_No, callback_func SuccessHandler, callback_func FailHandler, Int32 Action);
  1297. // For asynchronous function. For PCIe-833x only.
  1298. [DllImport("APS168.dll")] public static extern Int32 APS_motion_status_async(System.Int32 Axis_ID);
  1299. [DllImport("APS168.dll")] public static extern Int32 APS_motion_io_status_async(System.Int32 Axis_ID);
  1300. [DllImport("APS168.dll")] public static extern Int32 APS_get_command_f_async(System.Int32 Axis_ID, ref System.Double Command);
  1301. [DllImport("APS168.dll")] public static extern Int32 APS_get_position_f_async(System.Int32 Axis_ID, ref System.Double Position);
  1302. [DllImport("APS168.dll")] public static extern Int32 APS_get_last_error(System.Int32 Axis_ID, ref System.Int32 ErrorCode);
  1303. // for AMP-304C
  1304. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_table_data_ex(System.Int32 Board_ID, System.Int32 TCmpCh, TCMP_EX_POINT[] TcmpDataArr, System.Int32 ArraySize, System.Int32 Option);
  1305. // for 8364RS
  1306. [DllImport("APS168.dll")] public static extern Int32 APS_set_drive_input_mapping(System.Int32 Board_ID, System.Int32 BUS_No, string pFilePath, System.Int32 option);
  1307. [DllImport("APS168.dll")] public static extern Int32 APS_set_trigger_output_mapping(System.Int32 Board_ID, System.Int32 BUS_No, string pFilePath, System.Int32 option);
  1308. [DllImport("APS168.dll")] public static extern Int32 APS_get_msg_size(System.Int32 Board_ID, System.Int32 ArraySize, ref System.Int32 MsgQueueSizeArr);
  1309. [DllImport("APS168.dll")] public static extern Int32 APS_get_msg_data(System.Int32 Board_ID, System.Int32 MsgNo, System.Int32 MsgNum, System.Int32 MsgSize, ref System.Int32 ActualMsgNum, [Out] char[,] MsgQueueArr);
  1310. // for AMP-304C and 8364RS
  1311. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_table_remain_count(System.Int32 Board_ID, System.Int32 TCmpCh, ref System.Int32 Cnt);
  1312. [DllImport("APS168.dll")] public static extern Int32 APS_get_trigger_linear_remain_count(System.Int32 Board_ID, System.Int32 LCmpCh, ref System.Int32 Cnt);
  1313. [DllImport("APS168.dll")] public static extern Int32 APS_load_config_from_file(System.Int32 Board_ID, string FilePath, System.Int32 Option);
  1314. //Multi single table move
  1315. [DllImport("APS168.dll")] public static extern Int32 APS_set_multiple_single_move_table(System.Int32 Board_ID, System.UInt32 TableIndex, System.Byte AxisIDArySize, System.Int32[] Axis_ID_Array, System.UInt32 MoveCmdSize, STR_MOVE_SETTING[] MoveTable, System.Int32 Option);
  1316. [DllImport("APS168.dll")] public static extern Int32 APS_get_multiple_single_move_table_status(System.Int32 Board_ID, System.UInt32 TableIndex, ref System.Int16 Status, ref System.Int32 LastErrorCode, ref System.Byte IsBufferEmpty);
  1317. }
  1318. }