On 05/19/17 14:01, Zeeshan Ali (Khattak) wrote:
> Hi,
>>>>>
https://github.com/zeenix/gps-share
>>>>>
>>>>> This will be not only a replacement for GPSD but also be able to share
>>>>> your GPS device on the local network (the same way as our android app
>>>>> works). I'm writing it in Rust language so it's very reliable and I
>>>>> have aims of porting Geoclue to Rust as well in the future.
>>>>>
>>>>> So while you're free to do as you wish, I'd strongly recommend you
>>>>> modify your GSoC project a bit to join forces with me to enable GPS
>>>>> support in Geoclue instead. You won't need a new MLS key either. :)
>>>>
>>>> Ok, I don't understand what exactly is missing? You mean standalone as
>>>> only receiving coordinates base on surrounded WiFis?
>>>
>>> Standalone GPS are the ones that are not part of a 3G modem but are
>>> just GPS devices (USB and bluetooth). This has nothing to do with
>>> WiFi-part really. The WiFi-geolocation is already in place and geoclue
>>> even uploads Wifi information to MLS if submit-data=true is set in
>>> /etc/geoclue/geoclue.conf file.
>>>
>>> Applications on Linux system are expected to use Geoclue (and many do,
>>> even if some still use the old geoclue) for geolocation and I feel
>>> that your current plan will create unnecessary redundancy: Geoclue
>>> will be using MLS for WiFi-geolocation and then your module will be
>>> doing exactly the same.
>>
>> The difference is, that MLS needs SSL and an authentication via API key,
>>
openwifi.su not. On our Routers we don't have SSL and a requires of an API
>> key for each router. It is also not really a good way for both sides.
>
> OK but then I'm confused as to why you want to use MLS still?
Ah, I see the miss understanding. MLS is for the
openwifi.su backend.
If it not possible for
openwifi.su to determinate a position, use MLS
as fallback.
>>> Unless I misunderstood your project or your project is meant to be
>>> never used on a typical Linux system?
>>
>> You can use it as well on typical Linux systems.
>
> That's why I think this may be a very bad idea. It only adds
> duplication in typical Linux systems.
I see. The answer is below.
>> Even in geoclue if
>> geoclue got the support of working with Standalone GPS hardware.
>
> Well, if you expose MLS as a normal standalone GPS device as you plan
> to do, Geoclue will use it through gps-share in the near future and
> we'll end-up with using MLS at the same time, for no reason.
>
> Even without gps-share, we'll at least have duplication of code.
Right, I agree with you. Explanation below.
>>>> So if Geoclue already supports communicating with real GPS hardware over
>>>> /dev/tty devices, Geoclue should also able to work with sgps or not?
>>>
>>> That's what is missing. It does not. It only has support for
>>> modem-based GPS devices.
>>
>> So if we implemented communicating over device drivers, geoclue should also
>> work with sgps.
>
> Yup and it certainly will end up doing that if sgps is installed on a
> machine and for reasons mentioned before, we really don't want this.
I see. Sorry I wars a bit confused.
>> The main point on my side is the required authentication
>> and ssl for embedded devs. I see GPS as an authenticationless service.
>> But I will take a deeper look into geoclue maybe we can also integrate
>> communicating with
openwifi.su. Maybe we can merge the
openwifi.su datas
>> into MLS as well.
>
> The last part would make the most sense but I'm pretty sure:
>
> * this has been already considered and not acted on (don't recall the reasons).
> * MLS has a *lot* more data, with a lot of duplication in Germany so
> not very sure it's very useful.
Yes, I change the plan see below.
>>>> The pro is that we have a very modular structured modules.
>>>>
>>>> In my last mail I told that I would like to write a new backed for
>>>>
openwifi.su. Maybe I can realise that all wifi informations can also
>>>> integrated into MLS. So MLS will get more datas. :)
>>>
>>> I recall that I did have a look at this openwifi before MLS existed
>>> but once MLS came to being, I didn't see any point of project. I felt
>>> it was very Germany-focused project (the webpage still speaks to you
>>> in German by default).
>>
>> Yes, sure I know what you mean. But it is the only service which works
>> without authentication and SSL.
>
> I guess then you have to make a choice:
>
> * Enable SSL somehow and use MLS.
> * Use openwifi and forget about MLS completely.
>
> But of course, it's your project and your decision on what you do. :)
>
>>> Anyway, if you project has to be about openwifi, sure I understand but
>>> I still don't understand the point of putting anything in the kernel
>>> if everything can be very efficiently implemented in the user-space.
>>
>> The main idea wars to create a software application which should work with
>> all other applications they are communicating with gps hardware over tty devices.
>> That is the reason why the project is called software defined GPS.
>
> Sure but most apps are not supposed to use GPS directly. They just
> want to get the location and Geoclue already provides an API for that.
> The apps that do use GPS device directly are GPS device management
> type and they'd expect a real GPS device behind the tty node.
Ok I´ll change the plan, thank you for giving me the hint of redundancy project.
The old plan was:
In the weak project over view I plan to divide this Project into 3 or 4 sub-projects.
The first one is a restful API backend whit should include a backwards compatibly to
the old openwifi web backend. May written in Go. The New API should use MLS as fallback
if it not passible to determinate a position based on the own db entrys. As well received
WiFi information's can also redirect to MLS (if they want that).
The next is a kernel module which should communicate with the restful API and provided
a device driver under /dev as a tty driver. The Linux kernel provides GPS hardware as
tty devices. This software defined tty device should print GPS format e.g. NMEA 0183.
The goal of this kernel module is that programs like gpsd and other can easily use
this standard tty device as a normal GPS hardware. The position detection continues
over Wifi. The advantaged of this module is that devices like laptops or routers can
have simulated GPS hardware.
The last one a library should convert the NMEA 0183 format
to long-/latitude and print that.
Here is my new plan:
The first one is a restful API backend whit should include a backwards compatibly to
the old openwifi web backend. May written in Go. The New API should use MLS as fallback
if it not possible to determinate a position based on the own db entrys. As well received
WiFi information's can also redirect to MLS (if they want that).
The Kernel module will be dropt because of new infromations from geoclue.
We don't wanna do redundancy project. ;)
geoclue: I discuss with Zeeshan, the maintainer of geoclue, to build support in geoclue for
standalone GPS.
Hopefully the new plan is OK with you or do you have so other ideas? :)
cheers
Tarek