JeVois
1.21
JeVois Smart Embedded Machine Vision Toolkit
|
|
#include <jevois/GPU/GUIserial.H>
Simple class to monitor a serial port in the JeVois-Pro GUI.
This class opens a window and displays traffic on a given serial port. Its interface is the same as a regular Serial (or its parent, UserInterface), with the addition of a draw() function to render into a window managed by the caller.
Definition at line 33 of file GUIserial.H.
Public Member Functions | |
virtual | ~GUIserial () |
Virtual destructor for safe inheritance. | |
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 | draw () |
Render into ImGui. | |
Serial (std::string const &instance, UserInterface::Type type) | |
Inherited constructor ok. | |
![]() | |
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. | |
Protected Member Functions | |
void | clear () |
Clear the contents of the window. | |
![]() | |
void | postInit () override |
Called after all sub-Components are init()ed. | |
void | postUninit () override |
Called after all sub-Components are uninit()ed. | |
![]() | |
virtual void | preInit () |
Called before all sub-Components are init()ed. | |
virtual void | preUninit () |
Called before all sub-Components are uninit()ed. | |
![]() | |
void | addParameter (ParameterBase *const param) |
The Parameter class uses this method to register itself on construction with its owning Component. | |
void | removeParameter (ParameterBase *const param) |
The Parameter class uses this method to un-register itself on destruction with its owning Component. | |
void | callbackInitCall () |
For all parameters that have a callback which has never been called, call it with the default param value. | |
Additional Inherited Members | |
![]() | |
enum class | Type { Hard , USB , Stdio , GUI } |
Enum for the interface type. More... | |
![]() | |
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. | |
|
virtual |
Virtual destructor for safe inheritance.
Definition at line 23 of file GUIserial.C.
|
protected |
Clear the contents of the window.
Definition at line 126 of file GUIserial.C.
void jevois::GUIserial::draw | ( | ) |
Render into ImGui.
Render into a window that was already opened and will be closed by the caller.
Definition at line 56 of file GUIserial.C.
References jevois::stringStartsWith().
|
overridevirtual |
Read some bytes if available, and return true and a string when one is complete.
If the monitor window is open, anything read will also be displayed in the window.
Implements jevois::UserInterface.
Definition at line 27 of file GUIserial.C.
References jevois::Serial::readSome().
jevois::Serial::Serial | ( | std::string const & | instance, |
UserInterface::Type | type | ||
) |
|
overridevirtual |
Write a string, using the line termination convention of serial::linestyle.
No line terminator should be included in the string, writeString() will add one. If the monitor window is open, anything written will also be displayed in the window.
Implements jevois::UserInterface.
Definition at line 42 of file GUIserial.C.
References jevois::Serial::writeString().