diff --git a/captain/routes/devices.py b/captain/routes/devices.py index ac2513536..e078374a4 100644 --- a/captain/routes/devices.py +++ b/captain/routes/devices.py @@ -13,4 +13,5 @@ async def get_devices(): cameras=device_finder.get_cameras(), serialDevices=device_finder.get_serial_devices(), visaDevices=device_finder.get_visa_devices(), + mecademicDevices=device_finder.get_mecademic_devices(), ) diff --git a/captain/services/hardware.py b/captain/services/hardware.py index 9632f7e6b..6d88934ac 100644 --- a/captain/services/hardware.py +++ b/captain/services/hardware.py @@ -4,7 +4,7 @@ import subprocess from sys import platform -from captain.types.devices import CameraDevice, SerialDevice, VISADevice +from captain.types.devices import CameraDevice, SerialDevice, VISADevice, MecademicDevice __all__ = ["get_device_finder"] @@ -60,6 +60,11 @@ def get_visa_devices(self) -> list[VISADevice]: return devices + def get_mecademic_devices(self) -> list[MecademicDevice]: + """Returns a list of Mecademic devices connected to the system.""" + devices = [MecademicDevice(name="Flojoy's Mecademic Meca500", ip="192.168.0.100")] + return devices + class LinuxDeviceFinder(DefaultDeviceFinder): def get_cameras(self) -> list[CameraDevice]: diff --git a/captain/types/devices.py b/captain/types/devices.py index 39aef3643..fe5857b98 100644 --- a/captain/types/devices.py +++ b/captain/types/devices.py @@ -21,7 +21,13 @@ class VISADevice(BaseModel): description: str +class MecademicDevice(BaseModel): + name: str + ip: str + + class DeviceInfo(BaseModel): cameras: list[CameraDevice] serialDevices: list[SerialDevice] visaDevices: list[VISADevice] + mecademicDevices: list[MecademicDevice] diff --git a/captain/utils/manifest/build_manifest.py b/captain/utils/manifest/build_manifest.py index e4b8846be..08382ed7c 100644 --- a/captain/utils/manifest/build_manifest.py +++ b/captain/utils/manifest/build_manifest.py @@ -52,6 +52,7 @@ SerialDevice, VisaDevice, CameraConnection, + MecademicConnection, SerialConnection, VisaConnection, ] diff --git a/src/feature/common/types/ParamValueType.ts b/src/feature/common/types/ParamValueType.ts index 6c192637e..4f6e1b8a2 100644 --- a/src/feature/common/types/ParamValueType.ts +++ b/src/feature/common/types/ParamValueType.ts @@ -15,4 +15,5 @@ export type ParamValueType = | "CameraConnection" | "SerialConnection" | "VisaConnection" + | "MecademicConnection" | "unknown"; diff --git a/src/feature/device_panel/components/HardwareInfo.tsx b/src/feature/device_panel/components/HardwareInfo.tsx index 583c7f5e1..f99e4651c 100644 --- a/src/feature/device_panel/components/HardwareInfo.tsx +++ b/src/feature/device_panel/components/HardwareInfo.tsx @@ -53,6 +53,14 @@ export const HardwareInfo = () => { })) : undefined; + const mecademicDevices: DeviceCardProps[] | undefined = + devices.mecademicDevices.length > 0 + ? devices.mecademicDevices.map((d) => ({ + name: d.name, + port: d.ip, + })) + : undefined; + return (