APS168x64.cs 125 KB

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