void TemperatureControl::on_module_loaded(){
- // We start now desiring any temp
+ // We start not desiring any temp
this->desired_adc_value = UNDEFINED;
// Settings
void TemperatureControl::on_gcode_execute(void* argument){
Gcode* gcode = static_cast<Gcode*>(argument);
- // Set temperature
+ // Set temperature without waiting
if( gcode->has_letter('M') && gcode->get_value('M') == 104 && gcode->has_letter('S') ){
this->set_desired_temperature(gcode->get_value('S'));
}
+ // Set temperature and wait
+ if( gcode->has_letter('M') && gcode->get_value('M') == 109 && gcode->has_letter('S') ){
+ this->set_desired_temperature(gcode->get_value('S'));
+
+ // Pause
+ this->kernel->pauser->take();
+ this->waiting = true;
+
+ }
+
// Get temperature
if( gcode->has_letter('M') && gcode->get_value('M') == 105 ){
gcode->stream->printf("get temperature: %f current:%f target:%f \r\n", this->get_temperature(), this->new_thermistor_reading(), this->desired_adc_value );
this->heater_pin->set(1);
}else{
this->heater_pin->set(0);
+ if( this->waiting ){
+ this->kernel->pauser->release();
+ this->waiting = false;
+ }
}
}
}