Common API's (was: forked projects)

Andrew Greenberg <[email protected]> Fri, 01 Apr 2005 12:56:12 -0800
Newsgroups gmane.comp.hardware.gps.opensource
Message-ID <[email protected]>
Krzysztof, you're exactly right. I think we do need some kind of common API 
that tries to abstract away the astounding diversity of hardware that we 
have. For example, Tak and I are working on a porting OSGPS to an integer 
math only ARM7TDMI (the GP4020), and Matt is working on a software only 
receiver. It would be great to re-use as much code as we can.

I think breaking it up into the different task levels is a good idea... we 
have the correlator level, the pseudorange level, the navigation level. But 
don't forget there has to be API's for down the chain too; external data 
may be needed from upper levels to be sent back down to aid correlators, 
for example.

Not to get too abstract, but: it would also be nice to be able to easily 
put these interfaces over a network; e.g., we have an FPGA correlator over 
USB to a PC, or a small GPS receiver sending pseudoranges to a flight 
computer over CAN. Maybe some kind of common packet format could handle 
these cases?

Although IANACS (I Am Not A Computer Scientist), some of my best friends 
are CS people ;) so I'll get together with them in the next few weeks and 
try and come up with some pointers about doing this.

But in the mean time, does anyone want to take a first try at this? I think 
it's going to need lots of revisions, since there are so many different 
users of OSGPS, so don't worry about getting it right on the first try.

Andrew

At 10:47 PM 3/31/2005 -0500, Krzysztof Kamieniecki wrote:

>I think a common interface between tracking and position fixing may be 
>needed. There are several groups of people that are interested in 
>different layers of GPS receivers with different sets of hardware. (pure 
>SW, correlator chipsets, FPGAs / ASICs)
>
>
>Here is what I have been pondering, as a minimal API.
>
>Each correlator/tracker  sends an asynchronous symbol up the chain at 
>about (1kS/s)
>
>All of the correlator/tracker PLL and DLL phases and cycle counts have to 
>be sampled at the same time and sent up the chain. This would also have to 
>include an internal clock value and/or sample count.
>
>The position fixing level would need to allocate and setup correlators 
>based on which SVs are in view.
>
>
>Good, Bad, Stupid?
>
>Matt Ettus wrote:
>
>>I am embarking on a project to build a GPS receiver in software around my
>>hardware, the Universal Software Radio Peripheral (USRP, see
>>http://www.ettus.com for more info).  I wanted to use OpenSourceGPS to do the
>>position fixes, but I'll have to do my own tracking, etc.
>>My question is this -- it seems that there are several disparate efforts 
>>around
>>the same code base.  There's a PCI one, RTAI linux-based one, and a 
>>couple for
>>some different hardware.  Is there a common code repository for 
>>these?  Or have
>>they forked?  It would be nice to adapt the main code base so that different
>>hardware and operating systems could be used without duplicating effort 
>>on the
>>common parts.
>>Thanks,
>>Matt Ettus
>>Ettus Research LLC
>>
>>_______________________________________________
>>opensource_gps mailing list
>>[email protected]
>>http://lists.psas.pdx.edu/cgi-bin/mailman/listinfo/opensource_gps
>
>--
>Krzysztof Kamieniecki
>callsign:KB1KLB
>mailto:[email protected]
>
>_______________________________________________
>opensource_gps mailing list
>[email protected]
>http://lists.psas.pdx.edu/cgi-bin/mailman/listinfo/opensource_gps
>


------------------------------------------------------
    Andrew Greenberg - [email protected] - 503.788.1343
------------------------------------------------------