13.03.002 (32 Bit) Failing to assign IP

Hi All,

We have a JAI Go X hooked up, the management console seems to pick the camera in the device tree:

However when trying to assign the IP address, the ‘advanced configuration’ page seems to hang, then crash, and the management console window comes back into view.

Whether or not the next thing is related, id hope you could tell me, obviously at the moment we can’t set the IP, so the device is ‘yellow’ at the moment in the advanced configuration window, i can take this across to the port assignment list and save, the camera will then appear in the management console window. However, when trying to load the camera pragmatically, it always fails…

Thanks,

Josh

Hi @JoshSmith

have you tried using the GenICam Browser?

Hi Chris,

Yes I have tried that…in the GenICam Browser, nothing is actually found.

Do you have the chance to programmatically try and change the IP? If needed I could provide you with some code samples to do so.

Also, try updating CVB first.

Hi Chris,

I could give that a go yes…I have tried updating to the latest, but it acts the same as the GenICam browser in V13.

Hi @JoshSmith

this should be the code to force an IP on the device:

auto allInterfaceFlags = Cvb::Driver::DiscoverFlags::UpToLevelInterface | Cvb::Driver::DiscoverFlags::IgnoreGevSD; 
auto allInterfaces = Cvb::DeviceFactory::Discover(allInterfaceFlags);  

// Let's say your camera is connected to the 4th interface found: 
Cvb::Driver::DiscoveryInformation& iface = allInterfaces.at(4);  

auto allDevFlags = Cvb::Driver::DiscoverFlags::IgnoreVins | Cvb::Driver::DiscoverFlags::IncludeInaccessible | Cvb::Driver::DiscoverFlags::IgnoreGevSD; 

iface.SetGenApiFeature("TLInterface", "DisableSubnetMatch", "1"); 
iface.SetGenApiFeature("TLInterface", "AllowBroadcastDiscoveryResponse", "1"); 

// Find all devices connected to that device 
auto devsFound = Cvb::DeviceFactory::Discover(iface, allDevFlags); 
if (devsFound.size() > 0) 
{ 
  auto interfaceDevice = Cvb::DeviceFactory::Open(iface.AccessToken()); 
  auto interfaceNM = interfaceDevice->NodeMap(CVB_LIT("TLInterface")); 
  auto deviceUpdateListNode = interfaceNM->Node<Cvb::CommandNode>(CVB_LIT("DeviceUpdateList")); 
  auto cfgIPNode = interfaceNM->Node<Cvb::IntegerNode>(CVB_LIT("IPCfg_IP")); 
  auto cfgSubnetNode = interfaceNM->Node<Cvb::IntegerNode>(CVB_LIT("IPCfg_Subnet")); 
  auto cfgMacNode = interfaceNM->Node<Cvb::IntegerNode>(CVB_LIT("IPCfg_MAC")); 
  auto cfgForceNode = interfaceNM->Node<Cvb::CommandNode>(CVB_LIT("IPCfg_SetForceIP")); 
  auto cfgStaticNode = interfaceNM->Node<Cvb::CommandNode>(CVB_LIT("IPCfg_SetStatIP"));  

  // make node map aware of the device 
  deviceUpdateListNode->Execute(); 

  // we want to configure the found device with MAC 
  // 00-01-0D-C2-43-66 
  // reverse: 66-43-C2-0D-01-00 
  int64_t macReverse = 0x6643c20d0100; 
  cfgMacNode->SetValue(macReverse); 

  // New IP 169.254.0.1 -> hex: 0xa9fe0001 
  cfgIPNode->SetValue(0xa9fe0001); 

  // Subnet 255.255.0.0 -> hex: 0xFFFF0000 
  cfgSubnetNode->SetValue(0xFFFF0000); 

  // Force the new IP 
  cfgForceNode->Execute(); 

  // make node map aware of new IP 
  deviceUpdateListNode->Execute(); 

  // permanently write the IP to the camera 
  cfgStaticNode->Execute(); 
}