Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions slicecamd/slicecam_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2480,6 +2480,48 @@ namespace Slicecam {
/***** Slicecam::Interface::shutdown ****************************************/


/***** Slicecam::Interface::shutter *****************************************/
/**
* @brief get/set shutter
* @param[in] args [open|close|auto]
* @param[out] retstring return string
* @return ERROR | NO_ERROR | HELP
*
*/
long Interface::shutter(const std::string args, std::string &retstring) {
const std::string function("Slicecam::Interface::shutter");

// Help
if ( args == "?" || args == "help" ) {
retstring = SLICECAMD_SHUTTER;
retstring.append( " [ open | close | auto]\n" );
retstring.append( " open or close the internal shutter\n" );
retstring.append( " applies to all connected cameras\n" );
return HELP;
}

// if it's not empty then it must be open|close|auto
if (!args.empty() && (args != "open" && args != "close" && args != "auto")) {
logwrite(function, "ERROR expected [ open | close | auto ]");
retstring="invalid_argument";
return ERROR;
}

long error = NO_ERROR;

std::ostringstream oss;
for (const auto &pair : this->camera.andor) {
std::string state = args;
error |= pair.second->set_shutter(state);
oss << pair.second->camera_info.camera_name << ":" << state << " ";
}
retstring=oss.str();

return error;
}
/***** Slicecam::Interface::shutter *****************************************/


/***** Slicecam::Interface::test ********************************************/
/**
* @brief test routines
Expand Down
1 change: 1 addition & 0 deletions slicecamd/slicecam_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,7 @@ namespace Slicecam {
long gui_settings_control(); /// get gui settings and push to Guider GUI display
long gui_settings_control( std::string args, std::string &retstring ); /// set or get and push to Guider GUI display
long shutdown( std::string args, std::string &retstring );
long shutter(const std::string args, std::string &retstring);
long test( std::string args, std::string &retstring );
long exptime( std::string args, std::string &retstring );
long fan_mode( std::string args, std::string &retstring );
Expand Down
4 changes: 4 additions & 0 deletions slicecamd/slicecam_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,10 @@ namespace Slicecam {
ret = NO_ERROR; // init_names() returns void, never fails
}
else
if ( cmd == SLICECAMD_SHUTTER ) {
ret = this->interface.shutter(args, retstring);
}
else

// shutdown
//
Expand Down