最近在学习basler相机的触发方式和曝光时间的更改及多相机的连接,每天更新:
网口的相机和usb口的相机是不一样的。
曝光时间
触发信号的上升沿还是下降沿;
是否立即触发模式打开:
采集模式:
曝光时间的设置:
一般地来说,初始化相机,
m_basler.Attach(CTlFactory::GetInstance().CreateDevice(cInfo));
建立出相机的对象就可以,这步是进行连接相机“Attach”,连接了之后可以获得相机的ID。
INodeMap &cameraNodeMap = m_basler.GetNodeMap();
CEnumerationPtr ptrTriggerSel = cameraNodeMap.GetNode("TriggerSelector");
ptrTriggerSel->FromString("FrameStart");
CEnumerationPtr ptrTrigger = cameraNodeMap.GetNode("TriggerMode");
ptrTrigger->SetIntValue(1);
CEnumerationPtr ptrTriggerAcqMode = cameraNodeMap.GetNode("AcquisitionMode");
ptrTriggerAcqMode->FromString("Continuous");
CEnumerationPtr ptrTriggerSource = cameraNodeMap.GetNode("TriggerSource");
ptrTriggerSource->FromString("Software");
const CFloatPtr exposureTime = cameraNodeMap.GetNode("ExposureTime");
exposureTime->SetValue(10000);
关于basler的sdk使用,可以看下:https://www.cnblogs.com/andyanut/p/9149067.html
另外,最近新发现的问题,basler的网口相机在执行外触发模式也就是“Line1”的情况下:
此时我通过关闭界面或者执行如下操作:
效果是丝毫没有用,你只是关闭了相机,但是相机对象还是存在的:
出现如下问题:
但你再次连接相机时:
IP助手会显示,当前的静态IP正在被使用:
解决方法:在执行完所有的程序后,需要退出相机的采集界面:
就不会出现下次连接出现IP被占用的情况了