Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
asterx1_gps
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
labrobotica
drivers
asterx1_gps
Commits
73ac8a3e
Commit
73ac8a3e
authored
9 years ago
by
Sergi Hernandez
Browse files
Options
Downloads
Patches
Plain Diff
Added conditional compilation depending on the presence of the GPS tool kit.
parent
55af5a8b
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/examples/testasterx1.cpp
+106
-69
106 additions, 69 deletions
src/examples/testasterx1.cpp
with
106 additions
and
69 deletions
src/examples/testasterx1.cpp
+
106
−
69
View file @
73ac8a3e
...
@@ -17,23 +17,19 @@ USB any port
...
@@ -17,23 +17,19 @@ USB any port
#include
<stdlib.h>
#include
<stdlib.h>
#include
"asterx1_gps.h"
#include
"asterx1_gps.h"
#include
"asterx1_process.h"
#include
"stream_gps.h"
#include
"stream_gps.h"
#ifdef HAVE_GPSTK
#include
"asterx1_process.h"
#endif
int
main
(
int
argc
,
char
**
argv
)
int
main
(
int
argc
,
char
**
argv
)
{
{
CasteRx1
gps
(
"gps"
,
"/dev/ttyACM0"
);
CasteRx1
gps
(
"gps"
,
"/dev/ttyACM0"
);
CAsteRx1Process
gps_process
;
CEventServer
*
event_server
=
CEventServer
::
instance
();
CEventServer
*
event_server
=
CEventServer
::
instance
();
std
::
list
<
std
::
string
>
events
;
std
::
list
<
std
::
string
>
events
;
unsigned
int
index
;
unsigned
int
index
;
TMeasEpoch
meas_epoch
;
TMeasEpoch
meas_epoch
;
TMeasExtra
meas_extra
;
TMeasExtra
meas_extra
;
TGPSNav
gps_nav
;
TGPSAlm
gps_alm
;
TGPSIon
gps_ion
;
TGPSUtc
gps_utc
;
TGPSFrame
gps_frame
;
TPVTCartesian
pvt_cartesian
;
TPVTCartesian
pvt_cartesian
;
TPVTGeodetic
pvt_geodetic
;
TPVTGeodetic
pvt_geodetic
;
TPVTCov
pvt_pos_cov_cartesian
;
TPVTCov
pvt_pos_cov_cartesian
;
...
@@ -41,79 +37,120 @@ int main(int argc, char **argv)
...
@@ -41,79 +37,120 @@ int main(int argc, char **argv)
TPVTCov
pvt_pos_cov_geodetic
;
TPVTCov
pvt_pos_cov_geodetic
;
TPVTCov
pvt_vel_cov_geodetic
;
TPVTCov
pvt_vel_cov_geodetic
;
TPVTDOP
pvt_dop
;
TPVTDOP
pvt_dop
;
#ifdef HAVE_GPSTK
CAsteRx1Process
gps_process
;
TGPSFrame
gps_frame
;
TGPSNav
gps_nav
;
#else
TGPSNav
gps_nav
;
TGPSAlm
gps_alm
;
TGPSIon
gps_ion
;
TGPSUtc
gps_utc
;
#endif
std
::
cout
<<
"
\n\n
TEST AsteRx1 GPS RECEIVER
\n\n
"
<<
std
::
endl
;
std
::
cout
<<
"
\n\n
TEST AsteRx1 GPS RECEIVER
\n\n
"
<<
std
::
endl
;
try
{
try
{
gps
.
openDevice
();
gps
.
openDevice
();
events
.
push_back
(
gps
.
get_new_meas_data_event_id
());
#ifdef HAVE_GPSTK
events
.
push_back
(
gps
.
get_new_gps_nav_data_event_id
());
events
.
push_back
(
gps
.
get_new_meas_data_event_id
());
events
.
push_back
(
gps
.
get_new_gps_alm_data_event_id
());
events
.
push_back
(
gps
.
get_new_gps_raw_data_event_id
());
events
.
push_back
(
gps
.
get_new_gps_ion_data_event_id
());
events
.
push_back
(
gps
.
get_new_pvt_data_event_id
());
events
.
push_back
(
gps
.
get_new_gps_utc_data_event_id
());
#else
events
.
push_back
(
gps
.
get_new_gps_raw_data_event_id
());
events
.
push_back
(
gps
.
get_new_meas_data_event_id
());
events
.
push_back
(
gps
.
get_new_pvt_data_event_id
());
events
.
push_back
(
gps
.
get_new_gps_nav_data_event_id
());
events
.
push_back
(
gps
.
get_new_gps_alm_data_event_id
());
events
.
push_back
(
gps
.
get_new_gps_ion_data_event_id
());
events
.
push_back
(
gps
.
get_new_gps_utc_data_event_id
());
events
.
push_back
(
gps
.
get_new_pvt_data_event_id
());
#endif
gps
.
startAcquisition
();
gps
.
startAcquisition
();
for
(;;)
for
(;;)
{
{
index
=
event_server
->
wait_first
(
events
);
index
=
event_server
->
wait_first
(
events
);
if
(
index
==
0
)
#ifdef HAVE_GPSTK
{
if
(
index
==
0
)
gps
.
get_meas_data
(
meas_epoch
,
meas_extra
);
// std::cout << meas_epoch << std::endl;
// std::cout << meas_extra << std::endl;
}
else
if
(
index
==
1
)
{
gps
.
get_gps_nav_data
(
gps_nav
);
std
::
cout
<<
gps_nav
<<
std
::
endl
;
}
else
if
(
index
==
2
)
{
gps
.
get_gps_alm_data
(
gps_alm
);
std
::
cout
<<
gps_alm
<<
std
::
endl
;
}
else
if
(
index
==
3
)
{
gps
.
get_gps_ion_data
(
gps_ion
);
std
::
cout
<<
gps_ion
<<
std
::
endl
;
}
else
if
(
index
==
4
)
{
gps
.
get_gps_utc_data
(
gps_utc
);
std
::
cout
<<
gps_utc
<<
std
::
endl
;
}
else
if
(
index
==
5
)
{
gps
.
get_gps_raw_data
(
gps_frame
);
gps_process
.
add_subframe
(
gps_frame
);
std
::
cout
<<
gps_frame
<<
std
::
endl
;
/* if(gps_process.is_new_gps_nav_data_available())
{
{
gps_process.get_gps_nav_data(gps_nav);
gps
.
get_meas_data
(
meas_epoch
,
meas_extra
);
if(gps_frame.sat_id==17)
std
::
cout
<<
meas_epoch
<<
std
::
endl
;
std
::
cout
<<
meas_extra
<<
std
::
endl
;
}
else
if
(
index
==
1
)
{
gps
.
get_gps_raw_data
(
gps_frame
);
gps_process
.
add_subframe
(
gps_frame
);
if
(
gps_process
.
is_new_gps_nav_data_available
())
{
gps_process
.
get_gps_nav_data
(
gps_nav
);
std
::
cout
<<
gps_nav
<<
std
::
endl
;
std
::
cout
<<
gps_nav
<<
std
::
endl
;
}*/
}
}
}
else
if
(
index
==
6
)
else
if
(
index
==
2
)
{
{
gps
.
get_pvt_data
(
pvt_cartesian
,
pvt_geodetic
);
gps
.
get_pvt_data
(
pvt_cartesian
,
pvt_geodetic
);
gps
.
get_pvt_cov_data
(
pvt_pos_cov_cartesian
,
pvt_pos_cov_geodetic
,
pvt_vel_cov_cartesian
,
pvt_vel_cov_geodetic
);
gps
.
get_pvt_cov_data
(
pvt_pos_cov_cartesian
,
pvt_pos_cov_geodetic
,
pvt_vel_cov_cartesian
,
pvt_vel_cov_geodetic
);
/* std::cout << "Cartesian:" << std::endl;
std
::
cout
<<
"Cartesian:"
<<
std
::
endl
;
std::cout << pvt_cartesian << std::endl;
std
::
cout
<<
pvt_cartesian
<<
std
::
endl
;
std::cout << "Position covariance:" << std::endl;
std
::
cout
<<
"Position covariance:"
<<
std
::
endl
;
std::cout << pvt_pos_cov_cartesian << std::endl;
std
::
cout
<<
pvt_pos_cov_cartesian
<<
std
::
endl
;
std::cout << "Velocity covariance:" << std::endl;
std
::
cout
<<
"Velocity covariance:"
<<
std
::
endl
;
std::cout << pvt_vel_cov_cartesian << std::endl;
std
::
cout
<<
pvt_vel_cov_cartesian
<<
std
::
endl
;
std::cout << "Geodetic:" << std::endl;
std
::
cout
<<
"Geodetic:"
<<
std
::
endl
;
std::cout << pvt_geodetic << std::endl;
std
::
cout
<<
pvt_geodetic
<<
std
::
endl
;
std::cout << "Position covariance:" << std::endl;
std
::
cout
<<
"Position covariance:"
<<
std
::
endl
;
std::cout << pvt_pos_cov_geodetic << std::endl;
std
::
cout
<<
pvt_pos_cov_geodetic
<<
std
::
endl
;
std::cout << "Velocity covariance:" << std::endl;
std
::
cout
<<
"Velocity covariance:"
<<
std
::
endl
;
std::cout << pvt_vel_cov_geodetic << std::endl;*/
std
::
cout
<<
pvt_vel_cov_geodetic
<<
std
::
endl
;
gps
.
get_pvt_dop_data
(
pvt_dop
);
gps
.
get_pvt_dop_data
(
pvt_dop
);
// std::cout << pvt_dop << std::endl;
std
::
cout
<<
pvt_dop
<<
std
::
endl
;
}
}
#else
if
(
index
==
0
)
{
gps
.
get_meas_data
(
meas_epoch
,
meas_extra
);
std
::
cout
<<
meas_epoch
<<
std
::
endl
;
std
::
cout
<<
meas_extra
<<
std
::
endl
;
}
else
if
(
index
==
1
)
{
gps
.
get_gps_nav_data
(
gps_nav
);
std
::
cout
<<
gps_nav
<<
std
::
endl
;
}
else
if
(
index
==
2
)
{
gps
.
get_gps_alm_data
(
gps_alm
);
std
::
cout
<<
gps_alm
<<
std
::
endl
;
}
else
if
(
index
==
3
)
{
gps
.
get_gps_ion_data
(
gps_ion
);
std
::
cout
<<
gps_ion
<<
std
::
endl
;
}
else
if
(
index
==
4
)
{
gps
.
get_gps_utc_data
(
gps_utc
);
std
::
cout
<<
gps_utc
<<
std
::
endl
;
}
else
if
(
index
==
5
)
{
gps
.
get_pvt_data
(
pvt_cartesian
,
pvt_geodetic
);
gps
.
get_pvt_cov_data
(
pvt_pos_cov_cartesian
,
pvt_pos_cov_geodetic
,
pvt_vel_cov_cartesian
,
pvt_vel_cov_geodetic
);
std
::
cout
<<
"Cartesian:"
<<
std
::
endl
;
std
::
cout
<<
pvt_cartesian
<<
std
::
endl
;
std
::
cout
<<
"Position covariance:"
<<
std
::
endl
;
std
::
cout
<<
pvt_pos_cov_cartesian
<<
std
::
endl
;
std
::
cout
<<
"Velocity covariance:"
<<
std
::
endl
;
std
::
cout
<<
pvt_vel_cov_cartesian
<<
std
::
endl
;
std
::
cout
<<
"Geodetic:"
<<
std
::
endl
;
std
::
cout
<<
pvt_geodetic
<<
std
::
endl
;
std
::
cout
<<
"Position covariance:"
<<
std
::
endl
;
std
::
cout
<<
pvt_pos_cov_geodetic
<<
std
::
endl
;
std
::
cout
<<
"Velocity covariance:"
<<
std
::
endl
;
std
::
cout
<<
pvt_vel_cov_geodetic
<<
std
::
endl
;
gps
.
get_pvt_dop_data
(
pvt_dop
);
std
::
cout
<<
pvt_dop
<<
std
::
endl
;
}
#endif
}
}
gps
.
stopAcquisition
();
gps
.
stopAcquisition
();
}
catch
(
CException
&
e
){
}
catch
(
CException
&
e
){
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment