Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
507 kaklik 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