Exemplo n.º 1
0
static stat_t _homing_error_exit(int8_t axis)
{
	// Generate the warning message. Since the error exit returns via the homing callback
	// - and not the main controller - it requires its own display processing
	cmd_reset_list();

	if (axis == -2) {
		cmd_add_conditional_message((const char_t *)"*** WARNING *** Homing error: Specified axis(es) cannot be homed");;
	} else {
		char message[CMD_MESSAGE_LEN];
		sprintf_P(message, PSTR("*** WARNING *** Homing error: %c axis settings misconfigured"), cm_get_axis_char(axis));
		cmd_add_conditional_message((char_t *)message);
	}
	cmd_print_list(STAT_HOMING_CYCLE_FAILED, TEXT_INLINE_VALUES, JSON_RESPONSE_FORMAT);

	// clean up and exit
	mp_flush_planner(); 						// should be stopped, but in case of switch closure
												// don't use cm_request_queue_flush() here
	cm_set_coord_system(hm.saved_coord_system);	// restore to work coordinate system
	cm_set_units_mode(hm.saved_units_mode);
	cm_set_distance_mode(hm.saved_distance_mode);
	cm_set_feed_rate(hm.saved_feed_rate);
	cm_set_motion_mode(MODEL, MOTION_MODE_CANCEL_MOTION_MODE);
	cm.cycle_state = CYCLE_OFF;
	cm_cycle_end();
	return (STAT_HOMING_CYCLE_FAILED);			// homing state remains HOMING_NOT_HOMED
}
Exemplo n.º 2
0
void tg_print_initializing_message(void)
{
	cmd_add_token("fv");
	cmd_add_token("fb");
	cmd_add_string("msg", INIT_CONFIGURATION_MESSAGE); // see settings.h & sub-headers
	cmd_print_list(TG_INITIALIZING, TEXT_MULTILINE_FORMATTED);
}
Exemplo n.º 3
0
void tg_print_system_ready_message(void)
{
	cmd_add_token("fv");
	cmd_add_token("fb");
	cmd_add_string("msg", "SYSTEM READY");
	cmd_print_list(TG_OK, TEXT_MULTILINE_FORMATTED);
}
Exemplo n.º 4
0
void tg_print_loading_configs_message(void)
{
	cmd_add_token("fv");
	cmd_add_token("fb");
	cmd_add_string("msg", "Loading configs from EEPROM");
	cmd_print_list(TG_INITIALIZING, TEXT_MULTILINE_FORMATTED);
}
Exemplo n.º 5
0
void js_json_parser(char *str)
{
//	cmd_reset_list();					// get a fresh cmdObj list
	uint8_t status = _json_parser_kernal(str);
	cmd_print_list(status, TEXT_NO_PRINT, JSON_RESPONSE_FORMAT);
	rpt_request_status_report(SR_IMMEDIATE_REQUEST); // generate incremental status report to show any changes
}
Exemplo n.º 6
0
Arquivo: report.c Projeto: ADTL/TinyG
stat_t rpt_status_report_callback() 		// called by controller dispatcher
{
	if ((cfg.status_report_verbosity == SR_OFF) || 
		(cm.status_report_request != SR_IMMEDIATE_REQUEST)) {
		return (STAT_NOOP);
	}
	if (cfg.status_report_verbosity == SR_FILTERED) {
		if (rpt_populate_filtered_status_report() == true) {
			cmd_print_list(STAT_OK, TEXT_INLINE_PAIRS, JSON_OBJECT_FORMAT);
		}
	} else {
		rpt_populate_unfiltered_status_report();
		cmd_print_list(STAT_OK, TEXT_INLINE_PAIRS, JSON_OBJECT_FORMAT);
	}
//	cm.status_report_counter = (cfg.status_report_interval / RTC_PERIOD);	// reset minimum interval
	cm.status_report_request = SR_NO_REQUEST;
	return (STAT_OK);
}
Exemplo n.º 7
0
/****************************************************************************
 * cmd_text_parser() - update a config setting from a text block (text mode)
 * _text_parser() 	 - helper for above
 * 
 * Use cases handled:
 *	- $xfr=1200	set a parameter
 *	- $xfr		display a parameter
 *	- $x		display a group
 *	- ?			generate a status report (multiline format)
 */
uint8_t cmd_text_parser(char *str)
{
//	return (SC_OK); // There is no text parser in this code - just JSON
//}

	cmdObj_t *cmd = cmd_reset_list();		// returns first object in the body
	uint8_t status = SC_OK;

	// single-unit parser processing
	ritorno(_text_parser(str, cmd));		// decode the request or return if error
	if ((cmd->type == TYPE_PARENT) || (cmd->type == TYPE_NULL)) {
		if (cmd_get(cmd) == SC_COMPLETE) {	// populate value, group values, or run uber-group displays
			return (SC_OK);					// return for uber-group displays so they don't print twice
		}
	} else { 								// process SET and RUN commands
		status = cmd_set(cmd);				// set single value
		cmd_persist(cmd);
	}
	cmd_print_list(status, TEXT_MULTILINE_FORMATTED, JSON_RESPONSE_FORMAT); // print the results
	return (status);

	return (SC_OK);
}
Exemplo n.º 8
0
void tg_print_message(char *msg)
{
	cmd_add_string("msg", msg);
	cmd_print_list(TG_OK, TEXT_INLINE_VALUES);
}
Exemplo n.º 9
0
Arquivo: report.c Projeto: ADTL/TinyG
/* 
 * rpt_run_text_status_report()	- generate a text mode status report in multiline format
 * rpt_request_status_report()	- request a status report to run after minimum interval
 * rpt_force_status_report()	- request a status report to run at the next main loop opporunity
 * rpt_status_report_rtc_callback()	- real-time clock downcount for minimum reporting interval
 * rpt_status_report_callback()	- main loop callback to send a report if one is ready
 *
 *	Status reports can be request from a number of sources including:
 *	  - direct request from command line in the form of ? or {"sr:""}
 *	  - timed requests during machining cycle
 *	  - filtered request after each Gcode block
 *
 *	Status reports are generally returned with minimal delay (from the controller callback), 
 *	but will not be provided more frequently than the status report interval
 */
void rpt_run_text_status_report()
{
	rpt_populate_unfiltered_status_report();
	cmd_print_list(STAT_OK, TEXT_MULTILINE_FORMATTED, JSON_RESPONSE_FORMAT);
}