Skip to content

Commit

Permalink
feat(core): ObstacleAvoidanceControlCapability
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Sep 15, 2021
1 parent 9970f62 commit e5fab92
Show file tree
Hide file tree
Showing 4 changed files with 95 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const SimpleToggleCapability = require("./SimpleToggleCapability");

/**
* @template {import("../ValetudoRobot")} T
* @extends SimpleToggleCapability<T>
*/
class ObstacleAvoidanceControlCapability extends SimpleToggleCapability {
getType() {
return ObstacleAvoidanceControlCapability.TYPE;
}
}

ObstacleAvoidanceControlCapability.TYPE = "ObstacleAvoidanceControlCapability";

module.exports = ObstacleAvoidanceControlCapability;
1 change: 1 addition & 0 deletions backend/lib/core/capabilities/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ module.exports = {
MapSegmentationCapability: require("./MapSegmentationCapability"),
MapSnapshotCapability: require("./MapSnapshotCapability"),
MappingPassCapability: require("./MappingPassCapability"),
ObstacleAvoidanceControlCapability: require("./ObstacleAvoidanceControlCapability"),
PendingMapChangeHandlingCapability: require("./PendingMapChangeHandlingCapability"),
PersistentMapControlCapability: require("./PersistentMapControlCapability"),
PresetSelectionCapability: require("./PresetSelectionCapability"),
Expand Down
3 changes: 2 additions & 1 deletion backend/lib/webserver/CapabilitiesRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ const CAPABILITY_TYPE_TO_ROUTER_MAPPING = {
[capabilities.MapSegmentRenameCapability.TYPE]: capabilityRouters.MapSegmentRenameCapabilityRouter,
[capabilities.PendingMapChangeHandlingCapability.TYPE]: capabilityRouters.PendingMapChangeHandlingCapabilityRouter,
[capabilities.MappingPassCapability.TYPE]: capabilityRouters.MappingPassCapabilityRouter,
[capabilities.KeyLockCapability.TYPE]: capabilityRouters.SimpleToggleCapabilityRouter
[capabilities.KeyLockCapability.TYPE]: capabilityRouters.SimpleToggleCapabilityRouter,
[capabilities.ObstacleAvoidanceControlCapability.TYPE]: capabilityRouters.SimpleToggleCapabilityRouter
};

module.exports = CapabilitiesRouter;
Original file line number Diff line number Diff line change
Expand Up @@ -229,5 +229,82 @@
}
}
}
},
"/api/v2/robot/capabilities/ObstacleAvoidanceControlCapability": {
"get": {
"tags": [
"ObstacleAvoidanceControlCapability"
],
"summary": "Get obstacle avoidance setting",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
}
}
}
}
}
}
}
},
"put": {
"tags": [
"ObstacleAvoidanceControlCapability"
],
"summary": "Set obstacle avoidance setting",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"enable",
"disable"
]
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/200"
},
"400": {
"$ref": "#/components/responses/400"
}
}
}
},
"/api/v2/robot/capabilities/ObstacleAvoidanceControlCapability/properties": {
"get": {
"tags": [
"ObstacleAvoidanceControlCapability"
],
"summary": "Get various capability-related properties",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
}
}

0 comments on commit e5fab92

Please sign in to comment.