Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }