阅读:1548回复:2
NMEA 0183 技术信息
<P ><FONT size=2>NMEA 0183是一种航海、海运方面有关于数字信号传递的标准,此标准定义了电子信号所需要的传输协议,传输数据时间、并且指明了信息格式需要一个4800bps的串行数据接口。<p></p></FONT></P>
<P ><FONT size=2>NMEA 0183的设备使用了一个如下图的串行接口的参数选择:<p></p></FONT></P> <P ><FONT size=2> <p></p></FONT></P> <DIV align=center> <TABLE cellSpacing=0 cellPadding=0 border=1> <TR> <TD width=73> <P ><FONT size=2>Baud Rate<p></p></FONT></P></TD> <TD width=91> <P ><FONT size=2>4800<p></p></FONT></P></TD></TR> <TR> <TD width=73> <P ><FONT size=2>Data Bits<p></p></FONT></P></TD> <TD width=91> <P ><FONT size=2>8(d7=0)<p></p></FONT></P></TD></TR> <TR> <TD width=73> <P ><FONT size=2>Parity<p></p></FONT></P></TD> <TD width=91> <P ><FONT size=2>None<p></p></FONT></P></TD></TR> <TR> <TD width=73> <P ><FONT size=2>Stop Bits<p></p></FONT></P></TD> <TD width=91> <P ><FONT size=2>One(or more)<p></p></FONT></P></TD></TR></TABLE></DIV> <P ><FONT size=2> <p></p></FONT></P> <P ><FONT size=2>设备需要有信息源和接收端,传送端发送数据到另一个<FONT face=宋体>NMEA 0183的设备,信息源和接收端分别用来传送和接受8位ASCII码的数据。<p></p></FONT></FONT></P> <P ><FONT face=宋体><FONT size=2> <p></p></FONT></FONT></P> <P ><B><FONT size=2>信息格式:<p></p></FONT></B></P> <P ><FONT size=2>NMEA 0183的信息格式一般如下所示,<p></p></FONT></P> <P ><I><FONT face="Times New Roman"><FONT size=2>$aaaaa,df1,df2,....[CR][LF]<p></p></FONT></FONT></I></P> <P ><FONT size=2>所有的信息由<FONT face=宋体>$开始,以换行结束,紧跟着$后的五个字符解释了信息的基本类型,多重的信息之间用逗号隔开。<p></p></FONT></FONT></P> <P ><FONT size=2>下面是三种基本的类型:<p></p></FONT></P> <P ><FONT size=2>Ø 信息源</FONT></P> <P ><FONT size=2>Ø 查询<p></p></FONT></P> <P ><FONT size=2>Ø 属性<p></p></FONT></P> <P ><B><FONT size=2> <p></p></FONT></B></P> <P ><FONT size=2><B>信息源:</B><p></p></FONT></P> <P ><FONT size=2>它的标准格式为<p></p></FONT></P> <P ><I><FONT face="Times New Roman"><FONT size=2>$ttsss,df1,df2,....[CR][LF]<p></p></FONT></FONT></I></P> <P ><FONT size=2>在紧随<FONT face=宋体>$后的两个字符用来识别做为信息内容识别码的后3个字符,信息识别码定义了保留的数据区,在NMEA 0183标准下,每个类型的数据区的信息内容是符合标准的。<p></p></FONT></FONT></P> <P ><FONT size=2>例:<p></p></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <I>$HCHDM,238,M[CR][LF]</I><p></p></FONT></FONT></P> <P ><FONT size=2> <p></p></FONT></P> <P ><FONT size=2>标明“<FONT face=宋体>HC”说明信息源作为一个磁性的罗盘,“HDM” 指明以下是磁性的船首向航向,238是船首向航向的值,M指明船首向航向的值是磁性的。<p></p></FONT></FONT></P> <P ><FONT size=2> <p></p></FONT></P> <P ><B><FONT size=2>查询内容<p></p></FONT></B></P> <P ><FONT size=2>查询意味着接受端需要从信息源那里得到一个有规律的内容,例如,我们可以发一个信息给<FONT face="Times New Roman">GPS</FONT>接受器请求传送一个“<FONT face="Times New Roman">DISTANCE-TO-WAYPOINT</FONT>”的信息,得到响应后,<FONT face="Times New Roman">GPS</FONT>接受器会发送请求的内容,直到接到别的请求。<p></p></FONT></P> <P ><FONT size=2> <p></p></FONT></P> <P ><FONT size=2>一般格式为:<p></p></FONT></P> <P ><I><FONT face="Times New Roman"><FONT size=2>$ttllQ,sss,[CR][LF]<p></p></FONT></FONT></I></P> <P ><FONT size=2> <p></p></FONT></P> <P ><FONT size=2>头两个字符做为请求者的信息源的识别码,后两个字符作为被查询的设备的信息识别,最后一个字符说明这是一个查询信息。紧跟着的字段(<FONT face=宋体>sss)包含了三个字的被查询内容的记忆信息,如下<p></p></FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <I>$CCGPQ,GGA[CR][LF]</I><p></p></FONT></FONT></P> <P ><FONT size=2>说明“<FONT face=宋体>CC”这个设备(计算机)正从 “GP”这个设备(GPS)查询GGA的内容。GPS将每隔一秒传送这个内容,直到有别的查询请求。<p></p></FONT></FONT></P> <P ><B><FONT size=2> <p></p></FONT></B></P> <P ><FONT size=2><B>属性</B><p></p></FONT></P> <P ><FONT face=宋体><FONT size=2> 这对厂商来说是一种使用没有在标准下预定义的特殊内容的方法。<p></p></FONT></FONT></P> <P ><FONT size=2>它通常的格式为<p></p></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <I>$PmmmA,df1,df2,...,[CR][LF]<p></p></I></FONT></FONT></P> <P ><FONT size=2><I><FONT face="Times New Roman">P</FONT></I><I>说明是属性内容,<FONT face="Times New Roman">mmm</FONT></I><I>定义为厂商信息代码,<FONT face="Times New Roman">A(A-Z)</FONT></I><I>标明信息类型。</I><p></p></FONT></P> <P ><FONT size=2> <p></p></FONT></P> <P ><FONT size=2> <p></p></FONT></P> <P ><FONT size=2> <p></p></FONT></P> <P ><FONT size=2>以下是一个具体的例子:<p></p></FONT></P> <P ><FONT size=2>和卫星的通讯,接收到的数据格式将是下面这样的:<p></p></FONT></P> <P ><FONT size=2> <FONT face=宋体 color=#800000>$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E </FONT><p></p></FONT></P> <P ><FONT size=2> 通过这个例子来仔细分析一下其中的各部分的含义。不过请注意,我们只讨论前<FONT face=宋体>7个数据。表格指出了这些数据的细节说明。<p></p></FONT></FONT></P> <P ><FONT size=2>表格<FONT face=宋体>9.1:GPS手持机的NMEA数据结构<p></p></FONT></FONT></P> <DIV align=center> <TABLE cellPadding=0 width="80%" border=0> <TR> <TD width="33%"> <P ><FONT size=2>数据<p></p></FONT></P></TD> <TD width="33%"> <P ><FONT size=2>NMEA 0183协议<p></p></FONT></P></TD> <TD width="34%"> <P ><FONT size=2>说明<p></p></FONT></P></TD></TR> <TR> <TD width="33%"> <P ><FONT size=2>$GPRMC<p></p></FONT></P></TD> <TD width="33%"> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P></TD> <TD width="34%"> <P ><FONT size=2>GPS推荐的最短数据<p></p></FONT></P></TD></TR> <TR> <TD width="33%"> <P ><FONT size=2>204700<p></p></FONT></P></TD> <TD width="33%"> <P ><FONT size=2>UTC_TIME<p></p></FONT></P></TD> <TD width="34%"> <P ><FONT size=2>24小时制的标准时间,按照小时/分钟/秒的格式<p></p></FONT></P></TD></TR> <TR> <TD width="33%"> <P ><FONT size=2>A<p></p></FONT></P></TD> <TD width="33%"> <P ><FONT size=2>A 或者 V<p></p></FONT></P></TD> <TD width="34%"> <P ><FONT size=2>A表示数据“OK”,V表示一个警告<p></p></FONT></P></TD></TR> <TR> <TD width="33%"> <P ><FONT size=2>3403.868<p></p></FONT></P></TD> <TD width="33%"> <P ><FONT size=2>LAT<p></p></FONT></P></TD> <TD width="34%"> <P ><FONT size=2>纬度值,精确到小数点前<FONT face=宋体>4位,后3位<p></p></FONT></FONT></P></TD></TR> <TR> <TD width="33%"> <P ><FONT size=2>N<p></p></FONT></P></TD> <TD width="33%"> <P ><FONT size=2>LAT_DIR<p></p></FONT></P></TD> <TD width="34%"> <P ><FONT size=2>N表示北纬,S表示南纬<p></p></FONT></P></TD></TR> <TR> <TD width="33%"> <P ><FONT size=2>11709.432<p></p></FONT></P></TD> <TD width="33%"> <P ><FONT size=2>LON<p></p></FONT></P></TD> <TD width="34%"> <P ><FONT size=2>经度值,精确到小数点前<FONT face=宋体>5位,后3位<p></p></FONT></FONT></P></TD></TR> <TR> <TD width="33%"> <P ><FONT size=2>W<p></p></FONT></P></TD> <TD width="33%"> <P ><FONT size=2>LON_DIR<p></p></FONT></P></TD> <TD width="34%"> <P ><FONT size=2>W表示西经,E表示东经<p></p></FONT></P></TD></TR></TABLE></DIV> <P ><FONT size=2> 如果当前没有和卫星取得联系,那么字符串的格式为:<p></p></FONT></P> <P ><FONT size=2>$GPRMC,UTC_TIME,V,...<p></p></FONT></P> <P ><FONT size=2> <p></p></FONT></P> <H1 ><FONT face=宋体 size=2>GPS THING</FONT></H1> <P ><FONT size=2>有关<FONT face="Times New Roman">NMEA</FONT>数据的类为</FONT></P> <P ><FONT face="Times New Roman" size=2>struct CNmeaData</FONT></P> <P ><FONT face="Times New Roman" size=2>{</FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> CNmeaData ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ResetData ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // Data retrieved from the NMEA sentences.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> double lat; // Latitude, in degrees (positive=N, negative=S)</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> double lon; // Longitude, in degrees (positive=E, negative=W)</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> double altitude; // Altitude, in feet</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> double speed; // Speed, in knots</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> double track; // Current track, in degrees.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> double magVariation; // Magnetic variation, in degrees.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> double hdop; // Horizontal dilution of precision.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int numSats; // Number of satellites in the sky.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int UTCYear; // GPS Date (UTC), year part</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int UTCMonth; // GPS Date (UTC), month part </FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int UTCDay; // GPS Date (UTC), day part</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int UTCHour; // GPS Time (UTC), hour part.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int UTCMinute; // GPS Time (UTC), minute part </FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int UTCSecond; // GPS Time (UTC), second part</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> CSatData satData[MAX_SATS];</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // Quality of last fix:</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // 0 = invalid, 1 = GPS fix, 2 = DGPS fix.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> GPS_FIX_QUALITY lastFixQuality;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // Validity of data parsed.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidLat; // Latitude</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidLon; // Longitude</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidAltitude; // Altitude</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidSpeed; // Speed</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidDate; // Date</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidTime; // Time</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidTrack; // Track</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidMagVariation; // Magnetic variation</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidHdop; // Horizontal dilution of precision</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool isValidSatData; // Satellite data</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // Has a valid coordinate ever been sent over the serial port?</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool hasCoordEverBeenValid;</FONT></FONT></P> <P ><FONT face="Times New Roman" size=2>};</FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman" size=2>class CNmeaParser</FONT></P> <P ><FONT face="Times New Roman" size=2>{</FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> public:</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> CNmeaParser ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> SENTENCE_STATUS ParseSentence (const char* sentence);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void GetData (CNmeaData; data) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ResetData () {m_data.ResetData ();}</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> private:</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool ParseDegrees (double; degrees, const char* degString) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool ParseDate (int; year, int; month, int; day,</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> const char* dateString) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool ParseTime (int; hour, int; minute, int; second,</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> const char* timeString) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateAltitude (const char* field, const char unit);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateDate (const char* field);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateFixQuality (const char* field);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateLat (const char* field, const char hem);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateLon (const char* field, const char hem);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateHdop (const char* field);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateSpeed (const char* field);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateMagVariation(const char* field,</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> const char direction);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateTime (const char* field);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseAndValidateTrack (const char* field);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseGGA (const char* sentence);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseGLL (const char* sentence);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseRMC (const char* sentence);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void ParseGSV (const char* sentence);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool GetNextField (char* data, const char* sentence,</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> uint; currentPosition) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool IsValidSentenceType (const char* sentence) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> bool IsCorrectChecksum (const char* sentence) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> CNmeaData m_data;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // Needed for parsing the GSV sentence.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int m_lastSentenceNumber;// Which sentence number was the last one?</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int m_numSentences; // Number of sentences to process.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int m_numSatsExpected; // Number of satellites expected to parse.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int m_numSatsLeft; // Number of satellites left to parse.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> int m_satArrayPos; // Array position of the next sat entry. </FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> CSatData m_tempSatData[MAX_SATS];</FONT></FONT></P> <P ><FONT face="Times New Roman" size=2>};</FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman" size=2>class CNmeaSerial</FONT></P> <P ><FONT face="Times New Roman" size=2>{</FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> public:</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> CNmeaSerial ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> CNmeaSerial (HWND hMsgWnd, DWORD timeout);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> ~CNmeaSerial ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> SERIAL_RESULT_TYPE CloseConnection ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> SERIAL_RESULT_TYPE OpenConnection ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> SERIAL_RESULT_TYPE OpenConnection (uint8 comPort, uint32 baudRate,</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> uint8 dataBits, SETPARITY parity, STOPBITS stopBits);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> SERIAL_RESULT_TYPE GetData (CNmeaData; data) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> SERIAL_RESULT_TYPE GetSettings (uint8; comPort, uint32; baudRate,</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> uint8; dataBits, SETPARITY; parity, STOPBITS; stopBits) const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> unsigned long GetThreadHandle () const {return m_hThread;}</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> BOOL IsConnected () const {return m_isConnected;}</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> <p></p></FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> private:</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> SERIAL_RESULT_TYPE InitThread ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> BOOL KillThread ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> BOOL LockData () const;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> void SetDefaults ();</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> BOOL UnlockData () const;</FONT></FONT></P> <P ><FONT face="Times New Roman" size=2> </FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // The member function that parses the sentences; this function runs</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // in another thread.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> static void ProcessSentences (void* currentObject);</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> uint8 m_comPort;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> uint32 m_baudRate;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> uint8 m_dataBits;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> SETPARITY m_parity;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> STOPBITS m_stopBits;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> BOOL m_isConnected;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> DWORD m_timeout;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> unsigned long m_hThread;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> HANDLE m_hPort;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> HANDLE m_hMutex;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> DWORD m_threadId;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> CNmeaParser m_parser;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // Window that will receive the parsing messages.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> HWND m_hMsgWnd;</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // If this value is set to TRUE, the thread that parses the sentences</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> // will terminate itself.</FONT></FONT></P> <P ><FONT face="Times New Roman"><FONT size=2> BOOL m_terminateThread;</FONT></FONT></P> <P ><FONT face="Times New Roman" size=2>};</FONT></P> <P><FONT size=2></FONT> </P> |
|
|
1楼#
发布于:2005-03-25 16:22
http://www.gpsinformation.org/dale/nmea.htm<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
|
|
2楼#
发布于:2005-03-26 12:38
<img src="images/post/smile/dvbbs/em01.gif" />
|
|
|