Serial (Player Only) Multiple Devices?

Perhaps a silly question, but I’m still new, so…

Can the Serial (Player Only) be used to connect to multiple connected devices in parallel (e.g. three different models of torque analyzer and a Zebra printer)?

Related:

  1. does one need to disconnect from a given COM port# before connecting a new device that happens to occupy the same COM port?
  2. if so, how do you discern what is the “Identifier” of the former device that needs to be disconnected?
  3. What app/player events cause these connections to be reset?

Hey James, I think you figured this out already, but answering for the sake of anyone else with a similar question -

Yes, you can connect N devices for N possible ports you have - you just have to specify which one you want to talk to in your trigger (which you always start by specifying which path/device to message to, anyway)

For your related questions - I think this post may provide some insights as well Programmatically Connect to Serial Devices with Player Triggers

Feel free to update with any additional things you have learned :slight_smile:

Quick note as well re-reading your question @jmlowden - assuming that the newly plugged-in device has all the same configuration settings as the previous one, I unfortunately still don’t think that the connection would just work as intended. I could very well be wrong (and I suppose it would be pretty easy to check), but based on my incredibly rudimentary knowledge of RS-232 it’s possible that the new device would be missing some kind of pre-message handshake or connection.

TL;DR I don’t think that a newly-plugged device can work without a new “Connect” Trigger, but would not be too surprised if I’m wrong.

On the plus side, Identifiers in Tulip are all related to paths, not devices - so, all you’d need to do is “disconnect from COM5” + “Connect to COM5”

These connect/disconnect events need to be done explicitly, and will be reset only when Player is closed/opened. They shouldn’t be triggered passively by any Player behavior.

(to make things easy, I often just run a “Connect” function on app start.)

Let me know if this helps!