00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef ARDEVICECONNECTION_H
00028 #define ARDEVICECONNECTION_H
00029
00030 #include <string>
00031 #include "ariaTypedefs.h"
00032 #include "ariaUtil.h"
00033 #include "ArBasePacket.h"
00034
00036
00048 class ArDeviceConnection
00049 {
00050 public:
00052 ArDeviceConnection();
00054 virtual ~ArDeviceConnection();
00056
00064 virtual int read(const char *data, unsigned int size,
00065 unsigned int msWait = 0) = 0;
00067
00073 virtual int writePacket(ArBasePacket *packet)
00074 { if (packet == NULL || packet->getLength() == 0) return 0;
00075 return write(packet->getBuf(), packet->getLength()); }
00077
00084 virtual int write(const char *data, unsigned int size) = 0;
00086
00093 virtual int getStatus(void) = 0;
00095
00100 const char *getStatusMessage(int messageNumber) const;
00101
00103
00104 virtual bool openSimple(void) = 0;
00105
00107
00110 virtual bool close(void) { return false; }
00112
00119 virtual const char * getOpenMessage(int messageNumber) = 0;
00120 enum Status {
00121 STATUS_NEVER_OPENED = 1,
00122 STATUS_OPEN,
00123 STATUS_OPEN_FAILED,
00124 STATUS_CLOSED_NORMALLY,
00125 STATUS_CLOSED_ERROR
00126 };
00128
00133 virtual ArTime getTimeRead(int index) = 0;
00135
00136 virtual bool isTimeStamping(void) = 0;
00137 protected:
00138 void buildStrMap(void);
00139 static bool ourStrMapInited;
00140 static ArStrMap ourStrMap;
00141 };
00142
00143 #endif
00144
00145