Interface to a serial port.
This class is thread-safe. Concurrent read and write (which do not seem to be supported by the O.S. or hardware) are serialized through the use of a mutex in the Serial class.
Definition at line 85 of file Serial.H.
|
| Serial (std::string const &instance, UserInterface::Type type) |
| Constructor.
|
|
virtual | ~Serial () |
| destructor
|
|
void | setBlocking (bool blocking, std::chrono::milliseconds const &timeout) |
| Set the access to blocking or not.
|
|
void | toggleDTR (std::chrono::milliseconds const &dur) |
| Set the DTR mode off momentarily.
|
|
void | sendBreak (void) |
| transmit continuous stream of zero-valued bits for specific duration.
|
|
bool | readSome (std::string &str) override |
| Read some bytes if available, and return true and a string when one is complete.
|
|
void | writeString (std::string const &str) override |
| Write a string, using the line termination convention of serial::linestyle.
|
|
void | fileGet (std::string const &abspath) |
| Send a file from the local microSD to the host computer.
|
|
void | filePut (std::string const &abspath) |
| Receive a file from the host and write it to the local microSD.
|
|
void | flush (void) |
| Flush all inputs.
|
|
UserInterface::Type | type () const override |
| Return our port type, here Hard or USB.
|
|
| UserInterface (std::string const &instance) |
| Constructor.
|
|
virtual | ~UserInterface () |
| Destructor.
|
|
virtual void | writeString (std::string const &prefix, std::string const &str) |
| Write a string, with a prefix prepended.
|
|
| Component (std::string const &instance) |
| Constructor.
|
|
virtual | ~Component () |
| Virtual destructor for safe inheritance.
|
|
template<class Comp , typename... Args> |
std::shared_ptr< Comp > | addSubComponent (std::string const &instance, Args &&...args) |
| Pseudo-constructor: construct and add another component as a subcomponent of this one.
|
|
template<class Comp > |
void | removeSubComponent (std::shared_ptr< Comp > &component) |
| Remove a sub-Component from this Component, by shared_ptr.
|
|
void | removeSubComponent (std::string const &instance, bool warnIfNotFound=true) |
| Remove a sub-Component from this Component, by instance name.
|
|
template<class Comp = jevois::Component> |
std::shared_ptr< Comp > | getSubComponent (std::string const &instance) const |
| Get a sub-component by instance name.
|
|
bool | isTopLevel () const |
| Returns true if this component is top-level, i.e., its parent is jevois::Manager.
|
|
bool | initialized () const |
| Has this component been initialized yet?
|
|
std::string const & | className () const |
| The class name of this component.
|
|
std::string const & | instanceName () const |
| The instance name of this component.
|
|
template<typename T > |
std::vector< std::string > | setParamVal (std::string const ¶mdescriptor, T const &val) |
| Set a parameter value.
|
|
template<typename T > |
void | setParamValUnique (std::string const ¶mdescriptor, T const &val) |
| Set a parameter value, simple version assuming only one parameter match.
|
|
template<typename T > |
std::vector< std::pair< std::string, T > > | getParamVal (std::string const ¶mdescriptor) const |
| Get parameter(s) value(s) by descriptor.
|
|
template<typename T > |
T | getParamValUnique (std::string const ¶mdescriptor) const |
| Get a parameter value, simple version assuming only one parameter match.
|
|
std::vector< std::string > | setParamString (std::string const ¶mdescriptor, std::string const &val) |
| Set a parameter value, by string.
|
|
void | setParamStringUnique (std::string const ¶mdescriptor, std::string const &val) |
| Set a parameter value by string, simple version assuming only one parameter match.
|
|
std::vector< std::pair< std::string, std::string > > | getParamString (std::string const ¶mdescriptor) const |
| Get a parameter value, by string.
|
|
std::string | getParamStringUnique (std::string const ¶mdescriptor) const |
| Get a parameter value by string, simple version assuming only one parameter match.
|
|
void | freezeParam (std::string const ¶mdescriptor, bool doit) |
| Freeze/unfreeze a parameter, by name, see ParameterBase::freeze()
|
|
void | freezeAllParams (bool doit) |
| Freeze all parameters.
|
|
std::string | descriptor () const |
| Get our full descriptor (including all parents) as [Instancename]:[...]:[...].
|
|
void | setParamsFromFile (std::string const &filename) |
| Set some parameters from a file.
|
|
std::istream & | setParamsFromStream (std::istream &is, std::string const &absfile) |
| Set some parameters from an open stream.
|
|
virtual void | paramInfo (std::shared_ptr< UserInterface > s, std::map< std::string, std::string > &categs, bool skipFrozen, std::string const &cname="", std::string const &pfx="") |
| Get machine-oriented descriptions of all parameters.
|
|
void | foreachParam (std::function< void(std::string const &compname, ParameterBase *p)> func, std::string const &cname="") |
| Run a function on every param we hold.
|
|
template<typename T > |
std::shared_ptr< DynamicParameter< T > > | addDynamicParameter (std::string const &name, std::string const &description, T const &defaultValue, ParameterCategory const &category) |
| Add a new parameter after the Component has already been constructed.
|
|
template<typename T , template< typename > class ValidValuesSpec> |
std::shared_ptr< DynamicParameter< T > > | addDynamicParameter (std::string const &name, std::string const &description, T const &defaultValue, ValidValuesSpec< T > const &validValuesSpec, ParameterCategory const &category) |
| Add a new parameter after the Component has already been constructed.
|
|
template<typename T > |
void | setDynamicParameterCallback (std::string const &name, std::function< void(T const &)> cb, bool callnow=true) |
| Register a callback with a previously created dynamic parameter.
|
|
void | removeDynamicParameter (std::string const &name, bool throw_if_not_found=true) |
| Remove a previously added dynamic parameter.
|
|
void | setPath (std::string const &path) |
| Assign a filesystem path to this component.
|
|
std::filesystem::path | absolutePath (std::filesystem::path const &path="") |
| If given path is relative (not starting with /), prepend the Component path to it.
|
|
virtual | ~ParameterRegistry () |
| Virtual destructor for safe inheritance.
|
|
|
(Note that these are not member symbols.)
|
| JEVOIS_DECLARE_PARAMETER (devname, std::string, "Device file name", "", ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (baudrate, unsigned int, "Baudrate", 115200, { 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000, 4000000 }, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (format, std::string, "Data format", "8N1", boost::regex("^[5-8][NEO][12]$"), ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (flowsoft, bool, "Use soft (XON/XOFF) flow control", false, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (flowhard, bool, "Use hard (RTS/CTS) flow control", false, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (drop, bool, "Silently drop write data when write buffer is full. Useful to " "avoid blocking when writing messages to serial-over-USB port and the host is " "not listening to it. Note that even when drop is false, we will still drop " "data after repeated attempts to send it, and will report an error (as opposed to " "silently dropping when drop is true).", true, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DEFINE_ENUM_CLASS (LineStyle,(LF)(CR)(CRLF)(Zero)(Sloppy)) |
| Enum for Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (linestyle, LineStyle, "End of line style: LF is for 0x0a [\\n] CR is for 0x0d [\\r] " "CRLF is for 0x0d 0x0a [\\r\\n] Zero is for 0x00 [\\0] Sloppy accepts any of " "CR, LF, CRLF, 0xd0 (issued by some keyboards instead of Return), and Zero as input " "and issues CRLF in outputs.", LineStyle::Sloppy, LineStyle_Values, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DEFINE_ENUM_CLASS (TerminalMode,(Plain)(VT100)) |
| Enum for Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (mode, TerminalMode, "Terminal emulation mode for input", TerminalMode::Plain, TerminalMode_Values, ParamCateg) |
| Parameter.
|
|