56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
|
|
#include <unitree/robot/go2/video/video_client.hpp>
|
||
|
|
#include <iostream>
|
||
|
|
#include <fstream>
|
||
|
|
#include <ctime>
|
||
|
|
|
||
|
|
|
||
|
|
int main()
|
||
|
|
{
|
||
|
|
/*
|
||
|
|
* Initilaize ChannelFactory
|
||
|
|
*/
|
||
|
|
unitree::robot::ChannelFactory::Instance()->Init(0);
|
||
|
|
unitree::robot::go2::VideoClient video_client;
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Set request timeout 1.0s
|
||
|
|
*/
|
||
|
|
video_client.SetTimeout(1.0f);
|
||
|
|
video_client.Init();
|
||
|
|
|
||
|
|
//Test Api
|
||
|
|
|
||
|
|
std::vector<uint8_t> image_sample;
|
||
|
|
int ret;
|
||
|
|
|
||
|
|
while (true)
|
||
|
|
{
|
||
|
|
ret = video_client.GetImageSample(image_sample);
|
||
|
|
|
||
|
|
if (ret == 0) {
|
||
|
|
time_t rawtime;
|
||
|
|
struct tm *timeinfo;
|
||
|
|
char buffer[80];
|
||
|
|
|
||
|
|
time(&rawtime);
|
||
|
|
timeinfo = localtime(&rawtime);
|
||
|
|
|
||
|
|
strftime(buffer, sizeof(buffer), "%Y%m%d%H%M%S.jpg", timeinfo);
|
||
|
|
std::string image_name(buffer);
|
||
|
|
|
||
|
|
std::ofstream image_file(image_name, std::ios::binary);
|
||
|
|
if (image_file.is_open()) {
|
||
|
|
image_file.write(reinterpret_cast<const char*>(image_sample.data()), image_sample.size());
|
||
|
|
image_file.close();
|
||
|
|
std::cout << "Image saved successfully as " << image_name << std::endl;
|
||
|
|
} else {
|
||
|
|
std::cerr << "Error: Failed to save image." << std::endl;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
sleep(3);
|
||
|
|
}
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|