Public Member Functions | Private Member Functions | Private Attributes | List of all members
ElmoRecorder Class Reference

#include <ElmoRecorder.h>

Public Member Functions

int configureElmoRecorder (int iRecordingGap, int driveID, int startImmediately=1)
 ElmoRecorder (CanDriveHarmonica *pParentHarmonicaDrive)
bool isInitialized (bool initNow)
int processData (segData &SDOData)
int readoutRecorderTry (int iObjSubIndex)
int readoutRecorderTryStatus (int iStatusReg, segData &SDOData)
int setLogFilename (std::string sLogFileprefix)
 ~ElmoRecorder ()

Private Member Functions

float convertBinaryToFloat (unsigned int binaryRepresentation)
float convertBinaryToHalfFloat (unsigned int iBinaryRepresentation)
int logToFile (std::string filename, std::vector< float > vtValues[])
int readoutRecorder (int iObjSubIndex)

Private Attributes

bool m_bIsInitialized
float m_fRecordingStepSec
int m_iCurrentObject
int m_iDriveID
int m_iReadoutRecorderTry
std::string m_sLogFilename

Detailed Description

The in Elmo drives integrated Recorder allows the user to record drive information at a high frequency.

The Recorder firstly has to be configured properly. It can be started immidiately after configuring or later, triggered by a signal (e.g. a begin-motion-command). When the recording is finished, you can read out the data via CANopen using a segmented SDO transfer. Appropriate functions for this CANopen specific process are provided by the CanDriveHarmonica class. This class brings all the functions to use the Elmo Recorder in a comfortable way.

Definition at line 33 of file ElmoRecorder.h.

Constructor & Destructor Documentation

ElmoRecorder::ElmoRecorder ( CanDriveHarmonica pParentHarmonicaDrive)
pParentHarmonicaDriveThis pointer is used to give ElmoRecorder the ability to take use of CANopen functions of CanDriveHarmonica

Definition at line 25 of file ElmoRecorder.cpp.

ElmoRecorder::~ElmoRecorder ( )

Definition at line 32 of file ElmoRecorder.cpp.

Member Function Documentation

int ElmoRecorder::configureElmoRecorder ( int  iRecordingGap,
int  driveID,
int  startImmediately = 1 

Configures the Elmo Recorder to log internal data at a high frequency (This can be used for identification of the drive chain) You can read the data out after recording process has finished, using readoutRecorderTry().

iRecordingGapiRecordingGap = N indicates that a new sample should be taken once per N time quanta (= 4 * 90 usec)
driveIDEnter the drive ID of the current motor, to later identify the logfiles
startImmediately1: start the recording process immediately, 0: start recording at next BG (begin motion) command
See also

Definition at line 40 of file ElmoRecorder.cpp.

float ElmoRecorder::convertBinaryToFloat ( unsigned int  binaryRepresentation)

Convert the 32bit binary representation of a float to an actual 32bit float value

Definition at line 215 of file ElmoRecorder.cpp.

float ElmoRecorder::convertBinaryToHalfFloat ( unsigned int  iBinaryRepresentation)

Convert the 16bit binary representation of a float to an actual 16bit (half)float value

Definition at line 242 of file ElmoRecorder.cpp.

bool ElmoRecorder::isInitialized ( bool  initNow)
initNowEnter true to set the initialization state to true, enter false to only request the state.
Return the initialization state of the recorder.

Definition at line 35 of file ElmoRecorder.cpp.

int ElmoRecorder::logToFile ( std::string  filename,
std::vector< float >  vtValues[] 

After processing the collected Recorder data log it to a file.

vtValues[]A 2 x N vector with a time stamp in the first column and the according data point value in teh second
filenamePath and file-prefix to an existing directory! It is extended with _MotorNumber_RecordedSource.log

Definition at line 270 of file ElmoRecorder.cpp.

int ElmoRecorder::processData ( segData SDOData)

Processes the collected Elmo Recorder data and saves them into a logfile.

Definition at line 119 of file ElmoRecorder.cpp.

int ElmoRecorder::readoutRecorder ( int  iObjSubIndex)
iObjSubIndexRequests the SDO Upload of the recorder object 0x2030 of the selected iObjSubIndex-source

Definition at line 109 of file ElmoRecorder.cpp.

int ElmoRecorder::readoutRecorderTry ( int  iObjSubIndex)

Start point of the actual read-out process. The following flow looks as follows: Request SR -> readoutRecorderTryStatus() If recorder ready -> readoutRecorder() start SDO read-out -> when finished -> processData() process data -> logToFile() save to file. This function takes use of the SR (status register) that tells the recorder state. In this function, the SR is requested.

Definition at line 71 of file ElmoRecorder.cpp.

int ElmoRecorder::readoutRecorderTryStatus ( int  iStatusReg,
segData SDOData 

This function is called, when a new SR message is received. If the Recorder is finished and ready to upload data, readoutRecorder() is called to actually start the read-out process.

iStatusRegStatus register received from the binary interpreter response.

Definition at line 83 of file ElmoRecorder.cpp.

int ElmoRecorder::setLogFilename ( std::string  sLogFileprefix)
sLogFileprefixPath (to an existing directory!) and file-prefix for the created logfile. It is extended with _MotorNumber_RecordedSource.log

Definition at line 208 of file ElmoRecorder.cpp.

Member Data Documentation

bool ElmoRecorder::m_bIsInitialized

Elmo Recorder is intialized from the time of the first configuration on.

Definition at line 106 of file ElmoRecorder.h.

float ElmoRecorder::m_fRecordingStepSec

Definition at line 87 of file ElmoRecorder.h.

int ElmoRecorder::m_iCurrentObject

Stores the targeted object from the time of requesting the read-out to the actual begin after "Recorder has finished" confirmation by SR

Definition at line 85 of file ElmoRecorder.h.

int ElmoRecorder::m_iDriveID

Hold the drive ID to later identify the logfiles (in the same directory)

Definition at line 101 of file ElmoRecorder.h.

int ElmoRecorder::m_iReadoutRecorderTry

A flag that tells, whether we are waiting for read-out until the confirmation by SR, that the recorder is ready for read-out

Definition at line 94 of file ElmoRecorder.h.

CanDriveHarmonica* ElmoRecorder::m_pHarmonicaDrive

Definition at line 96 of file ElmoRecorder.h.

std::string ElmoRecorder::m_sLogFilename

Definition at line 89 of file ElmoRecorder.h.

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

Author(s): Christian Connette
autogenerated on Wed Apr 7 2021 02:11:53