serial control

This commit is contained in:
Yoonseok Hur 2023-11-19 20:16:20 +09:00
parent 534e0790ef
commit b66c20edcb
2 changed files with 44 additions and 1 deletions

View File

@ -57,7 +57,7 @@ Send the request message in `msg.payload` as you would do with a serial out node
For consistency with the serial in node, msg.port is also set to the name of the port selected.
### Serial Control
When you start the node-red, the flow(program) picks up the pre-programmed serial port, open it, and start the communication. But there are some cases the port needs to switch to a different port, stop, and start again. For example, in order to upload a new binary for Arduino, the serial port needs to be stopped relased from the nodered, and start it again after uploading. Or when the FTDI device re-connects after disconnected for any reason, it may be possible the port number change, and the end user of the flow can't change the port.
When the node-red starts, the flow(program) picks up the pre-programmed serial port, open it, and start the communication. But there are some cases the port needs to switch to a different port, stop, and start again. For example, in order to upload a new binary for Arduino, the serial port needs to be stopped relased from the nodered, and start it again after uploading. Or when the FTDI device re-connects after disconnected for any reason, it may be possible the port number change, and the end user of the flow can't change the port.
This `Serial Control` node provides the serial port control capability to

View File

@ -93,3 +93,46 @@
<p>Optionally the new line character used to split the input
can be appended to every message sent out to the serial port.</p>
</script>
<script type="text/html" data-help-name="serial control">
<p>Stops, starts the serial communication and controls the serial port configuration.</p>
<p>This node provides the serial port control capability to</p>
<ul>
<li>stop the communication and releasing the serial port so, for example the Arduino can upload the new binary without shutting down the nodered.</li>
<li>start the communication after stopped with this `Serial Control` node for above reason or the like.</li>
<li>change the serial port and the configuration on the run time programatically.</li>
<li>query the serial port configuration.</li>
</ul>
<h3>Inputs</h3>
<p>In order to control the communication, just send these JSON messages to the control node.</p>
<ul>
<li>
<code>{ "stop":"" }</code> stops the communication
</li>
<li>
<code>{ "stop":"" }</code> starts the communication
</li>
<li>
<code> {
"config" : {
"newport": "/dev/tty.usbmodem1234561",
"serialbaud": 115200,
"databits": 8,
"parity": "none",
"stopbits": 1
}
}
</code> changes the serial port and the configuration on the fly. the <code>newport</code> is the mandatory field.
</li>
<li>
<code>{ "config":"query" }</code> querys the serial port configuration and returns the result in the <code>msg.payload</code>
</li>
</ul>
<h3>Outputs</h3>
<p><code>msg.payload</code> is the response. It contains the serial port configuration</p>
</script>