iobroker.roborock
Version:
207 lines (186 loc) • 4.8 kB
text/typescript
export interface Q10DevicePoint {
x: number;
y: number;
}
export interface Q10DevicePose extends Q10DevicePoint {
phi?: number;
}
export interface Q10MapArrPoint {
x: number;
y: number;
}
export interface Q10MapPixelPoint {
x: number;
y: number;
}
export interface Q10PixelPose extends Q10MapPixelPoint {
phi?: number;
}
export interface Q10SourceArea {
id?: number;
type: "erase" | "virtualWall" | "forbid" | "mop" | "threshold" | "carpet";
areaType?: number;
name?: string;
points: Q10DevicePoint[];
}
export interface Q10SourceObstacle {
point: Q10DevicePoint;
type?: "obstacle" | "skip";
}
export interface Q10SourceSuspectedPoint {
point: Q10DevicePoint;
type: "threshold" | "easycard" | "cliff";
}
export interface Q10SourcePathPoint extends Q10DevicePoint {
type?: number;
update?: number;
}
export interface Q10SourceRoom {
roomID: number;
roomName: string;
roomNameDataStr?: string;
roomType: number;
roomMaterial: number;
cleanOrder: number;
cleanCount: number;
funLevel: number;
waterLevel: number;
cleanType: number;
cleanLine: number;
}
export interface Q10SourceData {
version: number;
mapId: number;
mapWidth: number;
mapHeight: number;
mapRate: number;
resolution: number;
xMin: number;
yMin: number;
chargePosition?: Q10DevicePose;
robotPosition?: Q10DevicePose;
rooms: Q10SourceRoom[];
eraseAreas: Q10SourceArea[];
virtualWalls: Q10SourceArea[];
forbidAreas: Q10SourceArea[];
mopAreas: Q10SourceArea[];
thresholdAreas: Q10SourceArea[];
carpetAreas: Q10SourceArea[];
pathPoints: Q10SourcePathPoint[];
obstacles: Q10SourceObstacle[];
skipPoints: Q10SourceObstacle[];
suspectedPoints: Q10SourceSuspectedPoint[];
dataReadIdx?: number;
tempRoomColorPlanStr?: string;
tempClipEraseRoomColorPlanStr?: string;
mapCeramicTilePath?: Q10MapArrPoint[][];
mapHorizontalFloorBoardPath?: Q10MapArrPoint[][];
mapVerticalFloorBoardPath?: Q10MapArrPoint[][];
carpetGrid?: Buffer;
hasSelfIdentificationCarpet: boolean;
}
export interface Q10RuntimeStatePatch {
virtualWalls?: Q10SourceArea[];
forbidAreas?: Q10SourceArea[];
mopAreas?: Q10SourceArea[];
thresholdAreas?: Q10SourceArea[];
carpetAreas?: Q10SourceArea[];
suspectedPoints?: Q10SourceSuspectedPoint[];
pathPoints?: Q10SourcePathPoint[];
}
export interface Q10CreatorArea {
id?: number;
type: Q10SourceArea["type"];
areaType?: number;
name?: string;
points: Q10MapPixelPoint[];
}
export interface Q10CreatorLine {
id?: number;
type: "virtualWall";
points: [Q10MapPixelPoint, Q10MapPixelPoint];
}
export interface Q10CreatorRoomModel {
roomID: number;
gridValue: number;
roomName: string;
roomType: number;
roomMaterial: number;
cleanOrder: number;
cleanCount: number;
funLevel: number;
waterLevel: number;
cleanType: number;
cleanLine: number;
colorID: number;
centerPoint: Q10MapPixelPoint;
transCenterPoint: Q10MapPixelPoint;
borderArr: Q10MapPixelPoint[][];
borderEdge: { left: number; top: number; right: number; bottom: number };
bounds: { left: number; top: number; right: number; bottom: number };
}
export interface Q10CreatorObstacle {
point: Q10MapPixelPoint;
type: "obstacle" | "skip";
}
export interface Q10CreatorSuspectedPoint {
point: Q10MapPixelPoint;
type: "threshold" | "easycard" | "cliff";
}
export interface Q10CreatorPathPoint extends Q10MapPixelPoint {
type?: number;
update?: number;
}
export interface Q10CreatorSelfIdentifiedCarpet {
id: number;
carpetID: number;
left: number;
top: number;
right: number;
bottom: number;
width: number;
height: number;
lt: Q10MapPixelPoint;
rb: Q10MapPixelPoint;
mask: Buffer;
}
export interface Q10CreatorRoomTangentInfo {
roomID1: number;
roomID2: number;
tangent: 0 | 1;
}
export interface Q10CreatorData {
q10Detected: true;
mapRate: number;
mapWidth: number;
mapHeight: number;
roomModels: Q10CreatorRoomModel[];
clipEraseRoomModels: Q10CreatorRoomModel[];
eraseAreas: Q10CreatorArea[];
virtualWalls: Q10CreatorLine[];
forbidAreas: Q10CreatorArea[];
mopAreas: Q10CreatorArea[];
thresholdAreas: Q10CreatorArea[];
carpetAreas: Q10CreatorArea[];
obstaclePixels: Q10CreatorObstacle[];
skipPixels: Q10CreatorObstacle[];
suspectedPoints: Q10CreatorSuspectedPoint[];
pathPixels: Q10CreatorPathPoint[];
chargerPixel?: Q10PixelPose;
robotPixel?: Q10PixelPose;
selfIdentifiedCarpets: Q10CreatorSelfIdentifiedCarpet[];
roomTangentInfo: Q10CreatorRoomTangentInfo[];
clipEraseRoomTangentInfo: Q10CreatorRoomTangentInfo[];
clipEraseMapGrid?: Buffer;
materialPaths: {
ceramicTile: Q10MapPixelPoint[][];
horizontalFloorBoard: Q10MapPixelPoint[][];
verticalFloorBoard: Q10MapPixelPoint[][];
};
roomMaterialRoomIds: {
ceramicTile: number[];
horizontalFloorBoard: number[];
verticalFloorBoard: number[];
other: number[];
};
}