Skip to content
Draft
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
329 changes: 1 addition & 328 deletions blast_config/command_list.c
Original file line number Diff line number Diff line change
Expand Up @@ -261,11 +261,6 @@ struct scom scommands[xyzzy + 1] = {
{COMMAND(disallow_hw_wd), "Setting the HW watchdog to be ignored", GR_MISC | CONFIRM},
{COMMAND(allow_hw_wd), "Setting the HW watchdog to be listened to", GR_MISC | CONFIRM},
{COMMAND(take_incharge), "Setting InCharge to 1 and taking control", GR_MISC | CONFIRM},
// Video transmitters
{COMMAND(vtx_xsc0), "Setting video transmitter to XSC0", GR_XSC_MODE | GR_TELEM},
{COMMAND(vtx_xsc1), "Setting video transmitter to XSC1", GR_XSC_MODE | GR_TELEM},
// XY stage
{COMMAND(xy_panic), "stop XY stage motors immediately", GR_MISC},
// BLAST(TIM) Misc
{COMMAND(reap_fc1), "ask MCP to reap the fc1 watchdog tickle", GR_MISC | CONFIRM},
{COMMAND(reap_fc2), "ask MCP to reap the fc2 watchdog tickle", GR_MISC | CONFIRM},
Expand Down Expand Up @@ -1265,342 +1260,20 @@ struct mcom mcommands[plugh + 2] = {
},

/* STAR CAMERAS */
{COMMAND(xsc_is_new_window_period), "Set the time for which commands are valid (centi-seconds)", GR_XSC_PARAM, 2,
{
{"Which", 0, 2, 'i', "NONE"},
{"Window period", 0, 2000, 'i', "NONE"},
}
},
{COMMAND(xsc_offset), "Trim the star camera", GR_XSC_PARAM|GR_TRIM, 3,
{COMMAND(sc_offset), "Trim the star camera", GR_XSC_PARAM|GR_TRIM, 3,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Cross-El trim", -180, 180, 'd', "NONE"},
{"El trim", -180, 180, 'd', "NONE"},
}
},
{COMMAND(xsc_heaters_off), "Turn off the XSC heater", GR_XSC_HOUSE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_heaters_on), "Turn on the XSC heater", GR_XSC_HOUSE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_heaters_auto), "Allow XSC to control its heater", GR_XSC_HOUSE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_exposure_timing), "xsc exposure time", GR_XSC_PARAM, 4,
{
{"which", 0, 2, 'i', "NONE"},
{"exposure time_cs (cs) [default: 12]", 1, 100, 'l', "NONE"},
{"grace period (s) (disregards which) [default: 45.0]", 1.0, 100.0, 'f', "NONE"},
{"post trigger counter_mcp share delay (cs) (disregards which) [default: 200]", 1, 1000, 'l', "NONE"},
},
},
{COMMAND(xsc_multi_trigger), "xsc trigger timing", GR_XSC_PARAM, 3,
{
{"num triggers [default: 1]", 0, 16, 'i', "NONE"},
{"time between triggers (cs) [default: 19]", 1, 100, 'l', "NONE"},
{"stars readout delay (s) [default: 1.0]", 0.1, 10.0, 'f', "NONE"},
},
},
{COMMAND(xsc_trigger_threshold), "Allow XSC to trigger based on predicted px streaking", GR_XSC_PARAM, 3,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Enabled", 0, 1, 'i', "NONE"},
{"Blob streaking limit (pixels", 0, 100, 'f', "NONE"},
}
},
{COMMAND(xsc_scan_force_trigger), "Force XSC to trigger on turnaround (ignore speed)", GR_XSC_PARAM, 2,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Force the trigger on scan limits", 0, 1, 'i', "NONE"},
}
},
{COMMAND(xsc_quit), "Quit XSC", GR_XSC_HOUSE|CONFIRM, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_shutdown), "Shutdown the XSC computer", GR_XSC_HOUSE|CONFIRM, 2,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Restart?", 0, 1, 'i', "NONE"}
}
},
{COMMAND(xsc_main_settings), "xsc main settings", GR_XSC_PARAM, 6,
{
{"which", 0, 2, 'i', "NONE"},
{"display_frequency [default: 20.0]", 1.0, 30.0, 'f', "NONE"},
{"display_fullscreen [default: 1]", 0, 1, 'i', "NONE"},
{"display_image_only [default: 0]", 0, 1, 'i', "NONE"},
{"display_solving_filters [default: 0]]", 0, 1, 'i', "NONE"},
{"display_image_brightness [default: 1.0]", 0.5, 4.0, 'f', "NONE"},
},
},
{COMMAND(xsc_display_zoom), "xsc display zoom", GR_XSC_PARAM, 4,
{
{"which", 0, 2, 'i', "NONE"},
{"center x display pixel [default: 320]", 0, 1000, 'i', "NONE"},
{"center y display pixel [default: 240]", 0, 1000, 'i', "NONE"},
{"zoom [default: 1.0]", 1.0, 4.0, 'f', "NONE"},
},
},
{COMMAND(xsc_image_client), "Enable or disable sending images to mcp", GR_XSC_MODE, 2,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Image client enabled", 0, 1, 'i', "NONE"},
}
},
{COMMAND(xsc_init_focus), "Initialize the focus motor", GR_XSC_MODE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_get_focus), "Get the absolute focus position", GR_XSC_MODE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_set_focus), "Set the absolute focus position", GR_XSC_MODE, 2,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Absolute focus position", 0, 5000, 'i', "NONE"},
}
},
{COMMAND(xsc_stop_focus), "Stop all motion on the focus actuator", GR_XSC_MODE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_define_focus), "Define the value of the focus at the current position", GR_XSC_MODE, 2,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Focus value", 0, 5000, 'i', "NONE"},
}
},
{COMMAND(xsc_set_focus_incremental), "Command an incremental step to the focus motor", GR_XSC_MODE, 2,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Incremental focus steps", -5000, 5000, 'i', "NONE"},
}
},
{COMMAND(xsc_run_autofocus), "xsc run autofocus", GR_XSC_PARAM, 1,
{
{"which", 0, 2, 'i', "NONE"},
},
},

{COMMAND(xsc_set_autofocus_range), "xsc set autofocus range", GR_XSC_PARAM, 4,
{
{"which", 0, 2, 'i', "NONE"},
{"focus_search_min", 0, 5000, 'l', "NONE"},
{"focus_search_max", 0, 5000, 'l', "NONE"},
{"focus_search_step", 1, 1000, 'l', "NONE"},
},
},
{COMMAND(xsc_abort_autofocus), "xsc abort autofocus", GR_XSC_PARAM, 2,
{
{"which", 0, 2, 'i', "NONE"},
{"still_use_solution", 0, 1, 'i', "NONE"},
},
},
{COMMAND(xsc_autofocus_display_mode), "xsc autofocus display mode", GR_XSC_PARAM, 2,
{
{"which", 0, 2, 'i', "NONE"},
{"mode (0=auto, 1=on, 2=off)", 0, 2, 'i', "NONE"},
},
},
{COMMAND(xsc_init_aperture), "Initialize the aperture motor", GR_XSC_MODE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_get_aperture), "Get Aperture", GR_XSC_MODE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_set_aperture), "Set the absolute aperture position", GR_XSC_MODE, 2,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Absolute aperture position", 0, 1000, 'i', "NONE"},
}
},
{COMMAND(xsc_stop_aperture), "Stop all motion on the aperture actuator", GR_XSC_MODE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_define_aperture), "Define the value of the aperture at the current position", GR_XSC_MODE, 2,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Aperture value", 0, 1000, 'i', "NONE"},
}
},
{COMMAND(xsc_get_gain), "xsc get gain", GR_XSC_PARAM, 0,
{
{"which", 0, 2, 'i', "NONE"},
},
},

{COMMAND(xsc_set_gain), "xsc set gain", GR_XSC_PARAM, 0,
{
{"which", 0, 2, 'i', "NONE"},
{"position", 0.5, 10.0, 'f', "NONE"},
},
},
{COMMAND(xsc_fake_sky_brightness), "xsc fake sky brightness", GR_XSC_PARAM, 0,
{
{"which", 0, 2, 'i', "NONE"},
{"enabled", 0, 1, 'i', "NONE"},
{"level_kepsa", 0.0, 10000.0, 'f', "NONE"},
{"gain_db", -50, 10, 'f', "NONE"},
{"actual exposure time (s)", 0.01, 10.0, 'f', "NONE"},
{"simulated exposure time (s)", 0.01, 10.0, 'f', "NONE"},
},
},
{COMMAND(xsc_solver_general), "Solver parameter settings", GR_XSC_PARAM, 3,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Enable the solver", 0, 1, 'i', "NONE"},
{"Set the solver timeout period (s)", 5, 600, 'f', "NONE"},
}
},
{COMMAND(xsc_solver_abort), "Abort the solving the current image", GR_XSC_MODE, 1,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"}
}
},
{COMMAND(xsc_selective_mask), "Set the XSC selective mask", GR_XSC_PARAM, 5,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Enable selective masking", 0, 1, 'i', "NONE"},
{"Mask field 1", 0, CMD_L_MAX, 'l', "NONE"},
{"Mask field 2", 0, CMD_L_MAX, 'l', "NONE"},
{"Mask field 3", 0, CMD_L_MAX, 'l', "NONE"},
}
},
{COMMAND(xsc_blob_finding), "XSC blob finder settings", GR_XSC_PARAM, 5,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"SNR Threshhold", 0.01, 10, 'f', "NONE"},
{"Max num blobs", 3, 100, 'i', "NONE"},
{"Enable Robust mode", 0, 1, 'i', "NONE"},
{"Fitting method (0= none, 1=gaussian, 2=double gaussian)", 0, 2, 'i', "NONE"},
}
},
{COMMAND(xsc_blob_cells), "XSC blob cell settings", GR_XSC_PARAM, 3,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Cell size (pixels, power of 2)", 4, 512, 'i', "NONE"},
{"Max num blobs per cell (default 2)", 1, 10, 'i', "NONE"},
}
},
{COMMAND(xsc_pattern_matching), "XSC pattern matching settings", GR_XSC_PARAM, 8,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Pattern match enable", 0, 1, 'i', "NONE"},
{"Display Star names", 0, 1, 'i', "NONE"},
{"Match Tolerance (pixels)", 0.01, 10, 'f', "NONE"},
{"Platescale min (\"/px)", 6.0, 7.0, 'f', "NONE"},
{"Platescale max (\"/px)", 6.0, 7.0, 'f', "NONE"},
{"Use fixed Platescale", 0, 1, 'i', "NONE"},
{"Fixed Platescale (\"/px)", 6.0, 7.0, 'f', "NONE"},
}
},
{COMMAND(xsc_filter_hor_location), "XSC Horizontal Location Filter", GR_XSC_PARAM, 3,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Horizontal Limit Enabled", 0, 1, 'i', "NONE"},
{"Horizontal Radius (degrees)", 0.0, 90.0, 'f', "NONE"},
}
},
{COMMAND(xsc_filter_hor_roll), "XSC Horizontal Roll Limit", GR_XSC_PARAM, 4,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Horizontal Roll Limit", 0, 1, 'i', "NONE"},
{"Minimum Horizontal Roll (degrees)", -180.0, 180.0, 'f', "NONE"},
{"Maximum Horizontal Roll (degrees)", -180.0, 180.0, 'f', "NONE"},
}
},
{COMMAND(xsc_filter_el), "XSC Elevation Limit", GR_XSC_PARAM, 4,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Elevation Limit", 0, 1, 'i', "NONE"},
{"Minimum Elevation (degrees)", -90.0, 90.0, 'f', "NONE"},
{"Maximum Elevation (degrees)", -90.0, 90.0, 'f', "NONE"},
}
},
{COMMAND(xsc_filter_eq_location), "XSC Equatorial Location Filter", GR_XSC_PARAM, 3,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Equatorial Limit Enabled", 0, 1, 'i', "NONE"},
{"Equatorial Radius (degrees)", 0.0, 90.0, 'f', "NONE"},
}
},
{COMMAND(xsc_filter_matching), "XSC Matching Filter", GR_XSC_PARAM, 4,
{
{"Which camera (0, 1, 2=both)", 0, 2, 'i', "NONE"},
{"Pointing Error threshold (arc seconds)", 0.01, 120, 'f', "NONE"},
{"Pixel Error threshold (pixels)", 0.01, 20, 'f', "NONE"},
{"Minimum stars matched", 4, 30, 'i', "NONE"},
}
},

/* MISC */
// ACOMP
{COMMAND(acomp_save_n_seconds), "Tell ACOMP to save N seconds of data", GR_MISC, 1,
{
{"Length of timestream", 1, 1200, 'i', "NONE"}
}
},
// XY stage
{COMMAND(xy_goto), "move the X-Y translation stage to absolute position", GR_MISC, 4,
{
{"X destination", 0, 8000000, 'l', "X_STAGE"},
{"Y destination", 0, 8000000, 'l', "Y_STAGE"},
{"X speed", 0, 100000, 'l', "X_VEL_STAGE"},
{"Y speed", 0, 100000, 'l', "Y_VEL_STAGE"}
}
},
{COMMAND(xy_jump), "move the X-Y translation stage to relative position", GR_MISC, 4,
{
{"X delta", -1000000, 1000000, 'l', "0"},
{"Y delta", -1000000, 1000000, 'l', "0"},
{"X speed", 0, 100000, 'l', "X_VEL_STAGE"},
{"Y speed", 0, 100000, 'l', "Y_VEL_STAGE"}
}
},
{COMMAND(xy_xscan), "scan the X-Y translation stage in X", GR_MISC, 3,
{
{"X center", 0, 8000000, 'l', "X_STAGE"},
{"delta X", 0, 4000000, 'l', "NONE"},
{"X speed", 0, 1000000, 'l', "X_VEL_STAGE"},
}
},
{COMMAND(xy_yscan), "scan the X-Y translation stage in Y", GR_MISC, 3,
{
{"Y center", 0, 8000000, 'l', "Y_STAGE"},
{"delta Y", 0, 4000000, 'l', "NONE"},
{"Y speed", 0, 1000000, 'l', "Y_VEL_STAGE"},
}
},
{COMMAND(xy_raster), "raster the X-Y translation stage", GR_MISC, 7,
{
{"X center", 0, 10000000, 'l', "X_STAGE"},
{"X Width", 0, 8000000, 'l', "NONE"},
{"Y center", 0, 10000000, 'l', "Y_STAGE"},
{"Y Width", 0, 8000000, 'l', "NONE"},
{"X Velocity", 0, 5000000, 'l', "X_VEL_STAGE"},
{"Y Velocity", 0, 5000000, 'l', "Y_VEL_STAGE"},
{"Step Size", 0, 4000000, 'l', "NONE"},
}
},
// Labjacks
{COMMAND(set_queue_execute), "command queue changed", GR_CRYO, 1,
{
Expand Down
Loading
Loading