I got IDS Peak (ueye) Camera connected to USB3
GenICam Package Java Reference Implementation in my case 2024.04 has Java bindings.
I can not find a way to acquire an image from the IDS Peak camera using GenTL java API
C++ and C# API reference some RemoteDevice that Я не вижу в Java API. < /P>
Я сделал все шаги от инициализации библиотеки < /p>
Получение ссылки на устройство < /p>
Открытие DataStream < /p>
, но я не могу получить проход, который < /p>
ЗДЕСЬ. Приобретенность offromcamera () и changegain () ??
package detector.geicam;
import java.awt.image.BufferedImage;
import java.lang.foreign.Arena;
import java.lang.foreign.MemorySegment;
import java.nio.ByteBuffer;
import java.util.List;
import org.genicam.genapi.NodeMap;
import org.genicam.gentl.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MainGenicamTest {
private static final Logger l = LoggerFactory.getLogger(MainGenicamTest.class);
private GenTLProducer producer;
private TransportLayer transportLayer;
private List interfaces;
private TLInterface tlInterface;
private DeviceInfo deviceInfo;
private Device device;
private DataStream openDataStream;
private Port dataStreamPort;
private Port deviceRemotePort;
private Port deviceLocalPort;
public MainGenicamTest() {
System.loadLibrary("GenTLJava_MD_VC141_v3_4");
l.info("GenTLJava_MD_VC141_v3_4 loaded");
System.loadLibrary("GenApiJava_MD_VC141_v3_4");
l.info("GenApiJava_MD_VC141_v3_4 loaded");
producer = GenTLProducer.load("C:\\Work\\daich.biz\\biz.daich.stains.detector.geicam\\ids_ueyegentl.cti");
var r = producer.isOpen();
l.info("GenTLProducer isOpen: {}", r);
r = producer.checkValid();
l.info("GenTLProducer isValid: {}", r);
var name = producer.getDisplayname();
l.info("GenTLProducer name: {}", name);
String tlType = producer.getTLType();
l.info("GenTLProducer TLType: {}", tlType);
String version = producer.getVersion();
String model = producer.getModel();
String vendor = producer.getVendor();
l.info("GenTLProducer version: {}, model: {}, vendor: {}", version, model, vendor);
transportLayer = producer.openTransportLayer();
var res = transportLayer.updateInterfaceList(1000);
l.info("TransportLayer updateInterfaceList result: {}", res);
interfaces = transportLayer.getInterfaces();
l.info("TransportLayer interfaces: {}", interfaces.size());
for (InterfaceInfo interfaceInfo : interfaces) {
l.info("Interface: TransportLayerType: {}, display name: {}, id: {} ", interfaceInfo.getTransportLayerType(), interfaceInfo.getDisplayName(), interfaceInfo.getID());
TLInterface tlInterface = interfaceInfo.open();
boolean updateDeviceList = tlInterface.updateDeviceList(1000);
l.info("TLInterface updateDeviceList result: {}", updateDeviceList);
List deviceList = tlInterface.getDeviceList();
deviceList.stream().forEach(x -> l.info("DeviceInfo: {}, display name: {}, id: {}", x.getTransportLayerType(), x.getDisplayName(), x.getID()));
tlInterface.close();
}
tlInterface = interfaces.get(0).open();
boolean updateDeviceList = tlInterface.updateDeviceList(1000);
l.info("TLInterface updateDeviceList result: {}", updateDeviceList);
deviceInfo = tlInterface.getDeviceList().get(0);
l.info("DeviceInfo: TransportLayerType: {}, display name: {}, id: {}", deviceInfo.getTransportLayerType(), deviceInfo.getDisplayName(), deviceInfo.getID());
device = deviceInfo.open(DeviceAccessFlags.DEVICE_ACCESS_EXCLUSIVE);
l.info("Device opened: TransportLayerType: {}, display name: {}, id: {}", device.getTransportLayerType(), device.getDisplayName(), device.getID());
List dataStreamIDs = device.getDataStreamIDs();
dataStreamIDs.stream().forEach(x -> l.info("DataStream ID: {}", x));
String dataStreamId = dataStreamIDs.get(0);
openDataStream = device.openDataStream(dataStreamId);
if (openDataStream.definesPayloadSize()) {
long payloadSize = openDataStream.getPayloadSize();
l.info("DataStream payload size: {}", payloadSize);
} else {
l.info("DataStream does not define payload size");
}
dataStreamPort = openDataStream.getPort();
l.info("port properties: id={} name={} model={} TLType={} Vendor={}", dataStreamPort.getID(), dataStreamPort.getName(), dataStreamPort.getModel(), dataStreamPort.getTLType(), dataStreamPort.getVendor());
deviceRemotePort = device.getRemotePort();
l.info("Remote port properties: id={} name={} model={} TLType={} Vendor={}", deviceRemotePort.getID(), deviceRemotePort.getName(), deviceRemotePort.getModel(), deviceRemotePort.getTLType(),
deviceRemotePort.getVendor());
deviceLocalPort = device.getLocalPort();
l.info("Remote port properties: id={} name={} model={} TLType={} Vendor={}", deviceLocalPort.getID(), deviceLocalPort.getName(), deviceLocalPort.getModel(), deviceLocalPort.getTLType(),
deviceLocalPort.getVendor());
}
public BufferedImage acquireImageFromCamera() {
// HOW!???
throw new RuntimeException("Not implemented yet");
}
public void changeGain() {
// TODO: how to get reference to the GenApiNodeMap?
// how to do FindNode "TLParamsLocked" "AcquisitionStart" "AcquisitionStart" ???
}
public static void main(String[] args) {
MainGenicamTest x = new MainGenicamTest();
x.changeGain();
BufferedImage img = x.acquireImageFromCamera();
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... from-ids-p
Приобретение изображения с Genicam Package Package Java Справочная реализация от Peak Camera в Java SE ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение