Exemplo n.º 1
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);
        }
Exemplo n.º 2
0
        public void _build_config()
        {
            _oid = _mcu.create_oid();
            _mcu.add_config_cmd($"config_end_stop oid={_oid} pin={_pin} pull_up={(_pullup ? 1 : 0)} stepper_count={_steppers.Count}");
            _mcu.add_config_cmd($"end_stop_home oid={_oid} clock=0 sample_ticks=0 sample_count=0 rest_ticks=0 pin_value=0", is_init: true);
            for (int i = 0; i < _steppers.Count; i++)
            {
                var s = _steppers[i];
                _mcu.add_config_cmd($"end_stop_set_stepper oid={_oid} pos={i} stepper_oid={s.get_oid()}", is_init: true);
            }
            var cmd_queue = _mcu.alloc_command_queue();

            _home_cmd  = _mcu.lookup_command("end_stop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c", cq: cmd_queue);
            _query_cmd = _mcu.lookup_command("end_stop_query oid=%c", cq: cmd_queue);
            _mcu.register_msg(_handle_end_stop_state, "end_stop_state", _oid);
        }
Exemplo n.º 3
0
        public void _build_config()
        {
            if (this._sample_count != 0)
            {
                return;
            }
            this._oid = this._mcu.create_oid();
            this._mcu.add_config_cmd($"config_analog_in oid={this._oid} pin={this._pin}");
            var clock        = this._mcu.get_query_slot(this._oid);
            var sample_ticks = this._mcu.seconds_to_clock(this._sample_time);
            var mcu_adc_max  = this._mcu.get_constant_float("ADC_MAX");
            var max_adc      = this._sample_count * mcu_adc_max;

            this._inv_max_adc  = 1.0 / max_adc;
            this._report_clock = this._mcu.seconds_to_clock(this._report_time);
            var min_sample = Math.Max(0, Math.Min(65535, (int)(this._min_sample * max_adc)));
            var max_sample = Math.Max(0, Math.Min(65535, (int)(Math.Ceiling(this._max_sample * max_adc))));

            _mcu.add_config_cmd($"query_analog_in oid={_oid} clock={clock} sample_ticks={sample_ticks} sample_count={_sample_count} rest_ticks={_report_clock} min_value={min_sample} max_value={max_sample} range_check_count={_range_check_count}", is_init: true);
            this._mcu.register_msg(this._handle_analog_in_state, "analog_in_state", this._oid);
        }