海康软件更新
目前使用的是 MVS_STD_4.3.2_240705.exe ,最新的已经到4.4了。
一个大的变动
在上一篇中我们提到一个问题:
需要注意的是,我们必须先设置 TriggerSelector 是 “FrameBurstStart” 还是 “LineStart”
再设置TriggerMode 是 “On” 还是 “Off” 时才知道 TriggerMode 是谁的 TriggerMode 。 所以先指定TriggerSelector
在新版的软件中他做了更新,上面这种方式,确实容易让人混淆,所以他把每个都区分开了。
 /// <summary>
 /// 其实就是打开触发
 /// </summary>
 void SetLineSacanWorkMode()
 {
 	-----首先设置为帧触发
 	int result = device.Parameters.SetEnumValueByString("ScanMode", "FrameScar");
	if (result != MvError.MV_OK)
	{
    	ShowErrorMsg("Set ScanMode Fail!", result);
	}
     //----------------打开帧触发
     result = device.Parameters.SetBoolValue("FrameTriggerMode", true);
     if (result != MvError.MV_OK)
     {
         ShowErrorMsg("Set FrameTriggerMode Fail!", result);
     }
     //帧触发:触发源
     result = device.Parameters.SetEnumValueByString("FrameTriggerSource", "Software");
     if (result != MvError.MV_OK)
     {
         ShowErrorMsg("Set FrameTriggerSource Fail!", result);
     }
      result = MvError.MV_OK;
     //----------------打开行触发
     result = device.Parameters.SetBoolValue("LineTriggerMode", true);
     if (result != MvError.MV_OK)
     {
         ShowErrorMsg("Set LineTriggerMode Fail!", result);
     }
     //行触发:触发源
     result = device.Parameters.SetEnumValueByString("LineTriggerSource", "FrequencyConverter");
     if (result != MvError.MV_OK)
     {
         ShowErrorMsg("Set LineTriggerSource Fail!", result);
     }     
 }
-------------------------------------------------------------------------------------------------------------------------
 void SetLineSacanDebugMode()
 {
 -----首先设置为帧触发
 	int result = device.Parameters.SetEnumValueByString("ScanMode", "FrameScar");
	if (result != MvError.MV_OK)
	{
    	ShowErrorMsg("Set ScanMode Fail!", result);
	}
     result = MvError.MV_OK;
     //----------------关闭帧触发
     //result = device.Parameters.SetEnumValueByString("TriggerSelector", "FrameBurstStart");
     result = device.Parameters.SetBoolValue("FrameTriggerMode", false);
     if (result != MvError.MV_OK)
     {
         ShowErrorMsg("Set FrameTriggerMode Fail!", result);
     }
     //----------------关闭行触发
     result = device.Parameters.SetBoolValue("LineTriggerMode", false);
     if (result != MvError.MV_OK)
     {
         ShowErrorMsg("Set LineTriggerMode Fail!", result);
     }
 }
以前是 现设置 TriggerSelector 是 行 还是 帧
 现在直接分开:FrameTriggerMode 和 LineTriggerMode; FrameTriggerSource 以及 LineTriggerSource
 界面上也做了缩进,方便理解。
 
 注意上面,选择帧扫描的时候,行触发也显示了,之前是不会显示的。(触发选择行扫描)
 
 此时选择行扫描的时候,就只是显示了行触发控制!
这里其实是把帧触发和行触发完全做成互斥的,进行分开了!!!!
 所以,一开始就需要设置扫描模式了:
 
-----首先设置为帧触发
 	int result = device.Parameters.SetEnumValueByString("ScanMode", "FrameScar");
	if (result != MvError.MV_OK)
	{
    	ShowErrorMsg("Set ScanMode Fail!", result);
	}
敢于更新,给海康点个赞~~~ 不过更新了最新的sdk,记得修改你的代码!!!!
踩坑
相机的采集卡是一个x4的PICE的卡,我直接就插到了X4的PCIE插槽,这个电脑是海康的工控机。
 MVS_STD_4.3.2_240705.exe 这个版本的软件还能识别到卡(最新的已经到4.4 都识别不到卡),
 不过感觉采集图片是出图不是很稳定。
后面找了海康的研发,最好发现X4的插槽其实只有X1的信号。于是把卡插到X16上面,问题就解决了。
 最新的4.4版本找不到卡,也可能是这个原因!暂时就用这个4.3 版本吧, 4.4 就先不更新了。

![[高阶数据结构(一)]并查集详解](https://i-blog.csdnimg.cn/direct/51f95aa39f9d42f99ff7c74139bf3f2c.png)

















