Documentation
Functions / Template Codes
Car Simulator System — Page 21
Car Simulator System — Page 21
const newGear = msg.payload;
const oldGear = flow.get("gear") || "gear1";
const currentSpeed = flow.get("speed") || 0;
flow.set("gear", newGear);
if (oldGear === "gear2" && newGear === "gear1" && currentSpeed > 30) {
const interval = setInterval(() => {
let speed = flow.get("speed") || 0;
speed -= 5;
if (speed <= 30) {
speed = 30;
clearInterval(interval);
}
flow.set("speed", speed);
node.send({ payload: speed });
}, 500);
return null;
} else {
return { payload: flow.get("speed") };
}
let gear = flow.get("gear") || "none";
let speed = flow.get("speed") || 0;
let maxSpeed = gear === "gear1" ? 30 : (gear === "gear2" ? 60 : 0);
if (speed >= maxSpeed) {
return null;
}
let interval = 200;
let increase = () => {
speed = flow.get("speed") || 0;
if (speed < maxSpeed) {
speed += 1;
flow.set("speed", speed);
node.send({ payload: speed });
setTimeout(increase, interval);
}
};
increase();
return null;
let speed = flow.get("speed") || 0;
let decelerate = () => {
speed = flow.get("speed") || 0;
if (speed > 0) {
speed -= 1;
if (speed < 0) speed = 0;
flow.set("speed", speed);
node.send({ payload: speed });
setTimeout(decelerate, 200);
}
};
decelerate();
return null;