public void home_start( double print_time, double sample_time, int sample_count, double rest_time, bool triggered = true) { var clock = _mcu.print_time_to_clock(print_time); var rest_ticks = (int)(rest_time * _mcu.get_adjusted_freq()); _homing = true; _min_query_time = _mcu.monotonic(); _next_query_print_time = print_time + RETRY_QUERY; _home_cmd.send(new object[] { _oid, clock, _mcu.seconds_to_clock(sample_time), sample_count, rest_ticks, triggered ^ _invert }, reqclock: (ulong)clock); foreach (var s in _steppers) { s.note_homing_start((ulong)clock); } }
public void _build_config() { if (_is_static) { _mcu.add_config_cmd($"set_digital_out pin={_pin} value={(_start_value ? 1 : 0)}"); return; } _oid = _mcu.create_oid(); _mcu.add_config_cmd($"config_digital_out oid={_oid} pin={_pin} value={(_start_value ? 1 : 0)} default_value={(_shutdown_value ? 1 : 0)} max_duration={_mcu.seconds_to_clock(_max_duration)}"); var cmd_queue = _mcu.alloc_command_queue(); _set_cmd = _mcu.lookup_command("schedule_digital_out oid=%c clock=%u value=%c", cq: cmd_queue); }