PicoDeviceEnums.h 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. /****************************************************************************
  2. *
  3. * Filename: PicoDeviceEnums.h
  4. * Copyright: Pico Technology Limited 2016 - 2022
  5. * Description:
  6. *
  7. * This header contains definitions of enumerated types that describe
  8. * various operating modes, trigger types, bandwidth limiters, etc.
  9. *
  10. ****************************************************************************/
  11. #ifndef __PICODEVICEENUMS_H__
  12. #define __PICODEVICEENUMS_H__
  13. typedef enum enPicoRatioMode
  14. {
  15. PICO_RATIO_MODE_AGGREGATE = 1,
  16. PICO_RATIO_MODE_DECIMATE = 2,
  17. PICO_RATIO_MODE_AVERAGE = 4,
  18. PICO_RATIO_MODE_DISTRIBUTION = 8,
  19. PICO_RATIO_MODE_SUM = 16,
  20. PICO_RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION = 0x10000000, // buffers cannot be set for this mode
  21. PICO_RATIO_MODE_SEGMENT_HEADER = 0x20000000, // buffers do not need to be set for this
  22. PICO_RATIO_MODE_TRIGGER = 0x40000000, // this cannot be combined with any other ratio mode
  23. PICO_RATIO_MODE_RAW = 0x80000000
  24. } PICO_RATIO_MODE;
  25. typedef enum enPicoChannel
  26. {
  27. PICO_CHANNEL_A = 0,
  28. PICO_CHANNEL_B = 1,
  29. PICO_CHANNEL_C = 2,
  30. PICO_CHANNEL_D = 3,
  31. PICO_CHANNEL_E = 4,
  32. PICO_CHANNEL_F = 5,
  33. PICO_CHANNEL_G = 6,
  34. PICO_CHANNEL_H = 7,
  35. PICO_PORT0 = 128,
  36. PICO_PORT1 = 129,
  37. PICO_PORT2 = 130,
  38. PICO_PORT3 = 131,
  39. PICO_EXTERNAL = 1000,
  40. PICO_TRIGGER_AUX = 1001,
  41. PICO_PULSE_WIDTH_SOURCE = 0x10000000,
  42. PICO_DIGITAL_SOURCE = 0x10000001
  43. } PICO_CHANNEL;
  44. typedef enum enPicoChannelFlags
  45. {
  46. PICO_CHANNEL_A_FLAGS = 1,
  47. PICO_CHANNEL_B_FLAGS = 2,
  48. PICO_CHANNEL_C_FLAGS = 4,
  49. PICO_CHANNEL_D_FLAGS = 8,
  50. PICO_CHANNEL_E_FLAGS = 16,
  51. PICO_CHANNEL_F_FLAGS = 32,
  52. PICO_CHANNEL_G_FLAGS = 64,
  53. PICO_CHANNEL_H_FLAGS = 128,
  54. PICO_PORT0_FLAGS = 65536,
  55. PICO_PORT1_FLAGS = 131072,
  56. PICO_PORT2_FLAGS = 262144,
  57. PICO_PORT3_FLAGS = 524288,
  58. } PICO_CHANNEL_FLAGS;
  59. typedef enum enPicoPortDigitalChannel
  60. {
  61. PICO_PORT_DIGITAL_CHANNEL0,
  62. PICO_PORT_DIGITAL_CHANNEL1,
  63. PICO_PORT_DIGITAL_CHANNEL2,
  64. PICO_PORT_DIGITAL_CHANNEL3,
  65. PICO_PORT_DIGITAL_CHANNEL4,
  66. PICO_PORT_DIGITAL_CHANNEL5,
  67. PICO_PORT_DIGITAL_CHANNEL6,
  68. PICO_PORT_DIGITAL_CHANNEL7
  69. } PICO_PORT_DIGITAL_CHANNEL;
  70. typedef enum enPicoDataType
  71. {
  72. PICO_INT8_T,
  73. PICO_INT16_T,
  74. PICO_INT32_T,
  75. PICO_UINT32_T,
  76. PICO_INT64_T
  77. } PICO_DATA_TYPE;
  78. typedef enum enPicoCoupling
  79. {
  80. PICO_AC = 0,
  81. PICO_DC = 1,
  82. PICO_DC_50OHM = 50
  83. } PICO_COUPLING;
  84. typedef enum enPicoBandwidthLimiterFlags
  85. {
  86. PICO_BW_FULL_FLAG = (1 << 0),
  87. PICO_BW_20KHZ_FLAG = (1 << 1),
  88. PICO_BW_100KHZ_FLAG = (1 << 2), //( default when current clamp detected: can be changed)
  89. PICO_BW_1MHZ_FLAG = (1 << 3), //( default for 14 bits: can be changed)
  90. PICO_BW_20MHZ_FLAG = (1 << 4),
  91. PICO_BW_200MHZ_FLAG = (1 << 5),
  92. } PICO_BANDWIDTH_LIMITER_FLAGS;
  93. typedef enum enPicoBandwidthLimiter
  94. {
  95. PICO_BW_FULL = 0,
  96. PICO_BW_100KHZ = 100000,
  97. PICO_BW_20KHZ = 20000,
  98. PICO_BW_1MHZ = 1000000,
  99. PICO_BW_20MHZ = 20000000,
  100. PICO_BW_25MHZ = 25000000,
  101. PICO_BW_50MHZ = 50000000,
  102. PICO_BW_200MHZ = 200000000,
  103. PICO_BW_250MHZ = 250000000,
  104. PICO_BW_500MHZ = 500000000,
  105. } PICO_BANDWIDTH_LIMITER;
  106. typedef enum enPicoPulseWidthType
  107. {
  108. PICO_PW_TYPE_NONE = 0,
  109. PICO_PW_TYPE_LESS_THAN = 1,
  110. PICO_PW_TYPE_GREATER_THAN = 2,
  111. PICO_PW_TYPE_IN_RANGE = 3,
  112. PICO_PW_TYPE_OUT_OF_RANGE = 4
  113. } PICO_PULSE_WIDTH_TYPE;
  114. typedef enum enPicoSweepType
  115. {
  116. PICO_UP = 0,
  117. PICO_DOWN = 1,
  118. PICO_UPDOWN = 2,
  119. PICO_DOWNUP = 3,
  120. } PICO_SWEEP_TYPE;
  121. typedef enum enPicoWaveType
  122. {
  123. PICO_SINE = 0x00000011,
  124. PICO_SQUARE = 0x00000012,
  125. PICO_TRIANGLE = 0x00000013,
  126. PICO_RAMP_UP = 0x00000014,
  127. PICO_RAMP_DOWN = 0x00000015,
  128. PICO_SINC = 0x00000016,
  129. PICO_GAUSSIAN = 0x00000017,
  130. PICO_HALF_SINE = 0x00000018,
  131. PICO_DC_VOLTAGE = 0x00000400,
  132. PICO_PWM = 0x00001000,
  133. PICO_WHITENOISE = 0x00002001,
  134. PICO_PRBS = 0x00002002, // Pseudo-Random Bit Stream
  135. PICO_ARBITRARY = 0x10000000
  136. } PICO_WAVE_TYPE;
  137. typedef enum enPicoSigGenTrigType
  138. {
  139. PICO_SIGGEN_RISING = 0,
  140. PICO_SIGGEN_FALLING = 1,
  141. PICO_SIGGEN_GATE_HIGH = 2,
  142. PICO_SIGGEN_GATE_LOW = 3
  143. } PICO_SIGGEN_TRIG_TYPE;
  144. typedef enum enPicoSigGenTrigSource
  145. {
  146. PICO_SIGGEN_NONE = 0,
  147. PICO_SIGGEN_SCOPE_TRIG = 1,
  148. PICO_SIGGEN_AUX_IN = 2,
  149. PICO_SIGGEN_EXT_IN = 3,
  150. PICO_SIGGEN_SOFT_TRIG = 4,
  151. PICO_SIGGEN_TRIGGER_RAW = 5
  152. } PICO_SIGGEN_TRIG_SOURCE;
  153. typedef enum enPicoSigGenFilterState
  154. {
  155. PICO_SIGGEN_FILTER_AUTO = 0,
  156. PICO_SIGGEN_FILTER_OFF = 1,
  157. PICO_SIGGEN_FILTER_ON = 2
  158. } PICO_SIGGEN_FILTER_STATE;
  159. typedef enum enPicoSigGenParameter
  160. {
  161. PICO_SIGGEN_PARAM_OUTPUT_VOLTS = 0,
  162. PICO_SIGGEN_PARAM_SAMPLE = 1,
  163. PICO_SIGGEN_PARAM_BUFFER_LENGTH = 2
  164. } PICO_SIGGEN_PARAMETER;
  165. typedef enum enPicoTimeUnits
  166. {
  167. PICO_FS = 0,
  168. PICO_PS = 1,
  169. PICO_NS = 2,
  170. PICO_US = 3,
  171. PICO_MS = 4,
  172. PICO_S = 5,
  173. } PICO_TIME_UNITS;
  174. typedef enum enPicoThresholdDirection
  175. {
  176. PICO_ABOVE = 0, //using upper threshold
  177. PICO_BELOW = 1, //using upper threshold
  178. PICO_RISING = 2, // using upper threshold
  179. PICO_FALLING = 3, // using upper threshold
  180. PICO_RISING_OR_FALLING = 4, // using both thresholds
  181. PICO_ABOVE_LOWER = 5, // using lower threshold
  182. PICO_BELOW_LOWER = 6, // using lower threshold
  183. PICO_RISING_LOWER = 7, // using lower threshold
  184. PICO_FALLING_LOWER = 8, // using lower threshold
  185. // Windowing using both thresholds
  186. PICO_INSIDE = PICO_ABOVE,
  187. PICO_OUTSIDE = PICO_BELOW,
  188. PICO_ENTER = PICO_RISING,
  189. PICO_EXIT = PICO_FALLING,
  190. PICO_ENTER_OR_EXIT = PICO_RISING_OR_FALLING,
  191. PICO_POSITIVE_RUNT = 9,
  192. PICO_NEGATIVE_RUNT,
  193. // no trigger set
  194. PICO_NONE = PICO_RISING
  195. } PICO_THRESHOLD_DIRECTION;
  196. typedef enum enPicoThresholdMode
  197. {
  198. PICO_LEVEL = 0,
  199. PICO_WINDOW = 1
  200. } PICO_THRESHOLD_MODE;
  201. typedef enum enPicoEtsMode
  202. {
  203. PICO_ETS_OFF = 0, // ETS disabled
  204. PICO_ETS_FAST = 1, // Return ready as soon as requested no of interleaves is available
  205. PICO_ETS_SLOW = 2, // Return ready every time a new set of no_of_cycles is collected
  206. } PICO_ETS_MODE;
  207. typedef enum enPicoIndexMode
  208. {
  209. PICO_SINGLE = 0,
  210. PICO_DUAL = 1,
  211. PICO_QUAD = 2,
  212. } PICO_INDEX_MODE;
  213. typedef enum enPicoAction
  214. {
  215. PICO_CLEAR_ALL = 0x00000001,
  216. PICO_ADD = 0x00000002,
  217. PICO_CLEAR_THIS_DATA_BUFFER = 0x00001000,
  218. PICO_CLEAR_WAVEFORM_DATA_BUFFERS = 0x00002000,
  219. PICO_CLEAR_WAVEFORM_READ_DATA_BUFFERS = 0x00004000,
  220. } PICO_ACTION;
  221. typedef enum enPicoTriggerState
  222. {
  223. PICO_CONDITION_DONT_CARE = 0,
  224. PICO_CONDITION_TRUE = 1,
  225. PICO_CONDITION_FALSE = 2,
  226. } PICO_TRIGGER_STATE;
  227. typedef enum enPicoDeviceResolution
  228. {
  229. PICO_DR_8BIT = 0,
  230. PICO_DR_12BIT = 1,
  231. PICO_DR_14BIT = 2,
  232. PICO_DR_15BIT = 3,
  233. PICO_DR_16BIT = 4,
  234. PICO_DR_10BIT = 10,
  235. } PICO_DEVICE_RESOLUTION;
  236. typedef enum enPicoReadSelection
  237. {
  238. PICO_READSELECTION_NONE = 0,
  239. PICO_TRIGGER_READ = 1,
  240. PICO_DATA_READ1 = 2,
  241. PICO_DATA_READ2 = 3,
  242. PICO_DATA_READ3 = 4,
  243. } PICO_READ_SELECTION;
  244. typedef enum enPicoTrimAction
  245. {
  246. PICO_OLDEST,
  247. PICO_RECENT
  248. } PICO_TRIM_ACTION;
  249. typedef enum enPicoDigitalPortHysteresis
  250. {
  251. PICO_VERY_HIGH_400MV,
  252. PICO_HIGH_200MV,
  253. PICO_NORMAL_100MV,
  254. PICO_LOW_50MV
  255. } PICO_DIGITAL_PORT_HYSTERESIS;
  256. typedef enum enPicoDigitalDirection
  257. {
  258. PICO_DIGITAL_DONT_CARE,
  259. PICO_DIGITAL_DIRECTION_LOW,
  260. PICO_DIGITAL_DIRECTION_HIGH,
  261. PICO_DIGITAL_DIRECTION_RISING,
  262. PICO_DIGITAL_DIRECTION_FALLING,
  263. PICO_DIGITAL_DIRECTION_RISING_OR_FALLING,
  264. PICO_DIGITAL_MAX_DIRECTION
  265. } PICO_DIGITAL_DIRECTION;
  266. typedef enum enPicoConditionsInfo
  267. {
  268. PICO_CLEAR_CONDITIONS = 0x00000001,
  269. PICO_ADD_CONDITION = 0x00000002
  270. } PICO_CONDITIONS_INFO;
  271. typedef enum enPicoClockReference
  272. {
  273. PICO_INTERNAL_REF,
  274. PICO_EXTERNAL_REF
  275. } PICO_CLOCK_REFERENCE;
  276. typedef enum enPicoTriggerWithinPreTrigger
  277. {
  278. PICO_DISABLE,
  279. PICO_ARM
  280. } PICO_TRIGGER_WITHIN_PRE_TRIGGER;
  281. typedef enum tPicoTemperatureReference
  282. {
  283. PICO_TEMPERATURE_UNINITIALISED,
  284. PICO_TEMPERATURE_NORMAL,
  285. PICO_TEMPERATURE_WARNING,
  286. PICO_TEMPERATURE_CRITICAL
  287. } PICO_TEMPERATURE_REFERENCE;
  288. typedef enum enPicoDigitalPort
  289. {
  290. PICO_DIGITAL_PORT_NONE = 0,
  291. PICO_DIGITAL_PORT_MSO_POD = 1000,
  292. PICO_DIGITAL_PORT_UNKNOWN_DEVICE = -2,
  293. } PICO_DIGITAL_PORT;
  294. #endif