#include <cvb/device_factory.hpp>
#include <cvb/driver/driver.hpp>
#include <cvb/image.hpp>
#include <cvb/utilities/utilities.hpp>
#include <cvb/composite.hpp>
#include <cvb/driver/multi_part_image.hpp>
#include <cvb/plane_enumerator.hpp>
#include <cvb/point_cloud.hpp>
#include <iostream>
int main() {
Cvb::DiscoverFlags::IgnoreGevFD |
Cvb::DiscoverFlags::IgnoreVins |
Cvb::DiscoverFlags::UpToLevelInterface,
std::chrono::milliseconds(2000));
for (int i = 0; i < interfaceInfoList.size(); i++)
{
std::string mac = "No MAC available";
interfaceInfoList[i].TryGetProperty(Cvb::DiscoveryProperties::InterfaceMac, mac);
std::cout << mac << " | Index: " << i << std::endl;
}
std::cout << "Please enter the index of the interface your device is connected to:" << std::endl;
std::cout << "(You can check the mac addresses in the GenICamBrowser)" << std::endl;
int index = -1;
std::cin >> index;
while (index < 0 || index > interfaceInfoList.size() || std::cin.fail())
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "Invalid index, please enter a valid number:" << std::endl;
std::cin >> index;
}
auto& interfaceInfo = interfaceInfoList[index];
interfaceInfo.SetGenApiFeature(CVB_LIT("TLInterface"), CVB_LIT("Cust::DisableSubnetMatch"), CVB_LIT("1"));
interfaceInfo.SetGenApiFeature(CVB_LIT("TLInterface"), CVB_LIT("Cust::AllowBroadcastDiscoveryResponse"), CVB_LIT("1"));
Cvb::DiscoverFlags::IgnoreGevFD |
Cvb::DiscoverFlags::IgnoreVins |
Cvb::DiscoverFlags::UpToLevelDevice |
Cvb::DiscoverFlags::IncludeInaccessible,
std::chrono::milliseconds(2000));
{
auto interfaceNM = interfaceDevice->NodeMap(CVB_LIT("TLInterface"));
auto deviceUpdateListNode = interfaceNM->Node<
Cvb::CommandNode>(CVB_LIT(
"DeviceUpdateList"));
auto ipNode = interfaceNM->Node<
Cvb::IntegerNode>(CVB_LIT(
"GevDeviceForceIPAddress"));
auto subnetNode = interfaceNM->Node<
Cvb::IntegerNode>(CVB_LIT(
"GevDeviceForceIPSubnetMask"));
auto forceIPNode = interfaceNM->Node<
Cvb::CommandNode>(CVB_LIT(
"GevDeviceForceIP"));
auto configurationStatusNode = interfaceNM->Node<
Cvb::EnumerationNode>(CVB_LIT(
"GevDeviceIPConfigurationStatus"));
deviceUpdateListNode->Execute();
configurationStatusNode->SetValue("TemporaryIP");
ipNode->SetValue(0x0A000002);
forceIPNode->Execute();
deviceUpdateListNode->Execute();
configurationStatusNode->SetValue("PersistentIP");
ipNode->SetValue(0x0A000002);
forceIPNode->Execute();
deviceUpdateListNode->Execute();
}
};
static std::vector< DiscoveryInformation > Discover()
static std::shared_ptr< T > Open(const String &provider, AcquisitionStack acquisitionStack=AcquisitionStack::PreferVin)
void SetValue(std::int64_t value)