OSM Mobile Binary Protocol/Types

From OpenStreetMap Wiki
Jump to navigation Jump to search

Table of allocated 8bit types for binary data transfer, strictly speaking most of these are not part of the protocol, but its useful to all use the same values for similar purposes, so feel free to add new ones your app is using if it is following the pattern of "{length} {8bit type as below} {data}".

Function Value Hex Reply
OSM Binary Header 0x05
Content Specifier # 0x23
Tile definition a 0x61
Blog upload b 0x62 0xe2
Map Correction upload c 0x63 0xe3
Blog download d 0x64 0xe4
Email e 0x65 0xe5
Failure f 0x66
GSM Cell upload g 0x67 0xe7
GSM Cell upload v2 h 0x68 0xe8
POI (node replacement 64bit id) i 0x69
POI Deleted j 0x6a
Free Block k 0x6b
Login Password l 0x6c 0xec
Machine Id m 0x6d
Node download (old 32bit) n 0x6e
Omitted Ways (v1 only) o 0x6f
Postcode upload p 0x70 0xf0
Relation r 0x72
Omitted Relations (v1 only) s 0x73
Updated Time t 0x74
Blog Url u 0x75 0xf5
Routeable Way download v 0x76
Way download w 0x77
GSM Cell location request x 0x78 0xf8
Way Deleted y 0x79
Relation Deleted z 0x7a

Data is transmitted as 32bit length in number of bytes followed by that much data where the first byte is a type from this list. Responses either to give a receiving side id code or to permit sender deletion on successful upload use the same code but with the top bit set.

Format definitions

OSM Binary Header

[block length=0x02 0x00 0x00 0x00] 0x05 0x3B

This is an optional 6 byte header at the beginning of an OSM Binary format file.

Postcode

[block length=5]0xf0[senders id of postcode item]

This just indicates that the post code was received and was ok (so sender can delete/mark as uploaded)

Map Correction

[block length=5]0xe3[senders id of map correction item]

This just indicates that the map correction was received and was ok (so sender can delete/mark as uploaded)

Content Specifier

[block length=2]0x23[either F for fresh content or C for cached content]

Failure

[block length]0x66[8 bit error code - allocated below][8 bit textlen (optional)][text (upto 255 chars) (optional)]

EDownloadErrorBlogUrl=1
EDownloadErrorEmail=2
EDownloadErrorLatLon=3
EDownloadErrorPostcode=4
EDownloadErrorTooBig=5
EDownloadErrorConnect=6
EDownloadErrorPerms=7
EDownloadErrorXMLError=8
EDownloadErrorNoData=9
EDownloadErrorServerProblem=10
EDownloadErrorLzmaProblem=11

This tells you what failed, and a user friendly message (if appropriate).