feat: baud enum
To summarise this PR:
- python passes in an integer (e.g. 9600) for baud rate which is converted to uint 9600 -- but this is not correct as it needs to map to
0x0000000d
instead (uint 13). - create an enum class (it's typed!) in labRemote similar to
CharSize
(https://stackoverflow.com/questions/18335861/why-is-enum-class-preferred-over-plain-enum) that has this particular type/mapping encoded.. because we're stuck withtermios.h
#define
s all over the place which is a PITA. - pybind this enum class over to python so
libCom.BaudRate.B_9600
works (note: can't useB9600
as the#define
preprocesses first before compilation...) - update the pybind signatures to accept the
BaudRate
typed enum
This also aligns the API with the existing CharSize
enum that's already exposed. Note that the reason to do it this way, is to avoid extra parsing and try to harmonize the API between C++ and python through a strongly-typed enum.
Edited by Giordon Holtsberg Stark