From cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c Mon Sep 17 00:00:00 2001 From: watcherhd Date: Thu, 21 Apr 2011 14:14:52 +0000 Subject: svn.miranda.im is moving to a new home! git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- gps+/gps_class.h | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 gps+/gps_class.h (limited to 'gps+/gps_class.h') diff --git a/gps+/gps_class.h b/gps+/gps_class.h new file mode 100644 index 0000000..ad03bdc --- /dev/null +++ b/gps+/gps_class.h @@ -0,0 +1,90 @@ +/* + GPS+: Service plugin for Miranda IM + Copyright 2007-2008 persei + + persei@miranda.im + http://persei.miranda.im + http://svn.miranda.im/mainrepo/gps+ + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef GPS_CLASS_H +#define GPS_CLASS_H + +typedef struct { + float Latitude, Longtitude; + + float Altitude; + + float Speed, SOG; + float Direction; + float MagneticDeclination; + + int Quality; + + float GeoDiff; + + int Time; +} NavInfo; + +typedef struct { + float HDOP, PDOP, VDOP; + int Mode; + int SatCount; +} GPSInfo; + +class GPSWorker +{ +public: + GPSWorker(); + ~GPSWorker(); + + int Connect(); + int ReConnect(); + void Disconnect(); + + //Thread-safe + void GetNavInfo(NavInfo* retNavInfo); + void GetGPSInfo(GPSInfo* retGPSInfo); + + void SetPort(int nPortN); + int GetPort(); + void GetPortStr(char* PortStr); + + int IsConnected(); + + void SetCheckSum(int newCheck); + void SetAutoDisconnect(int newDisconnOn); +private: + HANDLE hPort; + HANDLE hPortReader; + + int iPortN; + char Port[10]; + + int DisconnectOn, CheckSum, WrongMessage; + + NavInfo* navInfo; + GPSInfo* gpsInfo; + + CRITICAL_SECTION csInfoAccess; + + void ParseInfo(char* infoStr); + + static DWORD __stdcall PortReader(GPSWorker* th); +}; + +#endif \ No newline at end of file -- cgit v1.2.3