-
Notifications
You must be signed in to change notification settings - Fork 296
Expand file tree
/
Copy pathWebsocketDataTypes.ts
More file actions
126 lines (118 loc) · 3.12 KB
/
WebsocketDataTypes.ts
File metadata and controls
126 lines (118 loc) · 3.12 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import type {
CameraCalibrationResult,
GeneralSettings,
LightingSettings,
LogLevel,
MetricData,
NetworkSettings,
PVCameraInfo,
QuirkyCamera,
VsmState
} from "@/types/SettingTypes";
import type { ActivePipelineSettings } from "@/types/PipelineTypes";
import type { AprilTagFieldLayout, PipelineResult } from "@/types/PhotonTrackingTypes";
export interface WebsocketLogMessage {
logMessage: {
logLevel: LogLevel;
logMessage: string;
};
}
export interface WebsocketSettingsUpdate {
general: Required<GeneralSettings>;
lighting: Required<LightingSettings>;
networkSettings: NetworkSettings;
atfl: AprilTagFieldLayout;
}
export interface WebsocketNumberPair {
first: number;
second: number;
}
export type WebsocketVideoFormat = Record<
number,
{
fps: number;
height: number;
width: number;
pixelFormat: string;
index?: number;
diagonalFOV?: number;
horizontalFOV?: number;
verticalFOV?: number;
standardDeviation?: number;
mean?: number;
}
>;
// Companion to UICameraConfiguration in Java
export interface WebsocketCameraSettingsUpdate {
cameraPath: string;
calibrations: CameraCalibrationResult[];
currentPipelineIndex: number;
currentPipelineSettings: ActivePipelineSettings;
fov: number;
inputStreamPort: number;
isFovConfigurable: boolean;
isCSICamera: boolean;
nickname: string;
uniqueName: string;
outputStreamPort: number;
pipelineNicknames: string[];
videoFormatList: WebsocketVideoFormat;
cameraQuirks: QuirkyCamera;
minExposureRaw: number;
maxExposureRaw: number;
minWhiteBalanceTemp: number;
maxWhiteBalanceTemp: number;
matchedCameraInfo: PVCameraInfo;
fpsLimit: number;
isConnected: boolean;
hasConnected: boolean;
mismatch: boolean;
isDuplicateCamera?: boolean;
sourceUniqueName?: string;
sourceCameraNickname?: string;
inputSettingsReadOnly?: boolean;
}
export interface WebsocketNTUpdate {
connected: boolean;
address?: string;
clients?: number;
}
// key is the index of the camera, value is that camera's result
export type WebsocketPipelineResultUpdate = Record<string, PipelineResult>;
export interface WebsocketCalibrationData {
patternWidth: number;
boardType: number;
hasEnough: boolean;
count: number;
minCount: number;
videoModeIndex: number;
patternHeight: number;
squareSizeIn: number;
markerSizeIn: number;
}
export interface IncomingWebsocketData {
log?: WebsocketLogMessage;
settings?: WebsocketSettingsUpdate;
cameraSettings?: WebsocketCameraSettingsUpdate[];
ntConnectionInfo?: WebsocketNTUpdate;
metrics?: Required<MetricData>;
updatePipelineResult?: WebsocketPipelineResultUpdate;
networkInfo?: {
possibleRios: string[];
deviceIps: string[];
};
mutatePipelineSettings?: Partial<ActivePipelineSettings>;
cameraUniqueName?: string; // Sent when mutating pipeline settings to check against currently active
calibrationData?: WebsocketCalibrationData;
visionSourceManager?: VsmState;
}
export enum WebsocketPipelineType {
FocusCamera = -3,
Calib3d = -2,
DriverMode = -1,
Reflective = 0,
ColoredShape = 1,
AprilTag = 2,
Aruco = 3,
ObjectDetection = 4
}