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