117 lines
3.1 KiB
Go
117 lines
3.1 KiB
Go
package simulator
|
|
|
|
type MsgType string
|
|
|
|
const (
|
|
MsgTypeControl = MsgType("control")
|
|
MsgTypeTelemetry = MsgType("telemetry")
|
|
MsgTypeCarConfig = MsgType("car_config")
|
|
MsgTypeCarLoaded = MsgType("car_loaded")
|
|
MsgTypeRacerInfo = MsgType("racer_info")
|
|
MsgTypeCameraConfig = MsgType("cam_config")
|
|
)
|
|
|
|
type Msg struct {
|
|
MsgType MsgType `json:"msg_type"`
|
|
}
|
|
|
|
type TelemetryMsg struct {
|
|
MsgType MsgType `json:"msg_type"`
|
|
SteeringAngle float64 `json:"steering_angle"`
|
|
Throttle float64 `json:"throttle"`
|
|
Speed float64 `json:"speed"`
|
|
Image []byte `json:"image"`
|
|
Hit string `json:"hit"`
|
|
PosX float64 `json:"pos_x"`
|
|
PosY float64 `json:"posy"`
|
|
PosZ float64 `json:"pos_z"`
|
|
Time float64 `json:"time"`
|
|
Cte float64 `json:"cte"`
|
|
}
|
|
|
|
/* Json msg used to control cars. MsgType must be filled with "control" */
|
|
type ControlMsg struct {
|
|
MsgType MsgType `json:"msg_type"`
|
|
Steering string `json:"steering"`
|
|
Throttle string `json:"throttle"`
|
|
Brake string `json:"brake"`
|
|
}
|
|
|
|
type GetSceneNamesMsg struct {
|
|
MsgType MsgType `json:"msg_type"`
|
|
SceneName string `json:"scene_name"`
|
|
}
|
|
|
|
type LoadSceneMsg struct {
|
|
MsgType MsgType `json:"msg_type"`
|
|
SceneName string `json:"scene_name"`
|
|
}
|
|
|
|
type CarStyle string
|
|
|
|
const (
|
|
CarConfigBodyStyleDonkey = CarStyle("donkey")
|
|
CarConfigBodyStyleBare = CarStyle("bare")
|
|
CarConfigBodyStyleCar01 = CarStyle("car01")
|
|
)
|
|
|
|
/*
|
|
# body_style = "donkey" | "bare" | "car01" choice of string
|
|
# body_rgb = (128, 128, 128) tuple of ints
|
|
# car_name = "string less than 64 char"
|
|
*/
|
|
type CarConfigMsg struct {
|
|
MsgType MsgType `json:"msg_type"`
|
|
BodyStyle CarStyle `json:"body_style"`
|
|
BodyR string `json:"body_r"`
|
|
BodyG string `json:"body_g"`
|
|
BodyB string `json:"body_b"`
|
|
CarName string `json:"car_name"`
|
|
FontSize string `json:"font_size"`
|
|
}
|
|
|
|
/*
|
|
# car_name = "string less than 64 char"
|
|
# guid = "some random string"
|
|
*/
|
|
type RacerBioMsg struct {
|
|
MsgType MsgType `json:"msg_type"`
|
|
RacerName string `json:"racer_name"`
|
|
CarName string `json:"car_name"`
|
|
Bio string `json:"bio"`
|
|
Country string `json:"country"`
|
|
Guid string `json:"guid"`
|
|
}
|
|
|
|
type CameraImageEnc string
|
|
|
|
const (
|
|
CameraImageEncJpeg = CameraImageEnc("JPG")
|
|
CameraImageEncPng = CameraImageEnc("PNG")
|
|
CameraImageEncTga = CameraImageEnc("TGA")
|
|
)
|
|
|
|
/* Camera config
|
|
set any field to Zero to get the default camera setting.
|
|
offset_x moves camera left/right
|
|
offset_y moves camera up/down
|
|
offset_z moves camera forward/back
|
|
rot_x will rotate the camera
|
|
with fish_eye_x/y == 0.0 then you get no distortion
|
|
img_enc can be one of JPG|PNG|TGA
|
|
*/
|
|
type CamConfigMsg struct {
|
|
MsgType MsgType `json:"msg_type"`
|
|
Fov string `json:"fov"`
|
|
FishEyeX string `json:"fish_eye_x"`
|
|
FishEyeY string `json:"fish_eye_Y"`
|
|
ImgW string `json:"img_w"`
|
|
ImgH string `json:"img_h"`
|
|
ImgD string `json:"img_d"`
|
|
ImgEnc CameraImageEnc `json:"img_enc"`
|
|
OffsetX string `json:"offset_x"`
|
|
OffsetY string `json:"offset_y"`
|
|
OffsetZ string `json:"offset_z"`
|
|
RotX string `json:"rot_x"`
|
|
}
|