EvalCaseResult.hpp
Go to the documentation of this file.
00001 //
00002 // EvalCaseResult.hpp
00003 //
00004 // A single EvalCaseResult.
00005 //
00006 
00007 
00008 #ifndef EVALCASERESULT_HPP
00009 #define EVALCASERESULT_HPP
00010 
00011 #include <ostream>
00012 #include <string>
00013 #include <vector>
00014 #include "../BasicDatatypes.hpp"
00015 
00016 namespace datatypes
00017 {
00018         
00019 //
00020 // The EvalCaseResult class is a container for the current status of the configured EvalCases.
00021 // Some scanners (such as the LDMRS) send such a structure with every scan, others (like the LMSxxx)
00022 // send them only upon a change in any parameter value, e.g. if a field infringement happens.
00023 //
00024 // Typically, the reception of this structure is requested as a event.
00025 //
00026 class EvalCaseResult : public BasicData
00027 {
00028 public:
00029         UINT16 uiVersionNo;            // Version number of this structure (EvalCaseResult_t)
00030 
00031         struct                         // Header
00032         {
00033                 UINT8  usiNumber;          // Evaluation case number
00034                 UINT32 udiSysCount;        // Current system time since power on
00035                 double dDistScaleFactor;   // Scale factor of radial distance
00036                 double dDistScaleOffset;   // Scale offset of radial distance
00037                 UINT32 uiAngleScaleFactor; // Angle resolution
00038                 INT32  iAngleScaleOffset;  // Start angle of measurement area
00039         } CaseHdr;
00040 
00041         typedef enum
00042         {
00043                 ECR_DONT_CARE = 0,
00044                 ECR_LOW       = 1,
00045                 ECR_HIGH      = 2,
00046                 ECR_DETECTING = 3,
00047                 ECR_FALLING   = 4,
00048                 ECR_RAISING   = 5,
00049                 ECR_INVALID   = 6
00050         } CaseResult;
00051 
00052         UINT8 m_eCaseResult;        // case result
00053 
00054         // aFieldInfringement is currently not in use. maybe it'll be added later.
00055 
00056         std::string m_sCaseName;         // Name of evaluation case (optional)
00057         std::string m_sComment;          // Comment (optional)
00058 
00059         struct                         // Timestamp
00060         {
00061                 UINT16  uiYear;
00062                 UINT8   usiMonth;
00063                 UINT8   usiDay;
00064                 UINT8   usiHour;
00065                 UINT8   usiMinute;
00066                 UINT8   usiSec;
00067                 UINT32  udiUSec;
00068         } aTimeBlock;
00069 
00070 //protected:
00071 
00072 
00073 
00074 public:
00075         EvalCaseResult();
00076         ~EvalCaseResult();
00077 
00078         std::string toString() const;
00079         const UINT32 getUsedMemory() const;
00080 };
00081 
00082 
00083 std::ostream&  operator<< (std::ostream& os, const EvalCaseResult& result);
00084 
00085 
00086 } // END namespace datatypes
00087 
00088 
00089 #endif // EVALCASERESULT_HPP


libsick_ldmrs
Author(s): SICK AG , Martin Günther , Jochen Sprickerhof
autogenerated on Wed Jun 14 2017 04:04:50