Greetings.

For anyone familiar with GPStk... I am using GPStk in a positioning project
but strangely I'm having problems to use the broadcast ephemerides.

 I was trying to extract the satellites position from the broadcast
navigation message using an GPSEphemerisStore?
<http://www.gpstk.org/bin/edit/Forum/GPSEphemerisStore?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>
object like in example 4. But then when trying to use the function
.getXvt(prn, t) the program crashes (although no error is detected in code
before compilation), with the following message:

"Non processed exception: InteropServices?
<http://www.gpstk.org/bin/edit/System/Runtime/InteropServices?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>.SEHException:
The external component activated an exception. in gpstk.OrbitEph.svXvt(
OrbitEph?
<http://www.gpstk.org/bin/edit/Forum/OrbitEph?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>*
, Xvt* , CommonTime?
<http://www.gpstk.org/bin/edit/Forum/CommonTime?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>*
) in main() em c:\users\user\documents\visual studio
2012\projects\gnssrelpos\g nssrelpos\main.cpp:line 143 in mainCRTStartup()
Press key to continue . . ."

I already used this approach successfully a few years ago in another
project using version 1.6 of GPStk.

 I tried to investigate a little bit the origin of the problem by making a
few tests:

code:

RinexNavStream?
<http://www.gpstk.org/bin/edit/Forum/RinexNavStream?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>
rin_nav(nav_path.c_str());

RinexNavData?
<http://www.gpstk.org/bin/edit/Forum/RinexNavData?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>
nav_data;

while (rin_nav >> nav_data) BcEStore?
<http://www.gpstk.org/bin/edit/Forum/BcEStore?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>.addEphemeris(nav_data);


SatID?
<http://www.gpstk.org/bin/edit/Forum/SatID?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>
s(23, SatID?
<http://www.gpstk.org/bin/edit/Forum/SatID?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>::systemGPS);


CommonTime?
<http://www.gpstk.org/bin/edit/Forum/CommonTime?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>
t = BcEStore?
<http://www.gpstk.org/bin/edit/Forum/BcEStore?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>.getInitialTime();


const OrbitEph?
<http://www.gpstk.org/bin/edit/Forum/OrbitEph?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>
*eph = BcEStore?
<http://www.gpstk.org/bin/edit/Forum/BcEStore?topicparent=Forum.DiscussionForumArticle2014x09x03x09x49>.findOrbitEph(s,
t);

cout << "test: " << eph->asString() << endl;

cout << "test2: " << eph->ecc << endl;

cout << "test3: " << eph->svClockBias(t) << endl;

cout << "test4: " << eph->isValid(t) << endl;

Xvt sv = eph->svXvt(t);

cout << "x = " << sv.x[0] << endl;

These tests resulted in the following output:

test: EPH G23 | 2011 74 12:00:00 | 74 12:00:00 | 74 12:00:00 | 74 14:00:00
| 74 12:00:00 | 71 | 71 | 0

test2: 0.00703742

test3: 0.00032

test4: 0

All of which are consistent with the nav file. After that the program
crashes and the exception message appears. Has anyone had similar
difficulties using broadcast ephemerides?

I suspect it may be some glitch in the classes involved from one of the
version updates between 1.6 and the current 2.4 version. So, before diving
into the code itself I was wondering if anyone has noticed this issue also.

Thank you

Sérgio Santos
_______________________________________________
This message is sent to you from [email protected] mailing list.
Visit http://lists.osgeo.org/mailman/listinfo/foss-gps to manage your 
subscription
For more information, check http://wiki.osgeo.org/wiki/FOSS-GPS

Reply via email to