Version 8.9.0
 
Loading...
Searching...
No Matches
examples/linux/directbinding/direct_binding_tcp_show.cpp

Linux example: This example shows the usage of the C-style interface to implement a client application displaying data from a TCP streaming server application.

Linux example: This example shows the usage of the C-style interface to implement a client application displaying data from a TCP streaming server application.

#include <iostream>
#include <memory>
#include <unistd.h>
#include <opencv2/highgui/highgui_c.h>
//--Code for displaying image -----------------
#include <opencv2/opencv.hpp>
#include "libirimager/direct_binding.h"
//---------------------------------------------
int main(int argc, char *argv[])
{
bool hasLaunchedDaemon = false;
char default_arg[] = "localhost";
char* arg = default_arg;
if(argc==2)
arg = argv[1];
else
{
{
hasLaunchedDaemon = true;
}
// Wait some time for server
usleep(2000000);
}
int ret = ::evo_irimager_tcp_init(arg, 1337);
if(ret < 0)
{
std::cout << "error at init" << std::endl;
::exit(-1);
}
int w;
int h;
{
std::vector<unsigned char> data(w*h*3);
do
{
if(::evo_irimager_get_palette_image(&w, &h, &data[0])==0)
{
//--Code for displaying image -----------------
cv::Mat cv_img(cv::Size(w, h), CV_8UC3, &data[0], cv::Mat::AUTO_STEP);
cv::cvtColor(cv_img, cv_img, cv::COLOR_BGR2RGB);
cv::imshow("palette image daemon", cv_img);
cv::waitKey(5);
//---------------------------------------------
}
} while(cvGetWindowHandle("palette image daemon"));
}
if(hasLaunchedDaemon) ::evo_irimager_daemon_kill();
return 0;
}
__IRDIRECTSDK_API__ int evo_irimager_tcp_init(const char *ip, int port)
Initializes the TCP connection to the daemon process (non-blocking)
__IRDIRECTSDK_API__ int evo_irimager_daemon_launch()
Launch TCP daemon.
__IRDIRECTSDK_API__ int evo_irimager_daemon_kill()
Kill TCP daemon.
__IRDIRECTSDK_API__ int evo_irimager_get_palette_image(int *w, int *h, unsigned char *data)
Accessor to an RGB palette image by reference data format: unsigned char array (size 3 * w * h) r,...
__IRDIRECTSDK_API__ int evo_irimager_get_palette_image_size(int *w, int *h)
Accessor to width and height of false color coded palette image.
__IRDIRECTSDK_API__ int evo_irimager_daemon_is_running()
Check whether daemon is already running.