libirimager
IR Imager Direct-SDK
Migration Guide

API Changes for IR Imager Direct SDK From Version 3.0.2 to Version 4.0.0

  • need libusb-1.0
  • imager.getRawBufferSize() –> dev->getRawBufferSize()
  • IRDeviceUVC –> IRDevice
  • IRDeviceUVC* dev = IRDeviceUVC::createInstance(...) –> IRDevice* dev = IRDevice::IRCreateDevice(params);
  • IRDeviceFile –> not supported anymore

API Changes for IR Imager Direct SDK From Version 2.1.1 (and 2.0.9) to Version 3.0.0

New Parameter (useHID) in imager init/reconnect function:
2.1.1: imager.init(&params, dev->getFrequency(), dev->getWidth(), dev->getHeight());
2.1.1: imager->reconnect(&params, dev->getFrequency(), dev->getWidth(), dev->getHeight());

3.0.0: imager.init(&params, dev->getFrequency(), dev->getWidth(), dev->getHeight(), dev->controlledViaHID());
3.0.0: imager->reconnect(&params, dev->getFrequency(), dev->getWidth(), dev->getHeight(), dev->controlledViaHID());

Need c++11 to build oop example:
2.1.1: oop/CMakeLists.txt: SET(CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=0")
3.0.0: oop/CMakeLists.txt: SET(CMAKE_CXX_FLAGS "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0")

Need to implement pure virtual method void IRImagerClient::onProcessExit(void* arg) for IRImagerHandler.

New parameter for onThermalFrameEvent callback (energy values array):
2.1.1: void onThermalFrameEvent(unsigned short* thermal, unsigned int w, unsigned int h, IRFrameMetadata meta, void* arg)
3.0.0: void onThermalFrameEvent(unsigned short* thermal, unsigned short* energy, unsigned int w, unsigned int h, IRFrameMetadata meta, void* arg)

Serialize Function moves from imager to iBuilder:
2.1.1: _imager->serialize(file.c_str(), (char*)ppm, size); 3.0.0: _iBuilder.serializePPM(file.c_str(), ppm, _iBuilder.getStride(), height);

Calling convention directbinding: 2.1.1: stdcall 3.0.0: cdecl