00001 /* Copyright (c) Xsens Technologies B.V., 2006-2012. All rights reserved. 00002 00003 This source code is provided under the MT SDK Software License Agreement 00004 and is intended for use only by Xsens Technologies BV and 00005 those that have explicit written permission to use it from 00006 Xsens Technologies BV. 00007 00008 THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 00009 KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 00010 IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 00011 PARTICULAR PURPOSE. 00012 */ 00013 00014 #ifndef MYXDA_H 00015 #define MYXDA_H 00016 00017 #include <xsens/xscallback.h> 00018 #include <map> 00019 00020 struct XsControl; 00021 struct XsDevice; 00022 00023 class MyXda : public XsCallback 00024 { 00025 public: 00026 MyXda(); 00027 virtual ~MyXda(); 00028 00029 void openPorts(); 00030 00031 int getUserUpdateRate(); 00032 void setUpdateRate(int updateRate); 00033 00034 enum DisplayMode 00035 { 00036 DM_None, 00037 DM_OrientationEuler, 00038 DM_OrientationQuaternion, 00039 DM_Sdi, 00040 DM_OrientationMatrix, 00041 }; 00042 00043 void setDisplayMode(DisplayMode displayMode); 00044 inline XsControl* xsControl() const { return m_xsControl; } 00045 00046 protected: 00047 virtual void onDataAvailable(XsDevice*, const XsDataPacket* packet); 00048 00049 private: 00050 void clearMeasurementScreen(); 00051 void printDisplayMode(); 00052 00053 XsControl* m_xsControl; 00054 int m_connectCount; 00055 std::map<uint32_t, int> m_connectedDevices; 00056 volatile bool m_stationReady; 00057 DisplayMode m_displayMode; 00058 DisplayMode m_previousDisplayMode; 00059 }; 00060 00061 #endif // MYXDA_H