BDS Public
Beamlib 3.3.4
This is the Beam C++ class library.
Loading...
Searching...
No Matches
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
17class BComms {
18public:
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
51protected:
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