GeoCOM Reference Manual
Fundamentals of Programming GeoCOM
Leica TPS1200 / TS30 / TM30 – Version 1.50
11
Note:
Bytes are always represented in two-character hexadecimal notation. Hexadecimal notation can use upper- or
lower-case representation: 0.9 + [a .. f | A .. F].
Characters sent within a string which do not fall within the ASCII character range 0x20 to 0x7E (32 to 126
decimal) are sent using an adapted byte notation - e.g. ”\x9A”, where \x (or \X) introduces a byte value in
hexadecimal notation. To include the back slash, double quote, per cent or tilde character (\ “ % ~) as part of the
string, it must be preceded by a backslash character, e.g. “This is a \”quote\””.
Types of integer (short, unsigned short, long, unsigned long) can also be represented in hexadecimal notation,
introduced by 0x or 0X.
The following rules are for generating/interpreting values with a type different from the base types and aggregated data
types:
Numerical and string data type
The numerical data types correspond to the C-parameters in value, range and precision as close as possible. If no
identical data type is available then the next best one will be taken. Character and string will be replaced by the
string
data type.
Enumerations
If the corresponding C-parameter is an enumeration data type, then the enumeration value of the ASCII
parameter is equal to the implicit value of the declaration of the C-data type. For clarification, we will give
always the name and the associated value in the description of an enumeration data type.
Structures
Structure data types will be converted into a comma-separated list of elements. One element’s representation
conforms to the data type representation of its base type. If an element itself is a structure then depth first
conversion will take place. If this rule does not apply then the types and their ASCII parameters are described
explicitly.
Arrays
An array will be converted into a comma-separated list of elements. One element’s representation conforms to
the data type representation of its base type.
Example for Enumeration Data Types and Structures
The following example gives a typical data type declaration and the corresponding procedure declaration used in
this manual for
TMC_GetSimpleMea
from the subsystem Theodolite Measurement and Calculation:
Constants and Types
typedef long SYSTIME;
struct TMC_HZ_V_ANG
{
double dHz;
double dV;
}
enum TMC_INCLINE_PRG
{
TMC_MEA_INC,
// encoded as 0
TMC_AUTO_INC,
// 1
TMC_PLANE_INC
// 2
}
C-Declaration
TMC_GetSimpleMea(SYSTIME WaitTime,
TMC_HZ_V_ANG &OnlyAngle,
double &dSlopeDistance,
TMC_INCLINE_PRG Mode)
ASCII-Request
%R1Q,2108:
WaitTime[long],Mode[long]
ASCII-Response
%R1P,0,0:
RC,Hz[double],V[double],dSlopeDistance[double]
Please, notice that the RPC has two input and two output parameters. Anytime a request must encode and send
input and in/out parameters only and a reply must encode and send in/out and output parameters only!