Using the Dashboard, a user selects a sequence of commands (say for robot movement). Once the user is satisfied with their selected sequence, I want that string to be published. Only once the user is done though.
So once the user pushes the "start" button on the Dashboard, then the sequence of commands is sent to the microcontroller. I think the node.send(msg)
is used somehow: Making flows asynchronous by default : Node-RED and Writing Functions : Node-RED
Yes? No? Any suggetions on how?
var commands = flow.get('commands') || [] // variable
msg.topic = 'collect'
switch(msg.payload)
{
case 'moveForward':
case 'moveBackward':
case 'moveRight':
case 'moveLeft':
commands.push(msg.payload) // concatenates payload
break
case 'clear':
commands = []
break
case 'run':
msg.topic = 'start'
break
}
flow.set('commands',commands)
// if(msg.topic == 'start' || commands == 'clear')
// {
msg.payload = commands
// }
return msg
This program is thanks to hotNipi: