-
Notifications
You must be signed in to change notification settings - Fork 5
/
baslerFindCameras.cpp
48 lines (35 loc) · 1.32 KB
/
baslerFindCameras.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// baslerFindCameras.cpp - Find all connected Basler cameras
// see baslerFindCameras.m for help
#include <pylon/PylonIncludes.h>
#include <matrix.h>
#include <mex.h>
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
// Initiatlize Pylon
Pylon::PylonAutoInitTerm auto_init_term;
try
{
// Get the transport layer factory.
Pylon::CTlFactory& tlFactory = Pylon::CTlFactory::GetInstance();
// Get all attached devices
Pylon::DeviceInfoList_t devices;
tlFactory.EnumerateDevices(devices);
// Create an array of instant cameras for the found devices
Pylon::CInstantCameraArray cameras(devices.size());
// Init output
plhs[0] = mxCreateCellMatrix(cameras.GetSize(),2);
// Find all names
for(size_t i = 0; i < cameras.GetSize(); ++i)
{
cameras[i].Attach(tlFactory.CreateDevice(devices[i]));
mxSetCell(plhs[0],i+cameras.GetSize(),mxCreateString(cameras[i].GetDeviceInfo().GetModelName()));
mxSetCell(plhs[0],i,mxCreateDoubleScalar(i));
}
}
catch (GenICam::GenericException &e)
{
// Error handling.
mexErrMsgIdAndTxt("baslerDriver:Error:CameraError",e.GetDescription());
}
return;
}