improve comand line
This commit is contained in:
62
main.cpp
62
main.cpp
@ -51,13 +51,15 @@ void help()
|
|||||||
<<"open [name] Open camera with string name\n"
|
<<"open [name] Open camera with string name\n"
|
||||||
<<"close Close camera \n"
|
<<"close Close camera \n"
|
||||||
<<"capture [file] Take an image and save it to file\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";
|
<<"exit Quit program\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
void callback(cv::Mat data)
|
void callback(cv::Mat data)
|
||||||
{
|
{
|
||||||
Log(Log::INFO)<<"Saveing image";
|
std::cout<<"Saveing image\n> "<<std::flush;
|
||||||
cv::imwrite("./testimg.png", data);
|
cv::imwrite(filename, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> tokenize(const std::string& in, char delim = ' ')
|
std::vector<std::string> tokenize(const std::string& in, char delim = ' ')
|
||||||
@ -85,8 +87,6 @@ int main(int argc, char* argv[])
|
|||||||
std::getline(std::cin, line);
|
std::getline(std::cin, line);
|
||||||
std::vector<std::string> tokens = tokenize(line);
|
std::vector<std::string> tokens = tokenize(line);
|
||||||
|
|
||||||
int ret = -1;
|
|
||||||
|
|
||||||
if(!tokens.empty())
|
if(!tokens.empty())
|
||||||
{
|
{
|
||||||
if(tokens[0].find("help") != std::string::npos)
|
if(tokens[0].find("help") != std::string::npos)
|
||||||
@ -95,18 +95,16 @@ int main(int argc, char* argv[])
|
|||||||
break;
|
break;
|
||||||
else if(tokens[0].find("list") != std::string::npos)
|
else if(tokens[0].find("list") != std::string::npos)
|
||||||
listDevices();
|
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)
|
if(tokens.size() > 1)
|
||||||
{
|
{
|
||||||
ret = -1;
|
|
||||||
size_t index = std::stoul(tokens[1]);
|
size_t index = std::stoul(tokens[1]);
|
||||||
if(index < Camera::getAvailableCameras().size())
|
if(index < Camera::getAvailableCameras().size())
|
||||||
{
|
{
|
||||||
camera.openCamera(index);
|
camera.openCamera(index);
|
||||||
if(camera.isOpen())
|
if(camera.isOpen())
|
||||||
{
|
{
|
||||||
ret = 0;
|
|
||||||
camera.setAcquisitionMode(Camera::MODE_SINGLE);
|
camera.setAcquisitionMode(Camera::MODE_SINGLE);
|
||||||
camera.setBayerMode(Camera::BAYER_GREEN);
|
camera.setBayerMode(Camera::BAYER_GREEN);
|
||||||
camera.setTriggerMode(Camera::TRIGGER_SOFTWARE);
|
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(camera.isOpen())
|
||||||
|
{
|
||||||
|
if(tokens.size() > 1)
|
||||||
|
filename = tokens[1] + ".png";
|
||||||
|
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(tokens.size() > 1)
|
||||||
{
|
{
|
||||||
ret = -1;
|
if(!camera.setExposureTime(atof(tokens[1].c_str())*1000000.0))
|
||||||
|
std::cout<<"setting exposure time failed\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
std::cout<<"Exposure time: "<<camera.getExposureTime()/1000000.0<<'\n';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::cout<<"Camera not open\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(tokens[0].find("gain") != std::string::npos || tokens[0] == "g")
|
||||||
|
{
|
||||||
if(camera.isOpen())
|
if(camera.isOpen())
|
||||||
{
|
{
|
||||||
filename = tokens[1] + ".png";
|
if(tokens.size() > 1)
|
||||||
camera.trigger();
|
{
|
||||||
|
if(!camera.setGain(atof(tokens[1].c_str())))
|
||||||
|
std::cout<<"setting exposure time failed\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
std::cout<<"Gain: "<<camera.getGain()<<'\n';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::cout<<"Camera not open\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::cout<<tokens[0]<<" is not a valid command\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user