= ({
whiteSpace: "nowrap",
});
+ useEffect(() => {
+ if (!ros) {
+ console.error("ROS connection is not established.");
+ return;
+ }
+ const getPresetsClient = new ROSLIB.Service({
+ ros: ros,
+ name: "/list_presets",
+ serviceType: "interfaces/srv/GetPresets",
+ });
+
+ const request = new ROSLIB.ServiceRequest({});
+ getPresetsClient.callService(request, (response) => {
+ if (response) {
+ setPresets(response.presets);
+ }
+ });
+ }, [ros]);
return (
= ({
gap: "0.5rem",
}}
>
- {presets.map(({ name, preset }) => (
+ {presets.map(({ name, sources }) => (
diff --git a/src/components/panels/VideoControls.tsx b/src/components/panels/VideoControls.tsx
index ca1c735..c8540b7 100644
--- a/src/components/panels/VideoControls.tsx
+++ b/src/components/panels/VideoControls.tsx
@@ -5,6 +5,7 @@ import ROSLIB from "roslib";
import { useROS } from "@/ros/ROSContext";
import VideoPresetsPanel from "../VideoPresetsPanel";
import RtpStats from "../RtpStats";
+import toast from "react-hot-toast";
export interface VideoSource {
name: string;
@@ -15,7 +16,6 @@ export interface VideoSource {
}
export interface VideoOutRequest {
- num_sources: number;
sources: VideoSource[];
}
@@ -23,9 +23,6 @@ interface VideoOutResponse {
success: boolean;
}
-interface VideoOutResponse {
- success: boolean;
-}
const VideoControls: React.FC = () => {
const { ros, connectionStatus: rosStatus } = useROS();
@@ -63,7 +60,9 @@ const VideoControls: React.FC = () => {
startVideoSrv.callService(
new ROSLIB.ServiceRequest(camRequest),
(response: VideoOutResponse) => {
- console.log(response.success ? "Success" : "Failed");
+ if (!response.success) {
+ toast.error("Failed to select preset: " + presetName)
+ }
},
);
};
@@ -78,6 +77,7 @@ const VideoControls: React.FC = () => {
topic.publish(new ROSLIB.Message({}));
console.log("Stream restart triggered");
};
+
const callVideoCaptureService = (serviceName: string, filename: string = "") => {
if (!ros || rosStatus !== "connected") return;
@@ -288,4 +288,4 @@ const VideoControls: React.FC = () => {
);
};
-export default VideoControls;
\ No newline at end of file
+export default VideoControls;