00001
00002
00003 #include <stdio.h>
00004 #include <string.h>
00005 #include "GARSCoordinates.h"
00006
00007
00008 using namespace MSP::CCS;
00009
00010
00011 GARSCoordinates::GARSCoordinates() :
00012 CoordinateTuple( CoordinateType::globalAreaReferenceSystem ),
00013 _precision( Precision::tenthOfSecond )
00014 {
00015 strncpy( _GARSString, "361HN37", 7 );
00016 }
00017
00018
00019 GARSCoordinates::GARSCoordinates( CoordinateType::Enum _coordinateType ) :
00020 CoordinateTuple( _coordinateType ),
00021 _precision( Precision::tenthOfSecond )
00022 {
00023 strncpy( _GARSString, "361HN37", 7 );
00024 }
00025
00026
00027 GARSCoordinates::GARSCoordinates( CoordinateType::Enum _coordinateType, const char* __GARSString ) :
00028 CoordinateTuple( _coordinateType ),
00029 _precision( Precision::tenthOfSecond )
00030 {
00031 strncpy( _GARSString, __GARSString, 7 );
00032 _GARSString[7] = '\0';
00033 }
00034
00035
00036 GARSCoordinates::GARSCoordinates( CoordinateType::Enum _coordinateType, const char* __GARSString, Precision::Enum __precision ) :
00037 CoordinateTuple( _coordinateType ),
00038 _precision( __precision )
00039 {
00040 strncpy( _GARSString, __GARSString, 7 );
00041 _GARSString[7] = '\0';
00042 }
00043
00044
00045 GARSCoordinates::GARSCoordinates( CoordinateType::Enum _coordinateType, const char* __warningMessage, const char* __GARSString, Precision::Enum __precision ) :
00046 CoordinateTuple( _coordinateType ),
00047 _precision( __precision )
00048 {
00049 strncpy( _GARSString, __GARSString, 7 );
00050 _GARSString[7] = '\0';
00051
00052 int length = strlen( __warningMessage );
00053 strncpy( _warningMessage, __warningMessage, length );
00054 _warningMessage[ length ] = '\0';
00055 }
00056
00057
00058 GARSCoordinates::GARSCoordinates( const GARSCoordinates &c )
00059 {
00060 _coordinateType = c._coordinateType;
00061
00062 strncpy( _GARSString, c._GARSString, 7 );
00063 _GARSString[7] = '\0';
00064
00065 _precision = c._precision;
00066
00067 int length = strlen( c._warningMessage );
00068 strncpy( _warningMessage, c._warningMessage, length );
00069 _warningMessage[ length ] = '\0';
00070 }
00071
00072
00073 GARSCoordinates::~GARSCoordinates()
00074 {
00075 }
00076
00077
00078 GARSCoordinates& GARSCoordinates::operator=( const GARSCoordinates &c )
00079 {
00080 if( this != &c )
00081 {
00082 _coordinateType = c._coordinateType;
00083
00084 strncpy( _GARSString, c._GARSString, 7 );
00085 _GARSString[7] = '\0';
00086
00087 _precision = c._precision;
00088
00089 int length = strlen( c._warningMessage );
00090 strncpy( _warningMessage, c._warningMessage, length );
00091 _warningMessage[ length ] = '\0';
00092 }
00093
00094 return *this;
00095 }
00096
00097
00098 void GARSCoordinates::set( char __GARSString[8] )
00099 {
00100 strncpy( _GARSString, __GARSString, 7 );
00101 _GARSString[7] = '\0';
00102 }
00103
00104
00105 char* GARSCoordinates::GARSString()
00106 {
00107 return _GARSString;
00108 }
00109
00110
00111 Precision::Enum GARSCoordinates::precision() const
00112 {
00113 return _precision;
00114 }
00115
00116