PDM-IR SDK  3.1.8
PDM-IR_SDK
PDM-IR_SDK.h
Go to the documentation of this file.
1 /*
2 #######################################
3 
4 Copyright 2017 Micro-Photon-Devices s.r.l.
5 
6 SOFTWARE PRODUCT: PDM-IR_SDK
7 
8 Micro-Photon-Devices (MPD) expressly disclaims any warranty for the SOFTWARE PRODUCT.
9 The SOFTWARE PRODUCT is provided 'As Is' without any express or implied warranty of any kind,
10 including but not limited to any warranties of merchantability, noninfringement, or
11 fitness of a particular purpose. MPD does not warrant or assume responsibility for the
12 accuracy or completeness of any information, text, graphics, links or other items contained
13 within the SOFTWARE PRODUCT. MPD further expressly disclaims any warranty or representation
14 to Authorized Users or to any third party.
15 In no event shall MPD be liable for any damages (including, without limitation, lost profits,
16 business interruption, or lost information) rising out of 'Authorized Users' use of or inability
17 to use the SOFTWARE PRODUCT, even if MPD has been advised of the possibility of such damages.
18 In no event will MPD be liable for loss of data or for indirect, special, incidental,
19 consequential (including lost profit), or other damages based in contract, tort
20 or otherwise. MPD shall have no liability with respect to the content of the
21 SOFTWARE PRODUCT or any part thereof, including but not limited to errors or omissions contained
22 therein, libel, infringements of rights of publicity, privacy, trademark rights, business
23 interruption, personal injury, loss of privacy, moral rights or the disclosure of confidential
24 information.
25 
26 #######################################
27 */
28 #ifndef __PDM_IR_SDK_h__
29 #define __PDM_IR_SDK_h__
30 
31 
32 #pragma once
33 
34 #define WIN32_LEAN_AND_MEAN
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
62 #ifndef DllSDKExport
63  #if defined(_WIN32)
64  #ifdef PDM_IR_DLL_EXPORTS
65  #define DllSDKExport __declspec(dllexport)
66  #else
67  #ifndef PDM_IR_STATIC_LIBRARY
68  #define DllSDKExport __declspec(dllimport)
69  #else
70  #define DllSDKExport
71  #endif
72  #endif
73  #else
74  #define DllSDKExport __attribute__ ((visibility("default")))
75  #endif
76 #endif
77 
83 
84 
85 typedef unsigned char UINT8;
86 typedef signed char INT8;
88 typedef signed short INT16;
89 typedef unsigned short UINT16;
91 typedef unsigned int UINT32;
92 typedef signed int INT32;
97 typedef enum {
103 } RESULT;
104 
108 typedef enum {
109  THIGH = 0,
110  TMEDIUM = 1,
111  TLOW = 2,
112  TLOWEST = 3
113 } TEMP_VALUES;
114 
118 typedef enum {
121 } HOLDOFFTYPE;
122 
127 typedef enum {
130 } GATEMODE;
131 
135 typedef enum {
139 } GATESHAPE;
140 
144 typedef enum {
145  TREDGE_LH = 0,
146  TREDGE_HL = 1,
147 } TREDGE;
148 
153 typedef enum {
155  In_OR_Aux = 1,
166  In_NAND_Aux = 12,
167  In_NOR_Aux = 13,
168  In_XNOR_Aux = 14,
178  only_notIN = 24,
179  only_IN = 25
180 } TRFUNCT;
181 
185 typedef enum {
192 } OUTMODE;
193 
197 typedef enum {
201 } COUNTERSTATUS;
202 
206 typedef enum {
207  TYPE_1 = 0x1,
208  TYPE_2 = 0x2,
209  TYPE_3 = 0x3,
210  TYPE_4 = 0x4,
211  TYPE_5 = 0x5,
212  TYPE_6 = 0x6,
213  TYPE_7 = 0x7,
214 } SPAD_TYPE;
215 
219 typedef enum {
226 }STATUSBITS;
227 
228 
232 typedef enum {
235 }STATUSWARMUP;
236 
240 typedef struct {
241  UINT16 Amplitude;
243  UINT32 HoldOff;
248  INT16 TriggerInTh;
249  INT16 AuxInTh;
251  UINT32 Frequency;
252  UINT32 Ton;
257  UINT8 DelayAuxIn;
258  UINT8 DelayGate;
259  UINT8 DelayNimOut;
260  UINT8 DelayTtlOut;
267 }MODULECONFIG;
268 
270 typedef struct {
271  UINT16 SN;
273  char SpadName[16];
274  char FpgaFwVer[16];
275  char FpgaHwVer[16];
276  char McuFwVer[16];
277  char McuHwVer[16];
278 }MODULEINFO;
279 
282 //------------ Constructor -----------------------------------------
297 DllSDKExport RESULT PDMIR_SearchDevices(UINT16 *arrayDataSN, UINT16 *numDevsFound);
298 
305 DllSDKExport RESULT PDMIR_OpenCommunication(UINT16 serialNumber);
306 
314 DllSDKExport RESULT PDMIR_CloseCommunication(UINT16 serialNumber);
316 //------------ Set methods -----------------------------------------
332 DllSDKExport RESULT PDMIR_SetAmplitude(UINT16 serialNumber, UINT16 AmplimV);
333 
343 DllSDKExport RESULT PDMIR_SetTemperature(UINT16 serialNumber, TEMP_VALUES temp);
344 
355 DllSDKExport RESULT PDMIR_SetHoldOff(UINT16 serialNumber, UINT32 holdOff, HOLDOFFTYPE type);
356 
367 DllSDKExport RESULT PDMIR_SetGateMode(UINT16 serialNumber, GATEMODE gm);
368 
378 DllSDKExport RESULT PDMIR_SetGateShape(UINT16 serialNumber, GATESHAPE gs);
379 
389 DllSDKExport RESULT PDMIR_SetTriggerEdge(UINT16 serialNumber, TREDGE TriggerEdge);
390 
400 DllSDKExport RESULT PDMIR_SetTriggerInTh(UINT16 serialNumber, INT16 TriggerTh);
401 
411 DllSDKExport RESULT PDMIR_SetAuxInTh(UINT16 serialNumber, INT16 TriggerTh);
412 
422 DllSDKExport RESULT PDMIR_SetTriggerFunction(UINT16 serialNumber, TRFUNCT TriggerFunction);
423 
433 DllSDKExport RESULT PDMIR_SetFrequency(UINT16 serialNumber, UINT32 frequency);
434 
444 DllSDKExport RESULT PDMIR_SetTon(UINT16 serialNumber, UINT32 tOn);
445 
455 DllSDKExport RESULT PDMIR_SetTTLOut(UINT16 serialNumber, OUTMODE TTLOut);
456 
466 DllSDKExport RESULT PDMIR_SetNIMOut(UINT16 serialNumber, OUTMODE NIMOut);
467 
477 DllSDKExport RESULT PDMIR_SetDelayTriggerIn(UINT16 serialNumber, UINT8 delay);
478 
488 DllSDKExport RESULT PDMIR_SetDelayTriggerInternal(UINT16 serialNumber, UINT8 delay);
489 
499 DllSDKExport RESULT PDMIR_SetDelayAuxIn(UINT16 serialNumber, UINT8 delay);
500 
510 DllSDKExport RESULT PDMIR_SetDelayGate(UINT16 serialNumber, UINT8 delay);
511 
521 DllSDKExport RESULT PDMIR_SetDelayNIMOut(UINT16 serialNumber, UINT8 delay);
522 
532 DllSDKExport RESULT PDMIR_SetDelayTTLOut(UINT16 serialNumber, UINT8 delay);
533 
543 DllSDKExport RESULT PDMIR_SetCounterIntegrationTime(UINT16 serialNumber, UINT16 integrationTime);
544 
554 DllSDKExport RESULT PDMIR_SetCounterAvalancheEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus);
555 
565 DllSDKExport RESULT PDMIR_SetCounterValidGateEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus);
566 
576 DllSDKExport RESULT PDMIR_SetCounterAuxInEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus);
577 
587 DllSDKExport RESULT PDMIR_SetCounterTriggerInEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus);
588 
598 DllSDKExport RESULT PDMIR_SetCounterInternalTriggerEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus);
599 
608 DllSDKExport RESULT PDMIR_SetModuleOnOff(UINT16 serialNumber, STATUSBITS Mstatus);
610 //------------ Get methods -----------------------------------------
625 DllSDKExport RESULT PDMIR_GetAmplitude(UINT16 serialNumber, UINT16 *ampi);
626 
635 DllSDKExport RESULT PDMIR_GetTemperature(UINT16 serialNumber, TEMP_VALUES *temp);
636 
646 DllSDKExport RESULT PDMIR_GetHoldOff(UINT16 serialNumber, UINT32 *holdOff, HOLDOFFTYPE *type);
647 
656 DllSDKExport RESULT PDMIR_GetGateMode(UINT16 serialNumber, GATEMODE *gate);
657 
666 DllSDKExport RESULT PDMIR_GetGateShape(UINT16 serialNumber, GATESHAPE *shape);
667 
676 DllSDKExport RESULT PDMIR_GetTriggerEdge(UINT16 serialNumber, TREDGE *edge);
677 
686 DllSDKExport RESULT PDMIR_GetTriggerInTh(UINT16 serialNumber, INT16 *TriggerInTh);
687 
696 DllSDKExport RESULT PDMIR_GetAuxInTh(UINT16 serialNumber, INT16 *AuxInTh);
697 
706 DllSDKExport RESULT PDMIR_GetTriggerFunction(UINT16 serialNumber, TRFUNCT *function);
707 
716 DllSDKExport RESULT PDMIR_GetFrequency(UINT16 serialNumber, UINT32 *freq);
717 
726 DllSDKExport RESULT PDMIR_GetTon(UINT16 serialNumber, UINT32 *Ton);
727 
736 DllSDKExport RESULT PDMIR_GetTTLOut(UINT16 serialNumber, OUTMODE *TTLOut);
737 
746 DllSDKExport RESULT PDMIR_GetNIMOut(UINT16 serialNumber, OUTMODE *NIMOut);
747 
756 DllSDKExport RESULT PDMIR_GetDelayTriggerIn(UINT16 serialNumber, UINT8 *delay);
757 
766 DllSDKExport RESULT PDMIR_GetDelayTriggerInternal(UINT16 serialNumber, UINT8 *delay);
767 
776 DllSDKExport RESULT PDMIR_GetDelayAuxIn(UINT16 serialNumber, UINT8 *delay);
777 
786 DllSDKExport RESULT PDMIR_GetDelayGate(UINT16 serialNumber, UINT8 *delay);
787 
796 DllSDKExport RESULT PDMIR_GetDelayNIMOut(UINT16 serialNumber, UINT8 *delay);
797 
806 DllSDKExport RESULT PDMIR_GetDelayTTLOut(UINT16 serialNumber, UINT8 *delay);
807 
816 DllSDKExport RESULT PDMIR_GetCounterIntegrationTime(UINT16 serialNumber, UINT16 *integrationTime);
817 
826 DllSDKExport RESULT PDMIR_GetCounterAvalancheStatus(UINT16 serialNumber, COUNTERSTATUS *status);
827 
836 DllSDKExport RESULT PDMIR_GetCounterValidGateStatus(UINT16 serialNumber, COUNTERSTATUS *status);
837 
846 DllSDKExport RESULT PDMIR_GetCounterAuxInStatus(UINT16 serialNumber, COUNTERSTATUS *status);
847 
856 DllSDKExport RESULT PDMIR_GetCounterTriggerInStatus(UINT16 serialNumber, COUNTERSTATUS *status);
857 
866 DllSDKExport RESULT PDMIR_GetCounterInternalTriggerStatus(UINT16 serialNumber, COUNTERSTATUS *status);
867 
879 DllSDKExport RESULT PDMIR_GetAllCountersStatus(UINT16 serialNumber, COUNTERSTATUS *avalancheStatus, COUNTERSTATUS *validGateStatus, COUNTERSTATUS *auxInStatus, COUNTERSTATUS *triggerInStatus, COUNTERSTATUS *internalTriggerStatus);
880 
890 DllSDKExport RESULT PDMIR_GetCounterAvalancheLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
891 
901 DllSDKExport RESULT PDMIR_GetCounterValidGateLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
902 
912 DllSDKExport RESULT PDMIR_GetCounterAuxInLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
913 
923 DllSDKExport RESULT PDMIR_GetCounterTriggerInLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
924 
934 DllSDKExport RESULT PDMIR_GetCounterInternalTriggerLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
935 
949 DllSDKExport RESULT PDMIR_GetAllCountersLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *avalancheCounts, UINT32 *validGateCounts, UINT32 *auxInCounts, UINT32 *triggerInCounts, UINT32 *internalTriggerCounts);
950 
962 DllSDKExport RESULT PDMIR_GetCounterAvalancheValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
963 
975 DllSDKExport RESULT PDMIR_GetCounterValidGateValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
976 
988 DllSDKExport RESULT PDMIR_GetCounterAuxInValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
989 
1001 DllSDKExport RESULT PDMIR_GetCounterTriggerInValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
1002 
1014 DllSDKExport RESULT PDMIR_GetCounterInternalTriggerValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts);
1015 
1031 DllSDKExport RESULT PDMIR_GetAllCountersValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *avalancheCounts, UINT32 *validGateCounts, UINT32 *auxInCounts, UINT32 *triggerInCounts, UINT32 *internalTriggerCounts);
1032 
1040 DllSDKExport RESULT PDMIR_GetModuleInfo(UINT16 serialNumber, MODULEINFO *info);
1041 
1055 DllSDKExport RESULT PDMIR_GetModuleStatus(UINT16 serialNumber, STATUSBITS *mStatus, STATUSBITS *mTemperature, STATUSBITS *mSpad, STATUSBITS *mGate, STATUSWARMUP *mWarm, UINT32 *errors);
1056 
1063 DllSDKExport void PDMIR_ErrorTranslator(UINT32 error, char *stringOut);
1065 //------------ Configuration methods -----------------------------------------
1071 
1082 DllSDKExport RESULT PDMIR_SaveCurrentConfig(UINT16 serialNumber, UINT8 configNumber, char *configName);
1083 
1094 DllSDKExport RESULT PDMIR_SaveCurrentConfigForceOverWrite(UINT16 serialNumber, UINT8 configNumber, char *configName);
1095 
1105 DllSDKExport RESULT PDMIR_DeleteConfig(UINT16 serialNumber, UINT8 configNumber);
1106 
1116 DllSDKExport RESULT PDMIR_SetConfigPowerUp(UINT16 serialNumber, UINT8 configNumber);
1117 
1130 DllSDKExport RESULT PDMIR_LoadConfig(UINT16 serialNumber, UINT8 configNumber);
1131 
1138 DllSDKExport RESULT PDMIR_GetCurrentConfig(UINT16 serialNumber, MODULECONFIG *config);
1139 
1150 DllSDKExport RESULT PDMIR_GetConfigX(UINT16 serialNumber, UINT8 configNumber, MODULECONFIG *config, char *configName);
1151 
1160 DllSDKExport RESULT PDMIR_GetConfigPowerUp(UINT16 serialNumber, UINT8 *configNumber);
1161 
1165 
1166 #ifdef __cplusplus
1167 }
1168 #endif
1169 
1170 #endif //__PDM_IR_SDK_h__
INT16 AuxInTh
The Threshold of the Aux In expressed in mV.
Definition: PDM-IR_SDK.h:249
The module is warming up.
Definition: PDM-IR_SDK.h:233
TRFUNCT
Function Type enum.
Definition: PDM-IR_SDK.h:153
DllSDKExport RESULT PDMIR_GetCounterAvalancheLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the photon out counter value of the PDM-IR.
The Output reproduces the hold off signal.
Definition: PDM-IR_SDK.h:188
GATEMODE GateMode
The Gate Mode: trigger internal or external.
Definition: PDM-IR_SDK.h:245
When the hold off time is over, the gate is not applied until the next rising edge of the gate window...
Definition: PDM-IR_SDK.h:119
Inverted Selected trigger NAND Aux In.
Definition: PDM-IR_SDK.h:169
Inverted Selected trigger OR Inverted Aux In.
Definition: PDM-IR_SDK.h:164
Selected trigger NOR Aux In.
Definition: PDM-IR_SDK.h:167
DllSDKExport RESULT PDMIR_GetModuleInfo(UINT16 serialNumber, MODULEINFO *info)
Get the module information of the PDM-IR.
DllSDKExport RESULT PDMIR_GetCounterAuxInValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the Aux In counter value of the PDM-IR at specified index.
The Output reproduces the trigger gate signal.
Definition: PDM-IR_SDK.h:186
DllSDKExport RESULT PDMIR_GetAllCountersLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *avalancheCounts, UINT32 *validGateCounts, UINT32 *auxInCounts, UINT32 *triggerInCounts, UINT32 *internalTriggerCounts)
Get the value of all the counters of the PDM-IR.
DllSDKExport RESULT PDMIR_SetAuxInTh(UINT16 serialNumber, INT16 TriggerTh)
Set the Aux In Threshold of the PDM-IR.
Error parsing the values referenced.
Definition: PDM-IR_SDK.h:101
DllSDKExport RESULT PDMIR_SaveCurrentConfigForceOverWrite(UINT16 serialNumber, UINT8 configNumber, char *configName)
Store current configuration of the PDM-IR in the configNumber position overwriting the existing one...
Inverted Selected trigger XNOR Aux In.
Definition: PDM-IR_SDK.h:171
INT16 TriggerInTh
The Threshold of the trigger In expressed in mV.
Definition: PDM-IR_SDK.h:248
DllSDKExport RESULT PDMIR_SetGateMode(UINT16 serialNumber, GATEMODE gm)
Set the gate mode of the PDM-IR.
DllSDKExport RESULT PDMIR_GetCurrentConfig(UINT16 serialNumber, MODULECONFIG *config)
Get the current configuration parameters of the PDM-IR.
The Parameter needs to be updated.
Definition: PDM-IR_SDK.h:224
DllSDKExport RESULT PDMIR_SetTriggerInTh(UINT16 serialNumber, INT16 TriggerTh)
Set the Trigger In Threshold of the PDM-IR.
HOLDOFFTYPE
hold Off Type enum.
Definition: PDM-IR_SDK.h:118
The Output reproduces the internal trigger signal.
Definition: PDM-IR_SDK.h:190
STATUSBITS
Parameter Status enum.
Definition: PDM-IR_SDK.h:219
DllSDKExport RESULT PDMIR_SetGateShape(UINT16 serialNumber, GATESHAPE gs)
Set the gate shape of the PDM-IR.
OUTMODE TtlOut
The output signal of the TTL out.
Definition: PDM-IR_SDK.h:253
DllSDKExport RESULT PDMIR_GetDelayTTLOut(UINT16 serialNumber, UINT8 *delay)
Get the TTL out delay of the PDM-IR.
useful parameter for device statistics.
Definition: PDM-IR_SDK.h:213
UINT32 Ton
The On time of the gate in case of fixed gate width in ns.
Definition: PDM-IR_SDK.h:252
Inverted Selected trigger XNOR Inverted Aux In.
Definition: PDM-IR_SDK.h:177
Module Configuration Structure.
Definition: PDM-IR_SDK.h:240
Selected trigger XOR Aux In.
Definition: PDM-IR_SDK.h:156
Inverted Selected trigger NAND Inverted Aux In.
Definition: PDM-IR_SDK.h:175
The Gate trigger is the external trigger.
Definition: PDM-IR_SDK.h:129
DllSDKExport RESULT PDMIR_SetCounterInternalTriggerEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus)
Set the internal trigger counter of the PDM-IR.
DllSDKExport RESULT PDMIR_LoadConfig(UINT16 serialNumber, UINT8 configNumber)
Load a stored configuration of the PDM-IR.
DllSDKExport RESULT PDMIR_SetHoldOff(UINT16 serialNumber, UINT32 holdOff, HOLDOFFTYPE type)
Set the hold off time of the SPAD.
UINT8 DelayNimOut
The delay time of the NIM out Signal.
Definition: PDM-IR_SDK.h:259
Selected trigger AND Inverted Aux In.
Definition: PDM-IR_SDK.h:160
Inverted Selected trigger NOR Inverted Aux In.
Definition: PDM-IR_SDK.h:176
Inverted Selected trigger XOR Aux In.
Definition: PDM-IR_SDK.h:159
COUNTERSTATUS CounterValidGateStatus
The valid gate counter status.
Definition: PDM-IR_SDK.h:263
The Output reproduces the valid gate signal.
Definition: PDM-IR_SDK.h:189
DllSDKExport RESULT PDMIR_GetAllCountersStatus(UINT16 serialNumber, COUNTERSTATUS *avalancheStatus, COUNTERSTATUS *validGateStatus, COUNTERSTATUS *auxInStatus, COUNTERSTATUS *triggerInStatus, COUNTERSTATUS *internalTriggerStatus)
Get the status of all the counter of the PDM-IR.
DllSDKExport RESULT PDMIR_SetDelayTriggerInternal(UINT16 serialNumber, UINT8 delay)
Set the Internal Trigger delay of the PDM-IR.
DllSDKExport RESULT PDMIR_OpenCommunication(UINT16 serialNumber)
Open the communication with a module.
useful parameter for device statistics.
Definition: PDM-IR_SDK.h:211
DllSDKExport RESULT PDMIR_SaveCurrentConfig(UINT16 serialNumber, UINT8 configNumber, char *configName)
Store current configuration of the PDM-IR in the configNumber position.
Selected trigger AND Aux In.
Definition: PDM-IR_SDK.h:154
The Counter is disabled.
Definition: PDM-IR_SDK.h:198
DllSDKExport RESULT PDMIR_GetGateShape(UINT16 serialNumber, GATESHAPE *shape)
Get the gate shape of the PDM-IR.
DllSDKExport RESULT PDMIR_GetAuxInTh(UINT16 serialNumber, INT16 *AuxInTh)
Get the Aux In Threshold of the PDM-IR.
The Output reproduces the photon out signal.
Definition: PDM-IR_SDK.h:187
Medium temperature: the dark count rate is the one shown in the test report.
Definition: PDM-IR_SDK.h:110
Selected trigger XNOR Inverted Aux In.
Definition: PDM-IR_SDK.h:174
Inverted Selected trigger AND Inverted Aux In.
Definition: PDM-IR_SDK.h:163
DllSDKExport RESULT PDMIR_GetCounterInternalTriggerLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the internal trigger counter value of the PDM-IR.
DllSDKExport RESULT PDMIR_SetModuleOnOff(UINT16 serialNumber, STATUSBITS Mstatus)
Set the module status of the PDM-IR.
Inverted Selected trigger.
Definition: PDM-IR_SDK.h:178
DllSDKExport RESULT PDMIR_GetCounterValidGateStatus(UINT16 serialNumber, COUNTERSTATUS *status)
Get the valid gate counter of the PDM-IR.
DllSDKExport RESULT PDMIR_GetCounterTriggerInStatus(UINT16 serialNumber, COUNTERSTATUS *status)
Get the trigger In counter of the PDM-IR.
UINT32 Frequency
The Internal frequency of the PDM-IR in Hz.
Definition: PDM-IR_SDK.h:251
DllSDKExport RESULT PDMIR_GetGateMode(UINT16 serialNumber, GATEMODE *gate)
Get the gate mode of the PDM-IR.
DllSDKExport RESULT PDMIR_GetCounterAvalancheValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the photon out counter value of the PDM-IR at specified index.
DllSDKExport RESULT PDMIR_SetCounterIntegrationTime(UINT16 serialNumber, UINT16 integrationTime)
Set the counters integration time of the PDM-IR.
GATESHAPE
Gate Shape enum.
Definition: PDM-IR_SDK.h:135
Low temperature: the dark count rate is very low.
Definition: PDM-IR_SDK.h:111
Selected trigger NAND Inverted Aux In.
Definition: PDM-IR_SDK.h:172
Selected trigger XOR Inverted Aux In.
Definition: PDM-IR_SDK.h:162
DllSDKExport RESULT PDMIR_GetCounterAvalancheStatus(UINT16 serialNumber, COUNTERSTATUS *status)
Get the photon out counter of the PDM-IR.
UINT8 DelayGate
The delay time of the Gate Signal.
Definition: PDM-IR_SDK.h:258
DllSDKExport RESULT PDMIR_SetAmplitude(UINT16 serialNumber, UINT16 AmplimV)
Set the gate amplitude of the PDM-IR.
UINT8 DelayTriggerIn
The delay time of the Trigger In Signal.
Definition: PDM-IR_SDK.h:255
UINT8 DelayTtlOut
The delay time of the TTL out Signal.
Definition: PDM-IR_SDK.h:260
DllSDKExport RESULT PDMIR_GetDelayGate(UINT16 serialNumber, UINT8 *delay)
Get the Gate delay of the PDM-IR.
DllSDKExport RESULT PDMIR_GetTriggerEdge(UINT16 serialNumber, TREDGE *edge)
Get the Trigger Edge of the PDM-IR.
unsigned short UINT16
16 bit signed definition
Definition: PDM-IR_SDK.h:89
signed int INT32
32 bit signed definition
Definition: PDM-IR_SDK.h:92
DllSDKExport RESULT PDMIR_SetDelayTTLOut(UINT16 serialNumber, UINT8 delay)
Set the TTL out delay of the PDM-IR.
COUNTERSTATUS CounterInternalTriggerStatus
The internal trigger counter status.
Definition: PDM-IR_SDK.h:266
The Parameter has a safe value, used before update the value waiting the right update order...
Definition: PDM-IR_SDK.h:223
useful parameter for device statistics.
Definition: PDM-IR_SDK.h:209
DllSDKExport RESULT PDMIR_GetCounterInternalTriggerStatus(UINT16 serialNumber, COUNTERSTATUS *status)
Get the internal trigger counter of the PDM-IR.
Falling Edge Trigger.
Definition: PDM-IR_SDK.h:146
DllSDKExport RESULT PDMIR_DeleteConfig(UINT16 serialNumber, UINT8 configNumber)
Delete the configuration stored in the configNumber position.
signed char INT8
8 bit signed definition
Definition: PDM-IR_SDK.h:86
DllSDKExport RESULT PDMIR_GetNIMOut(UINT16 serialNumber, OUTMODE *NIMOut)
Get the NIM ouput signal of the PDM-IR.
DllSDKExport RESULT PDMIR_SearchDevices(UINT16 *arrayDataSN, UINT16 *numDevsFound)
Modules list Constructor.
Selected trigger.
Definition: PDM-IR_SDK.h:179
DllSDKExport RESULT PDMIR_GetCounterValidGateValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the valid gate counter value of the PDM-IR at specified index.
TREDGE
Edge Type enum.
Definition: PDM-IR_SDK.h:144
DllSDKExport RESULT PDMIR_GetCounterInternalTriggerValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the internal trigger counter value of the PDM-IR at specified index.
Rising Edge Trigger.
Definition: PDM-IR_SDK.h:145
COUNTERSTATUS CounterTriggerInStatus
The trigger in counter status.
Definition: PDM-IR_SDK.h:265
Selected trigger XNOR Aux In.
Definition: PDM-IR_SDK.h:168
DllSDKExport RESULT PDMIR_SetTemperature(UINT16 serialNumber, TEMP_VALUES temp)
Set the working temperature of the PDM-IR.
Selected trigger NOR Inverted Aux In.
Definition: PDM-IR_SDK.h:173
UINT32 HoldOff
The Hold Off value after an avalanche expressed in ns.
Definition: PDM-IR_SDK.h:243
DllSDKExport RESULT PDMIR_GetHoldOff(UINT16 serialNumber, UINT32 *holdOff, HOLDOFFTYPE *type)
Get the hold off time of the PDM-IR.
UINT16 CounterIntegrationTime
The counters' integration time.
Definition: PDM-IR_SDK.h:261
TEMP_VALUES
Temperature enum.
Definition: PDM-IR_SDK.h:108
HOLDOFFTYPE HoldOffLevel
The Hold Off type: edge or level.
Definition: PDM-IR_SDK.h:244
DllSDKExport RESULT PDMIR_GetDelayTriggerIn(UINT16 serialNumber, UINT8 *delay)
Get the Trigger In delay of the PDM-IR.
The Counter is enabled.
Definition: PDM-IR_SDK.h:200
SPAD_TYPE
SPAD Type enum.
Definition: PDM-IR_SDK.h:206
unsigned int UINT32
32 bit unsigned definition
Definition: PDM-IR_SDK.h:91
TREDGE TriggerEdge
The Rising or falling edge of the trigger.
Definition: PDM-IR_SDK.h:247
DllSDKExport RESULT PDMIR_GetDelayTriggerInternal(UINT16 serialNumber, UINT8 *delay)
Get the Internal Trigger delay of the PDM-IR.
Inverted Selected trigger OR Aux In.
Definition: PDM-IR_SDK.h:158
TEMP_VALUES Temperature
The temperature value.
Definition: PDM-IR_SDK.h:242
unsigned char UINT8
8 bit unsigned definition
Definition: PDM-IR_SDK.h:85
DllSDKExport RESULT PDMIR_GetTriggerInTh(UINT16 serialNumber, INT16 *TriggerInTh)
Get the Trigger In Threshold of the PDM-IR.
DllSDKExport RESULT PDMIR_SetCounterValidGateEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus)
Set the valid gate counter of the PDM-IR.
DllSDKExport RESULT PDMIR_GetTemperature(UINT16 serialNumber, TEMP_VALUES *temp)
Get the working temperature of the PDM-IR.
The Gate has a fixed width determinated by the Ton.
Definition: PDM-IR_SDK.h:136
DllSDKExport RESULT PDMIR_SetCounterAuxInEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus)
Set the Aux In counter of the PDM-IR.
DllSDKExport RESULT PDMIR_GetFrequency(UINT16 serialNumber, UINT32 *freq)
Get the internal trigger frequency in Hz of the PDM-IR.
DllSDKExport void PDMIR_ErrorTranslator(UINT32 error, char *stringOut)
Get the string description of an error code of the PDM-IR.
DllSDKExport RESULT PDMIR_GetCounterTriggerInLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the trigger in counter value of the PDM-IR.
DllSDKExport RESULT PDMIR_GetDelayNIMOut(UINT16 serialNumber, UINT8 *delay)
Get the NIM out delay of the PDM-IR.
SPAD_TYPE SpadType
The Spad type.
Definition: PDM-IR_SDK.h:272
DllSDKExport RESULT PDMIR_SetTTLOut(UINT16 serialNumber, OUTMODE TTLOut)
Set the TTL ouput signal of the PDM-IR.
COUNTERSTATUS
Counter Status enum.
Definition: PDM-IR_SDK.h:197
The Parameter is enabled.
Definition: PDM-IR_SDK.h:221
DllSDKExport RESULT PDMIR_GetAmplitude(UINT16 serialNumber, UINT16 *ampi)
Get the gate amplitude of the PDM-IR.
UINT8 DelayTriggerInternal
The delay time of the Internal Trigger Signal.
Definition: PDM-IR_SDK.h:256
DllSDKExport RESULT PDMIR_GetConfigPowerUp(UINT16 serialNumber, UINT8 *configNumber)
Get the stored configuration number set as power up configuration of the PDM-IR.
DllSDKExport RESULT PDMIR_SetTon(UINT16 serialNumber, UINT32 tOn)
Set the Ton time in ns of the PDM-IR.
Lowest temperature: the dark count rate is the lowest as possible.
Definition: PDM-IR_SDK.h:112
The Gate has the same digital shape and duration of the trigger gate signal.
Definition: PDM-IR_SDK.h:137
signed short INT16
16 bit unsigned definition
Definition: PDM-IR_SDK.h:88
DllSDKExport RESULT PDMIR_GetCounterTriggerInValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the trigger in counter value of the PDM-IR at specified index.
DllSDKExport RESULT PDMIR_SetFrequency(UINT16 serialNumber, UINT32 frequency)
Set the internal trigger frequency in Hz of the PDM-IR.
Structure containing the information of the PDM-IR.
Definition: PDM-IR_SDK.h:270
The Parameter is updating the state.
Definition: PDM-IR_SDK.h:222
DllSDKExport RESULT PDMIR_GetTon(UINT16 serialNumber, UINT32 *Ton)
Get the Ton time in ns of the PDM-IR.
UINT8 DelayAuxIn
The delay time of the Aux In Signal.
Definition: PDM-IR_SDK.h:257
DllSDKExport RESULT PDMIR_GetCounterValidGateLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the valid gate counter value of the PDM-IR.
DllSDKExport RESULT PDMIR_SetCounterAvalancheEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus)
Set the photon out counter of the PDM-IR.
UINT16 SN
The PDM-IR Serial Number.
Definition: PDM-IR_SDK.h:271
DllSDKExport RESULT PDMIR_GetCounterIntegrationTime(UINT16 serialNumber, UINT16 *integrationTime)
Get the counters integration time of the PDM-IR.
DllSDKExport RESULT PDMIR_SetDelayTriggerIn(UINT16 serialNumber, UINT8 delay)
Set the Trigger In delay of the PDM-IR.
The SPAD is always on when not in hold off.
Definition: PDM-IR_SDK.h:138
useful parameter for device statistics.
Definition: PDM-IR_SDK.h:210
TRFUNCT TriggerFunction
The Function between trigger (internal or external) and Aux In.
Definition: PDM-IR_SDK.h:250
Error communicating with the module.
Definition: PDM-IR_SDK.h:102
The Counter is enabled only for one period.
Definition: PDM-IR_SDK.h:199
Selected trigger OR Aux In.
Definition: PDM-IR_SDK.h:155
Selected trigger NAND Aux In.
Definition: PDM-IR_SDK.h:166
DllSDKExport RESULT PDMIR_SetTriggerEdge(UINT16 serialNumber, TREDGE TriggerEdge)
Set the Trigger Edge of the PDM-IR.
OUTMODE
Output Type enum.
Definition: PDM-IR_SDK.h:185
DllSDKExport RESULT PDMIR_GetTriggerFunction(UINT16 serialNumber, TRFUNCT *function)
Get the Function between Aux In and trigger (in or internal) of the PDM-IR.
Selected trigger OR Inverted Aux In.
Definition: PDM-IR_SDK.h:161
The Parameter is updated.
Definition: PDM-IR_SDK.h:225
DllSDKExport RESULT PDMIR_SetDelayNIMOut(UINT16 serialNumber, UINT8 delay)
Set the NIM out delay of the PDM-IR.
useful parameter for device statistics.
Definition: PDM-IR_SDK.h:207
DllSDKExport RESULT PDMIR_SetTriggerFunction(UINT16 serialNumber, TRFUNCT TriggerFunction)
Set the Function between Aux In and trigger (in or internal) of the PDM-IR.
GATESHAPE GateShape
The Gate Shape: fixed gate, free gate or free running.
Definition: PDM-IR_SDK.h:246
useful parameter for device statistics.
Definition: PDM-IR_SDK.h:208
RESULT
Error table enum.
Definition: PDM-IR_SDK.h:97
DllSDKExport RESULT PDMIR_SetDelayAuxIn(UINT16 serialNumber, UINT8 delay)
Set the Aux In delay of the PDM-IR.
At least one of the input values are above the maximum value accepted.
Definition: PDM-IR_SDK.h:99
DllSDKExport RESULT PDMIR_GetDelayAuxIn(UINT16 serialNumber, UINT8 *delay)
Get the Aux In delay of the PDM-IR.
STATUSWARMUP
Warming Up module enum.
Definition: PDM-IR_SDK.h:232
Inverted Selected trigger AND Aux In.
Definition: PDM-IR_SDK.h:157
result as expected.
Definition: PDM-IR_SDK.h:98
OUTMODE NimOut
The output signal of the NIM out.
Definition: PDM-IR_SDK.h:254
High temperature: the dark count rate is the highest than other temperature modes, but no particular caution is required for module thermal stability.
Definition: PDM-IR_SDK.h:109
UINT16 Amplitude
The Gate Amplitude (Excess Bias) expressed in mV.
Definition: PDM-IR_SDK.h:241
useful parameter for device statistics.
Definition: PDM-IR_SDK.h:212
COUNTERSTATUS CounterAuxInStatus
The Aux In counter status.
Definition: PDM-IR_SDK.h:264
The Gate window is applied after the hold off time is over.
Definition: PDM-IR_SDK.h:120
Inverted Selected trigger XOR Inverted Aux In.
Definition: PDM-IR_SDK.h:165
DllSDKExport RESULT PDMIR_SetNIMOut(UINT16 serialNumber, OUTMODE NIMOut)
Set the NIM ouput signal of the PDM-IR.
GATEMODE
Gate Mode enum.
Definition: PDM-IR_SDK.h:127
DllSDKExport RESULT PDMIR_GetTTLOut(UINT16 serialNumber, OUTMODE *TTLOut)
Get the TTL ouput signal of the PDM-IR.
DllSDKExport RESULT PDMIR_GetCounterAuxInLastValue(UINT16 serialNumber, UINT8 *index, UINT32 *counts)
Get the aux in counter value of the PDM-IR.
At least one of the input values are below the minimum value accepted.
Definition: PDM-IR_SDK.h:100
The module has a stable temperature.
Definition: PDM-IR_SDK.h:234
The Parameter is disabled.
Definition: PDM-IR_SDK.h:220
DllSDKExport RESULT PDMIR_GetAllCountersValueAtIndex(UINT16 serialNumber, UINT8 *index, UINT32 *avalancheCounts, UINT32 *validGateCounts, UINT32 *auxInCounts, UINT32 *triggerInCounts, UINT32 *internalTriggerCounts)
Get the value of all the counters of the PDM-IR at specified index.
Inverted Selected trigger NOR Aux In.
Definition: PDM-IR_SDK.h:170
DllSDKExport RESULT PDMIR_CloseCommunication(UINT16 serialNumber)
Close the communication with a module.
The Output is high in case of error of the module (electrical signal of the RED led) ...
Definition: PDM-IR_SDK.h:191
DllSDKExport RESULT PDMIR_SetDelayGate(UINT16 serialNumber, UINT8 delay)
Set the Gate delay of the PDM-IR.
COUNTERSTATUS CounterAvalancheStatus
The photon out counter status.
Definition: PDM-IR_SDK.h:262
DllSDKExport RESULT PDMIR_SetConfigPowerUp(UINT16 serialNumber, UINT8 configNumber)
Set a stored configuration as power up configuration of the PDM-IR.
DllSDKExport RESULT PDMIR_GetConfigX(UINT16 serialNumber, UINT8 configNumber, MODULECONFIG *config, char *configName)
Get a stored configuration of the PDM-IR.
The Gate trigger is the internal trigger.
Definition: PDM-IR_SDK.h:128
DllSDKExport RESULT PDMIR_SetCounterTriggerInEnable(UINT16 serialNumber, COUNTERSTATUS Cstatus)
Set the trigger In counter of the PDM-IR.
DllSDKExport RESULT PDMIR_GetModuleStatus(UINT16 serialNumber, STATUSBITS *mStatus, STATUSBITS *mTemperature, STATUSBITS *mSpad, STATUSBITS *mGate, STATUSWARMUP *mWarm, UINT32 *errors)
Get the module status of the PDM-IR.
DllSDKExport RESULT PDMIR_GetCounterAuxInStatus(UINT16 serialNumber, COUNTERSTATUS *status)
Get the Aux In counter of the PDM-IR.