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.
|
| |
| void | hideParam (std::string const ¶mdescriptor, bool doit) |
| | Hide/unhide a parameter, by name, see ParameterBase::hide()
|
| |
| void | hideAllParams (bool doit) |
| | Hide 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.
|
| |