Rev Author Line No. Line
1269 kakl 1 /*! \file tsip.h \brief TSIP (Trimble Standard Interface Protocol) function library. */
2 //*****************************************************************************
3 //
4 // File Name : 'tsip.h'
5 // Title : TSIP (Trimble Standard Interface Protocol) function library
6 // Author : Pascal Stang - Copyright (C) 2002
7 // Created : 2002.08.27
8 // Revised : 2002.08.27
9 // Version : 0.1
10 // Target MCU : Atmel AVR Series
11 // Editor Tabs : 4
12 //
13 // NOTE: This code is currently below version 1.0, and therefore is considered
14 // to be lacking in some functionality or documentation, or may not be fully
15 // tested. Nonetheless, you can expect most functions to work.
16 //
17 /// \ingroup driver_hw
18 /// \defgroup tsip TSIP Packet Interface for Trimble GPS Receivers (tsip.c)
19 /// \code #include "tsip.h" \endcode
20 /// \par Overview
21 /// This library parses and decodes the TSIP data stream from a Trimble GPS
22 /// and stores the position, velocity, and time solutions in the gps.c library.
23 /// The library also includes functions to transmit TSIP packets to the GPS for
24 /// configuration and data request.
25 //
26 // This code is distributed under the GNU Public License
27 // which can be found at http://www.gnu.org/licenses/gpl.txt
28 //
29 //*****************************************************************************
30  
31 #ifndef TSIP_H
32 #define TSIP_H
33  
34 #include "global.h"
35  
36 // constants/macros/typdefs
37 // packet delimiters
38 #define DLE 0x10
39 #define ETX 0x03
40 // packet types
41 // command packets
42 #define TSIPTYPE_SET_IO_OPTIONS 0x35
43 // byte 0
44 #define POS_XYZ_ECEF 0 // outputs 0x42 and 0x83 packets
45 #define POS_LLA 1 // outputs 0x4A and 0x84 packets
46 #define POS_ALT 2 // outputs 0x4A/0x84 and 0x8F-17/0x8F-18
47 #define ALT_REF_MSL 3 // bit cleared = HAE Reference datum
48 #define POS_DBL_PRECISION 4 // bit cleared = single precision
49 #define SUPER_PACKETS 5 // 0x8F-17,0x8F-18,0x8F-20
50 // byte 1
51 #define VEL_ECEF 0 // outputs 0x43
52 #define VEL_ENU 1 // outputs 0x56
53 // byte 2
54 #define TIME_UTC 0 // 0/1 time format GPS/UTC
55 // byte 3
56 #define RAWDATA 0 // outputs 0x5A packets
57 #define RAWDATA_FILTER 1 // 0/1 raw data unfiltered/filtered
58 #define SIGNAL_DBHZ 3 // 0/1 signal strength in AMU/dBHz
59  
60 // report packets
61 #define TSIPTYPE_GPSTIME 0x41
62 #define TSIPTYPE_POSFIX_XYZ_SP 0x42
63 #define TSIPTYPE_VELFIX_XYZ 0x43
64 #define TSIPTYPE_SATSIGLEVEL 0x47
65 #define TSIPTYPE_GPSSYSMESSAGE 0x48
66 #define TSIPTYPE_POSFIX_LLA_SP 0x4A
67 #define TSIPTYPE_VELFIX_ENU 0x56
68 #define TSIPTYPE_SATTRACKSTAT 0x5C
69 #define TSIPTYPE_RAWDATA 0x5A
70 #define TSIPTYPE_GPSSUBCODE 0x6F
71 #define TSIPTYPE_POSFIX_XYZ_DP 0x83
72 #define TSIPTYPE_POSFIX_LLA_DP 0x84
73  
74  
75 // functions
76 void tsipInit(void (*txbytefunc)(unsigned char c));
77 void tsipSendPacket(u08 tsipType, u08 dataLength, u08* data);
78 u08 tsipProcess(cBuffer* rxBuffer);
79 void tsipGpsDataPrint(void);
80  
81 // packet processing functions
82 void tsipProcessGPSTIME(u08* packet);
83 void tsipProcessPOSFIX_XYZ_SP(u08* packet);
84 void tsipProcessVELFIX_XYZ(u08* packet);
85 void tsipProcessPOSFIX_LLA_SP(u08* packet);
86 void tsipProcessVELFIX_ENU(u08* packet);
87  
88 #endif