-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclient-map.ts
More file actions
76 lines (72 loc) · 2.2 KB
/
client-map.ts
File metadata and controls
76 lines (72 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import {
ArmClient,
AudioInClient,
AudioOutClient,
BaseClient,
BoardClient,
ButtonClient,
CameraClient,
DataManagerClient,
DiscoveryClient,
EncoderClient,
GantryClient,
GenericComponentClient,
GenericServiceClient,
GripperClient,
InputControllerClient,
MLModelClient,
MotionClient,
MotorClient,
MovementSensorClient,
NavigationClient,
PoseTrackerClient,
PowerSensorClient,
type ResourceName,
SensorClient,
ServoClient,
SlamClient,
SwitchClient,
VideoClient,
VisionClient,
WorldStateStoreClient,
} from '@viamrobotics/sdk'
import { getResourceAPI } from './resource.ts'
export const clientMap = {
'rdk:component:arm': ArmClient,
'rdk:component:audio_in': AudioInClient,
'rdk:component:audio_out': AudioOutClient,
'rdk:component:base': BaseClient,
'rdk:component:board': BoardClient,
'rdk:component:button': ButtonClient,
'rdk:component:camera': CameraClient,
'rdk:component:encoder': EncoderClient,
'rdk:component:gantry': GantryClient,
'rdk:component:generic': GenericComponentClient,
'rdk:component:gripper': GripperClient,
'rdk:component:input_controller': InputControllerClient,
'rdk:component:motor': MotorClient,
'rdk:component:movement_sensor': MovementSensorClient,
'rdk:component:pose_tracker': PoseTrackerClient,
'rdk:component:power_sensor': PowerSensorClient,
'rdk:component:sensor': SensorClient,
'rdk:component:servo': ServoClient,
'rdk:component:switch': SwitchClient,
'rdk:service:data_manager': DataManagerClient,
'rdk:service:discovery': DiscoveryClient,
'rdk:service:generic': GenericServiceClient,
'rdk:service:mlmodel': MLModelClient,
'rdk:service:motion': MotionClient,
'rdk:service:navigation': NavigationClient,
'rdk:service:slam': SlamClient,
'rdk:service:vision': VisionClient,
'rdk:service:world_state_store': WorldStateStoreClient,
'rdk:service:video': VideoClient,
} as const
export const clientForBuiltinResource = (resource: ResourceName) => {
const resAPI = getResourceAPI(resource)
return resAPI in clientMap ? clientMap[resAPI as keyof typeof clientMap] : undefined
}
export const supportsDoCommand = (resource: ResourceName): boolean => {
const client = clientForBuiltinResource(resource)
return client !== undefined && client !== MLModelClient
}