1 2#------------------------------------------------------------------------------ 3# $File: vacuum-cleaner,v 1.1 2015/11/14 13:38:35 christos Exp $ 4# vacuum cleaner magic by Thomas M. Ott (ThMO) 5# 6# navigation map for LG robot vacuum cleaner models VR62xx, VR64xx, VR63xx 7# file: MAPDATAyyyymmddhhmmss_xxxxxx_cc.blk 8# -> yyyymmdd: year, month, day of cleaning 9# -> hhmmss: hour, minute, second of cleaning 10# -> xxxxxx: 6 digits 11# -> cc: cleaning runs counter 12# size: 136044 bytes 13# 14# struct maphdr { 15# int32_t map_cnt; /* 0: single map */ 16# int32_t min_ceil; /* 4: 100 mm == 10 cm == min. ceil */ 17# int32_t max_ceil; /* 8: 10000 mm == 100 m == max. ceil */ 18# int32_t max_climb; /* 12: 50 mm = 5 cm == max. height to climb */ 19# int32_t unknown; /* 16: 50000 ??? */ 20# int32_t cell_bytes; /* 20: # of bytes for cells per block */ 21# int32_t block_max; /* 24: 1000 == max. # of blocks */ 22# int32_t route_max; /* 28: 1000 == max. # of routes */ 23# int32_t used_blocks; /* 32: 5/45/33/... == # of block entries used! */ 24# int32_t cell_dim; /* 36: 10 == cell dimension */ 25# int32_t clock_tick; /* 40: 100 == clock ticks */ 26# #if 0 27# struct { /* 44: 1000 blocks for 10x10 cells */ 28# int32_t yoffset; 29# int32_t xoffset; 30# int32_t posxy; 31# int32_t timecode; 32# } blocks[ 1000]; 33# char cells[ 1000* 100]; /* 16044: 1000 10x10 cells */ 34# int16_t routes[ 1000* 10]; /* 116044: 1000 10-routes */ 35# #endif 36# }; 37 380 lelong =1 39>4 lelong =100 40>>8 lelong =10000 41>>>12 lelong =50 42>>>>16 lelong =50000 43>>>>>20 lelong =100 44>>>>>>24 lelong =1000 45>>>>>>>28 lelong =1000 46>>>>>>>>36 lelong =10 47>>>>>>>>>40 lelong =100 48>>>>>>>>>>32 lelong x LG robot VR6[234]xx %dm^2 navigation 49>>>>>>>>>>136040 lelong =-1 reuse map data 50>>>>>>>>>>136040 lelong =0 map data 51>>>>>>>>>>136040 lelong >0 spurious map data 52>>>>>>>>>>136040 lelong <-1 spurious map data 53 54 55