mirror of
https://github.com/Hypfer/Valetudo.git
synced 2025-10-26 11:27:27 +00:00
feat(vendor.midea): MopExtensionFurnitureLegHandlingControlCapability
This commit is contained in:
parent
92cd7f6475
commit
7c0fc3a094
@ -150,6 +150,7 @@ class MideaValetudoRobot extends ValetudoRobot {
|
||||
capabilities.MideaCarpetSensorModeControlCapability,
|
||||
capabilities.MideaPetObstacleAvoidanceControlCapability,
|
||||
capabilities.MideaMopTwistControlCapability,
|
||||
capabilities.MideaMopExtensionFurnitureLegHandlingControlCapability,
|
||||
].forEach(capability => {
|
||||
this.registerCapability(new capability({robot: this}));
|
||||
});
|
||||
|
||||
@ -0,0 +1,62 @@
|
||||
const BEightParser = require("../../../msmart/BEightParser");
|
||||
const MopExtensionFurnitureLegHandlingControlCapability = require("../../../core/capabilities/MopExtensionFurnitureLegHandlingControlCapability");
|
||||
const MSmartConst = require("../../../msmart/MSmartConst");
|
||||
const MSmartPacket = require("../../../msmart/MSmartPacket");
|
||||
const MSmartStatusDTO = require("../../../msmart/dtos/MSmartStatusDTO");
|
||||
|
||||
/**
|
||||
* @extends MopExtensionFurnitureLegHandlingControlCapability<import("../MideaValetudoRobot")>
|
||||
*/
|
||||
class MideaMopExtensionFurnitureLegHandlingControlCapability extends MopExtensionFurnitureLegHandlingControlCapability {
|
||||
|
||||
/**
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async isEnabled() {
|
||||
const response = await this.robot.sendCommand(new MSmartPacket({
|
||||
messageType: MSmartPacket.MESSAGE_TYPE.ACTION,
|
||||
payload: MSmartPacket.buildPayload(MSmartConst.ACTION.GET_STATUS)
|
||||
}).toHexString());
|
||||
const parsedResponse = BEightParser.PARSE(response);
|
||||
|
||||
if (parsedResponse instanceof MSmartStatusDTO) {
|
||||
return parsedResponse.furniture_legs_cleaning_switch;
|
||||
} else {
|
||||
throw new Error("Invalid response from robot");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async enable() {
|
||||
await this.robot.sendCommand(new MSmartPacket({
|
||||
messageType: MSmartPacket.MESSAGE_TYPE.SETTING,
|
||||
payload: MSmartPacket.buildPayload(
|
||||
MSmartConst.SETTING.SET_VARIOUS_TOGGLES,
|
||||
Buffer.from([
|
||||
0x2f, // furniture legs cleaning
|
||||
0x01 // true
|
||||
])
|
||||
)
|
||||
}).toHexString());
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async disable() {
|
||||
await this.robot.sendCommand(new MSmartPacket({
|
||||
messageType: MSmartPacket.MESSAGE_TYPE.SETTING,
|
||||
payload: MSmartPacket.buildPayload(
|
||||
MSmartConst.SETTING.SET_VARIOUS_TOGGLES,
|
||||
Buffer.from([
|
||||
0x2f, // furniture legs cleaning
|
||||
0x00 // false
|
||||
])
|
||||
)
|
||||
}).toHexString());
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = MideaMopExtensionFurnitureLegHandlingControlCapability;
|
||||
@ -21,6 +21,7 @@ module.exports = {
|
||||
MideaMopDockDryManualTriggerCapability: require("./MideaMopDockDryManualTriggerCapability"),
|
||||
MideaMopDockMopWashTemperatureControlCapability: require("./MideaMopDockMopWashTemperatureControlCapability"),
|
||||
MideaMopExtensionControlCapability: require("./MideaMopExtensionControlCapability"),
|
||||
MideaMopExtensionFurnitureLegHandlingControlCapability: require("./MideaMopExtensionFurnitureLegHandlingControlCapability"),
|
||||
MideaMopTwistControlCapability: require("./MideaMopTwistControlCapability"),
|
||||
MideaObstacleAvoidanceControlCapability: require("./MideaObstacleAvoidanceControlCapability"),
|
||||
MideaObstacleImagesCapability: require("./MideaObstacleImagesCapability"),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user