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