The SDK provides several way to encode GPS data into a Sigfox Frame.
A general purpose, not optimized format is GPS_DATA_XYZ_SV_HDOP. Here is how to decode the data contained into this frame:
frame example:
5d01010005bb688ddd602590
Red part tells you this is a GPS frame encoded according to GPS_DATA_XYZ_SV_HDOP. Green part contains the position and blue part contains additional information.
Green is latitude and longitude and shall be decoded as follow:
0x005bb688ddd6 = 393904446934 thus 00°39.390' 44°46.934' (longitude ; latitude)
Please note that these are degrees, decimal minutes.
Then in blue:
12 bits for the altitude en (2xmeters) (0x025 = 37*2= 74 meters )
1 bit for longitude sign ( 0 = positive, 1 = negative) => 1 => -00°39.390'
1 bit for latitude sign ( 0 = positive, 1 = negative) => 0 => +44°46.934'
1 bit for altitude sign ( 0 =positive, 1 = negative) => 0 => +74 meters
3 bits for satellites in view => 4
2 bits for overall horizontal dilution of precision going from 0 (very good) to 3 (bad).