Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
devices::SopasBase Class Referenceabstract

#include <SopasBase.hpp>

Public Types

typedef void(* DecoderFunction) (SopasEventMessage &frame)
 
enum  SopasEncoding { ByName, ByIndex }
 
enum  SopasMessageType {
  MSG_UNKNOWN, MSG_SEND_EVENT, MSG_READ_VARIABLE_ANSWER, MSG_WRITE_VARIABLE_ANSWER,
  MSG_INVOKE_METHOD_ANSWER, MSG_METHOD_RESULT_ANSWER, MSG_REGISTER_EVENT_ANSWER, MSG_EVENT_ACKNOWLEDGE,
  MSG_ERROR
}
 types of answers of the sensor More...
 
enum  SopasProtocol { CoLa_A, CoLa_B }
 

Public Member Functions

bool action_getScannerTypeAndVersion ()
 Reads the scanner type and version variable from the sensor and stores it in the member variables. This is done always by name. More...
 
bool connect ()
 Connects to a sensor via tcp and reads the device name. More...
 
bool disconnect ()
 Closes the connection to the LMS. This is the opposite of init(). More...
 
const std::string & getScannerName () const
 
const std::string & getScannerVersion () const
 
virtual bool init (SopasProtocol protocol, std::string ipAddress, UINT16 portNumber, bool weWantScanData, bool weWantFieldData, bool readOnlyMode, Tcp::DisconnectFunction disconnectFunction, void *obj)
 Initialization. More...
 
bool invokeMethod (const std::string &methodeName, BYTE *parameters, UINT16 parametersLength, SopasAnswer *&answer)
 Invoke a method on the sensor. More...
 
bool invokeMethod (UINT16 index, BYTE *parameters, UINT16 parametersLength, SopasAnswer *&answer)
 Invoke a method on the sensor. More...
 
bool isConnected ()
 Returns true if the tcp connection is established. More...
 
bool isReadOnly ()
 
double makeAngleValid (double angle)
 
bool readVariable (const std::string &variableName, SopasAnswer *&answer)
 Reads a variable from the sensor by name. More...
 
bool readVariable (UINT16 index, SopasAnswer *&answer)
 Reads a variable from the sensor by index. More...
 
bool registerEvent (const std::string &eventName)
 Registers an event by name. More...
 
bool registerEvent (UINT16 index)
 Registers an event by index. More...
 
void setEventCallbackFunction (DecoderFunction decoderFunction, const std::string &eventName)
 
void setEventCallbackFunction (DecoderFunction decoderFunction, UINT16 eventIndex)
 
void setReadOnlyMode (bool mode)
 
 SopasBase ()
 Default constructor. More...
 
bool unregisterEvent (const std::string &eventName)
 Unregisters an event by name. More...
 
bool unregisterEvent (UINT16 index)
 Unregisters an event by index. More...
 
bool writeVariable (const std::string &variableName, BYTE *parameters, UINT16 parametersLength)
 Write a variable to the sensor by name. More...
 
bool writeVariable (UINT16 index, BYTE *parameters, UINT16 parametersLength)
 Write a variable to the sensor by index. More...
 
virtual ~SopasBase ()
 Destructor. More...
 

Static Public Member Functions

static std::string convertSopasErrorCodeToText (UINT16 errorCode)
 

Static Public Attributes

static const std::string COMMAND_Event_Acknowledge
 
static const std::string COMMAND_Invoke_Method_Answer
 
static const std::string COMMAND_Invoke_Method_ByIndex
 
static const std::string COMMAND_Invoke_Method_ByName
 
static const std::string COMMAND_Method_Result_Answer
 
static const std::string COMMAND_Method_Result_ByIndex
 
static const std::string COMMAND_Method_Result_ByName
 
static const std::string COMMAND_Read_Variable_Answer
 
static const std::string COMMAND_Read_Variable_ByIndex
 
static const std::string COMMAND_Read_Variable_ByName
 
static const std::string COMMAND_Register_Event_Answer
 
static const std::string COMMAND_Register_Event_ByIndex
 
static const std::string COMMAND_Register_Event_ByName
 
static const std::string COMMAND_Send_Event_ByIndex
 
static const std::string COMMAND_Send_Event_ByName
 
static const std::string COMMAND_Write_Variable_Answer
 
static const std::string COMMAND_Write_Variable_ByIndex
 
static const std::string COMMAND_Write_Variable_ByName
 
static const std::string EVENTNAME_SUBSCRIBE_EVALCASES
 
static const std::string EVENTNAME_SUBSCRIBE_SCANS
 
static const UINT16 INDEX_DEVICE_IDENT = 0
 
static const std::string METHODNAME_LOGIN
 
static const std::string METHODNAME_LOGOUT
 
static const std::string METHODNAME_SET_SCANCONFIG
 
static const std::string METHODNAME_START_MEASURE
 
static const std::string METHODNAME_STOP_MEASURE
 
static const std::string VARIABLENAME_DATAOUTPUTRANGE
 
static const std::string VARIABLENAME_DEVICEIDENT
 
static const std::string VARIABLENAME_SCANCONFIG
 
static const std::string VARIABLENAME_SCANDATACONFIG
 

Protected Types

enum  SopasCommand {
  CMD_UNKNOWN = 0, RI = 1, WI = 2, MI = 3,
  AI = 4, EI = 5, SI = 6, RA = 7,
  WA = 8, MA = 9, AA = 10, EA = 11,
  SA = 12, RN = 20, AN = 21, SN = 22,
  FA = 50
}
 
enum  State { CONSTRUCTED, CONNECTED }
 

Protected Member Functions

SopasCommand colaA_decodeCommand (std::string *rxData)
 
virtual void evalCaseResultDecoder (SopasEventMessage &msg)=0
 
bool receiveAnswer (SopasCommand cmd, std::string name, UINT32 timeout, SopasAnswer *&answer)
 Take answer from read thread and decode it. Waits for a certain answer by name. Event data (scans) are filtered and processed by read thread. More...
 
bool receiveAnswer (SopasCommand cmd, UINT16 index, UINT32 timeout, SopasAnswer *&answer)
 
bool receiveAnswer_CoLa_A (SopasCommand cmd, std::string name, UINT32 timeout, SopasAnswer *&answer)
 
bool receiveAnswer_CoLa_A (SopasCommand cmd, UINT16 index, UINT32 timeout, SopasAnswer *&answer)
 
bool receiveAnswer_CoLa_B (SopasCommand cmd, std::string name, UINT32 timeout, SopasAnswer *&answer)
 
bool receiveAnswer_CoLa_B (SopasCommand cmd, UINT16 index, UINT32 timeout, SopasAnswer *&answer)
 
virtual void scanDataDecoder (SopasEventMessage &msg)=0
 
void sendCommandBuffer (UINT8 *buffer, UINT16 len)
 Sends the content of the buffer via TCP to the sensor. More...
 
std::string sopasCommandToString (SopasCommand cmd)
 
SopasCommand stringToSopasCommand (const std::string &cmdString)
 Converts strings in sopas answer buffer to SopasCommand enum. More...
 

Protected Attributes

bool m_beVerbose
 
bool m_fieldEventIsRegistered
 
bool m_isLoggedIn
 
bool m_scanEventIsRegistered
 
std::string m_scannerName
 Read from scanner. More...
 
std::string m_scannerVersion
 Read from scanner. More...
 
State m_state
 Device info. More...
 
bool m_weWantFieldData
 Flag to enable/disable protection field data reception. More...
 
bool m_weWantScanData
 Flag to enable/disable scan data reception. More...
 

Private Types

typedef std::map< UINT16, DecoderFunctionDecoderFunctionMapByIndex
 
typedef std::map< std::string, DecoderFunctionDecoderFunctionMapByName
 
typedef std::map< UINT16, std::string > IndexToNameMap
 

Private Member Functions

void closeTcpConnection ()
 
void colaA_decodeScannerTypeAndVersion (std::string *rxData)
 
void colaB_decodeScannerTypeAndVersion (UINT8 *buffer, UINT16 pos)
 
void copyFrameToResposeBuffer (UINT32 frameLength)
 
SopasEventMessage findFrameInReceiveBuffer ()
 Depending on the protocol the start and end of a frame will be found. More...
 
bool openTcpConnection ()
 
void processFrame (SopasEventMessage &frame)
 Reads one frame from receive buffer and decodes it. More...
 
void processFrame_CoLa_A (SopasEventMessage &frame)
 
void processFrame_CoLa_B (SopasEventMessage &frame)
 
void readCallbackFunction (UINT8 *buffer, UINT32 &numOfBytes)
 
void removeFrameFromReceiveBuffer (UINT32 frameLength)
 

Static Private Member Functions

static void readCallbackFunctionS (void *obj, UINT8 *buffer, UINT32 &numOfBytes)
 Function that will be called on incomming data via tcp. More...
 

Private Attributes

DecoderFunctionMapByIndex m_decoderFunctionMapByIndex
 
DecoderFunctionMapByName m_decoderFunctionMapByName
 
SopasEncoding m_encoding
 ByName or ByIndex. More...
 
IndexToNameMap m_indexToNameMap
 
std::string m_ipAddress
 
UINT32 m_numberOfBytesInReceiveBuffer
 Number of bytes in buffer. More...
 
UINT32 m_numberOfBytesInResponseBuffer
 Number of bytes in buffer. More...
 
UINT16 m_portNumber
 
SopasProtocol m_protocol
 Used protocol (ColaA oder ColaB) More...
 
bool m_readOnlyMode
 
UINT8 m_receiveBuffer [25000]
 Low-Level receive buffer for all data (25000 should be enough for NAV300 Events) More...
 
Mutex m_receiveDataMutex
 Access mutex for buffer. More...
 
UINT8 m_responseBuffer [1024]
 Receive buffer for everything except scan data and eval case data. More...
 
Tcp m_tcp
 

Detailed Description

Class SopasBase encapsuls the communication to a sensor via SopasProtocol. It offers the functions:

Callback functions are used to inform you about incoming events (scans or eval cases).

Definition at line 35 of file SopasBase.hpp.

Member Typedef Documentation

◆ DecoderFunction

typedef void(* devices::SopasBase::DecoderFunction) (SopasEventMessage &frame)

Definition at line 106 of file SopasBase.hpp.

◆ DecoderFunctionMapByIndex

Definition at line 387 of file SopasBase.hpp.

◆ DecoderFunctionMapByName

typedef std::map<std::string, DecoderFunction> devices::SopasBase::DecoderFunctionMapByName
private

Definition at line 386 of file SopasBase.hpp.

◆ IndexToNameMap

typedef std::map<UINT16, std::string> devices::SopasBase::IndexToNameMap
private

Definition at line 394 of file SopasBase.hpp.

Member Enumeration Documentation

◆ SopasCommand

Enumerator
CMD_UNKNOWN 

Unknown command.

RI 

Read Variable.

WI 

Write Variable.

MI 

Invoke Method.

AI 

Method Result.

EI 

Register Event.

SI 

Send Event.

RA 

Read Variable Answer.

WA 

Write Variable Answer.

MA 

Invoke Method Answer.

AA 

Method Result Answer.

EA 

Register Event Answer.

SA 

Event Acknowledge.

RN 

Read Variable (by name)

AN 

Method Result (ny name)

SN 

Send Event (by name, receive)

FA 

Error.

Definition at line 276 of file SopasBase.hpp.

◆ SopasEncoding

Enumerator
ByName 

read/write variable, invoke methods by name

ByIndex 

read/write variable, invoke methods by index (indexes will be generated !!!)

Definition at line 80 of file SopasBase.hpp.

◆ SopasMessageType

types of answers of the sensor

Enumerator
MSG_UNKNOWN 

Unknown message.

MSG_SEND_EVENT 

Send Event.

MSG_READ_VARIABLE_ANSWER 

Read Variable Answer.

MSG_WRITE_VARIABLE_ANSWER 

Write Variable Answer.

MSG_INVOKE_METHOD_ANSWER 

Invoke Method Answer.

MSG_METHOD_RESULT_ANSWER 

Method Result Answer.

MSG_REGISTER_EVENT_ANSWER 

Register Event Answer.

MSG_EVENT_ACKNOWLEDGE 

Event Acknowledge -Answer to register event.

MSG_ERROR 

Error.

Definition at line 87 of file SopasBase.hpp.

◆ SopasProtocol

Enumerator
CoLa_A 

Command Language ASCI.

CoLa_B 

Command Language binary.

Definition at line 74 of file SopasBase.hpp.

◆ State

enum devices::SopasBase::State
protected
Enumerator
CONSTRUCTED 

Object has been constructed. Use init() to go into CONNECTED state.

Object is now connected. Use run() to go into RUNNING state, or disconnect() to go back into CONSTRUCTED state.

CONNECTED 

Object is connected and emitting data. Use stop() to go back into CONNECTED, or disconnect() to go back into CONSTRUCTED state.

Definition at line 298 of file SopasBase.hpp.

Constructor & Destructor Documentation

◆ SopasBase()

devices::SopasBase::SopasBase ( )

Default constructor.

Definition at line 57 of file SopasBase.cpp.

◆ ~SopasBase()

devices::SopasBase::~SopasBase ( )
virtual

Destructor.

Definition at line 67 of file SopasBase.cpp.

Member Function Documentation

◆ action_getScannerTypeAndVersion()

bool devices::SopasBase::action_getScannerTypeAndVersion ( )

Reads the scanner type and version variable from the sensor and stores it in the member variables. This is done always by name.

Returns
true if no errors occurred.

Get scanner type and version string Also used as connection check.

true: Information was read, false if an error occured

Definition at line 1548 of file SopasBase.cpp.

◆ closeTcpConnection()

void devices::SopasBase::closeTcpConnection ( )
private

Definition at line 238 of file SopasBase.cpp.

◆ colaA_decodeCommand()

SopasBase::SopasCommand devices::SopasBase::colaA_decodeCommand ( std::string *  rxData)
protected

Read command bytes from buffer (2 bytes followed by space) and convert string to enum value accordingly. The command string is removed from input.

Definition at line 1368 of file SopasBase.cpp.

◆ colaA_decodeScannerTypeAndVersion()

void devices::SopasBase::colaA_decodeScannerTypeAndVersion ( std::string *  rxData)
private

Decode answer for action_getScannerTypeAndVersion

Definition at line 1596 of file SopasBase.cpp.

◆ colaB_decodeScannerTypeAndVersion()

void devices::SopasBase::colaB_decodeScannerTypeAndVersion ( UINT8 buffer,
UINT16  pos 
)
private

Definition at line 1626 of file SopasBase.cpp.

◆ connect()

bool devices::SopasBase::connect ( )

Connects to a sensor via tcp and reads the device name.

Definition at line 122 of file SopasBase.cpp.

◆ convertSopasErrorCodeToText()

std::string devices::SopasBase::convertSopasErrorCodeToText ( UINT16  errorCode)
static

Definition at line 916 of file SopasBase.cpp.

◆ copyFrameToResposeBuffer()

void devices::SopasBase::copyFrameToResposeBuffer ( UINT32  frameLength)
private

Definition at line 1315 of file SopasBase.cpp.

◆ disconnect()

bool devices::SopasBase::disconnect ( )

Closes the connection to the LMS. This is the opposite of init().

Switches this device from the CONNECTED state back in the CONSTRUCTED state.

Returns
True if the device is now in the CONSTRUCTED state

Definition at line 185 of file SopasBase.cpp.

◆ evalCaseResultDecoder()

virtual void devices::SopasBase::evalCaseResultDecoder ( SopasEventMessage msg)
protectedpure virtual

◆ findFrameInReceiveBuffer()

SopasEventMessage devices::SopasBase::findFrameInReceiveBuffer ( )
private

Depending on the protocol the start and end of a frame will be found.

Definition at line 331 of file SopasBase.cpp.

◆ getScannerName()

const std::string& devices::SopasBase::getScannerName ( ) const
inline

Definition at line 268 of file SopasBase.hpp.

◆ getScannerVersion()

const std::string& devices::SopasBase::getScannerVersion ( ) const
inline

Definition at line 269 of file SopasBase.hpp.

◆ init()

bool devices::SopasBase::init ( SopasProtocol  protocol,
std::string  ipAddress,
UINT16  portNumber,
bool  weWantScanData,
bool  weWantFieldData,
bool  readOnlyMode,
Tcp::DisconnectFunction  disconnectFunction,
void *  obj 
)
virtual

Initialization.

Parameters
protocol
ipAddressIP-adress of the Scanner
portNumberport for SOPAS comunication
weWantScanData
weWantFieldData
readOnlyMode
disconnectFunctionFunction to be called on disconnect events.
obj= pointer to the object that holds the disconnectFunction
Returns

Definition at line 94 of file SopasBase.cpp.

◆ invokeMethod() [1/2]

bool devices::SopasBase::invokeMethod ( const std::string &  methodeName,
BYTE parameters,
UINT16  parametersLength,
SopasAnswer *&  answer 
)

Invoke a method on the sensor.

Parameters
methodeNamename of the method to call
parametersbyte buffer with parameter (NOTE: you have to fill this buffer with the correct protocol - cola-a or cola-b)
parametersLengthlength of the byte buffer
answerpointer to an answer message (NOTE: memory for this object will be allocated - free this after usage !!!)
Returns
true if no errors occurred.

Definition at line 1648 of file SopasBase.cpp.

◆ invokeMethod() [2/2]

bool devices::SopasBase::invokeMethod ( UINT16  index,
BYTE parameters,
UINT16  parametersLength,
SopasAnswer *&  answer 
)

Invoke a method on the sensor.

Parameters
indexindex of the method to call
parametersbyte buffer with parameter (NOTE: you have to fill this buffer with the correct protocol - cola-a or cola-b)
parametersLengthlength of the byte buffer
answerpointer to an answer message (NOTE: memory for this object will be allocated - free this after usage !!!)
Returns
true if no errors occurred.

Definition at line 1705 of file SopasBase.cpp.

◆ isConnected()

bool devices::SopasBase::isConnected ( )

Returns true if the tcp connection is established.

Definition at line 177 of file SopasBase.cpp.

◆ isReadOnly()

bool devices::SopasBase::isReadOnly ( )

Definition at line 207 of file SopasBase.cpp.

◆ makeAngleValid()

double devices::SopasBase::makeAngleValid ( double  angle)

Map angle to range ]PI..-PI]

Definition at line 2146 of file SopasBase.cpp.

◆ openTcpConnection()

bool devices::SopasBase::openTcpConnection ( )
private

Open TCP-connection to endpoint (usually IP-address and port)

true = Connected, false = no connection

Definition at line 219 of file SopasBase.cpp.

◆ processFrame()

void devices::SopasBase::processFrame ( SopasEventMessage frame)
private

Reads one frame from receive buffer and decodes it.

Reads one frame from receive buffer and decodes it. Switches directly to the decoder of the protocol.

Definition at line 1123 of file SopasBase.cpp.

◆ processFrame_CoLa_A()

void devices::SopasBase::processFrame_CoLa_A ( SopasEventMessage frame)
private

Definition at line 1145 of file SopasBase.cpp.

◆ processFrame_CoLa_B()

void devices::SopasBase::processFrame_CoLa_B ( SopasEventMessage frame)
private

Definition at line 1234 of file SopasBase.cpp.

◆ readCallbackFunction()

void devices::SopasBase::readCallbackFunction ( UINT8 buffer,
UINT32 numOfBytes 
)
private

Read callback. Diese Funktion wird aufgerufen, sobald Daten auf der Schnittstelle hereingekommen sind.

Definition at line 259 of file SopasBase.cpp.

◆ readCallbackFunctionS()

void devices::SopasBase::readCallbackFunctionS ( void *  obj,
UINT8 buffer,
UINT32 numOfBytes 
)
staticprivate

Function that will be called on incomming data via tcp.

Definition at line 249 of file SopasBase.cpp.

◆ readVariable() [1/2]

bool devices::SopasBase::readVariable ( const std::string &  variableName,
SopasAnswer *&  answer 
)

Reads a variable from the sensor by name.

Parameters
variableNamename of the variable
answerpointer to an answer message (NOTE: memory for this object will be allocated - free this after usage !!!)
Returns
true if no errors occurred.

Definition at line 1754 of file SopasBase.cpp.

◆ readVariable() [2/2]

bool devices::SopasBase::readVariable ( UINT16  index,
SopasAnswer *&  answer 
)

Reads a variable from the sensor by index.

Parameters
indexof the variable
answer
Returns
true if no errors occurred.

Definition at line 1796 of file SopasBase.cpp.

◆ receiveAnswer() [1/2]

bool devices::SopasBase::receiveAnswer ( SopasCommand  cmd,
std::string  name,
UINT32  timeout,
SopasAnswer *&  answer 
)
protected

Take answer from read thread and decode it. Waits for a certain answer by name. Event data (scans) are filtered and processed by read thread.

Parameters
cmdWaits for the answer to this command.
namename of the method/variable.
timeoutin [ms]
answerPointer to answer. Will be filled if answer contains parameter.
Returns
true if no error occurred.

Take answer from read thread and decode it. Waits for a certain answer by name. Event data (scans) are filtered and processed by read thread.

By Name: name = "<Name>" timeout: Number of cycles to check for an answer (approx. 1ms per cycle)

Definition at line 539 of file SopasBase.cpp.

◆ receiveAnswer() [2/2]

bool devices::SopasBase::receiveAnswer ( SopasCommand  cmd,
UINT16  index,
UINT32  timeout,
SopasAnswer *&  answer 
)
protected

Take answer from read thread and decode it. Waits for a certain answer by index. Event data (scans) are filtered and processed by read thread.

By Name: index = "<Index>" timeout: Number of cycles to check for an answer (approx. 1ms per cycle)

Definition at line 566 of file SopasBase.cpp.

◆ receiveAnswer_CoLa_A() [1/2]

bool devices::SopasBase::receiveAnswer_CoLa_A ( SopasCommand  cmd,
std::string  name,
UINT32  timeout,
SopasAnswer *&  answer 
)
protected

Definition at line 685 of file SopasBase.cpp.

◆ receiveAnswer_CoLa_A() [2/2]

bool devices::SopasBase::receiveAnswer_CoLa_A ( SopasCommand  cmd,
UINT16  index,
UINT32  timeout,
SopasAnswer *&  answer 
)
protected

Definition at line 587 of file SopasBase.cpp.

◆ receiveAnswer_CoLa_B() [1/2]

bool devices::SopasBase::receiveAnswer_CoLa_B ( SopasCommand  cmd,
std::string  name,
UINT32  timeout,
SopasAnswer *&  answer 
)
protected

Definition at line 781 of file SopasBase.cpp.

◆ receiveAnswer_CoLa_B() [2/2]

bool devices::SopasBase::receiveAnswer_CoLa_B ( SopasCommand  cmd,
UINT16  index,
UINT32  timeout,
SopasAnswer *&  answer 
)
protected

Definition at line 984 of file SopasBase.cpp.

◆ registerEvent() [1/2]

bool devices::SopasBase::registerEvent ( const std::string &  eventName)

Registers an event by name.

Parameters
eventNamename of the event
Returns
true if no errors occurred.

Definition at line 1961 of file SopasBase.cpp.

◆ registerEvent() [2/2]

bool devices::SopasBase::registerEvent ( UINT16  index)

Registers an event by index.

Parameters
indexof the event.
Returns
true if no errors occurred.

Definition at line 2005 of file SopasBase.cpp.

◆ removeFrameFromReceiveBuffer()

void devices::SopasBase::removeFrameFromReceiveBuffer ( UINT32  frameLength)
private

Definition at line 1341 of file SopasBase.cpp.

◆ scanDataDecoder()

virtual void devices::SopasBase::scanDataDecoder ( SopasEventMessage msg)
protectedpure virtual

◆ sendCommandBuffer()

void devices::SopasBase::sendCommandBuffer ( UINT8 buffer,
UINT16  len 
)
protected

Sends the content of the buffer via TCP to the sensor.

Parameters
bufferpointer to the buffer
lenlength of buffer to be sent.

Send contents of buffer to scanner using according framing.

Send buffer is limited to 1024 byte!

Definition at line 505 of file SopasBase.cpp.

◆ setEventCallbackFunction() [1/2]

void devices::SopasBase::setEventCallbackFunction ( DecoderFunction  decoderFunction,
const std::string &  eventName 
)
inline
Parameters
decoderFunction
eventName

Definition at line 250 of file SopasBase.hpp.

◆ setEventCallbackFunction() [2/2]

void devices::SopasBase::setEventCallbackFunction ( DecoderFunction  decoderFunction,
UINT16  eventIndex 
)
inline
Parameters
decoderFunction
eventIndex

Definition at line 260 of file SopasBase.hpp.

◆ setReadOnlyMode()

void devices::SopasBase::setReadOnlyMode ( bool  mode)

Definition at line 200 of file SopasBase.cpp.

◆ sopasCommandToString()

std::string devices::SopasBase::sopasCommandToString ( SopasCommand  cmd)
protected

Definition at line 1460 of file SopasBase.cpp.

◆ stringToSopasCommand()

SopasBase::SopasCommand devices::SopasBase::stringToSopasCommand ( const std::string &  cmdString)
protected

Converts strings in sopas answer buffer to SopasCommand enum.

Definition at line 1375 of file SopasBase.cpp.

◆ unregisterEvent() [1/2]

bool devices::SopasBase::unregisterEvent ( const std::string &  eventName)

Unregisters an event by name.

Parameters
eventNamename of the event
Returns
true if no errors occurred.

Definition at line 2102 of file SopasBase.cpp.

◆ unregisterEvent() [2/2]

bool devices::SopasBase::unregisterEvent ( UINT16  index)

Unregisters an event by index.

Parameters
indexof the event
Returns
true if no errors occurred.

Definition at line 2053 of file SopasBase.cpp.

◆ writeVariable() [1/2]

bool devices::SopasBase::writeVariable ( const std::string &  variableName,
BYTE parameters,
UINT16  parametersLength 
)

Write a variable to the sensor by name.

Parameters
variableNamename of the variable.
parametersbyte buffer with parameter (NOTE: you have to fill this buffer with the correct protocol - cola-a or cola-b)
parametersLengthlength of the byte buffer
Returns
true if no errors occurred.

Definition at line 1834 of file SopasBase.cpp.

◆ writeVariable() [2/2]

bool devices::SopasBase::writeVariable ( UINT16  index,
BYTE parameters,
UINT16  parametersLength 
)

Write a variable to the sensor by index.

Parameters
indexof the variable
parametersbyte buffer with parameter (NOTE: you have to fill this buffer with the correct protocol - cola-a or cola-b)
parametersLengthlength of the byte buffer
Returns
true if no errors occurred.

Definition at line 1905 of file SopasBase.cpp.

Member Data Documentation

◆ COMMAND_Event_Acknowledge

const std::string devices::SopasBase::COMMAND_Event_Acknowledge
static

Definition at line 63 of file SopasBase.hpp.

◆ COMMAND_Invoke_Method_Answer

const std::string devices::SopasBase::COMMAND_Invoke_Method_Answer
static

Definition at line 60 of file SopasBase.hpp.

◆ COMMAND_Invoke_Method_ByIndex

const std::string devices::SopasBase::COMMAND_Invoke_Method_ByIndex
static

Definition at line 53 of file SopasBase.hpp.

◆ COMMAND_Invoke_Method_ByName

const std::string devices::SopasBase::COMMAND_Invoke_Method_ByName
static

Definition at line 67 of file SopasBase.hpp.

◆ COMMAND_Method_Result_Answer

const std::string devices::SopasBase::COMMAND_Method_Result_Answer
static

Definition at line 61 of file SopasBase.hpp.

◆ COMMAND_Method_Result_ByIndex

const std::string devices::SopasBase::COMMAND_Method_Result_ByIndex
static

Definition at line 54 of file SopasBase.hpp.

◆ COMMAND_Method_Result_ByName

const std::string devices::SopasBase::COMMAND_Method_Result_ByName
static

Definition at line 68 of file SopasBase.hpp.

◆ COMMAND_Read_Variable_Answer

const std::string devices::SopasBase::COMMAND_Read_Variable_Answer
static

Definition at line 58 of file SopasBase.hpp.

◆ COMMAND_Read_Variable_ByIndex

const std::string devices::SopasBase::COMMAND_Read_Variable_ByIndex
static

Definition at line 51 of file SopasBase.hpp.

◆ COMMAND_Read_Variable_ByName

const std::string devices::SopasBase::COMMAND_Read_Variable_ByName
static

Definition at line 65 of file SopasBase.hpp.

◆ COMMAND_Register_Event_Answer

const std::string devices::SopasBase::COMMAND_Register_Event_Answer
static

Definition at line 62 of file SopasBase.hpp.

◆ COMMAND_Register_Event_ByIndex

const std::string devices::SopasBase::COMMAND_Register_Event_ByIndex
static

Definition at line 55 of file SopasBase.hpp.

◆ COMMAND_Register_Event_ByName

const std::string devices::SopasBase::COMMAND_Register_Event_ByName
static

Definition at line 69 of file SopasBase.hpp.

◆ COMMAND_Send_Event_ByIndex

const std::string devices::SopasBase::COMMAND_Send_Event_ByIndex
static

Definition at line 56 of file SopasBase.hpp.

◆ COMMAND_Send_Event_ByName

const std::string devices::SopasBase::COMMAND_Send_Event_ByName
static

Definition at line 70 of file SopasBase.hpp.

◆ COMMAND_Write_Variable_Answer

const std::string devices::SopasBase::COMMAND_Write_Variable_Answer
static

Definition at line 59 of file SopasBase.hpp.

◆ COMMAND_Write_Variable_ByIndex

const std::string devices::SopasBase::COMMAND_Write_Variable_ByIndex
static

Definition at line 52 of file SopasBase.hpp.

◆ COMMAND_Write_Variable_ByName

const std::string devices::SopasBase::COMMAND_Write_Variable_ByName
static

Definition at line 66 of file SopasBase.hpp.

◆ EVENTNAME_SUBSCRIBE_EVALCASES

const std::string devices::SopasBase::EVENTNAME_SUBSCRIBE_EVALCASES
static

Definition at line 38 of file SopasBase.hpp.

◆ EVENTNAME_SUBSCRIBE_SCANS

const std::string devices::SopasBase::EVENTNAME_SUBSCRIBE_SCANS
static

Definition at line 39 of file SopasBase.hpp.

◆ INDEX_DEVICE_IDENT

const UINT16 devices::SopasBase::INDEX_DEVICE_IDENT = 0
static

Definition at line 72 of file SopasBase.hpp.

◆ m_beVerbose

bool devices::SopasBase::m_beVerbose
protected

Definition at line 356 of file SopasBase.hpp.

◆ m_decoderFunctionMapByIndex

DecoderFunctionMapByIndex devices::SopasBase::m_decoderFunctionMapByIndex
private

Definition at line 389 of file SopasBase.hpp.

◆ m_decoderFunctionMapByName

DecoderFunctionMapByName devices::SopasBase::m_decoderFunctionMapByName
private

Definition at line 388 of file SopasBase.hpp.

◆ m_encoding

SopasEncoding devices::SopasBase::m_encoding
private

ByName or ByIndex.

Definition at line 381 of file SopasBase.hpp.

◆ m_fieldEventIsRegistered

bool devices::SopasBase::m_fieldEventIsRegistered
protected

Definition at line 347 of file SopasBase.hpp.

◆ m_indexToNameMap

IndexToNameMap devices::SopasBase::m_indexToNameMap
private

Definition at line 395 of file SopasBase.hpp.

◆ m_ipAddress

std::string devices::SopasBase::m_ipAddress
private

Definition at line 408 of file SopasBase.hpp.

◆ m_isLoggedIn

bool devices::SopasBase::m_isLoggedIn
protected

Definition at line 358 of file SopasBase.hpp.

◆ m_numberOfBytesInReceiveBuffer

UINT32 devices::SopasBase::m_numberOfBytesInReceiveBuffer
private

Number of bytes in buffer.

Definition at line 403 of file SopasBase.hpp.

◆ m_numberOfBytesInResponseBuffer

UINT32 devices::SopasBase::m_numberOfBytesInResponseBuffer
private

Number of bytes in buffer.

Definition at line 398 of file SopasBase.hpp.

◆ m_portNumber

UINT16 devices::SopasBase::m_portNumber
private

Definition at line 409 of file SopasBase.hpp.

◆ m_protocol

SopasProtocol devices::SopasBase::m_protocol
private

Used protocol (ColaA oder ColaB)

Definition at line 380 of file SopasBase.hpp.

◆ m_readOnlyMode

bool devices::SopasBase::m_readOnlyMode
private

Definition at line 411 of file SopasBase.hpp.

◆ m_receiveBuffer

UINT8 devices::SopasBase::m_receiveBuffer[25000]
private

Low-Level receive buffer for all data (25000 should be enough for NAV300 Events)

Definition at line 404 of file SopasBase.hpp.

◆ m_receiveDataMutex

Mutex devices::SopasBase::m_receiveDataMutex
private

Access mutex for buffer.

Definition at line 400 of file SopasBase.hpp.

◆ m_responseBuffer

UINT8 devices::SopasBase::m_responseBuffer[1024]
private

Receive buffer for everything except scan data and eval case data.

Definition at line 399 of file SopasBase.hpp.

◆ m_scanEventIsRegistered

bool devices::SopasBase::m_scanEventIsRegistered
protected

Definition at line 346 of file SopasBase.hpp.

◆ m_scannerName

std::string devices::SopasBase::m_scannerName
protected

Read from scanner.

Definition at line 353 of file SopasBase.hpp.

◆ m_scannerVersion

std::string devices::SopasBase::m_scannerVersion
protected

Read from scanner.

Definition at line 354 of file SopasBase.hpp.

◆ m_state

State devices::SopasBase::m_state
protected

Device info.

Definition at line 352 of file SopasBase.hpp.

◆ m_tcp

Tcp devices::SopasBase::m_tcp
private

Definition at line 407 of file SopasBase.hpp.

◆ m_weWantFieldData

bool devices::SopasBase::m_weWantFieldData
protected

Flag to enable/disable protection field data reception.

Definition at line 349 of file SopasBase.hpp.

◆ m_weWantScanData

bool devices::SopasBase::m_weWantScanData
protected

Flag to enable/disable scan data reception.

Definition at line 348 of file SopasBase.hpp.

◆ METHODNAME_LOGIN

const std::string devices::SopasBase::METHODNAME_LOGIN
static

Definition at line 40 of file SopasBase.hpp.

◆ METHODNAME_LOGOUT

const std::string devices::SopasBase::METHODNAME_LOGOUT
static

Definition at line 41 of file SopasBase.hpp.

◆ METHODNAME_SET_SCANCONFIG

const std::string devices::SopasBase::METHODNAME_SET_SCANCONFIG
static

Definition at line 42 of file SopasBase.hpp.

◆ METHODNAME_START_MEASURE

const std::string devices::SopasBase::METHODNAME_START_MEASURE
static

Definition at line 43 of file SopasBase.hpp.

◆ METHODNAME_STOP_MEASURE

const std::string devices::SopasBase::METHODNAME_STOP_MEASURE
static

Definition at line 44 of file SopasBase.hpp.

◆ VARIABLENAME_DATAOUTPUTRANGE

const std::string devices::SopasBase::VARIABLENAME_DATAOUTPUTRANGE
static

Definition at line 47 of file SopasBase.hpp.

◆ VARIABLENAME_DEVICEIDENT

const std::string devices::SopasBase::VARIABLENAME_DEVICEIDENT
static

Definition at line 45 of file SopasBase.hpp.

◆ VARIABLENAME_SCANCONFIG

const std::string devices::SopasBase::VARIABLENAME_SCANCONFIG
static

Definition at line 46 of file SopasBase.hpp.

◆ VARIABLENAME_SCANDATACONFIG

const std::string devices::SopasBase::VARIABLENAME_SCANDATACONFIG
static

Definition at line 48 of file SopasBase.hpp.


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


sick_scan
Author(s): Michael Lehning , Jochen Sprickerhof , Martin Günther
autogenerated on Thu Sep 8 2022 02:30:19