国产精品久久久久久久免费-国产精品久久久久久久人热-国产精品久久久久久久网站-国产精品久久久久久久专区-国产精品久久久久久免费

本示例介紹了如何通過(guò)軟件觸發(fā)實(shí)現(xiàn)陰影恢復(fù)形狀應(yīng)用的定序器編程。陰影恢復(fù)形狀是一項(xiàng)從2D圖像中提取物體3D表面信息的技術(shù)解決方案,其中2D圖像是在同一位置拍攝的,但使用了不同方向的光源。對(duì)定序器進(jìn)行配置后,可通過(guò)一次軟件觸發(fā)快速連續(xù)采集4張圖像。本示例使用VCXG.I相機(jī)的4路高功率PWM輸出來(lái)觸發(fā)四分區(qū)光源裝置,以便從不同角度打光照射被測(cè)物體。

如需了解有關(guān)定序器用途以及何時(shí)使用陰影恢復(fù)形狀技術(shù)方面的更多信息,請(qǐng)參閱下方的應(yīng)用說(shuō)明和VCXG.I相機(jī)《用戶(hù)指南》。
預(yù)期的相機(jī)動(dòng)作
VT_Verhalten_der_Kamera_für_Sfs.png
陰影恢復(fù)形狀技術(shù)要求相機(jī)處于觸發(fā)模式。每收到一次觸發(fā)信號(hào),相機(jī)完成四張圖像采集。
VT_Timing_Diagramm_für_Shape_from_Shading.png
每采集一張圖像,對(duì)應(yīng)的相機(jī)輸出便會(huì)激活相應(yīng)分區(qū)的光源。每采集一張圖像,對(duì)應(yīng)的相機(jī)輸出便會(huì)激活相應(yīng)分區(qū)的光源。
定序器編程
    // STOP ACQUISITION AND LOAD DEFAULT PARAMETERS
pDevice->GetRemoteNode("AcquisitionStop")->Execute();
pDevice->GetRemoteNode("UserSetSelector")->SetValue("Default");
pDevice->GetRemoteNode("UserSetLoad")->Execute();

// DEFINE EXPOSURE TIME AND ROI FOR THE SEQUENCER
double ExposureTime = 500;
bo_int64 OffsetX = 0
bo_int64 OffsetY = 0
bo_int64 Height = pDevice->GetRemoteNode("Height")->GetIntMax();
bo_int64 Width = pDevice->GetRemoteNode("Width")->GetIntMax();

// SWITCH TO SEQUENCER CONFIG MODE
pDevice->GetRemoteNode("SequencerConfigurationMode")->SetString("On")

// SET 0 (FIRST STEP OF THE SEQUENCE) 
// wait for the trigger and acquire the first image
pDevice->GetRemoteNode("SequencerSetSelector")->SetInt(0);
pDevice->GetRemoteNode("SequencerSetLoad")->Execute();
pDevice->GetRemoteNode("SequencerSetNext")->SetInt(1);
pDevice->GetRemoteNode("ExposureTime")->SetInt(ExposureTime);
pDevice->GetRemoteNode("Height")->SetInt(Height);
pDevice->GetRemoteNode("Width")->SetInt(Width);
pDevice->GetRemoteNode("OffsetX")->SetInt(OffsetX);
pDevice->GetRemoteNode("OffsetY")->SetInt(OffsetY);
pDevice->GetRemoteNode("TriggerMode")->SetValue("On");
pDevice->GetRemoteNode("UserOutputValueAll")->SetInt(0);
pDevice->GetRemoteNode("SequencerTriggerActivation")->SetValue("RisingEdge");
pDevice->GetRemoteNode("SequencerTriggerSource")->SetValue("ExposureActive");
pDevice->GetRemoteNode("SequencerSetSave")->Execute();

// SET 1 (SECOND STEP OF THE SEQUENCE) 
// while the exposure is active strobe Output1 (lightning 1)
pDevice->GetRemoteNode("SequencerSetSelector")->SetInt(1);
pDevice->GetRemoteNode("SequencerSetLoad")->Execute();
pDevice->GetRemoteNode("SequencerSetNext")->SetInt(2);
pDevice->GetRemoteNode("UserOutputValueAll")->SetInt(1);
pDevice->GetRemoteNode("SequencerTriggerActivation")->SetValue("FallingEdge");
pDevice->GetRemoteNode("SequencerTriggerSource")->SetValue("ExposureActive");
pDevice->GetRemoteNode("SequencerSetSave")->Execute();

// SET 2 (THIRD STEP OF THE SEQUENCE)
// acquire second Image
pDevice->GetRemoteNode("SequencerSetSelector")->SetInt(2);
pDevice->GetRemoteNode("SequencerSetLoad")->Execute();
pDevice->GetRemoteNode("SequencerSetNext")->SetInt(3);
pDevice->GetRemoteNode("ExposureTime")->SetInt(ExposureTime);
pDevice->GetRemoteNode("Height")->SetInt(Height);
pDevice->GetRemoteNode("Width")->SetInt(Width);
pDevice->GetRemoteNode("OffsetX")->SetInt(OffsetX);
pDevice->GetRemoteNode("OffsetY")->SetInt(OffsetY);
pDevice->GetRemoteNode("TriggerMode")->SetValue("Off");
pDevice->GetRemoteNode("UserOutputValueAll")->SetInt(0);
pDevice->GetRemoteNode("SequencerTriggerActivation")->SetValue("RisingEdge");
pDevice->GetRemoteNode("SequencerTriggerSource")->SetValue("ExposureActive");
pDevice->GetRemoteNode("SequencerSetSave")->Execute();

// SET 3 (FOURTH STEP OF THE SEQUENCE) 
// while the exposure is active strobe Output2 (lightning 2)
pDevice->GetRemoteNode("SequencerSetSelector")->SetInt(3);
pDevice->GetRemoteNode("SequencerSetLoad")->Execute();
pDevice->GetRemoteNode("SequencerSetNext")->SetInt(4);
pDevice->GetRemoteNode("UserOutputValueAll")->SetInt(2);
pDevice->GetRemoteNode("SequencerTriggerActivation")->SetValue("FallingEdge");
pDevice->GetRemoteNode("SequencerTriggerSource")->SetValue("ExposureActive");
pDevice->GetRemoteNode("SequencerSetSave")->Execute();

// SET 4 (FIFTH STEP OF THE SEQUENCE) 
// acquire third Image
pDevice->GetRemoteNode("SequencerSetSelector")->SetInt(4);
pDevice->GetRemoteNode("SequencerSetLoad")->Execute();
pDevice->GetRemoteNode("SequencerSetNext")->SetInt(5);
pDevice->GetRemoteNode("ExposureTime")->SetInt(ExposureTime);
pDevice->GetRemoteNode("Height")->SetInt(Height);
pDevice->GetRemoteNode("Width")->SetInt(Width);
pDevice->GetRemoteNode("OffsetX")->SetInt(OffsetX);
pDevice->GetRemoteNode("OffsetY")->SetInt(OffsetY);
pDevice->GetRemoteNode("TriggerMode")->SetValue("Off");
pDevice->GetRemoteNode("UserOutputValueAll")->SetInt(0);
pDevice->GetRemoteNode("SequencerTriggerActivation")->SetValue("RisingEdge");
pDevice->GetRemoteNode("SequencerTriggerSource")->SetValue("ExposureActive");
pDevice->GetRemoteNode("SequencerSetSave")->Execute();

// SET 5 (SIXTH STEP OF THE SEQUENCE)
// strobe Output3 (lightning 3)
pDevice->GetRemoteNode("SequencerSetSelector")->SetInt(5);
pDevice->GetRemoteNode("SequencerSetLoad")->Execute();
pDevice->GetRemoteNode("SequencerSetNext")->SetInt(6);
pDevice->GetRemoteNode("UserOutputValueAll")->SetInt(4);
pDevice->GetRemoteNode("SequencerTriggerActivation")->SetValue("FallingEdge");
pDevice->GetRemoteNode("SequencerTriggerSource")->SetValue("ExposureActive");
pDevice->GetRemoteNode("SequencerSetSave")->Execute();

// SET 6 (SEVENTH STEP OF THE SEQUENCE)
// acquire 4. image
pDevice->GetRemoteNode("SequencerSetSelector")->SetInt(6);
pDevice->GetRemoteNode("SequencerSetLoad")->Execute();
pDevice->GetRemoteNode("SequencerSetNext")->SetInt(7);
pDevice->GetRemoteNode("ExposureTime")->SetInt(ExposureTime);
pDevice->GetRemoteNode("Height")->SetInt(Height);
pDevice->GetRemoteNode("Width")->SetInt(Width);
pDevice->GetRemoteNode("OffsetX")->SetInt(OffsetX);
pDevice->GetRemoteNode("OffsetY")->SetInt(OffsetY);
pDevice->GetRemoteNode("TriggerMode")->SetValue("Off");
pDevice->GetRemoteNode("UserOutputValueAll")->SetInt(0);
pDevice->GetRemoteNode("SequencerTriggerActivation")->SetValue("RisingEdge");
pDevice->GetRemoteNode("SequencerTriggerSource")->SetValue("ExposureActive");
pDevice->GetRemoteNode("SequencerSetSave")->Execute();

// SET 7 (EIGHTH STEP OF THE SEQUENCE)
// strobe (Output4) lightning 4
pDevice->GetRemoteNode("SequencerSetSelector")->SetInt(7);
pDevice->GetRemoteNode("SequencerSetLoad")->Execute();
pDevice->GetRemoteNode("SequencerSetNext")->SetInt(0);
pDevice->GetRemoteNode("UserOutputValueAll")->SetInt(8);
pDevice->GetRemoteNode("SequencerTriggerActivation")->SetValue("FallingEdge");
pDevice->GetRemoteNode("SequencerTriggerSource")->SetValue("ExposureActive");
pDevice->GetRemoteNode("SequencerSetSave")->Execute();

// set the sequencer to start with the Set0
pDevice->GetRemoteNode("SequencerSetStart")->SetInt(0);

// SEQUENCER CONFIG END
pDevice->GetRemoteNode("SequencerConfigurationMode")->SetString("Off");
 
  
    // STOP ACQUISITION AND LOAD DEFAULT PARAMETERS
mDevice.RemoteNodeList["AcquisitionStop"].Execute();
mDevice.RemoteNodeList["UserSetSelector"].Value = "Default";
mDevice.RemoteNodeList["UserSetLoad"].Execute();

// DEFINE EXPOSURE TIME AND ROI FOR THE SEQUENCER
double ExposureTime = 500;
long OffsetX = 0;
long OffsetY = 0;
long Height = mDevice.RemoteNodeList["Height"].Max;
long Width = mDevice.RemoteNodeList["Width"].Max;

// SWITCH TO SEQUENCER CONFIG MODE
mDevice.RemoteNodeList["SequencerConfigurationMode"].Value = "On";

// SET 0 (First STEP OF THE SEQUENCE) 
// wait for the trigger and acquire the first image
mDevice.RemoteNodeList["SequencerSetSelector"].Value = 0;
mDevice.RemoteNodeList["SequencerSetLoad"].Execute();
mDevice.RemoteNodeList["SequencerSetNext"].Value = 1;
mDevice.RemoteNodeList["ExposureTime"].Value = ExposureTime;
mDevice.RemoteNodeList["OffsetX"].Value = OffsetX;
mDevice.RemoteNodeList["OffsetY"].Value = OffsetY;
mDevice.RemoteNodeList["Height"].Value = Height;
mDevice.RemoteNodeList["Width"].Value = Width;
mDevice.RemoteNodeList["TriggerMode"].Value = "On";
mDevice.RemoteNodeList["UserOutputValueAll"].Value = 0;
mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "RisingEdge";
mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";
mDevice.RemoteNodeList["SequencerSetSave"].Execute();

// SET 1 (SECOND STEP OF THE SEQUENCE) 
// while the exposure is active strobe Output1 (lightning 1)
mDevice.RemoteNodeList["SequencerSetSelector"].Value = 1;
mDevice.RemoteNodeList["SequencerSetLoad"].Execute();
mDevice.RemoteNodeList["SequencerSetNext"].Value = 2;
mDevice.RemoteNodeList["UserOutputValueAll"].Value = 1;
mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "FallingEdge";
mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";
mDevice.RemoteNodeList["SequencerSetSave"].Execute();

// SET 2 (THIRD STEP OF THE SEQUENCE)
// acquire second Image
mDevice.RemoteNodeList["SequencerSetSelector"].Value = 2;
mDevice.RemoteNodeList["SequencerSetLoad"].Execute();
mDevice.RemoteNodeList["SequencerSetNext"].Value = 3;
mDevice.RemoteNodeList["ExposureTime"].Value = ExposureTime;
mDevice.RemoteNodeList["OffsetX"].Value = OffsetX;
mDevice.RemoteNodeList["OffsetY"].Value = OffsetY;
mDevice.RemoteNodeList["Height"].Value = Height;
mDevice.RemoteNodeList["Width"].Value = Width;
mDevice.RemoteNodeList["TriggerMode"].Value = "Off";
mDevice.RemoteNodeList["UserOutputValueAll"].Value = 0;
mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "RisingEdge";
mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";
mDevice.RemoteNodeList["SequencerSetSave"].Execute();

// SET 3 (FOURTH STEP OF THE SEQUENCE) 
// while the exposure is active strobe Output2 (lightning 2)
mDevice.RemoteNodeList["SequencerSetSelector"].Value = 3;
mDevice.RemoteNodeList["SequencerSetLoad"].Execute();
mDevice.RemoteNodeList["SequencerSetNext"].Value = 4;
mDevice.RemoteNodeList["UserOutputValueAll"].Value = 2;
mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "FallingEdge";
mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";
mDevice.RemoteNodeList["SequencerSetSave"].Execute();

// SET 4 (FIFTH STEP OF THE SEQUENCE) 
// acquire third Image 
mDevice.RemoteNodeList["SequencerSetSelector"].Value = 4;
mDevice.RemoteNodeList["SequencerSetLoad"].Execute();
mDevice.RemoteNodeList["SequencerSetNext"].Value = 5;
mDevice.RemoteNodeList["ExposureTime"].Value = ExposureTime;
mDevice.RemoteNodeList["OffsetX"].Value = OffsetX;
mDevice.RemoteNodeList["OffsetY"].Value = OffsetY;
mDevice.RemoteNodeList["Height"].Value = Height;
mDevice.RemoteNodeList["Width"].Value = Width;
mDevice.RemoteNodeList["TriggerMode"].Value = "Off";
mDevice.RemoteNodeList["UserOutputValueAll"].Value = 0;
mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "RisingEdge";
mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";
mDevice.RemoteNodeList["SequencerSetSave"].Execute();

// SET 5 (SIXTH STEP OF THE SEQUENCE)
// strobe Output3 (lightning 3)
mDevice.RemoteNodeList["SequencerSetSelector"].Value = 5;
mDevice.RemoteNodeList["SequencerSetLoad"].Execute();
mDevice.RemoteNodeList["SequencerSetNext"].Value = 6;
mDevice.RemoteNodeList["UserOutputValueAll"].Value = 4;
mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "FallingEdge";
mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";
mDevice.RemoteNodeList["SequencerSetSave"].Execute();

// SET 6 (SEVENTH STEP OF THE SEQUENCE)
// acquire 4. image
mDevice.RemoteNodeList["SequencerSetSelector"].Value = 6;
mDevice.RemoteNodeList["SequencerSetLoad"].Execute();
mDevice.RemoteNodeList["SequencerSetNext"].Value = 7;
mDevice.RemoteNodeList["ExposureTime"].Value = ExposureTime;
mDevice.RemoteNodeList["OffsetX"].Value = OffsetX;
mDevice.RemoteNodeList["OffsetY"].Value = OffsetY;
mDevice.RemoteNodeList["Height"].Value = Height;
mDevice.RemoteNodeList["Width"].Value = Width;
mDevice.RemoteNodeList["TriggerMode"].Value = "Off";
mDevice.RemoteNodeList["UserOutputValueAll"].Value = 0;
mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "RisingEdge";
mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";
mDevice.RemoteNodeList["SequencerSetSave"].Execute();

// SET 7 (EIGHTH STEP OF THE SEQUENCE)
// strobe (Output4) lightning 4
mDevice.RemoteNodeList["SequencerSetSelector"].Value = 7;
mDevice.RemoteNodeList["SequencerSetLoad"].Execute();
mDevice.RemoteNodeList["SequencerSetNext"].Value = 0;
mDevice.RemoteNodeList["UserOutputValueAll"].Value = 8;
mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "FallingEdge";
mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";
mDevice.RemoteNodeList["SequencerSetSave"].Execute();

// set the sequencer to start with the Set0
mDevice.RemoteNodeList["SequencerSetStart"].Value = 0;

// SEQUENCER CONFIG END
mDevice.RemoteNodeList["SequencerConfigurationMode"].Value = "Off"; 
  
定序器配置完成后,還需要對(duì)相機(jī)的PWM輸出進(jìn)行設(shè)置,以便按要求激活光源。
    // define line outputs parameters
bo_int64 LightningTime = (long)ExposureTime - 2;
bo_int64 MaxDutyCycle = 10;
bo_int64 DutyCycle = 10;
bo_int64 MaxDuration = 1900;
String LineFormat = "OpenSource";
String LinePWMMode = "OnePulse";

// configure Line4 for UserOutput1 as single lightning flash 1 
pDevice->GetRemoteNode("LineSelector")->SetValue("Line4");
pDevice->GetRemoteNode("LineFormat")->SetValue(LineFormat);
pDevice->GetRemoteNode("LineInverter")->SetValue("0");
pDevice->GetRemoteNode("LinePWMConfigurationMode")->SetValue("On");
pDevice->GetRemoteNode("LinePWMDuration")->SetInt(1);
pDevice->GetRemoteNode("LinePWMDutyCycle")->SetInt(1);
pDevice->GetRemoteNode("LinePWMMaxDutyCycle")->SetInt(MaxDutyCycle);
pDevice->GetRemoteNode("LinePWMMaxDuration")->SetInt(MaxDuration);
pDevice->GetRemoteNode("LinePWMConfigurationMode")->SetValue("Off");
pDevice->GetRemoteNode("LinePWMDuration")->SetInt(LightningTime);
pDevice->GetRemoteNode("LinePWMDutyCycle")->SetInt(DutyCycle);
pDevice->GetRemoteNode("LinePWMMode")->SetValue(LinePWMMode);
pDevice->GetRemoteNode("LineSource")->SetValue("UserOutput1");

// configure Line5 for UserOutput2 as single lightning flash 2 
pDevice->GetRemoteNode("LineSelector")->SetValue("Line5");
pDevice->GetRemoteNode("LineFormat")->SetValue(LineFormat);
pDevice->GetRemoteNode("LineInverter")->SetValue("0");
pDevice->GetRemoteNode("LinePWMConfigurationMode")->SetValue("On");
pDevice->GetRemoteNode("LinePWMDuration")->SetInt(1);
pDevice->GetRemoteNode("LinePWMDutyCycle")->SetInt(1);
pDevice->GetRemoteNode("LinePWMMaxDutyCycle")->SetInt(MaxDutyCycle);
pDevice->GetRemoteNode("LinePWMMaxDuration")->SetInt(MaxDuration);
pDevice->GetRemoteNode("LinePWMConfigurationMode")->SetValue("Off");
pDevice->GetRemoteNode("LinePWMDuration")->SetInt(LightningTime);
pDevice->GetRemoteNode("LinePWMDutyCycle")->SetInt(DutyCycle);
pDevice->GetRemoteNode("LinePWMMode")->SetValue(LinePWMMode);
pDevice->GetRemoteNode("LineSource")->SetValue("UserOutput2");

// configure Line6 for UserOutput3 as single lightning flash 3 
pDevice->GetRemoteNode("LineSelector")->SetValue("Line6");
pDevice->GetRemoteNode("LineFormat")->SetValue(LineFormat);
pDevice->GetRemoteNode("LineInverter")->SetValue("0");
pDevice->GetRemoteNode("LinePWMConfigurationMode")->SetValue("On");
pDevice->GetRemoteNode("LinePWMDuration")->SetInt(1);
pDevice->GetRemoteNode("LinePWMDutyCycle")->SetInt(1);
pDevice->GetRemoteNode("LinePWMMaxDutyCycle")->SetInt(MaxDutyCycle);
pDevice->GetRemoteNode("LinePWMMaxDuration")->SetInt(MaxDuration);
pDevice->GetRemoteNode("LinePWMConfigurationMode")->SetValue("Off");
pDevice->GetRemoteNode("LinePWMDuration")->SetInt(LightningTime);
pDevice->GetRemoteNode("LinePWMDutyCycle")->SetInt(DutyCycle);
pDevice->GetRemoteNode("LinePWMMode")->SetValue(LinePWMMode);
pDevice->GetRemoteNode("LineSource")->SetValue("UserOutput3");

// configure Line7 for UserOutput4 as single lightning flash 4 
pDevice->GetRemoteNode("LineSelector")->SetValue("Line7");
pDevice->GetRemoteNode("LineFormat")->SetValue(LineFormat);
pDevice->GetRemoteNode("LineInverter")->SetValue("0");
pDevice->GetRemoteNode("LinePWMConfigurationMode")->SetValue("On");
pDevice->GetRemoteNode("LinePWMDuration")->SetInt(1);
pDevice->GetRemoteNode("LinePWMDutyCycle")->SetInt(1);
pDevice->GetRemoteNode("LinePWMMaxDutyCycle")->SetInt(MaxDutyCycle);
pDevice->GetRemoteNode("LinePWMMaxDuration")->SetInt(MaxDuration);
pDevice->GetRemoteNode("LinePWMConfigurationMode")->SetValue("Off");
pDevice->GetRemoteNode("LinePWMDuration")->SetInt(LightningTime);
pDevice->GetRemoteNode("LinePWMDutyCycle")->SetInt(DutyCycle);
pDevice->GetRemoteNode("LinePWMMode")->SetValue(LinePWMMode);
pDevice->GetRemoteNode("LineSource")->SetValue("UserOutput4"); 
  
    // define line outputs parameters
long LightningTime = (long)ExposureTime - 2;
long MaxDutyCycle = 10;
long DutyCycle = 10;
long MaxDuration = 1900;
string LineFormat = "OpenSource";
string LinePWMMode = "OnePulse";

// configure Line4 for UserOutput1 as single lightning flash 1 
mDevice.RemoteNodeList["LineSelector"].Value = "Line4";
mDevice.RemoteNodeList["LineFormat"].Value = LineFormat;
mDevice.RemoteNodeList["LineInverter"].Value = false;
mDevice.RemoteNodeList["LinePWMConfigurationMode"].Value = "On";
mDevice.RemoteNodeList["LinePWMDuration"].Value = 1;
mDevice.RemoteNodeList["LinePWMDutyCycle"].Value = 1;
mDevice.RemoteNodeList["LinePWMMaxDutyCycle"].Value = MaxDutyCycle;
mDevice.RemoteNodeList["LinePWMMaxDuration"].Value = MaxDuration;
mDevice.RemoteNodeList["LinePWMConfigurationMode"].Value = "Off";
mDevice.RemoteNodeList["LinePWMDuration"].Value = LightningTime;
mDevice.RemoteNodeList["LinePWMDutyCycle"].Value = DutyCycle;
mDevice.RemoteNodeList["LinePWMMode"].Value = LinePWMMode;
mDevice.RemoteNodeList["LineSource"].Value = "UserOutput1";

// configure Line5 for UserOutput2 as single lightning flash 2 
mDevice.RemoteNodeList["LineSelector"].Value = "Line5";
mDevice.RemoteNodeList["LineFormat"].Value = LineFormat;
mDevice.RemoteNodeList["LineInverter"].Value = false;
mDevice.RemoteNodeList["LinePWMConfigurationMode"].Value = "On";
mDevice.RemoteNodeList["LinePWMDuration"].Value = 1;
mDevice.RemoteNodeList["LinePWMDutyCycle"].Value = 1;
mDevice.RemoteNodeList["LinePWMMaxDutyCycle"].Value = MaxDutyCycle;
mDevice.RemoteNodeList["LinePWMMaxDuration"].Value = MaxDuration;
mDevice.RemoteNodeList["LinePWMConfigurationMode"].Value = "Off";
mDevice.RemoteNodeList["LinePWMDuration"].Value = LightningTime;
mDevice.RemoteNodeList["LinePWMDutyCycle"].Value = DutyCycle;
mDevice.RemoteNodeList["LinePWMMode"].Value = LinePWMMode;
mDevice.RemoteNodeList["LineSource"].Value = "UserOutput2";

// configure Line6 for UserOutput3 as single lightning flash 3 
mDevice.RemoteNodeList["LineSelector"].Value = "Line6";
mDevice.RemoteNodeList["LineFormat"].Value = LineFormat;
mDevice.RemoteNodeList["LineInverter"].Value = false;
mDevice.RemoteNodeList["LinePWMConfigurationMode"].Value = "On";
mDevice.RemoteNodeList["LinePWMDuration"].Value = 1;
mDevice.RemoteNodeList["LinePWMDutyCycle"].Value = 1;
mDevice.RemoteNodeList["LinePWMMaxDutyCycle"].Value = MaxDutyCycle;
mDevice.RemoteNodeList["LinePWMMaxDuration"].Value = MaxDuration;
mDevice.RemoteNodeList["LinePWMConfigurationMode"].Value = "Off";
mDevice.RemoteNodeList["LinePWMDuration"].Value = LightningTime;
mDevice.RemoteNodeList["LinePWMDutyCycle"].Value = DutyCycle;
mDevice.RemoteNodeList["LinePWMMode"].Value = LinePWMMode;
mDevice.RemoteNodeList["LineSource"].Value = "UserOutput3";

// configure Line7 for UserOutput4 as single lightning flash 4 
mDevice.RemoteNodeList["LineSelector"].Value = "Line7";
mDevice.RemoteNodeList["LineFormat"].Value = LineFormat;
mDevice.RemoteNodeList["LineInverter"].Value = false;
mDevice.RemoteNodeList["LinePWMConfigurationMode"].Value = "On";
mDevice.RemoteNodeList["LinePWMDuration"].Value = 1;
mDevice.RemoteNodeList["LinePWMDutyCycle"].Value = 1;
mDevice.RemoteNodeList["LinePWMMaxDutyCycle"].Value = MaxDutyCycle;
mDevice.RemoteNodeList["LinePWMMaxDuration"].Value = MaxDuration;
mDevice.RemoteNodeList["LinePWMConfigurationMode"].Value = "Off";
mDevice.RemoteNodeList["LinePWMDuration"].Value = LightningTime;
mDevice.RemoteNodeList["LinePWMDutyCycle"].Value = DutyCycle;
mDevice.RemoteNodeList["LinePWMMode"].Value = LinePWMMode;
mDevice.RemoteNodeList["LineSource"].Value = "UserOutput4"; 
  
定序器配置完成后,還需要對(duì)相機(jī)的PWM輸出進(jìn)行設(shè)置,以便按要求激活光源。
    // START CAMERA SEQUENCER
pDevice->GetRemoteNode("SequencerMode")->SetValue("On");
pDevice->GetRemoteNode("TriggerSource")->SetValue("Software");
pDataStream->StartAcquisitionContinuous();
pDevice->GetRemoteNode("AcquisitionStart")->Execute();
pDevice->GetRemoteNode("TriggerSoftware")->Execute();

// CAPTURE 4 IMAGES

// STOP CAMERA SEQUENCER
pDevice->GetRemoteNode("AcquisitionStop")->Execute();
pDataStream->StopAcquisition();
pDevice->GetRemoteNode("SequencerMode")->SetValue("Off"); 
  
    // START CAMERA SEQUENCER
mDevice.RemoteNodeList["SequencerMode"].Value = "On";
mDevice.RemoteNodeList["TriggerSource"].Value = "Software";
mDataStream.StartAcquisition();
mDevice.RemoteNodeList["AcquisitionStart"].Execute();
mDevice.RemoteNodeList["TriggerSoftware"].Execute();

// CAPTURE 4 IMAGES

// STOP CAMERA SEQUENCER
mDevice.RemoteNodeList["AcquisitionStop"].Execute();
mDataStream.StopAcquisition();
mDevice.RemoteNodeList["SequencerMode"].Value = "Off"; 
  

下載

軟件示例

回到頂部
主站蜘蛛池模板: 在线碰| 狠狠的日视频| 131午夜美女爱做视频| 国产小视频在线高清播放| 亚洲高清美女一区二区三区| 一区二区三区毛片免费| 欧美人在线| 国产精品入口麻豆免费看| 最新国产网站| 国产成人精品一区二区| 农村高清性色生活片| 久久成人综合| 亚洲另类欧美日韩| 久久成人国产精品二三区| 特级欧美| 成人香蕉xxxxxxx| a级毛片免费高清毛片视频| 久久青青草原精品无线观看| 999久久久精品视频在线观看| 国产福利在线观看第二区| 免费观看一级欧美大| 久久2| 妞干网在线播放| 91嫩草视频在线观看| 欧美草| 毛片免费大全| 51自拍视频| 国产欧美日韩精品第三区| 国产精品嫩草影院99av视频 | 国产精品视屏| 国产成人免费网站在线观看| 可以在线观看的黄色网址| 亚洲欧美日韩国产精品久久| 成人短视频在线在线观看| 欧美精品国产| 中文字幕一区婷婷久久| 亚洲第一成年网| 精品网址| 欧美激情婷婷| 久久亚洲精品中文字幕二区| 美利坚永久精品视频在线观看|