|
PIP
1.8.0
Platform-Independent Primitives
|
Simple packet wrap aroud any PIIODevice. More...

Public Member Functions | |
| PIStreamPacker (PIIODevice *dev=0) | |
| Contructs packer and try to assign "dev". | |
| void | setMaxPacketSize (int max_size) |
| Set maximum size of single packet. | |
| int | maxPacketSize () |
| Returns maximum size of single packet, default 1400 bytes. | |
| void | setPacketSign (ushort sign_) |
| Set packet sinature. | |
| ushort | packetSign () |
| Returns packet sinature, default 0xAFBE. | |
| void | send (const PIByteArray &data) |
| Prepare data for send and raise sendRequest() events. | |
| void | received (const PIByteArray &data) |
| Receive data part. If packet is ready, raise received() event. | |
| void | assignDevice (PIIODevice *dev) |
Public Member Functions inherited from PIObject | |
| PIObject (const PIString &name=PIString()) | |
| Contructs PIObject with name "name". | |
| PIString | name () const |
| Returns object name. | |
| virtual const char * | className () const |
| Returns object class name. | |
| virtual const char * | parentClassName () const |
| Returns parent object class name. | |
| bool | debug () const |
| Return if debug of this object is active. | |
| void | setName (const PIString &name) |
| Set object name. | |
| void | setDebug (bool debug) |
| Set object debug active. | |
| const PIMap< PIString, PIVariant > & | properties () const |
| Returns properties of the object. | |
| int | propertiesCount () const |
| Returns properties count of the object. | |
| PIVariant | property (const PIString &name) const |
| Returns property with name "name". | |
| void | setProperty (const PIString &name, const PIVariant &value) |
| Set property with name "name" to "value". If there is no such property in object it will be added. | |
| bool | isPropertyExists (const PIString &name) const |
| Returns if property with name "name" exists. | |
Public Member Functions inherited from PIEthUtilBase | |
| void | setCryptEnabled (bool on) |
| Set crypt layer enabled. | |
| void | cryptEnable () |
| Enable crypt layer. | |
| void | cryptDisable () |
| Disable crypt layer. | |
| bool | isCryptEnabled () const |
| Returns if crypt layer enabled. | |
| void | setCryptKey (const PIByteArray &k) |
| Set crypt layer key to "k". | |
| void | createCryptKey (const PIString &k) |
| PIByteArray | cryptKey () const |
| Returns crypt layer key. | |
Handlers | |
| void | received (uchar *readed, int size) |
| Handler to receive data. PIIODevice::threadedReadEvent() can be connected to this handler. | |
Events | |
| void | packetReceiveEvent (PIByteArray data) |
| Raise on packet successfully received. | |
| void | sendRequest (PIByteArray data) |
| Raise from send() function. This data should be directly sended to your device. You can connect this event to PIIODevice::write() handler. | |
Additional Inherited Members | |
Static Public Member Functions inherited from PIObject | |
| static void | piDisconnect (PIObject *src, const PIString &sig) |
| Disconnect object "src" from all connections with event name "sig". | |
| static void | piDisconnect (PIObject *src) |
| Disconnect object "src" from all connections, i.e. all connections where object "src" is emitter. | |
| static PIObject * | findByName (const PIString &name) |
| Returns PIObject* with name "name" or 0, if there is no object found. | |
Protected Member Functions inherited from PIObject | |
| PIObject * | emitter () const |
| Returns PIObject* which has raised an event. This value is correct only in definition of some event handler. | |
| virtual void | propertyChanged (const PIString &name) |
| Virtual function executes after property with name "name" has been changed. | |
| void | deleted () |
| Raise before object delete. More... | |
Protected Member Functions inherited from PIEthUtilBase | |
| PIByteArray | cryptData (const PIByteArray &data) |
| Returns encrypted data if layer enabled, otherwise returns unchanged "data". | |
| PIByteArray | decryptData (const PIByteArray &data) |
| Returns decrypted data if layer enabled, otherwise returns unchanged "data". If decryption was unsuccessfull returns empty PIByteArray. | |
Related Functions inherited from PIObject | |
| #define | piCoutObj |
| Macro used for conditional (piDebug and PIObject::debug()) output to PICout for subclasses of PIObject. | |
| #define | PIOBJECT(name) |
| you should use this macro after class declaration to use EVENT and EVENT_HANDLER and correct piCoutObj output | |
| #define | PIOBJECT_SUBCLASS(name, parent) |
| you should use this macro after class declaration to use EVENT and EVENT_HANDLER of parent class, and scopeList() | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
| declare event handler "event" with name "name" and return type "ret", ret name() | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0) | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1) | |
| #define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2) |
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2) | |
| #define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2, type3 var3) | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| EVENT_HANDLER is synonym of EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name() | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0) | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1) | |
| #define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2) |
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2) | |
| #define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| EVENT_VHANDLER is synonym of EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| declare event "event" with name "name", void name(); | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| declare event "event" with name "name", void name(type0 var0); | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| declare event "event" with name "name", void name(type0 var0, type1 var1); | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2); | |
| #define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3); |
| declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2, type3 var3); | |
| #define | EVENT EVENT0 |
| EVENT is synonym of EVENT0. | |
| #define | CONNECTU(src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler". "Event" and "handler" must has equal argument lists. | |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| connect event "event" from object "src" to event handler "handler". Event handler will be executed by "performer". "Event" and "handler" must has equal argument lists. | |
| #define | CONNECT0(ret, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT CONNECT0 |
| CONNECT is synonym of CONNECT0. | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| WEAK_CONNECT is synonym of WEAK_CONNECT0. | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT DISCONNECT0 |
| DISCONNECT is synonym of DISCONNECT0. | |
| #define | HANDLER(handler) |
| Returns pointer to events handler "handler". | |
Simple packet wrap aroud any PIIODevice.
PIStreamPacker provides simple pack/unpack logic for any data packets.
When you call send() function data splited into several parts, packetSign() prepended to first part and sendRequest() event raised several times.
When your device receive some data, call received() function. packetReceiveEvent() event will be raised when packet will be collected.
Use assignDevice() to connect device to this PIStreamPacker.
| void PIStreamPacker::assignDevice | ( | PIIODevice * | dev | ) |
Connect "dev" PIIODevice::threadedReadEvent() event to received() handler and sendRequest() event to "dev" PIIODevice::write() handler