PIP 5.6.1
Platform-Independent Primitives
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
PISerial Class Reference

Serial device. More...

#include <piserial.h>

Inheritance diagram for PISerial:
Inheritance graph
[legend]

Classes

struct  DeviceInfo
 Information about serial device. More...
 

Public Types

enum  Parameters { ParityControl = 0x1 , ParityOdd = 0x2 , TwoStopBits = 0x4 }
 Parameters of PISerial. More...
 
enum  Speed {
  S50 = 50 , S75 = 75 , S110 = 110 , S300 = 300 ,
  S600 = 600 , S1200 = 1200 , S2400 = 2400 , S4800 = 4800 ,
  S9600 = 9600 , S14400 = 14400 , S19200 = 19200 , S38400 = 38400 ,
  S57600 = 57600 , S115200 = 115200 , S230400 = 230400 , S460800 = 460800 ,
  S500000 = 500000 , S576000 = 576000 , S921600 = 921600 , S1000000 = 1000000 ,
  S1152000 = 1152000 , S1500000 = 1500000 , S2000000 = 2000000 , S2500000 = 2500000 ,
  S3000000 = 3000000 , S3500000 = 3500000 , S4000000 = 4000000
}
 Speed of PISerial. More...
 
- Public Types inherited from PIIODevice
enum  DeviceMode { ReadOnly = 0x01 , WriteOnly = 0x02 , ReadWrite = 0x03 }
 Open modes for PIIODevice. More...
 
enum  DeviceOption { BlockingRead = 0x01 , BlockingWrite = 0x02 }
 Generic options supported by some devices. More...
 
enum  DeviceInfoFlag { Sequential = 0x01 , Reliable = 0x02 }
 Characteristics of the device channel. More...
 
typedef PIFlags< DeviceOptionDeviceOptions
 Bitmask of DeviceOption values.
 
typedef PIFlags< DeviceInfoFlagDeviceInfoFlags
 Bitmask of DeviceInfoFlag values.
 

Public Member Functions

 PISerial ()
 Contructs an empty PISerial.
 
 PISerial (const PIString &device, PISerial::Speed speed=S115200, PIFlags< PISerial::Parameters > params=0)
 Contructs PISerial with device name "device", speed "speed" and parameters "params".
 
void setSpeed (PISerial::Speed speed)
 Set both input and output speed to "speed".
 
void setOutSpeed (PISerial::Speed speed)
 Set output speed to "speed".
 
void setInSpeed (PISerial::Speed speed)
 Set input speed to "speed".
 
void setDevice (const PIString &dev)
 Set device name to "dev".
 
void setParameters (PIFlags< PISerial::Parameters > parameters_)
 Set parameters to "parameters_".
 
void setParameter (PISerial::Parameters parameter, bool on=true)
 Set parameter "parameter" to "on" state.
 
bool isParameterSet (PISerial::Parameters parameter) const
 Returns if parameter "parameter" is set.
 
PIFlags< PISerial::Parametersparameters () const
 Returns parameters.
 
void setDataBitsCount (int bits)
 Set data bits count. Valid range is from 5 to 8, befault is 8.
 
int dataBitsCount () const
 Returns data bits count.
 
bool setPin (int number, bool on)
 Set pin number "number" to logic level "on". Valid numbers are 4 (DTR) and 7 (RTS)
 
bool isPin (int number) const
 Returns pin number "number" logic level. Valid numbers range is from 1 to 9.
 
bool setBreak (bool enabled)
 Switch transmission line in break. More...
 
void setVTime (int t)
 Set VTime parameter.
 
PIString device () const
 Returns device name.
 
PISerial::Speed outSpeed () const
 Returns output speed.
 
PISerial::Speed inSpeed () const
 Returns input speed.
 
virtual void flush () override
 Discard all buffered input and output data.
 
bool read (void *read_to, int max_size, double timeout_ms)
 Read from device no more "max_size" bytes into "read_to" with "timeout_ms" timeout. More...
 
PIString readString (int size=-1, double timeout_ms=1000.)
 Read from device for "timeout_ms" timeout or for "size" bytes. More...
 
PIByteArray readData (int size=-1, double timeout_ms=1000.)
 Read from device for "timeout_ms" timeout or for "size" bytes. More...
 
bool send (const void *data, int size)
 Write to device data "data" with maximum size "size". Returns if sent bytes count = "size".
 
bool send (const PIByteArray &data)
 Write to device byte array "data". Returns if sent bytes count = size of "data".
 
void interrupt () override
 Interrupts a blocking device operation.
 
- Public Member Functions inherited from PIIODevice
 PIIODevice ()
 Constructs an empty PIIODevice.
 
 PIIODevice (const PIString &path, DeviceMode mode=ReadWrite)
 Constructs PIIODevice with path "path" and open mode "mode".
 
virtual ~PIIODevice ()
 Destroys the device base object.
 
DeviceMode mode () const
 Returns current open mode.
 
void setMode (DeviceMode m)
 Sets open mode without reopening the device.
 
DeviceOptions options () const
 Returns current device options.
 
bool isOptionSet (DeviceOption o) const
 Returns whether option "o" is enabled.
 
void setOptions (DeviceOptions o)
 Replaces all current device options with "o".
 
bool setOption (DeviceOption o, bool yes=true)
 Sets option "o" to "yes" and returns its previous state.
 
DeviceInfoFlags infoFlags () const
 Returns device channel characteristics.
 
PIString path () const
 Returns current device path.
 
void setPath (const PIString &path)
 Sets device path without reopening the device.
 
bool isReadable () const
 Returns whether the current mode allows reading.
 
bool isWriteable () const
 Returns whether the current mode allows writing.
 
bool isOpened () const
 Returns whether the device is currently opened.
 
bool isClosed () const
 Returns whether the device is currently closed.
 
virtual bool canRead () const
 Returns whether reading is possible right now.
 
virtual bool canWrite () const
 Returns whether writing is possible right now.
 
void setReopenEnabled (bool yes=true)
 Enables or disables automatic reopen attempts during threaded read.
 
void setReopenTimeout (PISystemTime timeout)
 Sets delay between automatic reopen attempts.
 
bool isReopenEnabled () const
 Returns whether automatic reopen is enabled.
 
PISystemTime reopenTimeout ()
 Returns delay between automatic reopen attempts.
 
void setThreadedReadSlot (ReadRetFunc func)
 Sets callback invoked after successful threaded reads. More...
 
void setThreadedReadData (void *d)
 Sets custom user data passed to threaded read callback.
 
void setThreadedReadBufferSize (int new_size)
 Sets background read buffer size in bytes. More...
 
int threadedReadBufferSize () const
 Returns background read buffer size in bytes.
 
const uchar * threadedReadBuffer () const
 Returns pointer to the internal threaded-read buffer.
 
void * threadedReadData () const
 Returns custom data passed to threaded read callback.
 
bool isThreadedRead () const
 Returns whether threaded read is running.
 
bool isThreadedReadStopping () const
 Returns whether threaded read is stopping.
 
void startThreadedRead ()
 Starts threaded read.
 
void startThreadedRead (ReadRetFunc func)
 Sets threaded read callback to "func" and starts threaded read.
 
void stopThreadedRead ()
 Requests threaded read stop.
 
void terminateThreadedRead ()
 Terminate threaded read. More...
 
bool waitThreadedReadFinished (PISystemTime timeout={})
 Waits until threaded read finishes or "timeout" expires.
 
uint threadedReadTimeout () const
 Returns delay between unsuccessful threaded read attempts in milliseconds.
 
void setThreadedReadTimeout (uint ms)
 Sets delay between unsuccessful threaded read attempts in milliseconds.
 
bool isThreadedWrite () const
 Returns whether threaded write is running.
 
void startThreadedWrite ()
 Starts threaded write.
 
void stopThreadedWrite ()
 Requests threaded write stop.
 
void terminateThreadedWrite ()
 Terminate threaded write. More...
 
bool waitThreadedWriteFinished (PISystemTime timeout={})
 Waits until threaded write finishes or "timeout" expires.
 
void clearThreadedWriteQueue ()
 Clears queued threaded-write tasks.
 
void start ()
 Starts both threaded read and threaded write.
 
void stop ()
 Requests stop for both threaded read and threaded write.
 
void stopAndWait (PISystemTime timeout={})
 Stops both background threads and waits for completion.
 
virtual void interrupt ()
 Interrupts a blocking device operation.
 
ssize_t read (void *read_to, ssize_t max_size)
 Reads at most "max_size" bytes into "read_to".
 
ssize_t read (PIMemoryBlock mb)
 Reads data into memory block "mb".
 
PIByteArray read (ssize_t max_size)
 Reads at most "max_size" bytes and returns them as PIByteArray.
 
virtual ssize_t bytesAvailable () const
 Returns the number of bytes that are available for reading. More...
 
ssize_t write (const void *data, ssize_t max_size)
 Writes at most "max_size" bytes from "data".
 
PIByteArray readForTime (PISystemTime timeout)
 Reads data for up to "timeout" and returns collected bytes.
 
ullong writeThreaded (const void *data, ssize_t max_size)
 Queues "data" for threaded write and returns task ID.
 
ullong writeThreaded (const PIByteArray &data)
 Queues byte array "data" for threaded write and returns task ID.
 
bool configure (const PIString &config_file, const PIString &section, bool parent_section=false)
 Configures the device from section "section" of file "config_file". More...
 
virtual PIConstChars fullPathPrefix () const
 Returns device prefix used in full-path notation. Creating devices by unambiguous string.
 
PIString constructFullPath () const
 Returns full-path representation of this device, fullPathPrefix() + "://" + ...
 
void configureFromFullPath (const PIString &full_path)
 Configures the device from full-path parameters.
 
PIVariantTypes::IODevice constructVariant () const
 Builds PIVariantTypes::IODevice description for this device.
 
void configureFromVariant (const PIVariantTypes::IODevice &d)
 Configures the device from PIVariantTypes::IODevice.
 
ssize_t write (const PIMemoryBlock &mb)
 Writes memory block "mb" to the device.
 
bool open ()
 Opens the device with current path and mode.
 
bool open (const PIString &_path)
 Opens the device with path "path".
 
bool open (DeviceMode _mode)
 Opens the device with mode "mode".
 
bool open (const PIString &_path, DeviceMode _mode)
 Opens the device with path "path" and mode "mode".
 
bool close ()
 Closes the device.
 
ssize_t write (PIByteArray data)
 Writes "data" to the device.
 
void opened ()
 Raised after successful opening.
 
void closed ()
 Raised after successful closing.
 
void threadedReadEvent (const uchar *readed, ssize_t size)
 Raised after threaded read receives some data.
 
void threadedWriteEvent (ullong id, ssize_t written_size)
 Raised after threaded write processes task with ID "id".
 
- Public Member Functions inherited from PIObject
 PIObject (const PIString &name=PIString())
 Constructs an object and initializes its name property.
 
virtual ~PIObject ()
 Destroys the object, raises deleted() and disconnects it from the event graph.
 
PIString name () const
 Returns the name property of this object.
 
virtual const char * className () const
 Returns the registered class name of this object.
 
virtual uint classNameID () const
 Returns the hash of className().
 
virtual const char * parentClassName () const
 Returns the registered parent class name, or an empty string for the root.
 
bool debug () const
 Returns whether piCoutObj output is enabled for this object.
 
void setName (const PIString &name)
 Sets the name property of this object.
 
void setDebug (bool debug)
 Enables or disables piCoutObj output for this object.
 
PIVariant property (const char *name) const
 Returns the property with name "name".
 
void setProperty (const char *name, const PIVariant &value)
 Sets the property "name" to "value" and creates it if needed. More...
 
bool isPropertyExists (const char *name) const
 Returns whether the property "name" exists.
 
void setThreadSafe (bool yes)
 Enables or disables the internal object mutex during handler execution. More...
 
bool isThreadSafe () const
 Returns whether the internal object mutex is enabled for handler execution.
 
bool execute (const PIString &method, const PIVector< PIVariantSimple > &vl)
 Executes a registered method or handler method by name with the supplied arguments. More...
 
bool execute (const PIString &method)
 Overload of execute() for a method without arguments.
 
bool execute (const PIString &method, const PIVariantSimple &v0)
 Overload of execute() for one argument.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Overload of execute() for two arguments.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Overload of execute() for three arguments.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Overload of execute() for four arguments.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Queues execution of a registered method on the performer object. More...
 
bool executeQueued (PIObject *performer, const PIString &method)
 Overload of executeQueued() for a method without arguments.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Overload of executeQueued() for one argument.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Overload of executeQueued() for two arguments.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Overload of executeQueued() for three arguments.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Overload of executeQueued() for four arguments.
 
void dump (const PIString &line_prefix=PIString()) const
 Dumps object diagnostics to the project output stream.
 
PIStringList scopeList () const
 Returns the registered inheritance scope of this object, including its own class.
 
PIStringList methodsEH () const
 Returns full signatures of all registered event and handler methods for this class scope.
 
bool isMethodEHContains (const PIString &name) const
 Returns whether a registered event or handler method with this name exists.
 
PIString methodEHArguments (const PIString &name) const
 Returns the comma-separated argument type list of a registered method.
 
PIString methodEHFullFormat (const PIString &name) const
 Returns the full registered signature of a method.
 
PIString methodEHFromAddr (const void *addr) const
 Returns the registered method name for the specified entry-point address.
 
void piDisconnect (const PIString &sig, PIObject *dest, void *ev_h)
 Disconnects this source object from a specific destination handler for event "sig".
 
void piDisconnect (const PIString &sig, PIObject *dest)
 Disconnects this source object from all connections of event "sig" to destination object "dest".
 
void piDisconnect (const PIString &sig)
 Disconnects this source object from all connections of event "sig".
 
bool isPIObject () const
 Returns whether this pointer still refers to a live PIObject instance.
 
template<typename T >
bool isTypeOf () const
 Returns whether this object belongs to class "T" or one of its registered descendants.
 
template<typename T >
T * cast () const
 Returns this object cast to "T" when isTypeOf<T>() succeeds, otherwise nullptr.
 
void callQueuedEvents ()
 Executes all queued deliveries posted to this performer object.
 
bool maybeCallQueuedEvents ()
 Executes queued deliveries only when this object was used as a performer. More...
 
void deleteLater ()
 Schedules the object for deferred deletion. More...
 
void deleted (PIObject *o)
 Raised immediately before object destruction. More...
 

Static Public Member Functions

static PIVector< int > availableSpeeds ()
 Returns all available speeds for serial devices.
 
static PIStringList availableDevices (bool test=false)
 Returns all available system devices path. If "test" each device will be tried to open.
 
static PIVector< DeviceInfoavailableDevicesInfo (bool test=false)
 Returns all available system devices. If "test" each device will be tried to open.
 
- Static Public Member Functions inherited from PIIODevice
static PIIODevicecreateFromFullPath (const PIString &full_path)
 Try to create new device by prefix, configure it with configureFromFullPath() and returns it. More...
 
static PIIODevicecreateFromVariant (const PIVariantTypes::IODevice &d)
 Try to create new device by prefix, configure it with configureFromVariant() and returns it.
 
static PIString normalizeFullPath (const PIString &full_path)
 Returns normalized full-path representation for "full_path".
 
static void splitFullPath (PIString fpwm, PIString *full_path, DeviceMode *mode=0, DeviceOptions *opts=0)
 Splits full-path string into path, mode and options.
 
static PIStringList availablePrefixes ()
 Returns fullPath prefixes of all registered devices.
 
static PIStringList availableClasses ()
 Returns class names of all registered devices.
 
- Static Public Member Functions inherited from PIObject
static bool execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Static convenience wrapper for execute().
 
static bool execute (PIObject *o, const PIString &method)
 Static overload of execute() without arguments.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0)
 Static overload of execute() for one argument.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Static overload of execute() for two arguments.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Static overload of execute() for three arguments.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Static overload of execute() for four arguments.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Static convenience wrapper for executeQueued().
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method)
 Static overload of executeQueued() without arguments.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Static overload of executeQueued() for one argument.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Static overload of executeQueued() for two arguments.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Static overload of executeQueued() for three arguments.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Static overload of executeQueued() for four arguments.
 
static PIObject::Connection piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc)
 Low-level direct connection helper behind the legacy CONNECT* macros.
 
static PIObject::Connection piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0)
 Low-level name-based connection helper behind CONNECTU() and CONNECTU_QUEUED().
 
static PIObject::Connection piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc)
 Low-level helper that connects an event to a lambda or functor wrapper.
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h)
 Disconnects source object "src" from a specific destination handler for event "sig".
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest)
 Disconnects source object "src" from all connections of event "sig" to destination object "dest".
 
static void piDisconnect (PIObject *src, const PIString &sig)
 Disconnects source object "src" from all connections of event "sig".
 
static void raiseEvent (PIObject *sender, const uint eventID)
 Internal event delivery helper for registered events without arguments.
 
template<typename T0 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0())
 Internal event delivery helper for registered events with one argument.
 
template<typename T0 , typename T1 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1())
 Internal event delivery helper for registered events with two arguments.
 
template<typename T0 , typename T1 , typename T2 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2())
 Internal event delivery helper for registered events with three arguments.
 
template<typename T0 , typename T1 , typename T2 , typename T3 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3())
 Internal event delivery helper for registered events with four arguments.
 
static PIObjectfindByName (const PIString &name)
 Returns the first live object with name "name", or nullptr.
 
static bool isPIObject (const PIObject *o)
 Returns whether "o" points to a live PIObject instance.
 
static bool isPIObject (const void *o)
 Overload of isPIObject() for an untyped pointer.
 
template<typename T >
static bool isTypeOf (const PIObject *o)
 Returns whether "o" belongs to class "T" or one of its registered descendants.
 
template<typename T >
static bool isTypeOf (const void *o)
 Overload of isTypeOf() for an untyped pointer.
 
static PIString simplifyType (const char *a, bool readable=true)
 Simplifies a C++ type spelling for registered-method metadata.
 

Protected Member Functions

PIString constructFullPathDevice () const override
 Reimplement to build device-specific part of full-path string. Default implementation returns path().
 
void configureFromFullPathDevice (const PIString &full_path) override
 Reimplement to configure the device from device-specific full-path parameters. Default implementation calls setPath().
 
PIPropertyStorage constructVariantDevice () const override
 Reimplement to build device-specific variant properties. Default implementation returns PIPropertyStorage with "path".
 
void configureFromVariantDevice (const PIPropertyStorage &d) override
 Reimplement to configure the device from PIPropertyStorage. Mode and options are already applied. Default implementation applies "path".
 
bool configureDevice (const void *e_main, const void *e_parent=0) override
 Reimplement to configure the device from "e_main" and optional "e_parent" entries cast to PIConfig::Entry*.
 
void optionsChanged () override
 Reimplement to react to changed device options.
 
void threadedReadBufferSizeChanged () override
 Reimplement to react to new threadedReadBufferSize().
 
ssize_t readDevice (void *read_to, ssize_t max_size) override
 Basic read function. More...
 
ssize_t writeDevice (const void *data, ssize_t max_size) override
 Reimplement this function to write to your device.
 
DeviceInfoFlags deviceInfoFlags () const override
 Reimplement to report actual DeviceInfoFlags. Default implementation returns 0.
 
virtual void received (const void *data, int size)
 Executes when any read function was successful. Default implementation does nothing.
 
bool openDevice () override
 Reimplement to open device, return value will be set to "opened_" variable. Don't call this function in subclass, use open()!
 
bool closeDevice () override
 Reimplement to close the device; inverse return value is stored into "opened_".
 
- Protected Member Functions inherited from PIIODevice
virtual bool configureDevice (const void *e_main, const void *e_parent=0)
 Reimplement to configure the device from "e_main" and optional "e_parent" entries cast to PIConfig::Entry*.
 
virtual bool openDevice ()=0
 Reimplement to open device, return value will be set to "opened_" variable. Don't call this function in subclass, use open()!
 
virtual bool closeDevice ()
 Reimplement to close the device; inverse return value is stored into "opened_".
 
virtual ssize_t readDevice (void *read_to, ssize_t max_size)
 Reimplement this function to read from your device.
 
virtual ssize_t writeDevice (const void *data, ssize_t max_size)
 Reimplement this function to write to your device.
 
virtual bool threadedRead (const uchar *readed, ssize_t size)
 Called after threaded read receives data; default implementation calls the external callback set by setThreadedReadSlot().
 
virtual PIString constructFullPathDevice () const
 Reimplement to build device-specific part of full-path string. Default implementation returns path().
 
virtual void configureFromFullPathDevice (const PIString &full_path)
 Reimplement to configure the device from device-specific full-path parameters. Default implementation calls setPath().
 
virtual PIPropertyStorage constructVariantDevice () const
 Reimplement to build device-specific variant properties. Default implementation returns PIPropertyStorage with "path".
 
virtual void configureFromVariantDevice (const PIPropertyStorage &d)
 Reimplement to configure the device from PIPropertyStorage. Mode and options are already applied. Default implementation applies "path".
 
virtual void optionsChanged ()
 Reimplement to react to changed device options.
 
virtual DeviceInfoFlags deviceInfoFlags () const
 Reimplement to report actual DeviceInfoFlags. Default implementation returns 0.
 
virtual void threadedReadBufferSizeChanged ()
 Reimplement to react to new threadedReadBufferSize().
 
- Protected Member Functions inherited from PIObject
PIObjectemitter () const
 Returns the source object that raised the current event. More...
 
virtual void propertyChanged (const char *name)
 Virtual method called after property "name" has been changed by setProperty().
 

Configurable parameters

string device
 device, default ""
 
int speed
 input/output speed, default 115200
 
int dataBitsCount
 dataBitsCount, default 8
 
bool parityControl
 parityControl, default false
 
bool parityOdd
 parityOdd, default false
 
bool twoStopBits
 twoStopBits, default false
 

Additional Inherited Members

- Public Attributes inherited from PIIODevice
bool reopenEnabled
 setReopenEnabled, default "true".
 
int reopenTimeout
 setReopenTimeout, default 1_s.
 
int threadedReadBufferSize
 setThreadedReadBufferSize in bytes, default 4096.
 

Detailed Description

Serial device.

Synopsis

This class provide access to serial device, e.g. COM port. It can read, write, wait for write. There are several read and write functions.

FullPath

Since version 1.16.0 you can use as path PISerial::DeviceInfo::id() USB identifier for USB devices.

PISerial * s = new PISerial("0403:6001");
PIIODevice * d = PIIODevice::createFromFullPath("ser://0403:6001:115200");
Base class for input/output devices.
Definition: piiodevice.h:90
static PIIODevice * createFromFullPath(const PIString &full_path)
Try to create new device by prefix, configure it with configureFromFullPath() and returns it.
Definition: piiodevice.cpp:621
Serial device.
Definition: piserial.h:38
return s
Store operator.
Definition: pisystemmonitor.h:312

Member Enumeration Documentation

◆ Parameters

Parameters of PISerial.

Enumerator
ParityControl 

Enable parity check and generate

ParityOdd 

Parity is odd instead of even

TwoStopBits 

Two stop bits instead of one

◆ Speed

Speed of PISerial.

Enumerator
S50 

50 baud

S75 

75 baud

S110 

110 baud

S300 

300 baud

S600 

600 baud

S1200 

1200 baud

S2400 

2400 baud

S4800 

4800 baud

S9600 

9600 baud

S14400 

14400 baud

S19200 

19200 baud

S38400 

38400 baud

S57600 

57600 baud

S115200 

115200 baud

S230400 

230400 baud

S460800 

460800 baud

S500000 

500000 baud

S576000 

576000 baud

S921600 

921600 baud

S1000000 

1000000 baud

S1152000 

1152000 baud

S1500000 

1500000 baud

S2000000 

2000000 baud

S2500000 

2500000 baud

S3000000 

3000000 baud

S3500000 

3500000 baud

S4000000 

4000000 baud

Member Function Documentation

◆ setBreak()

bool PISerial::setBreak ( bool  enabled)

Switch transmission line in break.

If enabled, sends a continuous stream of zero bits. Returns if state changed successfully.

Note
The serial port has to be open before using this method

◆ read()

bool PISerial::read ( void *  data,
int  size,
double  timeout_ms 
)

Read from device no more "max_size" bytes into "read_to" with "timeout_ms" timeout.

Read to pointer "read_to" no more than "max_size" and no longer than "timeout_ms" milliseconds.
If "timeout_ms" < 0 function will be wait forever until "max_size" will be readed.
If "size" <= 0 function immediate returns false.
For read data with unknown size use function readData().

Returns
If readed bytes count = "max_size"

◆ readString()

PIString PISerial::readString ( int  size = -1,
double  timeout_ms = 1000. 
)

Read from device for "timeout_ms" timeout or for "size" bytes.

Read all or no more than "size" bytes and no longer than "timeout_ms" milliseconds.
If "timeout_ms" < 0 function will be wait forever until "max_size" will be readed.
If "size" <= 0 function will be read all until "timeout_ms" elaped.
If "size" <= 0 and "timeout_ms" <= 0 function immediate returns empty string.
This function similar to readData() but returns data as string.

Returns
If readed bytes count = "max_size"

◆ readData()

PIByteArray PISerial::readData ( int  size = -1,
double  timeout_ms = 1000. 
)

Read from device for "timeout_ms" timeout or for "size" bytes.

Read all or no more than "size" bytes and no longer than "timeout_ms" milliseconds.
If "timeout_ms" < 0 function will be wait forever until "max_size" will be readed.
If "size" <= 0 function will be read all until "timeout_ms" elaped.
If "size" <= 0 and "timeout_ms" <= 0 function immediate returns empty string.
This function similar to readString() but returns data as byte array.

Returns
If readed bytes count = "max_size"

◆ readDevice()

ssize_t PISerial::readDevice ( void *  read_to,
ssize_t  max_size 
)
overrideprotectedvirtual

Basic read function.

Read to pointer "read_to" no more than "max_size". If PIIODevice::BlockingRead option set this function will be wait at least one byte.

Returns
Readed bytes count, -1 for error
See also
readData(), readString()

Reimplemented from PIIODevice.