Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
ScannerSickS300 Class Reference

#include <ScannerSickS300.h>

List of all members.

Classes

struct  ParamType
struct  ScanPolarType

Public Types

enum  { SCANNER_S300_READ_BUF_SIZE = 10000, READ_BUF_SIZE = 10000, WRITE_BUF_SIZE = 10000 }

Public Member Functions

bool getScan (std::vector< double > &vdDistanceM, std::vector< double > &vdAngleRAD, std::vector< double > &vdIntensityAU, unsigned int &iTimestamp, unsigned int &iTimeNow)
bool open (const char *pcPort, int iBaudRate, int iScanId)
void purgeScanBuf ()
void resetStartup ()
 ScannerSickS300 ()
void startScanner ()
void stopScanner ()
 ~ScannerSickS300 ()

Private Member Functions

void convertScanToPolar (std::vector< int > viScanRaw, std::vector< ScanPolarType > &vecScanPolar)

Private Attributes

int m_actualBufferSize
double m_dBaudMult
int m_iPosReadBuf2
ParamType m_Param
unsigned char m_ReadBuf [READ_BUF_SIZE+10]
unsigned char m_ReadBuf2 [READ_BUF_SIZE+10]
SerialIO m_SerialIO
unsigned int m_uiSumReadBytes
std::vector< int > m_viScanRaw

Static Private Attributes

static const double c_dPi = 3.14159265358979323846
static unsigned char m_iScanId = 7

Detailed Description

Driver class for the laser scanner SICK S300 Professional. This driver only supports use with 500KBaud in cont. mode

S300 header format in continuous mode:

| 00 00 00 00 | 4 byte reply header

Now starts the actual telegram

| 00 00 | data block number (fixed) | xx xx | size of data telegram (should be dec 1104) | FF xx | last byte decides scanner id, 07 in most cases, but 08 for slave configured scanners | xx xx | protocol version | 0x 00 | status: 00 00 = normal, 01 00 = lockout | xx xx xx xx | scan number | xx xx | telegram number | BB BB | fixed | 11 11 | fixed ... data | xx xx | CRC

Readout of buffer starts with Reply-Header Reply-Header:byte 0 to 3 = 4 bytes Telegram (as it is stored in the Buffer): Position in the telegram Header: bytes 4 to 23 = 20 bytes bytes 0 to 19 Data: bytes 24 to 1105 = 1082 bytes bytes 20 to 1101 CRC: bytes 1106, 1107 = 2 bytes bytes 1102, 1103

for easier parsing Reply-Header and Telegram-Header are combined in the folllowing --> Headerlength = 24 bytes (iHeaderLength) --> Total length in buffer is 1108 bytes --> Telegram length (read from telegram) is 1104 bytes (iDataLength)

Definition at line 102 of file ScannerSickS300.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
SCANNER_S300_READ_BUF_SIZE 
READ_BUF_SIZE 
WRITE_BUF_SIZE 

Definition at line 125 of file ScannerSickS300.h.


Constructor & Destructor Documentation

Definition at line 314 of file ScannerSickS300.cpp.

Definition at line 337 of file ScannerSickS300.cpp.


Member Function Documentation

void ScannerSickS300::convertScanToPolar ( std::vector< int >  viScanRaw,
std::vector< ScanPolarType > &  vecScanPolar 
) [private]

Definition at line 463 of file ScannerSickS300.cpp.

bool ScannerSickS300::getScan ( std::vector< double > &  vdDistanceM,
std::vector< double > &  vdAngleRAD,
std::vector< double > &  vdIntensityAU,
unsigned int &  iTimestamp,
unsigned int &  iTimeNow 
)

Definition at line 402 of file ScannerSickS300.cpp.

bool ScannerSickS300::open ( const char *  pcPort,
int  iBaudRate,
int  iScanId = 7 
)

Opens serial port.

Parameters:
pcPortused "COMx" or "/dev/tty1"
iBaudRatebaud rate
iScanIdthe scanner id in the data header (7 by default)

Definition at line 344 of file ScannerSickS300.cpp.

Definition at line 376 of file ScannerSickS300.cpp.

Definition at line 384 of file ScannerSickS300.cpp.

Definition at line 390 of file ScannerSickS300.cpp.

Definition at line 396 of file ScannerSickS300.cpp.


Member Data Documentation

const double ScannerSickS300::c_dPi = 3.14159265358979323846 [static, private]

Definition at line 170 of file ScannerSickS300.h.

Definition at line 183 of file ScannerSickS300.h.

double ScannerSickS300::m_dBaudMult [private]

Definition at line 174 of file ScannerSickS300.h.

Definition at line 181 of file ScannerSickS300.h.

unsigned char ScannerSickS300::m_iScanId = 7 [static, private]

Definition at line 182 of file ScannerSickS300.h.

Definition at line 173 of file ScannerSickS300.h.

unsigned char ScannerSickS300::m_ReadBuf[READ_BUF_SIZE+10] [private]

Definition at line 177 of file ScannerSickS300.h.

unsigned char ScannerSickS300::m_ReadBuf2[READ_BUF_SIZE+10] [private]

Definition at line 178 of file ScannerSickS300.h.

Definition at line 186 of file ScannerSickS300.h.

unsigned int ScannerSickS300::m_uiSumReadBytes [private]

Definition at line 179 of file ScannerSickS300.h.

std::vector<int> ScannerSickS300::m_viScanRaw [private]

Definition at line 180 of file ScannerSickS300.h.


The documentation for this class was generated from the following files:


cob_sick_s300
Author(s): Florian Weisshardt
autogenerated on Sun Oct 5 2014 23:05:19