Beamlib  3.0.1
This is the Beam C++ class library.
BComms.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * BComms.h BComms class
3  * T.Barnaby, Beam Ltd, 2012-11-12
4  * Copyright (c) 2012 All Right Reserved, Beam Ltd, http://www.beam.ltd.uk
5  *******************************************************************************
6  *
7  * For license see LICENSE.txt at the root of the beamlib source tree.
8  */
9 #ifndef BComms_h
10 #define BComms_h
11 
12 #include <BTypes.h>
13 #include <BEvent.h>
14 #include <BError.h>
15 
17 class BComms {
18 public:
20 
21  BComms();
22  virtual ~BComms();
23 
24  virtual BError init();
25  virtual void close();
26 
27  virtual const char* name();
28  virtual BUInt32 byteRate();
29 
31  virtual Bool packetMode();
32  virtual BError setTimeout(BTimeout timeoutUs);
33 
34  virtual BError connect(const char* resource);
35  virtual Bool isConnected();
36  virtual BError disconnect();
37 
38  virtual void flush(Flush flush);
39 
40  virtual BUInt writeAvailable();
41  virtual BError write(const void* data, BUInt32 nBytes, BUInt32& nTrans) = 0;
42  virtual BError writeChunks(const BDataChunk* chunks, BUInt nChunks, BUInt32& nTrans);
43 
44  virtual BUInt readAvailable();
45  virtual BError read(void* data, BUInt32 num, BUInt32& nTrans) = 0;
46 
47  virtual BError wait(BUInt32 eventSet, BTimeout timeoutUs = BTimeoutForever, BUInt32 num = 1);
48  virtual void eventQueue(BEventQueue* eventQueue, BUInt32 event, BUInt32 eventSet, BUInt num = 1);
49  virtual void eventEnable(Bool on);
50 
51 protected:
60 };
61 #endif
const BTimeout BTimeoutForever
Definition: BTypes.h:46
BUInt32 BUInt
Definition: BTypes.h:33
uint32_t BUInt32
Definition: BTypes.h:24
bool Bool
Definition: BTypes.h:18
BUInt32 BTimeout
Definition: BTypes.h:45
char data[8]
Definition: BoapMc1.h:2
A base class for communications classes having a generic API.
Definition: BComms.h:17
virtual Bool packetMode()
Device is in packet mode.
Definition: BComms.cpp:46
virtual BError read(void *data, BUInt32 num, BUInt32 &nTrans)=0
Flush
Definition: BComms.h:19
@ FlushReadWrite
Definition: BComms.h:19
@ FlushRead
Definition: BComms.h:19
@ FlushWrite
Definition: BComms.h:19
virtual void flush(Flush flush)
Definition: BComms.cpp:72
virtual ~BComms()
Definition: BComms.cpp:19
BEventQueue * oeventQueue
Definition: BComms.h:55
Bool opacketMode
Definition: BComms.h:53
virtual void close()
Definition: BComms.cpp:29
virtual BError connect(const char *resource)
Create a connection.
Definition: BComms.cpp:58
virtual const char * name()
The name of this interface.
Definition: BComms.cpp:32
BUInt32 oevent
Definition: BComms.h:57
virtual BError writeChunks(const BDataChunk *chunks, BUInt nChunks, BUInt32 &nTrans)
Definition: BComms.cpp:79
virtual void eventEnable(Bool on)
Enable events to be sent.
Definition: BComms.cpp:112
virtual BUInt readAvailable()
Definition: BComms.cpp:94
virtual BError wait(BUInt32 eventSet, BTimeout timeoutUs=BTimeoutForever, BUInt32 num=1)
Definition: BComms.cpp:98
virtual BError setPacketMode(Bool packetMode)
Set packet mode.
Definition: BComms.cpp:40
Bool oconnected
Definition: BComms.h:52
Bool oeventEnabled
Definition: BComms.h:56
virtual BError disconnect()
Disconnect.
Definition: BComms.cpp:67
BUInt oeventNum
Definition: BComms.h:59
virtual BUInt32 byteRate()
The byte rate of this interface.
Definition: BComms.cpp:36
virtual BError write(const void *data, BUInt32 nBytes, BUInt32 &nTrans)=0
virtual BUInt writeAvailable()
Definition: BComms.cpp:75
virtual Bool isConnected()
Definition: BComms.cpp:63
BComms()
Definition: BComms.cpp:10
virtual BError init()
Definition: BComms.cpp:23
BUInt32 oeventSet
Definition: BComms.h:58
virtual BError setTimeout(BTimeout timeoutUs)
Set communication timeout.
Definition: BComms.cpp:50
virtual void eventQueue(BEventQueue *eventQueue, BUInt32 event, BUInt32 eventSet, BUInt num=1)
Definition: BComms.cpp:104
BTimeout otimeout
Definition: BComms.h:54
A chunk of data allowing writes of multiple chunks of segmented data.
Definition: BTypes.h:94
Error return class. This class is used to return the error status from a function....
Definition: BError.h:31
Provides a thread save queue of objects that can be used to communicate between threads.
Definition: BQueue.h:20