Comments (4)
From what I see the format is rather different. Looking at the v7 file seems the file structure is like this:
function getExplainObj() {
return {
digit0: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mHasHistoryMap',
digit: 4,
explainWay: 'integer'
}, {
name: 'mWorkingMode',
digit: 4,
explainWay: 'integer'
}, {
name: 'mBatteryPercent',
digit: 4,
explainWay: 'integer'
}, {
name: 'mChargeState',
digit: 4,
explainWay: 'integer'
}, {
name: 'mFaultType',
digit: 4,
explainWay: 'integer'
}, {
name: 'mFaultCode',
digit: 4,
explainWay: 'integer'
}, {
name: 'mCleanPreference',
digit: 4,
explainWay: 'integer'
}, {
name: 'mRepeatClean',
digit: 4,
explainWay: 'integer'
}, {
name: 'mCleanTime',
digit: 4,
explainWay: 'integer'
}, {
name: 'mCleanSize',
digit: 4,
explainWay: 'integer'
}],
digit1: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'room_clean_plan_id',
digit: 4,
explainWay: 'integer'
}, {
name: 'mMapType',
digit: 4,
explainWay: 'integer'
}, {
name: 'mSizeX',
digit: 4,
explainWay: 'integer'
}, {
name: 'mSizeY',
digit: 4,
explainWay: 'integer'
}, {
name: 'mMinX',
digit: 4,
explainWay: 'float'
}, {
name: 'mMinY',
digit: 4,
explainWay: 'float'
}, {
name: 'mMaxX',
digit: 4,
explainWay: 'float'
}, {
name: 'mMaxY',
digit: 4,
explainWay: 'float'
}, {
name: 'mResolution',
digit: 4,
explainWay: 'float'
}, {
name: 'content',
digit: function digit(obj) {
return obj.mSizeX * obj.mSizeY;
},
explainWay: 'content'
}],
digit2: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mPoseId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mPointNumber',
digit: 4,
explainWay: 'integer'
}, {
name: 'DPTHistoryPoseList',
digit: function digit(obj) {
return obj.mPointNumber;
},
explainWay: [{
name: 'update',
digit: 1,
explainWay: 'integer'
}, {
name: 'x',
digit: 4,
explainWay: 'float'
}, {
name: 'y',
digit: 4,
explainWay: 'float'
}]
}],
digit3: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mPoseX',
digit: 4,
explainWay: 'float'
}, {
name: 'mPoseY',
digit: 4,
explainWay: 'float'
}, {
name: 'mPosePhi',
digit: 4,
explainWay: 'float'
}],
digit4: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mCleanPlanId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mAreaCount',
digit: 4,
explainWay: 'integer'
}, {
name: 'list',
digit: function digit(obj) {
return obj.mAreaCount;
},
explainWay: [{
name: 'wallId',
digit: 4,
explainWay: 'integer'
}, {
name: 'state',
digit: 4,
explainWay: 'integer'
}, {
name: 'pointNum',
digit: 4,
explainWay: 'integer'
}, {
name: 'x1',
digit: 4,
explainWay: 'float'
}, {
name: 'y1',
digit: 4,
explainWay: 'float'
}, {
name: 'x2',
digit: 4,
explainWay: 'float'
}, {
name: 'y2',
digit: 4,
explainWay: 'float'
}, {
name: 'x3',
digit: 4,
explainWay: 'float'
}, {
name: 'y3',
digit: 4,
explainWay: 'float'
}, {
name: 'x4',
digit: 4,
explainWay: 'float'
}, {
name: 'y4',
digit: 4,
explainWay: 'float'
}, {
name: 'x5',
digit: 4,
explainWay: 'float'
}, {
name: 'y5',
digit: 4,
explainWay: 'float'
}, {
name: 'x6',
digit: 4,
explainWay: 'float'
}, {
name: 'y6',
digit: 4,
explainWay: 'float'
}, {
name: 'x7',
digit: 4,
explainWay: 'float'
}, {
name: 'y7',
digit: 4,
explainWay: 'float'
}, {
name: 'x8',
digit: 4,
explainWay: 'float'
}, {
name: 'y8',
digit: 4,
explainWay: 'float'
}, {
name: 'x9',
digit: 4,
explainWay: 'float'
}, {
name: 'y9',
digit: 4,
explainWay: 'float'
}, {
name: 'x10',
digit: 4,
explainWay: 'float'
}, {
name: 'y10',
digit: 4,
explainWay: 'float'
}]
}],
digit5: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mCleanPlanId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mAreaCount',
digit: 4,
explainWay: 'integer'
}, {
name: 'list',
digit: function digit(obj) {
return obj.mAreaCount;
},
explainWay: [{
name: 'zoneId',
digit: 4,
explainWay: 'integer'
}, {
name: 'state',
digit: 4,
explainWay: 'integer'
}, {
name: 'pointNum',
digit: 4,
explainWay: 'integer'
}, {
name: 'x1',
digit: 4,
explainWay: 'float'
}, {
name: 'y1',
digit: 4,
explainWay: 'float'
}, {
name: 'x2',
digit: 4,
explainWay: 'float'
}, {
name: 'y2',
digit: 4,
explainWay: 'float'
}, {
name: 'x3',
digit: 4,
explainWay: 'float'
}, {
name: 'y3',
digit: 4,
explainWay: 'float'
}, {
name: 'x4',
digit: 4,
explainWay: 'float'
}, {
name: 'y4',
digit: 4,
explainWay: 'float'
}, {
name: 'x5',
digit: 4,
explainWay: 'float'
}, {
name: 'y5',
digit: 4,
explainWay: 'float'
}, {
name: 'x6',
digit: 4,
explainWay: 'float'
}, {
name: 'y6',
digit: 4,
explainWay: 'float'
}, {
name: 'x7',
digit: 4,
explainWay: 'float'
}, {
name: 'y7',
digit: 4,
explainWay: 'float'
}, {
name: 'x8',
digit: 4,
explainWay: 'float'
}, {
name: 'y8',
digit: 4,
explainWay: 'float'
}, {
name: 'x9',
digit: 4,
explainWay: 'float'
}, {
name: 'y9',
digit: 4,
explainWay: 'float'
}, {
name: 'x10',
digit: 4,
explainWay: 'float'
}, {
name: 'y10',
digit: 4,
explainWay: 'float'
}]
}],
digit6: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'clean_plan_id',
digit: 4,
explainWay: 'integer'
}, {
name: 'x',
digit: 4,
explainWay: 'float'
}, {
name: 'y',
digit: 4,
explainWay: 'float'
}, {
name: 'phi',
digit: 4,
explainWay: 'float'
}],
digit7: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mPoseId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mUpdate',
digit: 1,
explainWay: 'integer'
}, {
name: 'mPoseX',
digit: 4,
explainWay: 'float'
}, {
name: 'mPoseY',
digit: 4,
explainWay: 'float'
}, {
name: 'mPosePhi',
digit: 4,
explainWay: 'float'
}],
digit11: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'mask',
digit: 2,
explainWay: 'binary'
}, {
name: 'first_clean_flag',
digit: 1,
explainWay: 'integer'
}, {
name: 'clean_map_number',
digit: 1,
explainWay: 'integer'
}, {
name: 'mapList',
digit: function digit(obj) {
return obj.clean_map_number;
},
explainWay: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'map_name_lenth',
digit: 1,
explainWay: 'integer'
}, {
name: 'map_name',
digit: function digit(obj) {
return obj.map_name_lenth;
},
explainWay: 'name'
}]
}, {
name: 'cleanPlanId1',
digit: 4,
explainWay: 'integer'
}, {
name: 'roomCount',
digit: 4,
explainWay: 'integer'
}, {
name: 'roomList',
digit: function digit(obj) {
return obj.roomCount;
},
explainWay: [{
name: 'roomId',
digit: 1,
explainWay: 'integer'
}, {
name: 'roomNameLength',
digit: 1,
explainWay: 'integer'
}, {
name: 'roomName',
digit: function digit(obj) {
return obj.roomNameLength;
},
explainWay: 'name'
}, {
name: 'clean_state',
digit: 1,
explainWay: 'integer'
}, {
name: 'x',
digit: 4,
explainWay: 'float'
}, {
name: 'y',
digit: 4,
explainWay: 'float'
}]
}, {
name: 'cleanPlanNum',
digit: 1,
explainWay: 'integer'
}, {
name: 'cleanPlanId2',
digit: 4,
explainWay: 'integer'
}, {
name: 'cleanPlanNameLength',
digit: 1,
explainWay: 'integer'
}, {
name: 'cleanPlanName',
digit: function digit(obj) {
return obj.cleanPlanNameLength;
},
explainWay: 'name'
}, {
name: 'wallMapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'wallCleanPlanId',
digit: 4,
explainWay: 'integer'
}, {
name: 'wallNum',
digit: 4,
explainWay: 'integer'
}, {
name: 'wallList',
digit: function digit(obj) {
return obj.wallNum;
},
explainWay: [{
name: 'wallId',
digit: 4,
explainWay: 'integer'
}, {
name: 'state',
digit: 4,
explainWay: 'integer'
}, {
name: 'pointNum',
digit: 4,
explainWay: 'integer'
}, {
name: 'x1',
digit: 4,
explainWay: 'float'
}, {
name: 'y1',
digit: 4,
explainWay: 'float'
}, {
name: 'x2',
digit: 4,
explainWay: 'float'
}, {
name: 'y2',
digit: 4,
explainWay: 'float'
}, {
name: 'x3',
digit: 4,
explainWay: 'float'
}, {
name: 'y3',
digit: 4,
explainWay: 'float'
}, {
name: 'x4',
digit: 4,
explainWay: 'float'
}, {
name: 'y4',
digit: 4,
explainWay: 'float'
}, {
name: 'x5',
digit: 4,
explainWay: 'float'
}, {
name: 'y5',
digit: 4,
explainWay: 'float'
}, {
name: 'x6',
digit: 4,
explainWay: 'float'
}, {
name: 'y6',
digit: 4,
explainWay: 'float'
}, {
name: 'x7',
digit: 4,
explainWay: 'float'
}, {
name: 'y7',
digit: 4,
explainWay: 'float'
}, {
name: 'x8',
digit: 4,
explainWay: 'float'
}, {
name: 'y8',
digit: 4,
explainWay: 'float'
}, {
name: 'x9',
digit: 4,
explainWay: 'float'
}, {
name: 'y9',
digit: 4,
explainWay: 'float'
}, {
name: 'x10',
digit: 4,
explainWay: 'float'
}, {
name: 'y10',
digit: 4,
explainWay: 'float'
}]
}, {
name: 'roomCount1',
digit: 4,
explainWay: 'integer'
}, {
name: 'roomCleanTypeList',
digit: function digit(obj) {
return obj.roomCount1;
},
explainWay: [{
name: 'roomCleanTypeListRoomId',
digit: 1,
explainWay: 'integer'
}, {
name: 'clean_type',
digit: 1,
explainWay: 'integer'
}]
}],
digit12: [{
name: 'roomMatrix',
digit: function digit(obj, outerObj) {
return outerObj.digit11 ? outerObj.digit11.roomCount : 0;
},
explainWay: 'matrix'
}],
digit13: [{
name: 'mapHeadId',
digit: 4,
explainWay: 'integer'
}, {
name: 'roomCount',
digit: 1,
explainWay: 'integer'
}, {
name: 'cleaningRoomList',
digit: function digit(obj) {
return obj.roomCount;
},
explainWay: [{
name: 'roomId',
digit: 1,
explainWay: 'integer'
}]
}]
};
}
from xiaomirobotvacuumprotocol.
Please send indeed a map file and a screenshot of how it looks like decoded in the phone app. marcel [at] verpaalen [dot] com
from xiaomirobotvacuumprotocol.
@marcelrv Done!
from xiaomirobotvacuumprotocol.
the viomi format is now available as katai file description in the rrmap folder
from xiaomirobotvacuumprotocol.
Related Issues (20)
- Xiaomi 1T (STYTJ02ZHM) Vacuum HOT 6
- Unable to change map HOT 3
- S7 - water level Low HOT 3
- How to use voice command to instruct no of cycles
- Set cleaning "strength"? HOT 1
- Reverse engineering HOT 2
- How can i find coordinates to use in "app_goto_target" and "app_zoned_clean" HOT 3
- Roborock S7 - Command to auto-empty in Dock HOT 6
- Question: Send command to Dreame D9 HOT 3
- How can control the mop_mode HOT 1
- Roborock S7 MaxV Firmware Features HOT 1
- get current coordinates and send to coordinates HOT 2
- Question: Can I make the S5E vacuum say a "ping" sound? HOT 1
- Ability to Empty dustbin. HOT 2
- S6 MaxV - get_room_mapping empty HOT 2
- Unable to get info using vacuum.send_command HOT 4
- S5 max - distance_off not worked as in docu described HOT 1
- Question: Retrieve installed sound pack?
- PROBLEM: Start room cleaning HOT 5
- Not able to clean without water (Roborock S7 MaxV Ultra) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xiaomirobotvacuumprotocol.