Hi!
No, we need some kind of at least rudimentary gps framework even if we allow for a raw (NMEA) interface for the time being (possibly indefinitely).
Ok, that would be fine if we can get that!
For a minimal set of API I think something like this (following hci_dev) would suffice:
struct gps_dev { ... int (*open)(struct gps_dev *gdev); int (*close)(struct gps_dev *gdev); int (*send)(struct gps_dev *gdev, char *data, int length); };
int gps_register_dev(struct gps_dev *gdev); void gps_unregister_dev(struct gps_dev *gdev); int gps_recv_nmea_chars(struct gps_dev *gdev, char *data, int length);
If that would wrap all creation of some /dev/ttyGPS0 (or however it is called), it would fit our needs for a driver and user-space for our system.
And I would be happy to get rid of creating and registering a /dev/ttyGPS0 in the w2sg0004 driver.
Sounds like a good start.
Best regards, Pavel