virtual void onThermalFrameEvent(unsigned short* thermal, unsigned short* energy, unsigned int w, unsigned int h, IRFrameMetadata meta, std::vector<IREventData> events, void* arg)
virtual void onThermalFrameEvent(unsigned short* thermal, unsigned short* energy, unsigned int w, unsigned int h, IRFrameMetadata meta,const IRArray<IREventData>& events, void* arg)
virtual void onVisibleFrameEvent(unsigned char* data, unsigned int w, unsigned int h, IRFrameMetadata meta, std::vector<IREventData> events, void* arg)
virtual void onVisibleFrameEvent(unsigned char* data, unsigned int w, unsigned int h, IRFrameMetadata meta, const IRArray<IREventData>& events, void* arg)
typedef void(__CALLCONV * fptrIRThermalSnapshot)(unsigned short* thermal, unsigned short* energy, unsigned int w, unsigned int h, IRFrameMetadata meta, std::vector<IREventData> events, void* arg)
typedef void(__CALLCONV * fptrIRThermalSnapshot)(unsigned short* thermal, unsigned short* energy, unsigned int w, unsigned int h, IRFrameMetadata meta, const IRArray<IREventData>& events, void* arg)
typedef void(__CALLCONV * fptrIRVisibleSnapshot)(unsigned char* data, unsigned int w, unsigned int h, IRFrameMetadata meta, std::vector<IREventData> events, void* arg)
typedef void(__CALLCONV * fptrIRVisibleSnapshot)(unsigned char* data, unsigned int w, unsigned int h, IRFrameMetadata meta, const IRArray<IREventData>& events, void* arg)
Only on Windows:
evo::IRDeviceError result = dev->getFrame()
is now necessary for receiving new frames (see examples)std::vector<IREventData> events
--> onVisibleFrameEvent(unsigned char *data, unsigned int w, unsigned int h, IRFrameMetadata meta, std::vector<IREventData> events, void *arg)
std::vector<IREventData> events
--> onThermalFrameEvent(unsigned short *thermal, unsigned short *energy, unsigned int w, unsigned int h, IRFrameMetadata meta, std::vector<IREventData> events, void *arg)
//Get initialized pif config
IRPifConfig pifConfig = imager.getPifConfig();
if(pifConfig.ChannelsDI.size() > 0)
{
pifConfig.ChannelsDI[0].Mode = IRChannelInputMode::SnapshotOnEdge; //Trigger only on change
pifConfig.ChannelsDI[0].IsLowActive = true; //Trigger on false
}
//Set pif config for apply new configuration
imager.setPifConfig(pifConfig);
//Get initialized pif config
IRPifConfig pifConfig = imager.getPifConfig();
if(pifConfig.ChannelsDI.size() > 0)
{
pifConfig.ChannelsDI[0].IsLowActive = true; //Invert, to close flag on true
pifConfig.FlagOpenInputChannel = pifConfig.ChannelsDI[0]; //Set which channel controls flag
}
//Set pif config for apply new configuration
imager.setPifConfig(pifConfig);
//Get initialized pif config
IRPifConfig pifConfig = imager.getPifConfig();
if(pifConfig.ChannelsAO.size() > 0)
{
pifConfig.ChannelsAO[0].AnalogMode = IRChannelAnalogOutputMode::Range_0V_10V; //set to voltage output, not all pif devices support this!
pifConfig.FrameSyncOutput.Channel = pifConfig.ChannelsAO[0]; //Set channel for FrameSync output
pifConfig.FrameSyncOutput.AnalogValue = 5; //set output voltage to 5V
}
//Set pif config for apply new configuration
imager.setPifConfig(pifConfig);
New Parameter (useHID) in imager init/reconnect function:
2.1.1: imager.init(¶ms, dev->getFrequency(), dev->getWidth(), dev->getHeight());
2.1.1: imager->reconnect(¶ms, dev->getFrequency(), dev->getWidth(), dev->getHeight());
3.0.0: imager.init(¶ms, dev->getFrequency(), dev->getWidth(), dev->getHeight(), dev->controlledViaHID());
3.0.0: imager->reconnect(¶ms, 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