From 86515e2da711c1a8d6987bb28aecbe47789a4586 Mon Sep 17 00:00:00 2001 From: uvos Date: Tue, 15 Jun 2021 14:39:54 +0200 Subject: [PATCH] improve comand line --- main.cpp | 68 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/main.cpp b/main.cpp index d41cbec..85c348f 100644 --- a/main.cpp +++ b/main.cpp @@ -51,13 +51,15 @@ void help() <<"open [name] Open camera with string name\n" <<"close Close camera \n" <<"capture [file] Take an image and save it to file\n" + <<"exposure [s] set exposure to x seconds\n" + <<"gain [n] set gain to n times\n" <<"exit Quit program\n"; } void callback(cv::Mat data) { - Log(Log::INFO)<<"Saveing image"; - cv::imwrite("./testimg.png", data); + std::cout<<"Saveing image\n> "< tokenize(const std::string& in, char delim = ' ') @@ -85,8 +87,6 @@ int main(int argc, char* argv[]) std::getline(std::cin, line); std::vector tokens = tokenize(line); - int ret = -1; - if(!tokens.empty()) { if(tokens[0].find("help") != std::string::npos) @@ -95,18 +95,16 @@ int main(int argc, char* argv[]) break; else if(tokens[0].find("list") != std::string::npos) listDevices(); - else if(tokens[0].find("open") != std::string::npos) + else if(tokens[0].find("open") != std::string::npos || tokens[0] == "o") { if(tokens.size() > 1) { - ret = -1; size_t index = std::stoul(tokens[1]); if(index < Camera::getAvailableCameras().size()) { camera.openCamera(index); if(camera.isOpen()) { - ret = 0; camera.setAcquisitionMode(Camera::MODE_SINGLE); camera.setBayerMode(Camera::BAYER_GREEN); camera.setTriggerMode(Camera::TRIGGER_SOFTWARE); @@ -119,17 +117,59 @@ int main(int argc, char* argv[]) } } } - else if(tokens[0].find("capture") != std::string::npos) + else if(tokens[0].find("capture") != std::string::npos || tokens[0] == "c") { - if(tokens.size() > 1) + if(camera.isOpen()) { - ret = -1; - if(camera.isOpen()) - { + if(tokens.size() > 1) filename = tokens[1] + ".png"; - camera.trigger(); - } + else + filename = "testimg.png"; + camera.startAcquisition(); + camera.trigger(); } + else + { + std::cout<<"Camera not open\n"; + } + } + else if(tokens[0].find("exposure") != std::string::npos || tokens[0] == "e") + { + if(camera.isOpen()) + { + if(tokens.size() > 1) + { + if(!camera.setExposureTime(atof(tokens[1].c_str())*1000000.0)) + std::cout<<"setting exposure time failed\n"; + } + else + std::cout<<"Exposure time: "< 1) + { + if(!camera.setGain(atof(tokens[1].c_str()))) + std::cout<<"setting exposure time failed\n"; + } + else + std::cout<<"Gain: "<