Skip to content

Flag Implementation in modes #100

@Kupaianaha

Description

@Kupaianaha

Expand camerad mode command:

if ( cmd == CAMERAD_MODE ) {
        ret = interface->controller_cmd(cmd, args, retstring);
      }

Ability to take flag and map the flags functionality to an instrument function. An example for this would be a readout flag. Current behavior; mode <?|help|mode>. New behavior: mode <mode> <flag> <etc>. The flag is optional, the instrument developer could use it to designate a function pertaining to mode switched. This flag would map to the instrument designated function. example

mode <fullframe> -r <rxr>

The camera-interface mode handles the fullframe attribute while the instrument specific flag then maps to a function that handles parameters for the readout.

long ArchonInterface::set_camera_mode(std::string args, std::string &retstring) {
    const std::string function("Camera::ArchonInterface::set_camera_mode");
    // Help
    if (args=="?" || args=="help") {
      retstring = CAMERAD_MODE;
      retstring.append( " <name>\n" );
      retstring.append( "  Applies camera settings associated with MODE_<name> specified in the ACF file.\n");
      retstring.append( "  Valid modes are: {" );
      for (const auto &mode : this->controller->modemap) {
        retstring.append(" "); retstring.append(mode.first);
      }
      retstring.append( " }\n" );
      return HELP;
    }
    // call the work function
    return( this->set_camera_mode(args) );
  }
  /***** Camera::ArchonInterface::set_camera_mode *****************************/
  /**
   * @brief      set a camera "mode"
   * @details    This version is for internal use.
   * @param[in]  modeselect  requested mode name
   * @return     ERROR|NO_ERROR
   *
   */
  long ArchonInterface::set_camera_mode(std::string modeselect)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions