On 27/06/17 22:08, Oliver Neukum wrote: > Am Dienstag, den 27.06.2017, 19:43 +1000 schrieb Stuart Longland: >> Maybe a good start would be a "standard" option (referring to the >> physical signalling standard, TTL/RS-232/RS-422/RS-485), that lists the >> available standards when read and shows the "selected" standard in >> brackets (like the 'trigger' option of the LEDs sysfs interface)… so for >> this case: >> >> # cat /sys/class/tty/ttyUSB0/standard >> [rs232] rs422 rs485 rs485fd >> >> and to select 4-wire ("full duplex") RS-485, one does: >> # echo rs485fd > /sys/class/tty/ttyUSB0/standard > This looks like something that people will put into udev. > So the switch will be done via udev, but the user not necessarily > started via udev. Looks like a race to me. It is a race, but unless a daemon is watching for the very moment that a particular serial interface appears, it's one that init scripts are very likely to win. Short of having a flag that blocks reads/writes until a given sysfs file is written to say "I'm ready, go ahead"… there aren't that many options I can think of. > And what do you if the interface is already opened and the sysfs > interface is used? We return -EBUSY? If the interface is open, there isn't a lot we can do, the user either puts up with unpredictable behaviour or we refuse the switch. By unpredictable behaviour: if the device is well behaved, there might be a small signal level glitch… but I'd expect serial devices to be tolerant of that kind of step change in signal. (Think hot-plugging serial links.) This beats the official Moxa solution: their Windows driver wants a reboot of the entire machine to switch between serial standards. -- Stuart Longland (aka Redhatter, VK4MSL) I haven't lost my mind... ...it's backed up on a tape somewhere.
Attachment:
signature.asc
Description: OpenPGP digital signature