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 #ifndef ARSICKPACKETRECEIVER_H
00027 #define ARSICKPACKETRECEIVER_H
00028
00029 #include "ariaTypedefs.h"
00030 #include "ArDeviceConnection.h"
00031 #include "ArSickPacket.h"
00032
00034 class ArSickPacketReceiver
00035 {
00036 public:
00038 AREXPORT ArSickPacketReceiver(unsigned char receivingAddress = 0,
00039 bool allocatePackets = false,
00040 bool useBase0Address = false);
00042 AREXPORT ArSickPacketReceiver(ArDeviceConnection *deviceConnection,
00043 unsigned char receivingAddress = 0,
00044 bool allocatePackets = false,
00045 bool useBase0Address = false);
00047 AREXPORT virtual ~ArSickPacketReceiver();
00048
00050 AREXPORT ArSickPacket *receivePacket(unsigned int msWait = 0);
00051
00053 AREXPORT void setDeviceConnection(ArDeviceConnection *deviceConnection);
00055 AREXPORT ArDeviceConnection *getDeviceConnection(void);
00056
00058 AREXPORT bool isAllocatingPackets(void) { return myAllocatePackets; }
00059
00060 protected:
00061 ArDeviceConnection *myDeviceConn;
00062 bool myAllocatePackets;
00063 ArSickPacket myPacket;
00064 unsigned char myReceivingAddress;
00065 bool myUseBase0Address;
00066 enum { STATE_START, STATE_ADDR, STATE_START_COUNT, STATE_ACQUIRE_DATA };
00067 };
00068
00069 #endif // ARSICKPACKETRECEIVER_H