forked from M-Labs/thermostat
main: optimize+doc resets
This commit is contained in:
parent
163bb38f68
commit
a94650e208
22
src/main.rs
22
src/main.rs
@ -160,7 +160,9 @@ fn main() -> ! {
|
|||||||
server.for_each(|mut socket, session| {
|
server.for_each(|mut socket, session| {
|
||||||
if ! socket.is_open() {
|
if ! socket.is_open() {
|
||||||
let _ = socket.listen(TCP_PORT);
|
let _ = socket.listen(TCP_PORT);
|
||||||
session.reset();
|
if session.is_dirty() {
|
||||||
|
session.reset();
|
||||||
|
}
|
||||||
} else if socket.can_send() && socket.can_recv() && socket.send_capacity() - socket.send_queue() > 128 {
|
} else if socket.can_send() && socket.can_recv() && socket.send_capacity() - socket.send_queue() > 128 {
|
||||||
match socket.recv(|buf| session.feed(buf)) {
|
match socket.recv(|buf| session.feed(buf)) {
|
||||||
Ok(SessionOutput::Nothing) => {}
|
Ok(SessionOutput::Nothing) => {}
|
||||||
@ -337,22 +339,24 @@ fn main() -> ! {
|
|||||||
use command_parser::PidParameter::*;
|
use command_parser::PidParameter::*;
|
||||||
match parameter {
|
match parameter {
|
||||||
Target =>
|
Target =>
|
||||||
pid.set_target(value),
|
pid.target = value,
|
||||||
KP =>
|
KP =>
|
||||||
pid.update_parameters(|parameters| parameters.kp = value),
|
pid.parameters.kp = value,
|
||||||
KI =>
|
KI =>
|
||||||
pid.update_parameters(|parameters| parameters.ki = value),
|
pid.parameters.ki = value,
|
||||||
KD =>
|
KD =>
|
||||||
pid.update_parameters(|parameters| parameters.kd = value),
|
pid.parameters.kd = value,
|
||||||
OutputMin =>
|
OutputMin =>
|
||||||
pid.update_parameters(|parameters| parameters.output_min = value),
|
pid.parameters.output_min = value,
|
||||||
OutputMax =>
|
OutputMax =>
|
||||||
pid.update_parameters(|parameters| parameters.output_max = value),
|
pid.parameters.output_max = value,
|
||||||
IntegralMin =>
|
IntegralMin =>
|
||||||
pid.update_parameters(|parameters| parameters.integral_min = value),
|
pid.parameters.integral_min = value,
|
||||||
IntegralMax =>
|
IntegralMax =>
|
||||||
pid.update_parameters(|parameters| parameters.integral_max = value),
|
pid.parameters.integral_max = value,
|
||||||
}
|
}
|
||||||
|
// TODO: really reset PID state
|
||||||
|
// after each parameter change?
|
||||||
pid.reset();
|
pid.reset();
|
||||||
let _ = writeln!(socket, "PID parameter updated");
|
let _ = writeln!(socket, "PID parameter updated");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user