PicoStatus.h 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316
  1. /**************************************************************************
  2. *
  3. * Filename: PicoStatus.h
  4. * Copyright: Pico Technology Limited 2002 - 2022
  5. * Description:
  6. *
  7. * This header files defines the status codes returned by a
  8. * Pico device, a PC Oscilloscope or Data Logger.
  9. *
  10. * In comments, "<API>" is a placeholder for the name of the scope or
  11. * data logger API. For example, for the ps5000a API, it stands for
  12. * "PS5000A" or "ps5000a".
  13. *
  14. *************************************************************************/
  15. #ifndef __PICOSTATUS_H__
  16. #define __PICOSTATUS_H__
  17. #include <stdint.h>
  18. typedef void * PICO_POINTER;
  19. #define PICO_DRIVER_VERSION 0x00000000UL
  20. #define PICO_USB_VERSION 0x00000001UL
  21. #define PICO_HARDWARE_VERSION 0x00000002UL
  22. #define PICO_VARIANT_INFO 0x00000003UL
  23. #define PICO_BATCH_AND_SERIAL 0x00000004UL
  24. #define PICO_CAL_DATE 0x00000005UL
  25. #define PICO_KERNEL_VERSION 0x00000006UL
  26. #define PICO_DIGITAL_HARDWARE_VERSION 0x00000007UL
  27. #define PICO_ANALOGUE_HARDWARE_VERSION 0x00000008UL
  28. #define PICO_FIRMWARE_VERSION_1 0x00000009UL
  29. #define PICO_FIRMWARE_VERSION_2 0x0000000AUL
  30. #define PICO_MAC_ADDRESS 0x0000000BUL
  31. #define PICO_SHADOW_CAL 0x0000000CUL
  32. #define PICO_IPP_VERSION 0x0000000DUL
  33. #define PICO_DRIVER_PATH 0x0000000EUL
  34. #define PICO_FIRMWARE_VERSION_3 0x0000000FUL
  35. #define PICO_FRONT_PANEL_FIRMWARE_VERSION 0x00000010UL
  36. #define PICO_BOOTLOADER_VERSION 0x10000001UL
  37. typedef uint32_t PICO_INFO;
  38. // The PicoScope is functioning correctly.
  39. #define PICO_OK 0x00000000UL
  40. // An attempt has been made to open more than <API>_MAX_UNITS.
  41. #define PICO_MAX_UNITS_OPENED 0x00000001UL
  42. // Not enough memory could be allocated on the host machine.
  43. #define PICO_MEMORY_FAIL 0x00000002UL
  44. // No Pico Technology device could be found.
  45. #define PICO_NOT_FOUND 0x00000003UL
  46. // Unable to download firmware.
  47. #define PICO_FW_FAIL 0x00000004UL
  48. // The driver is busy opening a device.
  49. #define PICO_OPEN_OPERATION_IN_PROGRESS 0x00000005UL
  50. // An unspecified failure occurred.
  51. #define PICO_OPERATION_FAILED 0x00000006UL
  52. // The PicoScope is not responding to commands from the PC.
  53. #define PICO_NOT_RESPONDING 0x00000007UL
  54. // The configuration information in the PicoScope is corrupt or missing.
  55. #define PICO_CONFIG_FAIL 0x00000008UL
  56. // The picopp.sys file is too old to be used with the device driver.
  57. #define PICO_KERNEL_DRIVER_TOO_OLD 0x00000009UL
  58. // The EEPROM has become corrupt, so the device will use a default setting.
  59. #define PICO_EEPROM_CORRUPT 0x0000000AUL
  60. // The operating system on the PC is not supported by this driver.
  61. #define PICO_OS_NOT_SUPPORTED 0x0000000BUL
  62. // There is no device with the handle value passed.
  63. #define PICO_INVALID_HANDLE 0x0000000CUL
  64. // A parameter value is not valid.
  65. #define PICO_INVALID_PARAMETER 0x0000000DUL
  66. // The timebase is not supported or is invalid.
  67. #define PICO_INVALID_TIMEBASE 0x0000000EUL
  68. // The voltage range is not supported or is invalid.
  69. #define PICO_INVALID_VOLTAGE_RANGE 0x0000000FUL
  70. // The channel number is not valid on this device or no channels have been set.
  71. #define PICO_INVALID_CHANNEL 0x00000010UL
  72. // The channel set for a trigger is not available on this device.
  73. #define PICO_INVALID_TRIGGER_CHANNEL 0x00000011UL
  74. // The channel set for a condition is not available on this device.
  75. #define PICO_INVALID_CONDITION_CHANNEL 0x00000012UL
  76. // The device does not have a signal generator.
  77. #define PICO_NO_SIGNAL_GENERATOR 0x00000013UL
  78. // Streaming has failed to start or has stopped without user request.
  79. #define PICO_STREAMING_FAILED 0x00000014UL
  80. // Block failed to start - a parameter may have been set wrongly.
  81. #define PICO_BLOCK_MODE_FAILED 0x00000015UL
  82. // A parameter that was required is NULL.
  83. #define PICO_NULL_PARAMETER 0x00000016UL
  84. // The current functionality is not available while using ETS capture mode.
  85. #define PICO_ETS_MODE_SET 0x00000017UL
  86. // No data is available from a run block call.
  87. #define PICO_DATA_NOT_AVAILABLE 0x00000018UL
  88. // The buffer passed for the information was too small.
  89. #define PICO_STRING_BUFFER_TO_SMALL 0x00000019UL
  90. // ETS is not supported on this device.
  91. #define PICO_ETS_NOT_SUPPORTED 0x0000001AUL
  92. // The auto trigger time is less than the time it will take to collect the pre-trigger data.
  93. #define PICO_AUTO_TRIGGER_TIME_TO_SHORT 0x0000001BUL
  94. // The collection of data has stalled as unread data would be overwritten.
  95. #define PICO_BUFFER_STALL 0x0000001CUL
  96. // Number of samples requested is more than available in the current memory segment.
  97. #define PICO_TOO_MANY_SAMPLES 0x0000001DUL
  98. // Not possible to create number of segments requested.
  99. #define PICO_TOO_MANY_SEGMENTS 0x0000001EUL
  100. // A null pointer has been passed in the trigger function or one of the parameters is out of range.
  101. #define PICO_PULSE_WIDTH_QUALIFIER 0x0000001FUL
  102. // One or more of the hold-off parameters are out of range.
  103. #define PICO_DELAY 0x00000020UL
  104. // One or more of the source details are incorrect.
  105. #define PICO_SOURCE_DETAILS 0x00000021UL
  106. // One or more of the conditions are incorrect.
  107. #define PICO_CONDITIONS 0x00000022UL
  108. // The driver's thread is currently in the <API>Ready callback
  109. // function and therefore the action cannot be carried out.
  110. #define PICO_USER_CALLBACK 0x00000023UL
  111. // An attempt is being made to get stored data while streaming.
  112. // Either stop streaming by calling <API>Stop, or use <API>GetStreamingLatestValues.
  113. #define PICO_DEVICE_SAMPLING 0x00000024UL
  114. // Data is unavailable because a run has not been completed.
  115. #define PICO_NO_SAMPLES_AVAILABLE 0x00000025UL
  116. // The memory segment index is out of range.
  117. #define PICO_SEGMENT_OUT_OF_RANGE 0x00000026UL
  118. // The device is busy so data cannot be returned yet.
  119. #define PICO_BUSY 0x00000027UL
  120. // The start time to get stored data is out of range.
  121. #define PICO_STARTINDEX_INVALID 0x00000028UL
  122. // The information number requested is not a valid number.
  123. #define PICO_INVALID_INFO 0x00000029UL
  124. // The handle is invalid so no information is available about the device.
  125. // Only PICO_DRIVER_VERSION is available.
  126. #define PICO_INFO_UNAVAILABLE 0x0000002AUL
  127. // The sample interval selected for streaming is out of range.
  128. #define PICO_INVALID_SAMPLE_INTERVAL 0x0000002BUL
  129. // ETS is set but no trigger has been set. A trigger setting is required for ETS.
  130. #define PICO_TRIGGER_ERROR 0x0000002CUL
  131. // Driver cannot allocate memory.
  132. #define PICO_MEMORY 0x0000002DUL
  133. // Incorrect parameter passed to the signal generator.
  134. #define PICO_SIG_GEN_PARAM 0x0000002EUL
  135. // Conflict between the shots and sweeps parameters sent to the signal generator.
  136. #define PICO_SHOTS_SWEEPS_WARNING 0x0000002FUL
  137. // A software trigger has been sent but the trigger source is not a software trigger.
  138. #define PICO_SIGGEN_TRIGGER_SOURCE 0x00000030UL
  139. // An <API>SetTrigger call has found a conflict between the trigger source and the AUX output enable.
  140. #define PICO_AUX_OUTPUT_CONFLICT 0x00000031UL
  141. // ETS mode is being used and AUX is set as an input.
  142. #define PICO_AUX_OUTPUT_ETS_CONFLICT 0x00000032UL
  143. // Attempt to set different EXT input thresholds set for signal generator and oscilloscope trigger.
  144. #define PICO_WARNING_EXT_THRESHOLD_CONFLICT 0x00000033UL
  145. // An <API>SetTrigger... function has set AUX as an output and the signal generator is using it as a trigger.
  146. #define PICO_WARNING_AUX_OUTPUT_CONFLICT 0x00000034UL
  147. // The combined peak-to-peak voltage and the analog offset voltage exceed the maximum voltage the signal generator can produce.
  148. #define PICO_SIGGEN_OUTPUT_OVER_VOLTAGE 0x00000035UL
  149. // NULL pointer passed as delay parameter.
  150. #define PICO_DELAY_NULL 0x00000036UL
  151. // The buffers for overview data have not been set while streaming.
  152. #define PICO_INVALID_BUFFER 0x00000037UL
  153. // The analog offset voltage is out of range.
  154. #define PICO_SIGGEN_OFFSET_VOLTAGE 0x00000038UL
  155. // The analog peak-to-peak voltage is out of range.
  156. #define PICO_SIGGEN_PK_TO_PK 0x00000039UL
  157. // A block collection has been cancelled.
  158. #define PICO_CANCELLED 0x0000003AUL
  159. // The segment index is not currently being used.
  160. #define PICO_SEGMENT_NOT_USED 0x0000003BUL
  161. // The wrong GetValues function has been called for the collection mode in use.
  162. #define PICO_INVALID_CALL 0x0000003CUL
  163. #define PICO_GET_VALUES_INTERRUPTED 0x0000003DUL
  164. // The function is not available.
  165. #define PICO_NOT_USED 0x0000003FUL
  166. // The aggregation ratio requested is out of range.
  167. #define PICO_INVALID_SAMPLERATIO 0x00000040UL
  168. // Device is in an invalid state.
  169. #define PICO_INVALID_STATE 0x00000041UL
  170. // The number of segments allocated is fewer than the number of captures requested.
  171. #define PICO_NOT_ENOUGH_SEGMENTS 0x00000042UL
  172. // A driver function has already been called and not yet finished.
  173. // Only one call to the driver can be made at any one time.
  174. #define PICO_DRIVER_FUNCTION 0x00000043UL
  175. // Not used.
  176. #define PICO_RESERVED 0x00000044UL
  177. // An invalid coupling type was specified in <API>SetChannel.
  178. #define PICO_INVALID_COUPLING 0x00000045UL
  179. // An attempt was made to get data before a data buffer was defined.
  180. #define PICO_BUFFERS_NOT_SET 0x00000046UL
  181. // The selected downsampling mode (used for data reduction) is not allowed.
  182. #define PICO_RATIO_MODE_NOT_SUPPORTED 0x00000047UL
  183. // Aggregation was requested in rapid block mode.
  184. #define PICO_RAPID_NOT_SUPPORT_AGGREGATION 0x00000048UL
  185. // An invalid parameter was passed to <API>SetTriggerChannelProperties(V2).
  186. #define PICO_INVALID_TRIGGER_PROPERTY 0x00000049UL
  187. // The driver was unable to contact the oscilloscope.
  188. #define PICO_INTERFACE_NOT_CONNECTED 0x0000004AUL
  189. // Resistance-measuring mode is not allowed in conjunction with the specified probe.
  190. #define PICO_RESISTANCE_AND_PROBE_NOT_ALLOWED 0x0000004BUL
  191. // The device was unexpectedly powered down.
  192. #define PICO_POWER_FAILED 0x0000004CUL
  193. // A problem occurred in <API>SetSigGenBuiltIn or <API>SetSigGenArbitrary.
  194. #define PICO_SIGGEN_WAVEFORM_SETUP_FAILED 0x0000004DUL
  195. // FPGA not successfully set up.
  196. #define PICO_FPGA_FAIL 0x0000004EUL
  197. #define PICO_POWER_MANAGER 0x0000004FUL
  198. // An impossible analog offset value was specified in <API>SetChannel.
  199. #define PICO_INVALID_ANALOGUE_OFFSET 0x00000050UL
  200. // There is an error within the device hardware.
  201. #define PICO_PLL_LOCK_FAILED 0x00000051UL
  202. // There is an error within the device hardware.
  203. #define PICO_ANALOG_BOARD 0x00000052UL
  204. // Unable to configure the signal generator.
  205. #define PICO_CONFIG_FAIL_AWG 0x00000053UL
  206. // The FPGA cannot be initialized, so unit cannot be opened.
  207. #define PICO_INITIALISE_FPGA 0x00000054UL
  208. // The frequency for the external clock is not within 15% of the nominal value.
  209. #define PICO_EXTERNAL_FREQUENCY_INVALID 0x00000056UL
  210. // The FPGA could not lock the clock signal.
  211. #define PICO_CLOCK_CHANGE_ERROR 0x00000057UL
  212. // You are trying to configure the AUX input as both a trigger and a reference clock.
  213. #define PICO_TRIGGER_AND_EXTERNAL_CLOCK_CLASH 0x00000058UL
  214. // You are trying to configure the AUX input as both a pulse width qualifier and a reference clock.
  215. #define PICO_PWQ_AND_EXTERNAL_CLOCK_CLASH 0x00000059UL
  216. // The requested scaling file cannot be opened.
  217. #define PICO_UNABLE_TO_OPEN_SCALING_FILE 0x0000005AUL
  218. // The frequency of the memory is reporting incorrectly.
  219. #define PICO_MEMORY_CLOCK_FREQUENCY 0x0000005BUL
  220. // The I2C that is being actioned is not responding to requests.
  221. #define PICO_I2C_NOT_RESPONDING 0x0000005CUL
  222. // There are no captures available and therefore no data can be returned.
  223. #define PICO_NO_CAPTURES_AVAILABLE 0x0000005DUL
  224. // The number of trigger channels is greater than 4,
  225. // except for a PicoScope 4824 where 8 channels are allowed for rising/falling/rising_or_falling trigger directions.
  226. #define PICO_TOO_MANY_TRIGGER_CHANNELS_IN_USE 0x0000005FUL
  227. // If you have specified a trigger direction which is not allowed, for example specifying PICO_ABOVE
  228. // without another condition which crosses a threshold on another channel.
  229. #define PICO_INVALID_TRIGGER_DIRECTION 0x00000060UL
  230. // When more than 4 trigger channels are set and their trigger condition states are not <API>_CONDITION_TRUE.
  231. #define PICO_INVALID_TRIGGER_STATES 0x00000061UL
  232. // The capture mode the device is currently running in does not support the current request.
  233. #define PICO_NOT_USED_IN_THIS_CAPTURE_MODE 0x0000005EUL
  234. #define PICO_GET_DATA_ACTIVE 0x00000103UL
  235. // Codes 104 to 10B are used by the PT104 (USB) when connected via the Network Socket.
  236. // The device is currently connected via the IP Network socket and thus the call made is not supported.
  237. #define PICO_IP_NETWORKED 0x00000104UL
  238. // An incorrect IP address has been passed to the driver.
  239. #define PICO_INVALID_IP_ADDRESS 0x00000105UL
  240. // The IP socket has failed.
  241. #define PICO_IPSOCKET_FAILED 0x00000106UL
  242. // The IP socket has timed out.
  243. #define PICO_IPSOCKET_TIMEDOUT 0x00000107UL
  244. // Failed to apply the requested settings.
  245. #define PICO_SETTINGS_FAILED 0x00000108UL
  246. // The network connection has failed.
  247. #define PICO_NETWORK_FAILED 0x00000109UL
  248. // Unable to load the WS2 DLL.
  249. #define PICO_WS2_32_DLL_NOT_LOADED 0x0000010AUL
  250. // The specified IP port is invalid.
  251. #define PICO_INVALID_IP_PORT 0x0000010BUL
  252. // The type of coupling requested is not supported on the opened device.
  253. #define PICO_COUPLING_NOT_SUPPORTED 0x0000010CUL
  254. // Bandwidth limiting is not supported on the opened device.
  255. #define PICO_BANDWIDTH_NOT_SUPPORTED 0x0000010DUL
  256. // The value requested for the bandwidth limit is out of range.
  257. #define PICO_INVALID_BANDWIDTH 0x0000010EUL
  258. // The arbitrary waveform generator is not supported by the opened device.
  259. #define PICO_AWG_NOT_SUPPORTED 0x0000010FUL
  260. // Data has been requested with ETS mode set but run block has not been called,
  261. // or stop has been called.
  262. #define PICO_ETS_NOT_RUNNING 0x00000110UL
  263. // White noise output is not supported on the opened device.
  264. #define PICO_SIG_GEN_WHITENOISE_NOT_SUPPORTED 0x00000111UL
  265. // The wave type requested is not supported by the opened device.
  266. #define PICO_SIG_GEN_WAVETYPE_NOT_SUPPORTED 0x00000112UL
  267. // The requested digital port number is out of range (MSOs only).
  268. #define PICO_INVALID_DIGITAL_PORT 0x00000113UL
  269. // The digital channel is not in the range <API>_DIGITAL_CHANNEL0 to
  270. // <API>_DIGITAL_CHANNEL15, the digital channels that are supported.
  271. #define PICO_INVALID_DIGITAL_CHANNEL 0x00000114UL
  272. // The digital trigger direction is not a valid trigger direction and should be equal
  273. // in value to one of the <API>_DIGITAL_DIRECTION enumerations.
  274. #define PICO_INVALID_DIGITAL_TRIGGER_DIRECTION 0x00000115UL
  275. // Signal generator does not generate pseudo-random binary sequence.
  276. #define PICO_SIG_GEN_PRBS_NOT_SUPPORTED 0x00000116UL
  277. // When a digital port is enabled, ETS sample mode is not available for use.
  278. #define PICO_ETS_NOT_AVAILABLE_WITH_LOGIC_CHANNELS 0x00000117UL
  279. // There has been no new sample taken, this value has already been returned previously.
  280. #define PICO_WARNING_REPEAT_VALUE 0x00000118UL
  281. // The DC power supply is connected.
  282. #define PICO_POWER_SUPPLY_CONNECTED 0x00000119UL
  283. // The DC power supply is not connected.
  284. // For many 4+ Channel devices this will mean a restricted feature set is offered e.g. for a 4 channel device - C and D are usually disabled.
  285. // Check the respective API programmers guide of your device for the full details.
  286. #define PICO_POWER_SUPPLY_NOT_CONNECTED 0x0000011AUL
  287. // Incorrect power mode passed for current power source.
  288. #define PICO_POWER_SUPPLY_REQUEST_INVALID 0x0000011BUL
  289. // The supply voltage from the USB source is too low.
  290. #define PICO_POWER_SUPPLY_UNDERVOLTAGE 0x0000011CUL
  291. // The oscilloscope is in the process of capturing data.
  292. #define PICO_CAPTURING_DATA 0x0000011DUL
  293. // A USB 3.0 device is connected to a non-USB 3.0 port.
  294. #define PICO_USB3_0_DEVICE_NON_USB3_0_PORT 0x0000011EUL
  295. // A function has been called that is not supported by the current device.
  296. #define PICO_NOT_SUPPORTED_BY_THIS_DEVICE 0x0000011FUL
  297. // The device resolution is invalid (out of range).
  298. #define PICO_INVALID_DEVICE_RESOLUTION 0x00000120UL
  299. // The number of channels that can be enabled is limited in 15 and 16-bit modes.
  300. // (Flexible Resolution Oscilloscopes only)
  301. #define PICO_INVALID_NUMBER_CHANNELS_FOR_RESOLUTION 0x00000121UL
  302. // USB power not sufficient for all requested channels.
  303. #define PICO_CHANNEL_DISABLED_DUE_TO_USB_POWERED 0x00000122UL
  304. // The signal generator does not have a configurable DC offset.
  305. #define PICO_SIGGEN_DC_VOLTAGE_NOT_CONFIGURABLE 0x00000123UL
  306. // An attempt has been made to define pre-trigger delay without first enabling a trigger.
  307. #define PICO_NO_TRIGGER_ENABLED_FOR_TRIGGER_IN_PRE_TRIG 0x00000124UL
  308. // An attempt has been made to define pre-trigger delay without first arming a trigger.
  309. #define PICO_TRIGGER_WITHIN_PRE_TRIG_NOT_ARMED 0x00000125UL
  310. // Pre-trigger delay and post-trigger delay cannot be used at the same time.
  311. #define PICO_TRIGGER_WITHIN_PRE_NOT_ALLOWED_WITH_DELAY 0x00000126UL
  312. // The array index points to a nonexistent trigger.
  313. #define PICO_TRIGGER_INDEX_UNAVAILABLE 0x00000127UL
  314. #define PICO_AWG_CLOCK_FREQUENCY 0x00000128UL
  315. // There are more than 4 analog channels with a trigger condition set.
  316. #define PICO_TOO_MANY_CHANNELS_IN_USE 0x00000129UL
  317. // The condition parameter is a null pointer.
  318. #define PICO_NULL_CONDITIONS 0x0000012AUL
  319. // There is more than one condition pertaining to the same channel.
  320. #define PICO_DUPLICATE_CONDITION_SOURCE 0x0000012BUL
  321. // The parameter relating to condition information is out of range.
  322. #define PICO_INVALID_CONDITION_INFO 0x0000012CUL
  323. // Reading the meta data has failed.
  324. #define PICO_SETTINGS_READ_FAILED 0x0000012DUL
  325. // Writing the meta data has failed.
  326. #define PICO_SETTINGS_WRITE_FAILED 0x0000012EUL
  327. // A parameter has a value out of the expected range.
  328. #define PICO_ARGUMENT_OUT_OF_RANGE 0x0000012FUL
  329. // The driver does not support the hardware variant connected.
  330. #define PICO_HARDWARE_VERSION_NOT_SUPPORTED 0x00000130UL
  331. // The driver does not support the digital hardware variant connected.
  332. #define PICO_DIGITAL_HARDWARE_VERSION_NOT_SUPPORTED 0x00000131UL
  333. // The driver does not support the analog hardware variant connected.
  334. #define PICO_ANALOGUE_HARDWARE_VERSION_NOT_SUPPORTED 0x00000132UL
  335. // Converting a channel's ADC value to resistance has failed.
  336. #define PICO_UNABLE_TO_CONVERT_TO_RESISTANCE 0x00000133UL
  337. // The channel is listed more than once in the function call.
  338. #define PICO_DUPLICATED_CHANNEL 0x00000134UL
  339. // The range cannot have resistance conversion applied.
  340. #define PICO_INVALID_RESISTANCE_CONVERSION 0x00000135UL
  341. // An invalid value is in the max buffer.
  342. #define PICO_INVALID_VALUE_IN_MAX_BUFFER 0x00000136UL
  343. // An invalid value is in the min buffer.
  344. #define PICO_INVALID_VALUE_IN_MIN_BUFFER 0x00000137UL
  345. // When calculating the frequency for phase conversion,
  346. // the frequency is greater than that supported by the current variant.
  347. #define PICO_SIGGEN_FREQUENCY_OUT_OF_RANGE 0x00000138UL
  348. // The device's EEPROM is corrupt. Contact Pico Technology support: https://www.picotech.com/tech-support.
  349. #define PICO_EEPROM2_CORRUPT 0x00000139UL
  350. // The EEPROM has failed.
  351. #define PICO_EEPROM2_FAIL 0x0000013AUL
  352. // The serial buffer is too small for the required information.
  353. #define PICO_SERIAL_BUFFER_TOO_SMALL 0x0000013BUL
  354. // The signal generator trigger and the external clock have both been set.
  355. // This is not allowed.
  356. #define PICO_SIGGEN_TRIGGER_AND_EXTERNAL_CLOCK_CLASH 0x0000013CUL
  357. // The AUX trigger was enabled and the external clock has been enabled,
  358. // so the AUX has been automatically disabled.
  359. #define PICO_WARNING_SIGGEN_AUXIO_TRIGGER_DISABLED 0x0000013DUL
  360. // The AUX I/O was set as a scope trigger and is now being set as a signal generator
  361. // gating trigger. This is not allowed.
  362. #define PICO_SIGGEN_GATING_AUXIO_NOT_AVAILABLE 0x00000013EUL
  363. // The AUX I/O was set by the signal generator as a gating trigger and is now being set
  364. // as a scope trigger. This is not allowed.
  365. #define PICO_SIGGEN_GATING_AUXIO_ENABLED 0x00000013FUL
  366. // A resource has failed to initialise.
  367. #define PICO_RESOURCE_ERROR 0x00000140UL
  368. // The temperature type is out of range.
  369. #define PICO_TEMPERATURE_TYPE_INVALID 0x000000141UL
  370. // A requested temperature type is not supported on this device.
  371. #define PICO_TEMPERATURE_TYPE_NOT_SUPPORTED 0x000000142UL
  372. // A read/write to the device has timed out.
  373. #define PICO_TIMEOUT 0x00000143UL
  374. // The device cannot be connected correctly.
  375. #define PICO_DEVICE_NOT_FUNCTIONING 0x00000144UL
  376. // The driver has experienced an unknown error and is unable to recover from this error.
  377. #define PICO_INTERNAL_ERROR 0x00000145UL
  378. // Used when opening units via IP and more than multiple units have the same IP address.
  379. #define PICO_MULTIPLE_DEVICES_FOUND 0x00000146UL
  380. #define PICO_WARNING_NUMBER_OF_SEGMENTS_REDUCED 0x00000147UL
  381. // The calibration pin states argument is out of range.
  382. #define PICO_CAL_PINS_STATES 0x00000148UL
  383. // The calibration pin frequency argument is out of range.
  384. #define PICO_CAL_PINS_FREQUENCY 0x00000149UL
  385. // The calibration pin amplitude argument is out of range.
  386. #define PICO_CAL_PINS_AMPLITUDE 0x0000014AUL
  387. // The calibration pin wavetype argument is out of range.
  388. #define PICO_CAL_PINS_WAVETYPE 0x0000014BUL
  389. // The calibration pin offset argument is out of range.
  390. #define PICO_CAL_PINS_OFFSET 0x0000014CUL
  391. // The probe's identity has a problem.
  392. #define PICO_PROBE_FAULT 0x0000014DUL
  393. // The probe has not been identified.
  394. #define PICO_PROBE_IDENTITY_UNKNOWN 0x0000014EUL
  395. // Enabling the probe would cause the device to exceed the allowable current limit.
  396. #define PICO_PROBE_POWER_DC_POWER_SUPPLY_REQUIRED 0x0000014FUL
  397. // The DC power supply is connected; enabling the probe would cause the device to exceed the
  398. // allowable current limit.
  399. #define PICO_PROBE_NOT_POWERED_WITH_DC_POWER_SUPPLY 0x00000150UL
  400. // Failed to complete probe configuration.
  401. #define PICO_PROBE_CONFIG_FAILURE 0x00000151UL
  402. // Failed to set the callback function, as currently in current callback function.
  403. #define PICO_PROBE_INTERACTION_CALLBACK 0x00000152UL
  404. // The probe has been verified but not known on this driver.
  405. #define PICO_UNKNOWN_INTELLIGENT_PROBE 0x00000153UL
  406. // The intelligent probe cannot be verified.
  407. #define PICO_INTELLIGENT_PROBE_CORRUPT 0x00000154UL
  408. // The callback is null, probe collection will only start when
  409. // first callback is a none null pointer.
  410. #define PICO_PROBE_COLLECTION_NOT_STARTED 0x00000155UL
  411. // The current drawn by the probe(s) has exceeded the allowed limit.
  412. #define PICO_PROBE_POWER_CONSUMPTION_EXCEEDED 0x00000156UL
  413. // The channel range limits have changed due to connecting or disconnecting a probe
  414. // the channel has been enabled.
  415. #define PICO_WARNING_PROBE_CHANNEL_OUT_OF_SYNC 0x00000157UL
  416. #define PICO_ENDPOINT_MISSING 0x00000158UL
  417. #define PICO_UNKNOWN_ENDPOINT_REQUEST 0x00000159UL
  418. // The ADC on board the device has not been correctly identified.
  419. #define PICO_ADC_TYPE_ERROR 0x0000015AUL
  420. #define PICO_FPGA2_FAILED 0x0000015BUL
  421. #define PICO_FPGA2_DEVICE_STATUS 0x0000015CUL
  422. #define PICO_ENABLE_PROGRAM_FPGA2_FAILED 0x0000015DUL
  423. #define PICO_NO_CHANNELS_OR_PORTS_ENABLED 0x0000015EUL
  424. #define PICO_INVALID_RATIO_MODE 0x0000015FUL
  425. #define PICO_READS_NOT_SUPPORTED_IN_CURRENT_CAPTURE_MODE 0x00000160UL
  426. // These selection tests can be masked together to show that mode than one read selection has failed the tests,
  427. // therefore theses error codes cover 0x00000161UL to 0x0000016FUL.
  428. #define PICO_TRIGGER_READ_SELECTION_CHECK_FAILED 0x00000161UL
  429. #define PICO_DATA_READ1_SELECTION_CHECK_FAILED 0x00000162UL
  430. #define PICO_DATA_READ2_SELECTION_CHECK_FAILED 0x00000164UL
  431. #define PICO_DATA_READ3_SELECTION_CHECK_FAILED 0x00000168UL
  432. // The requested read is not one of the reads available in enPicoReadSelection.
  433. #define PICO_READ_SELECTION_OUT_OF_RANGE 0x00000170UL
  434. // The downsample ratio options cannot be combined together for this request.
  435. #define PICO_MULTIPLE_RATIO_MODES 0x00000171UL
  436. // The enPicoReadSelection request has no samples available.
  437. #define PICO_NO_SAMPLES_READ 0x00000172UL
  438. // The enPicoReadSelection did not include one of the downsample ratios now requested.
  439. #define PICO_RATIO_MODE_NOT_REQUESTED 0x00000173UL
  440. // No read requests have been made.
  441. #define PICO_NO_USER_READ_REQUESTS_SET 0x00000174UL
  442. // The parameter for <number of values> cannot be zero.
  443. #define PICO_ZERO_SAMPLES_INVALID 0x00000175UL
  444. // The analog hardware cannot be identified; contact Pico Technology Technical Support.
  445. #define PICO_ANALOGUE_HARDWARE_MISSING 0x00000176UL
  446. // Setting of the analog hardware pins failed.
  447. #define PICO_ANALOGUE_HARDWARE_PINS 0x00000177UL
  448. // An SMPS fault has occurred.
  449. #define PICO_ANALOGUE_HARDWARE_SMPS_FAULT 0x00000178UL
  450. // There appears to be a conflict between the expected and actual hardware in the device; contact Pico Technology Technical Support.
  451. #define PICO_DIGITAL_ANALOGUE_HARDWARE_CONFLICT 0x00000179UL
  452. // One or more of the enPicoRatioMode requested do not have a data buffer set.
  453. #define PICO_RATIO_MODE_BUFFER_NOT_SET 0x0000017AUL
  454. // The resolution is valid but not supported by the opened device.
  455. #define PICO_RESOLUTION_NOT_SUPPORTED_BY_VARIANT 0x0000017BUL
  456. // The requested trigger threshold is out of range for the current device resolution.
  457. #define PICO_THRESHOLD_OUT_OF_RANGE 0x0000017CUL
  458. // The simple trigger only supports upper edge direction options.
  459. #define PICO_INVALID_SIMPLE_TRIGGER_DIRECTION 0x0000017DUL
  460. // The aux trigger is not supported on this variant.
  461. #define PICO_AUX_NOT_SUPPORTED 0x0000017EUL
  462. // The trigger directions pointer may not be null.
  463. #define PICO_NULL_DIRECTIONS 0x0000017FUL
  464. // The trigger channel properties pointer may not be null.
  465. #define PICO_NULL_CHANNEL_PROPERTIES 0x00000180UL
  466. // A trigger is set on a channel that has not been enabled.
  467. #define PICO_TRIGGER_CHANNEL_NOT_ENABLED 0x00000181UL
  468. // A trigger condition has been set but a trigger property not set.
  469. #define PICO_CONDITION_HAS_NO_TRIGGER_PROPERTY 0x00000182UL
  470. // When requesting trigger data, this option can only be combined with the segment header ratio mode flag.
  471. #define PICO_RATIO_MODE_TRIGGER_MASKING_INVALID 0x00000183UL
  472. // The trigger data buffer must be 40 or more samples in size.
  473. #define PICO_TRIGGER_DATA_REQUIRES_MIN_BUFFER_SIZE_OF_40_SAMPLES 0x00000184UL
  474. // The number of requested waveforms is greater than the number of memory segments allocated.
  475. #define PICO_NO_OF_CAPTURES_OUT_OF_RANGE 0x00000185UL
  476. // When requesting segment header information, the segment header does not require a data buffer,
  477. // to get the segment information use GetTriggerInfo.
  478. #define PICO_RATIO_MODE_SEGMENT_HEADER_DOES_NOT_REQUIRE_BUFFERS 0x00000186UL
  479. // Use GetTriggerInfo to retrieve the segment header information.
  480. #define PICO_FOR_SEGMENT_HEADER_USE_GETTRIGGERINFO 0x00000187UL
  481. // A read request has not been set.
  482. #define PICO_READ_NOT_SET 0x00000188UL
  483. // The expected and actual states of the ADCs do not match.
  484. #define PICO_ADC_SETTING_MISMATCH 0x00000189UL
  485. // The requested data type is not one of the enPicoDataType listed.
  486. #define PICO_DATATYPE_INVALID 0x0000018AUL
  487. // The down sample ratio mode requested does not support the enPicoDataType option chosen.
  488. #define PICO_RATIO_MODE_DOES_NOT_SUPPORT_DATATYPE 0x0000018BUL
  489. // The channel combination is not valid for the resolution.
  490. #define PICO_CHANNEL_COMBINATION_NOT_VALID_IN_THIS_RESOLUTION 0x0000018CUL
  491. #define PICO_USE_8BIT_RESOLUTION 0x0000018DUL
  492. // The buffer for minimum data values and maximum data values are the same buffers.
  493. #define PICO_AGGREGATE_BUFFERS_SAME_POINTER 0x0000018EUL
  494. // The read request number of samples requested for an overlapped operation are more
  495. // than the total number of samples to capture.
  496. #define PICO_OVERLAPPED_READ_VALUES_OUT_OF_RANGE 0x0000018FUL
  497. // The overlapped read request has more segments specified than segments allocated.
  498. #define PICO_OVERLAPPED_READ_SEGMENTS_OUT_OF_RANGE 0x00000190UL
  499. // The number of channel combinations available are greater than the array size received.
  500. #define PICO_CHANNELFLAGSCOMBINATIONS_ARRAY_SIZE_TOO_SMALL 0x00000191UL
  501. // The number of captures is larger than the maximum number of segments allowed for the device variant.
  502. #define PICO_CAPTURES_EXCEEDS_NO_OF_SUPPORTED_SEGMENTS 0x00000192UL
  503. // The time unit requested is not one of the listed enPicoTimeUnits.
  504. #define PICO_TIME_UNITS_OUT_OF_RANGE 0x00000193UL
  505. // The number of samples parameter may not be zero.
  506. #define PICO_NO_SAMPLES_REQUESTED 0x00000194UL
  507. // The action requested is not listed in enPicoAction.
  508. #define PICO_INVALID_ACTION 0x00000195UL
  509. // When adding buffers for the same read request the buffers for all ratio mode requests have to be the same size.
  510. #define PICO_NO_OF_SAMPLES_NEED_TO_BE_EQUAL_WHEN_ADDING_BUFFERS 0x00000196UL
  511. // The data is being processed but there is no empty data buffers available, a new data buffer needs to be set sent to the driver
  512. // so that the data can be processed.
  513. #define PICO_WAITING_FOR_DATA_BUFFERS 0x00000197UL
  514. // when streaming data, only one read option is available.
  515. #define PICO_STREAMING_ONLY_SUPPORTS_ONE_READ 0x00000198UL
  516. // A clear read request is not one of the enPicoAction listed.
  517. #define PICO_CLEAR_DATA_BUFFER_INVALID 0x00000199UL
  518. // The combination of action flags are not allowed.
  519. #define PICO_INVALID_ACTION_FLAGS_COMBINATION 0x0000019AUL
  520. // PICO_ADD request has been made but both data buffers are set to null and so there is nowhere to put the data.
  521. #define PICO_BOTH_MIN_AND_MAX_NULL_BUFFERS_CANNOT_BE_ADDED 0x0000019BUL
  522. // A conflict between the data buffers being set has occurred. Please use the PICO_CLEAR_ALL action to reset.
  523. #define PICO_CONFLICT_IN_SET_DATA_BUFFERS_CALL_REMOVE_DATA_BUFFER_TO_RESET 0x0000019CUL
  524. // While processing data, buffers cannot be removed from the data buffers list.
  525. #define PICO_REMOVING_DATA_BUFFER_ENTRIES_NOT_ALLOWED_WHILE_DATA_PROCESSING 0x0000019DUL
  526. // An USB request has failed.
  527. #define PICO_CYUSB_REQUEST_FAILED 0x00000200UL
  528. // A request has been made to retrieve the latest streaming data, but with either a null pointer or an array size set to zero.
  529. #define PICO_STREAMING_DATA_REQUIRED 0x00000201UL
  530. // A buffer being set has a length that is invalid (ie less than zero).
  531. #define PICO_INVALID_NUMBER_OF_SAMPLES 0x00000202UL
  532. // The distribution size may not be zero.
  533. #define PICO_INVALID_DISTRIBUTION 0x00000203UL
  534. // The buffer length in bytes is greater than a 4-byte word.
  535. #define PICO_BUFFER_LENGTH_GREATER_THAN_INT32_T 0x00000204UL
  536. // The PLL has failed.
  537. #define PICO_PLL_MUX_OUT_FAILED 0x00000209UL
  538. // Pulse width only supports one direction.
  539. #define PICO_ONE_PULSE_WIDTH_DIRECTION_ALLOWED 0x0000020AUL
  540. // There is no external trigger available on the device specified by the handle.
  541. #define PICO_EXTERNAL_TRIGGER_NOT_SUPPORTED 0x0000020BUL
  542. // The condition parameter is a null pointer.
  543. #define PICO_NO_TRIGGER_CONDITIONS_SET 0x0000020CUL
  544. // The number of trigger channel properties it outside the allowed range (is less than zero).
  545. #define PICO_NO_OF_CHANNEL_TRIGGER_PROPERTIES_OUT_OF_RANGE 0x0000020DUL
  546. // A probe has been plugged into a channel, but can not be identified correctly.
  547. #define PICO_PROBE_COMPONENT_ERROR 0x0000020EUL
  548. // The probe is incompatible with the device channel it is connected to. This could lead to error in the measurements.
  549. #define PICO_INCOMPATIBLE_PROBE 0x0000020FUL
  550. // The requested channel for ETS triggering is not supported.
  551. #define PICO_INVALID_TRIGGER_CHANNEL_FOR_ETS 0x00000210UL
  552. // While the device is streaming the get values method is not available
  553. #define PICO_NOT_AVAILABLE_WHEN_STREAMING_IS_RUNNING 0x00000211UL
  554. // the requested state is not one of the enSharedTriggerWithinPreTrigger values
  555. #define PICO_INVALID_TRIGGER_WITHIN_PRE_TRIGGER_STATE 0x00000212UL
  556. // the number of captures have to be greater than zero
  557. #define PICO_ZERO_NUMBER_OF_CAPTURES_INVALID 0x00000213UL
  558. // the quantifier for a pointer, defining the length in bytes is invalid
  559. #define PICO_INVALID_LENGTH 0x00000214UL
  560. // the trigger delay is greater than supported by the hardware
  561. #define PICO_TRIGGER_DELAY_OUT_OF_RANGE 0x00000300UL
  562. // the requested threshold direction is not allowed with the specified channel
  563. #define PICO_INVALID_THRESHOLD_DIRECTION 0x00000301UL
  564. // the requested threshold mode is not allowed with the specified channel
  565. #define PICO_INVALID_THRESHOLD_MODE 0x00000302UL
  566. // The timebase is not supported or is invalid.
  567. #define PICO_TIMEBASE_NOT_SUPPORTED_BY_RESOLUTION 0x00000303UL
  568. // The device variant is not supported by this current driver.
  569. #define PICO_INVALID_VARIANT 0x00001000UL
  570. // The actual memory module does not match the expected memory module.
  571. #define PICO_MEMORY_MODULE_ERROR 0x00001001UL
  572. // A null pointer has been passed in the trigger function or one of the parameters is out of range.
  573. #define PICO_PULSE_WIDTH_QUALIFIER_LOWER_UPPER_CONFILCT 0x00002000UL
  574. // The pulse width qualifier type is not one of the listed options.
  575. #define PICO_PULSE_WIDTH_QUALIFIER_TYPE 0x00002001UL
  576. // The pulse width qualifier direction is not one of the listed options.
  577. #define PICO_PULSE_WIDTH_QUALIFIER_DIRECTION 0x00002002UL
  578. // The threshold range is not one of the listed options.
  579. #define PICO_THRESHOLD_MODE_OUT_OF_RANGE 0x00002003UL
  580. // The trigger direction and pulse width option conflict with each other.
  581. #define PICO_TRIGGER_AND_PULSEWIDTH_DIRECTION_IN_CONFLICT 0x00002004UL
  582. // The thresholds upper limits and thresholds lower limits conflict with each other.
  583. #define PICO_THRESHOLD_UPPER_LOWER_MISMATCH 0x00002005UL
  584. // The pulse width lower count is out of range.
  585. #define PICO_PULSE_WIDTH_LOWER_OUT_OF_RANGE 0x00002006UL
  586. // The pulse width upper count is out of range.
  587. #define PICO_PULSE_WIDTH_UPPER_OUT_OF_RANGE 0x00002007UL
  588. // The devices front panel has caused an error.
  589. #define PICO_FRONT_PANEL_ERROR 0x00002008UL
  590. // The actual and expected mode of the front panel do not match.
  591. #define PICO_FRONT_PANEL_MODE 0x0000200BUL
  592. // A front panel feature is not available or failed to configure.
  593. #define PICO_FRONT_PANEL_FEATURE 0x0000200CUL
  594. // When setting the pulse width conditions either the pointer is null or the number of conditions is set to zero.
  595. #define PICO_NO_PULSE_WIDTH_CONDITIONS_SET 0x0000200DUL
  596. // a trigger condition exists for a port, but the port has not been enabled
  597. #define PICO_TRIGGER_PORT_NOT_ENABLED 0x0000200EUL
  598. // a trigger condition exists for a port, but no digital channel directions have been set
  599. #define PICO_DIGITAL_DIRECTION_NOT_SET 0x0000200FUL
  600. #define PICO_I2C_DEVICE_INVALID_READ_COMMAND 0x00002010UL
  601. #define PICO_I2C_DEVICE_INVALID_RESPONSE 0x00002011UL
  602. #define PICO_I2C_DEVICE_INVALID_WRITE_COMMAND 0x00002012UL
  603. #define PICO_I2C_DEVICE_ARGUMENT_OUT_OF_RANGE 0x00002013UL
  604. // The actual and expected mode do not match.
  605. #define PICO_I2C_DEVICE_MODE 0x00002014UL
  606. // While trying to configure the device, set up failed.
  607. #define PICO_I2C_DEVICE_SETUP_FAILED 0x00002015UL
  608. // A feature is not available or failed to configure.
  609. #define PICO_I2C_DEVICE_FEATURE 0x00002016UL
  610. // The device did not pass the validation checks.
  611. #define PICO_I2C_DEVICE_VALIDATION_FAILED 0x00002017UL
  612. #define PICO_INTERNAL_HEADER_ERROR 0x00002018UL
  613. // The device couldn't write the channel settings due to a hardware fault
  614. #define PICO_FAILED_TO_WRITE_HARDWARE_FAULT 0x00002019UL
  615. // The number of MSO's edge transitions being set is not supported by this device (RISING, FALLING, or RISING_OR_FALLING).
  616. #define PICO_MSO_TOO_MANY_EDGE_TRANSITIONS_WHEN_USING_PULSE_WIDTH 0x00003000UL
  617. // A probe LED position requested is not one of the available probe positions in the ProbeLedPosition enum.
  618. #define PICO_INVALID_PROBE_LED_POSITION 0x00003001UL
  619. // The LED position is not supported by the selected variant.
  620. #define PICO_PROBE_LED_POSITION_NOT_SUPPORTED 0x00003002UL
  621. // A channel has more than one of the same LED position in the ProbeChannelLedSetting struct.
  622. #define PICO_DUPLICATE_PROBE_CHANNEL_LED_POSITION 0x00003003UL
  623. // Setting the probes LED has failed.
  624. #define PICO_PROBE_LED_FAILURE 0x00003004UL
  625. // Probe is not supported by the selected variant.
  626. #define PICO_PROBE_NOT_SUPPORTED_BY_THIS_DEVICE 0x00003005UL
  627. // The probe name is not in the list of enPicoConnectProbe enums.
  628. #define PICO_INVALID_PROBE_NAME 0x00003006UL
  629. // The number of colour settings are zero or a null pointer passed to the function.
  630. #define PICO_NO_PROBE_COLOUR_SETTINGS 0x00003007UL
  631. // Channel has no probe connected to it.
  632. #define PICO_NO_PROBE_CONNECTED_ON_REQUESTED_CHANNEL 0x00003008UL
  633. // Connected probe does not require calibration.
  634. #define PICO_PROBE_DOES_NOT_REQUIRE_CALIBRATION 0x00003009UL
  635. // Connected probe could not be calibrated - hardware fault is a possible cause.
  636. #define PICO_PROBE_CALIBRATION_FAILED 0x0000300AUL
  637. // A probe has been connected, but the version is not recognised.
  638. #define PICO_PROBE_VERSION_ERROR 0x0000300BUL
  639. // The channel with the frequency counter enabled has a probe connected that does not support this feature
  640. #define PICO_PROBE_DOES_NOT_SUPPORT_FREQUENCY_COUNTER 0x0000300CUL
  641. // The requested trigger time is to long for the selected variant.
  642. #define PICO_AUTO_TRIGGER_TIME_TOO_LONG 0x00004000UL
  643. // The MSO pod did not pass the validation checks.
  644. #define PICO_MSO_POD_VALIDATION_FAILED 0x00005000UL
  645. // No MSO pod found on the requested digital port.
  646. #define PICO_NO_MSO_POD_CONNECTED 0x00005001UL
  647. // the digital port enum value is not in the enPicoDigitalPortHysteresis declaration
  648. #define PICO_DIGITAL_PORT_HYSTERESIS_OUT_OF_RANGE 0x00005002UL
  649. #define PICO_MSO_POD_FAILED_UNIT 0x00005003UL
  650. // The device's EEPROM is corrupt. Contact Pico Technology support: https://www.picotech.com/tech-support.
  651. #define PICO_ATTENUATION_FAILED 0x00005004UL
  652. // a channel set to the 50Ohm Path has Tripped due to the input signal
  653. #define PICO_DC_50OHM_OVERVOLTAGE_TRIPPED 0x00005005UL
  654. // The MSO pod over current protection activated, unplug and replug the MSO pod
  655. #define PICO_MSO_OVER_CURRENT_TRIPPED 0x00005006UL
  656. // Status error for when the device has overheated.
  657. #define PICO_NOT_RESPONDING_OVERHEATED 0x00005010UL
  658. // waiting for the device to capture timed out
  659. #define PICO_HARDWARE_CAPTURE_TIMEOUT 0x00006000UL
  660. // waiting for the device be ready for capture timed out
  661. #define PICO_HARDWARE_READY_TIMEOUT 0x00006001UL
  662. // the driver is performing a capture requested by RunStreaming or RunBlock
  663. // to interrupt this capture call Stop on the device first
  664. #define PICO_HARDWARE_CAPTURING_CALL_STOP 0x00006002UL
  665. // the number of samples is less than the minimum number allowed
  666. #define PICO_TOO_FEW_REQUESTED_STREAMING_SAMPLES 0x00007000UL
  667. // a streaming capture has been made but re-reading the data is not allowed
  668. #define PICO_STREAMING_REREAD_DATA_NOT_AVAILABLE 0x00007001UL
  669. // When requesting data only Raw and one of the following aggregation data types allowed
  670. // - PICO_RATIO_MODE_AGGREGATE (Min Max),
  671. // PICO_RATIO_MODE_DECIMATE,
  672. // PICO_RATIO_MODE_AVERAGE and/or PICO_RATIO_MODE_SUM,
  673. // PICO_RATIO_MODE_DISTRIBUTION
  674. //
  675. // average and sum are classed as one aggregation type
  676. #define PICO_STREAMING_COMBINATION_OF_RAW_DATA_AND_ONE_AGGREGATION_DATA_TYPE_ALLOWED 0x00007002UL
  677. // The time stamp per waveform segment has been reset.
  678. #define PICO_DEVICE_TIME_STAMP_RESET 0x01000000UL
  679. // When requesting the TriggerTimeOffset the trigger time has not been set.
  680. #define PICO_TRIGGER_TIME_NOT_REQUESTED 0x02000001UL
  681. // Trigger time buffer not set.
  682. #define PICO_TRIGGER_TIME_BUFFER_NOT_SET 0x02000002UL
  683. // The trigger time failed to be calculated.
  684. #define PICO_TRIGGER_TIME_FAILED_TO_CALCULATE 0x02000004UL
  685. // The trigger time failed to be calculated.
  686. #define PICO_TRIGGER_WITHIN_A_PRE_TRIGGER_FAILED_TO_CALCULATE 0x02000008UL
  687. // The trigger time stamp was not requested.
  688. #define PICO_TRIGGER_TIME_STAMP_NOT_REQUESTED 0x02000100UL
  689. // RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION cannot have a buffer set
  690. #define PICO_RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION_DOES_NOT_REQUIRE_BUFFERS 0x02200000UL
  691. // it is not possible to set a buffer for RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION therefore
  692. // information is not available pertaining to samples
  693. #define PICO_RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION_DOES_NOT_HAVE_BUFFERS 0x02200001UL
  694. // to get the trigger time use either GetTriggerInfo or GetTriggerTimeOffset api calls
  695. #define PICO_RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION_USE_GETTRIGGERINFO 0x02200002UL
  696. // PICO_RATIO_MDOE_TRIGGER and RATIO_MODE_TRIGGER_DATA_FOR_TIME_CALCULATION is not supported in streaming capture
  697. #define PICO_STREAMING_DOES_NOT_SUPPORT_TRIGGER_RATIO_MODES 0x02200003UL
  698. // only the PICO_TRIGGER_READ may be used to read PICO_RATIO_MODE_TRIGGER, and PICO_RATIO_MODE_TRIGGER_FOR_CALCULATION
  699. #define PICO_USE_THE_TRIGGER_READ 0x02200004UL
  700. // one of the PICO_DATA_READs should be used to read:
  701. // PICO_RATIO_MODE_RAW
  702. // PICO_RATIO_MODE_AGGREGATE
  703. // PICO_RATIO_MODE_DECIMATE
  704. // PICO_RATIO_MODE_AVERAGE
  705. #define PICO_USE_A_DATA_READ 0x02200005UL
  706. // trigger data always requires a PICO_INT16_T data type
  707. #define PICO_TRIGGER_READ_REQUIRES_INT16_T_DATA_TYPE 0x02200006UL
  708. // a ratio mode passed to the API call requires the number of samples to be greater than zero
  709. #define PICO_RATIO_MODE_REQUIRES_NUMBER_OF_SAMPLES_TO_BE_SET 0x02200007UL
  710. // Attempted to set up the signal generator with an inconsistent configuration.
  711. #define PICO_SIGGEN_SETTINGS_MISMATCH 0x03000010UL
  712. // The signal generator has been partially reconfigured and the new settings must be applied before it can be paused or restarted.
  713. #define PICO_SIGGEN_SETTINGS_CHANGED_CALL_APPLY 0x03000011UL
  714. // The wave type is not listed in enPicoWaveType.
  715. #define PICO_SIGGEN_WAVETYPE_NOT_SUPPORTED 0x03000012UL
  716. // The trigger type is not listed in enSigGenTrigType.
  717. #define PICO_SIGGEN_TRIGGERTYPE_NOT_SUPPORTED 0x03000013UL
  718. // The trigger source is not listed in enSigGenTrigSource.
  719. #define PICO_SIGGEN_TRIGGERSOURCE_NOT_SUPPORTED 0x03000014UL
  720. // The filter state is not listed in enPicoSigGenFilterState.
  721. #define PICO_SIGGEN_FILTER_STATE_NOT_SUPPORTED 0x03000015UL
  722. // The arbitrary waveform buffer is a null pointer.
  723. #define PICO_SIGGEN_NULL_PARAMETER 0x03000020UL
  724. // The arbitrary waveform buffer length is zero.
  725. #define PICO_SIGGEN_EMPTY_BUFFER_SUPPLIED 0x03000021UL
  726. // The sig gen voltage offset and peak to peak have not been set.
  727. #define PICO_SIGGEN_RANGE_NOT_SUPPLIED 0x03000022UL
  728. // The sig gen arbitrary waveform buffer not been set.
  729. #define PICO_SIGGEN_BUFFER_NOT_SUPPLIED 0x03000023UL
  730. // The sig gen frequency have not been set.
  731. #define PICO_SIGGEN_FREQUENCY_NOT_SUPPLIED 0x03000024UL
  732. // The sig gen sweep information has not been set.
  733. #define PICO_SIGGEN_SWEEP_INFO_NOT_SUPPLIED 0x03000025UL
  734. // The sig gen trigger information has not been set.
  735. #define PICO_SIGGEN_TRIGGER_INFO_NOT_SUPPLIED 0x03000026UL
  736. // The sig gen clock frequency have not been set.
  737. #define PICO_SIGGEN_CLOCK_FREQ_NOT_SUPPLIED 0x03000027UL
  738. // The sig gen arbitrary waveform buffer length is too long.
  739. #define PICO_SIGGEN_TOO_MANY_SAMPLES 0x03000030UL
  740. // The duty cycle value is out of range.
  741. #define PICO_SIGGEN_DUTYCYCLE_OUT_OF_RANGE 0x03000031UL
  742. // The number of cycles is out of range.
  743. #define PICO_SIGGEN_CYCLES_OUT_OF_RANGE 0x03000032UL
  744. // The pre-scaler is out of range.
  745. #define PICO_SIGGEN_PRESCALE_OUT_OF_RANGE 0x03000033UL
  746. // The sweep type is not listed in enPicoSweepType.
  747. #define PICO_SIGGEN_SWEEPTYPE_INVALID 0x03000034UL
  748. // A mismatch has occurred while checking the sweeps wave type.
  749. #define PICO_SIGGEN_SWEEP_WAVETYPE_MISMATCH 0x03000035UL
  750. // The sweeps or shots and trigger type are not valid when combined together.
  751. #define PICO_SIGGEN_INVALID_SWEEP_PARAMETERS 0x03000036UL
  752. // The sweep and prescaler are not valid when combined together.
  753. #define PICO_SIGGEN_SWEEP_PRESCALE_NOT_SUPPORTED 0x03000037UL
  754. // The potential applied to the AWG output exceeds the maximum voltage range of the AWG.
  755. #define PICO_AWG_OVER_VOLTAGE_RANGE 0x03000038UL
  756. // The reference signal cannot be locked to.
  757. #define PICO_NOT_LOCKED_TO_REFERENCE_FREQUENCY 0x03000039UL
  758. // (Linux only.) udev rules are incorrectly configured. The user does
  759. // not have read/write permissions on the device's file descriptor.
  760. #define PICO_PERMISSIONS_ERROR 0x03000040UL
  761. // The digital ports without analog channels are only allowed in 8-bit resolution.
  762. #define PICO_PORTS_WITHOUT_ANALOGUE_CHANNELS_ONLY_ALLOWED_IN_8BIT_RESOLUTION 0x03001000UL
  763. #define PICO_ANALOGUE_FRONTEND_MISSING 0x03003001UL
  764. #define PICO_FRONT_PANEL_MISSING 0x03003002UL
  765. #define PICO_ANALOGUE_FRONTEND_AND_FRONT_PANEL_MISSING 0x03003003UL
  766. // The digital board has reported an error to the driver
  767. #define PICO_DIGITAL_BOARD_HARDWARE_ERROR 0x03003800UL
  768. // checking if the firmware needs updating the updateRequired parameter is null
  769. #define PICO_FIRMWARE_UPDATE_REQUIRED_TO_USE_DEVICE_WITH_THIS_DRIVER 0x03004000UL
  770. #define PICO_UPDATE_REQUIRED_NULL 0x03004001UL
  771. #define PICO_FIRMWARE_UP_TO_DATE 0x03004002UL
  772. #define PICO_FLASH_FAIL 0x03004003UL
  773. #define PICO_INTERNAL_ERROR_FIRMWARE_LENGTH_INVALID 0x03004004UL
  774. #define PICO_INTERNAL_ERROR_FIRMWARE_NULL 0x03004005UL
  775. #define PICO_FIRMWARE_FAILED_TO_BE_CHANGED 0x03004006UL
  776. #define PICO_FIRMWARE_FAILED_TO_RELOAD 0x03004007UL
  777. #define PICO_FIRMWARE_FAILED_TO_BE_UPDATE 0x03004008UL
  778. #define PICO_FIRMWARE_VERSION_OUT_OF_RANGE 0x03004009UL
  779. #define PICO_OPTIONAL_BOOTLOADER_UPDATE_AVAILABLE_WITH_THIS_DRIVER 0x03005000UL
  780. #define PICO_BOOTLOADER_VERSION_NOT_AVAILABLE 0x03005001UL
  781. #define PICO_NO_APPS_AVAILABLE 0x03008000UL
  782. #define PICO_UNSUPPORTED_APP 0x03008001UL
  783. // the adc is powered down when trying to capture data
  784. #define PICO_ADC_POWERED_DOWN 0x03002000UL
  785. // An internal error has occurred and a watchdog timer has been called.
  786. #define PICO_WATCHDOGTIMER 0x10000000UL
  787. // The picoipp.dll has not been found.
  788. #define PICO_IPP_NOT_FOUND 0x10000001UL
  789. // A function in the picoipp.dll does not exist.
  790. #define PICO_IPP_NO_FUNCTION 0x10000002UL
  791. // The Pico IPP call has failed.
  792. #define PICO_IPP_ERROR 0x10000003UL
  793. // Shadow calibration is not available on this device.
  794. #define PICO_SHADOW_CAL_NOT_AVAILABLE 0x10000004UL
  795. // Shadow calibration is currently disabled.
  796. #define PICO_SHADOW_CAL_DISABLED 0x10000005UL
  797. // Shadow calibration error has occurred.
  798. #define PICO_SHADOW_CAL_ERROR 0x10000006UL
  799. // The shadow calibration is corrupt.
  800. #define PICO_SHADOW_CAL_CORRUPT 0x10000007UL
  801. // The memory on board the device has overflowed.
  802. #define PICO_DEVICE_MEMORY_OVERFLOW 0x10000008UL
  803. //The device Adc test failed.
  804. #define PICO_ADC_TEST_FAILURE 0x10000010UL
  805. #define PICO_RESERVED_1 0x11000000UL
  806. // The PicoSource device is not ready to accept instructions.
  807. #define PICO_SOURCE_NOT_READY 0x20000000UL
  808. #define PICO_SOURCE_INVALID_BAUD_RATE 0x20000001UL
  809. #define PICO_SOURCE_NOT_OPENED_FOR_WRITE 0x20000002UL
  810. #define PICO_SOURCE_FAILED_TO_WRITE_DEVICE 0x20000003UL
  811. #define PICO_SOURCE_EEPROM_FAIL 0x20000004UL
  812. #define PICO_SOURCE_EEPROM_NOT_PRESENT 0x20000005UL
  813. #define PICO_SOURCE_EEPROM_NOT_PROGRAMMED 0x20000006UL
  814. #define PICO_SOURCE_LIST_NOT_READY 0x20000007UL
  815. #define PICO_SOURCE_FTD2XX_NOT_FOUND 0x20000008UL
  816. #define PICO_SOURCE_FTD2XX_NO_FUNCTION 0x20000009UL
  817. typedef uint32_t PICO_STATUS;
  818. typedef enum enPicoStringValue
  819. {
  820. PICO_SV_MEMORY,
  821. PICO_SV_MEMORY_NO_OF_SEGMENTS,
  822. PICO_SV_MEMORY_MAX_SAMPLES,
  823. PICO_SV_NO_OF_CHANNELS,
  824. PICO_SV_ARRAY_OF_CHANNELS,
  825. PICO_SV_CHANNEL,
  826. PICO_SV_CHANNEL_NAME,
  827. PICO_SV_CHANNEL_RANGE,
  828. PICO_SV_CHANNEL_COUPLING,
  829. PICO_SV_CHANNEL_ENABLED,
  830. PICO_SV_CHANNEL_ANALOGUE_OFFSET,
  831. PICO_SV_CHANNEL_FILTER,
  832. PICO_SV_TRIGGER,
  833. PICO_SV_TRIGGER_AUXIO_OUTPUT_ENABLED,
  834. PICO_SV_TRIGGER_AUTO_TRIGGER_MICROSECONDS,
  835. PICO_SV_TRIGGER_PROPERTIES,
  836. PICO_SV_NO_OF_TRIGGER_PROPERTIES,
  837. PICO_SV_TRIGGER_PROPERTIES_CHANNEL,
  838. PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_UPPER,
  839. PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_UPPER_HYSTERESIS,
  840. PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_LOWER,
  841. PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_LOWER_HYSTERESIS,
  842. PICO_SV_TRIGGER_PROPERTIES_THRESHOLD_MODE,
  843. PICO_SV_TRIGGER_ARRAY_OF_BLOCK_CONDITIONS,
  844. PICO_SV_TRIGGER_NO_OF_BLOCK_CONDITIONS,
  845. PICO_SV_TRIGGER_CONDITIONS,
  846. PICO_SV_TRIGGER_NO_OF_CONDITIONS,
  847. PICO_SV_TRIGGER_CONDITION_SOURCE,
  848. PICO_SV_TRIGGER_CONDITION_STATE,
  849. PICO_SV_TRIGGER_DIRECTION,
  850. PICO_SV_TRIGGER_NO_OF_DIRECTIONS,
  851. PICO_SV_TRIGGER_DIRECTION_CHANNEL,
  852. PICO_SV_TRIGGER_DIRECTION_DIRECTION,
  853. PICO_SV_TRIGGER_DELAY,
  854. PICO_SV_TRIGGER_DELAY_MS,
  855. PICO_SV_FREQUENCY_COUNTER,
  856. PICO_SV_FREQUENCY_COUNTER_ENABLED,
  857. PICO_SV_FREQUENCY_COUNTER_CHANNEL,
  858. PICO_SV_FREQUENCY_COUNTER_RANGE,
  859. PICO_SV_FREQUENCY_COUNTER_TRESHOLDMAJOR,
  860. PICO_SV_FREQUENCY_COUNTER_TRESHOLDMINOR,
  861. PICO_SV_PULSE_WIDTH_PROPERTIES,
  862. PICO_SV_PULSE_WIDTH_PROPERTIES_DIRECTION,
  863. PICO_SV_PULSE_WIDTH_PROPERTIES_LOWER,
  864. PICO_SV_PULSE_WIDTH_PROPERTIES_UPPER,
  865. PICO_SV_PULSE_WIDTH_PROPERTIES_TYPE,
  866. PICO_SV_PULSE_WIDTH_ARRAY_OF_BLOCK_CONDITIONS,
  867. PICO_SV_PULSE_WIDTH_NO_OF_BLOCK_CONDITIONS,
  868. PICO_SV_PULSE_WIDTH_CONDITIONS,
  869. PICO_SV_PULSE_WIDTH_NO_OF_CONDITIONS,
  870. PICO_SV_PULSE_WIDTH_CONDITIONS_SOURCE,
  871. PICO_SV_PULSE_WIDTH_CONDITIONS_STATE,
  872. PICO_SV_SAMPLE_PROPERTIES,
  873. PICO_SV_SAMPLE_PROPERTIES_PRE_TRIGGER_SAMPLES,
  874. PICO_SV_SAMPLE_PROPERTIES_POST_TRIGGER_SAMPLES,
  875. PICO_SV_SAMPLE_PROPERTIES_TIMEBASE,
  876. PICO_SV_SAMPLE_PROPERTIES_NO_OF_CAPTURES,
  877. PICO_SV_SAMPLE_PROPERTIES_RESOLUTION,
  878. PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED,
  879. PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_DOWN_SAMPLE_RATIO,
  880. PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_DOWN_SAMPLE_RATIO_MODE,
  881. PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_REQUERSTED_NO_OF_SAMPLES,
  882. PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_SEGMENT_INDEX_FROM,
  883. PICO_SV_SAMPLE_PROPERTIES_OVERLAPPED_SEGMENT_INDEX_TO,
  884. PICO_SV_SIGNAL_GENERATOR,
  885. PICO_SV_SIGNAL_GENERATOR_BUILT_IN,
  886. PICO_SV_SIGNAL_GENERATOR_BUILT_IN_WAVE_TYPE,
  887. PICO_SV_SIGNAL_GENERATOR_BUILT_IN_START_FREQUENCY,
  888. PICO_SV_SIGNAL_GENERATOR_BUILT_IN_STOP_FREQUENCY,
  889. PICO_SV_SIGNAL_GENERATOR_BUILT_IN_INCREMENT,
  890. PICO_SV_SIGNAL_GENERATOR_BUILT_IN_DWELL_TIME,
  891. PICO_SV_SIGNAL_GENERATOR_AWG,
  892. PICO_SV_SIGNAL_GENERATOR_AWG_START_DELTA_PHASE,
  893. PICO_SV_SIGNAL_GENERATOR_AWG_STOP_DELTA_PHASE,
  894. PICO_SV_SIGNAL_GENERATOR_AWG_DELTA_PHASE_INCREMENT,
  895. PICO_SV_SIGNAL_GENERATOR_AWG_DWELL_COUNT,
  896. PICO_SV_SIGNAL_GENERATOR_AWG_INDEX_MODE,
  897. PICO_SV_SIGNAL_GENERATOR_AWG_WAVEFORM_SIZE,
  898. PICO_SV_SIGNAL_GENERATOR_ARRAY_OF_AWG_WAVEFORM_VALUES,
  899. PICO_SV_SIGNAL_GENERATOR_OFFSET_VOLTAGE,
  900. PICO_SV_SIGNAL_GENERATOR_PK_TO_PK,
  901. PICO_SV_SIGNAL_GENERATOR_OPERATION,
  902. PICO_SV_SIGNAL_GENERATOR_SHOTS,
  903. PICO_SV_SIGNAL_GENERATOR_SWEEPS,
  904. PICO_SV_SIGNAL_GENERATOR_SWEEP_TYPE,
  905. PICO_SV_SIGNAL_GENERATOR_TRIGGER_TYPE,
  906. PICO_SV_SIGNAL_GENERATOR_TRIGGER_SOURCE,
  907. PICO_SV_SIGNAL_GENERATOR_EXT_IN_THRESHOLD,
  908. PICO_SV_ETS,
  909. PICO_SV_ETS_STATE,
  910. PICO_SV_ETS_CYCLE,
  911. PICO_SV_ETS_INTERLEAVE,
  912. PICO_SV_ETS_SAMPLE_TIME_PICOSECONDS
  913. } PICO_STRING_VALUE;
  914. #endif