UNPKG

spot-sdk-ts

Version:

TypeScript bindings based on protobufs (proto3) provided by Boston Dynamics

1,315 lines (1,224 loc) 40.7 kB
/* eslint-disable */ import { RobotCommandFeedbackStatus_Status, robotCommandFeedbackStatus_StatusFromJSON, robotCommandFeedbackStatus_StatusToJSON, } from "../basic_command"; import { RequestHeader, ResponseHeader } from "../header"; import { Lease, LeaseUseResult } from "../lease"; import { Vec3 } from "../geometry"; import _m0 from "protobufjs/minimal"; export const protobufPackage = "bosdyn.api.spot"; /** A door command for the robot to execute plus a lease. */ export interface OpenDoorCommandRequest { /** Common request header. */ header: RequestHeader | undefined; /** The Lease to show ownership of the robot. */ lease: Lease | undefined; /** The command to execute. */ doorCommand: DoorCommand_Request | undefined; } /** Response to the door command request. */ export interface OpenDoorCommandResponse { /** Common response header. */ header: ResponseHeader | undefined; /** Details about how the lease was used. */ leaseUseResult: LeaseUseResult | undefined; /** Return status for a request. */ status: OpenDoorCommandResponse_Status; /** Human-readable error description. Not for programmatic analysis. */ message: string; /** Unique identifier for the command, If empty, command was not accepted. */ doorCommandId: number; } export enum OpenDoorCommandResponse_Status { /** STATUS_UNKNOWN - An unknown / unexpected error occurred. */ STATUS_UNKNOWN = 0, /** STATUS_OK - Request was accepted. */ STATUS_OK = 1, /** STATUS_ROBOT_COMMAND_ERROR - Error sending command to RobotCommandService. */ STATUS_ROBOT_COMMAND_ERROR = 2, UNRECOGNIZED = -1, } export function openDoorCommandResponse_StatusFromJSON( object: any ): OpenDoorCommandResponse_Status { switch (object) { case 0: case "STATUS_UNKNOWN": return OpenDoorCommandResponse_Status.STATUS_UNKNOWN; case 1: case "STATUS_OK": return OpenDoorCommandResponse_Status.STATUS_OK; case 2: case "STATUS_ROBOT_COMMAND_ERROR": return OpenDoorCommandResponse_Status.STATUS_ROBOT_COMMAND_ERROR; case -1: case "UNRECOGNIZED": default: return OpenDoorCommandResponse_Status.UNRECOGNIZED; } } export function openDoorCommandResponse_StatusToJSON( object: OpenDoorCommandResponse_Status ): string { switch (object) { case OpenDoorCommandResponse_Status.STATUS_UNKNOWN: return "STATUS_UNKNOWN"; case OpenDoorCommandResponse_Status.STATUS_OK: return "STATUS_OK"; case OpenDoorCommandResponse_Status.STATUS_ROBOT_COMMAND_ERROR: return "STATUS_ROBOT_COMMAND_ERROR"; case OpenDoorCommandResponse_Status.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** A request for feedback of a specific door command. */ export interface OpenDoorFeedbackRequest { /** Common request header. */ header: RequestHeader | undefined; /** Unique identifier for the command, provided by OpenDoorResponse. */ doorCommandId: number; } /** Feedback for a specific door command. This RPC reports the robot's progress opening a door. */ export interface OpenDoorFeedbackResponse { /** Common response header. */ header: ResponseHeader | undefined; /** Generic robot command feedback. */ status: RobotCommandFeedbackStatus_Status; /** Specific door full body command feedback. */ feedback: DoorCommand_Feedback | undefined; } /** Door Command specific request and Feedback. */ export interface DoorCommand {} /** * Specify if the hinge is on the left or right side of the door, when looking at the door, * relative to the door handle. */ export enum DoorCommand_HingeSide { HINGE_SIDE_UNKNOWN = 0, HINGE_SIDE_LEFT = 1, HINGE_SIDE_RIGHT = 2, UNRECOGNIZED = -1, } export function doorCommand_HingeSideFromJSON( object: any ): DoorCommand_HingeSide { switch (object) { case 0: case "HINGE_SIDE_UNKNOWN": return DoorCommand_HingeSide.HINGE_SIDE_UNKNOWN; case 1: case "HINGE_SIDE_LEFT": return DoorCommand_HingeSide.HINGE_SIDE_LEFT; case 2: case "HINGE_SIDE_RIGHT": return DoorCommand_HingeSide.HINGE_SIDE_RIGHT; case -1: case "UNRECOGNIZED": default: return DoorCommand_HingeSide.UNRECOGNIZED; } } export function doorCommand_HingeSideToJSON( object: DoorCommand_HingeSide ): string { switch (object) { case DoorCommand_HingeSide.HINGE_SIDE_UNKNOWN: return "HINGE_SIDE_UNKNOWN"; case DoorCommand_HingeSide.HINGE_SIDE_LEFT: return "HINGE_SIDE_LEFT"; case DoorCommand_HingeSide.HINGE_SIDE_RIGHT: return "HINGE_SIDE_RIGHT"; case DoorCommand_HingeSide.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Specify if the door is push or pull, when looking at the door. */ export enum DoorCommand_SwingDirection { SWING_DIRECTION_UNKNOWN = 0, /** @deprecated */ SWING_DIRECTION_INSWING = 1, SWING_DIRECTION_PULL = 1, /** @deprecated */ SWING_DIRECTION_OUTSWING = 2, SWING_DIRECTION_PUSH = 2, UNRECOGNIZED = -1, } export function doorCommand_SwingDirectionFromJSON( object: any ): DoorCommand_SwingDirection { switch (object) { case 0: case "SWING_DIRECTION_UNKNOWN": return DoorCommand_SwingDirection.SWING_DIRECTION_UNKNOWN; case 1: case "SWING_DIRECTION_INSWING": return DoorCommand_SwingDirection.SWING_DIRECTION_INSWING; case 1: case "SWING_DIRECTION_PULL": return DoorCommand_SwingDirection.SWING_DIRECTION_PULL; case 2: case "SWING_DIRECTION_OUTSWING": return DoorCommand_SwingDirection.SWING_DIRECTION_OUTSWING; case 2: case "SWING_DIRECTION_PUSH": return DoorCommand_SwingDirection.SWING_DIRECTION_PUSH; case -1: case "UNRECOGNIZED": default: return DoorCommand_SwingDirection.UNRECOGNIZED; } } export function doorCommand_SwingDirectionToJSON( object: DoorCommand_SwingDirection ): string { switch (object) { case DoorCommand_SwingDirection.SWING_DIRECTION_UNKNOWN: return "SWING_DIRECTION_UNKNOWN"; case DoorCommand_SwingDirection.SWING_DIRECTION_INSWING: return "SWING_DIRECTION_INSWING"; case DoorCommand_SwingDirection.SWING_DIRECTION_PULL: return "SWING_DIRECTION_PULL"; case DoorCommand_SwingDirection.SWING_DIRECTION_OUTSWING: return "SWING_DIRECTION_OUTSWING"; case DoorCommand_SwingDirection.SWING_DIRECTION_PUSH: return "SWING_DIRECTION_PUSH"; case DoorCommand_SwingDirection.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Specify type of door handle. */ export enum DoorCommand_HandleType { HANDLE_TYPE_UNKNOWN = 0, HANDLE_TYPE_LEVER = 1, HANDLE_TYPE_KNOB = 2, HANDLE_TYPE_FIXED_GRASP = 3, UNRECOGNIZED = -1, } export function doorCommand_HandleTypeFromJSON( object: any ): DoorCommand_HandleType { switch (object) { case 0: case "HANDLE_TYPE_UNKNOWN": return DoorCommand_HandleType.HANDLE_TYPE_UNKNOWN; case 1: case "HANDLE_TYPE_LEVER": return DoorCommand_HandleType.HANDLE_TYPE_LEVER; case 2: case "HANDLE_TYPE_KNOB": return DoorCommand_HandleType.HANDLE_TYPE_KNOB; case 3: case "HANDLE_TYPE_FIXED_GRASP": return DoorCommand_HandleType.HANDLE_TYPE_FIXED_GRASP; case -1: case "UNRECOGNIZED": default: return DoorCommand_HandleType.UNRECOGNIZED; } } export function doorCommand_HandleTypeToJSON( object: DoorCommand_HandleType ): string { switch (object) { case DoorCommand_HandleType.HANDLE_TYPE_UNKNOWN: return "HANDLE_TYPE_UNKNOWN"; case DoorCommand_HandleType.HANDLE_TYPE_LEVER: return "HANDLE_TYPE_LEVER"; case DoorCommand_HandleType.HANDLE_TYPE_KNOB: return "HANDLE_TYPE_KNOB"; case DoorCommand_HandleType.HANDLE_TYPE_FIXED_GRASP: return "HANDLE_TYPE_FIXED_GRASP"; case DoorCommand_HandleType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** * The robot searches along a ray for the door handle and automatically grasp it before * executing door opening. */ export interface DoorCommand_AutoGraspCommand { /** The name of the frame that the following fields are expressed in. */ frameName: string; /** The start of the ray the robot searches along for the door handle. */ searchRayStartInFrame: Vec3 | undefined; /** The end of the ray the robot searches along for the door handle. */ searchRayEndInFrame: Vec3 | undefined; /** The side of the hinge with respect to the robot when facing the door. */ hingeSide: DoorCommand_HingeSide; /** The direction the door moves with respect to the robot. */ swingDirection: DoorCommand_SwingDirection; } /** * The robot is already grasping the door handle and will continue opening the door based on * user specified params. */ export interface DoorCommand_WarmstartCommand { /** The side of the hinge with respect to the robot when facing the door. */ hingeSide: DoorCommand_HingeSide; /** The direction the door moves with respect to the robot. */ swingDirection: DoorCommand_SwingDirection; /** The type of handle on the door. */ handleType: DoorCommand_HandleType; } /** * Open doors that do not require a grasp, just a push. This could be a door with no latching * mechanism that just requires a push, or a door with a pushbar. * The robot will automatically push the door open and walk through. */ export interface DoorCommand_AutoPushCommand { /** The name of the frame that the following fields are expressed in. */ frameName: string; /** The point that the robot will push on. */ pushPointInFrame: Vec3 | undefined; /** The side of the hinge with respect to the robot when facing the door. */ hingeSide: DoorCommand_HingeSide; } export interface DoorCommand_Request { autoGraspCommand: DoorCommand_AutoGraspCommand | undefined; warmstartCommand: DoorCommand_WarmstartCommand | undefined; autoPushCommand: DoorCommand_AutoPushCommand | undefined; } export interface DoorCommand_Feedback { /** Current status of the command. */ status: DoorCommand_Feedback_Status; } export enum DoorCommand_Feedback_Status { /** STATUS_UNKNOWN - STATUS_UNKNOWN should never be used. If used, an internal error has happened. */ STATUS_UNKNOWN = 0, /** STATUS_COMPLETED - Robot has finished opening the door. */ STATUS_COMPLETED = 1, /** STATUS_IN_PROGRESS - Robot is attempting to open the door. */ STATUS_IN_PROGRESS = 2, UNRECOGNIZED = -1, } export function doorCommand_Feedback_StatusFromJSON( object: any ): DoorCommand_Feedback_Status { switch (object) { case 0: case "STATUS_UNKNOWN": return DoorCommand_Feedback_Status.STATUS_UNKNOWN; case 1: case "STATUS_COMPLETED": return DoorCommand_Feedback_Status.STATUS_COMPLETED; case 2: case "STATUS_IN_PROGRESS": return DoorCommand_Feedback_Status.STATUS_IN_PROGRESS; case -1: case "UNRECOGNIZED": default: return DoorCommand_Feedback_Status.UNRECOGNIZED; } } export function doorCommand_Feedback_StatusToJSON( object: DoorCommand_Feedback_Status ): string { switch (object) { case DoorCommand_Feedback_Status.STATUS_UNKNOWN: return "STATUS_UNKNOWN"; case DoorCommand_Feedback_Status.STATUS_COMPLETED: return "STATUS_COMPLETED"; case DoorCommand_Feedback_Status.STATUS_IN_PROGRESS: return "STATUS_IN_PROGRESS"; case DoorCommand_Feedback_Status.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } function createBaseOpenDoorCommandRequest(): OpenDoorCommandRequest { return { header: undefined, lease: undefined, doorCommand: undefined }; } export const OpenDoorCommandRequest = { encode( message: OpenDoorCommandRequest, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.header !== undefined) { RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim(); } if (message.lease !== undefined) { Lease.encode(message.lease, writer.uint32(18).fork()).ldelim(); } if (message.doorCommand !== undefined) { DoorCommand_Request.encode( message.doorCommand, writer.uint32(34).fork() ).ldelim(); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): OpenDoorCommandRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOpenDoorCommandRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = RequestHeader.decode(reader, reader.uint32()); break; case 2: message.lease = Lease.decode(reader, reader.uint32()); break; case 4: message.doorCommand = DoorCommand_Request.decode( reader, reader.uint32() ); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OpenDoorCommandRequest { return { header: isSet(object.header) ? RequestHeader.fromJSON(object.header) : undefined, lease: isSet(object.lease) ? Lease.fromJSON(object.lease) : undefined, doorCommand: isSet(object.doorCommand) ? DoorCommand_Request.fromJSON(object.doorCommand) : undefined, }; }, toJSON(message: OpenDoorCommandRequest): unknown { const obj: any = {}; message.header !== undefined && (obj.header = message.header ? RequestHeader.toJSON(message.header) : undefined); message.lease !== undefined && (obj.lease = message.lease ? Lease.toJSON(message.lease) : undefined); message.doorCommand !== undefined && (obj.doorCommand = message.doorCommand ? DoorCommand_Request.toJSON(message.doorCommand) : undefined); return obj; }, fromPartial<I extends Exact<DeepPartial<OpenDoorCommandRequest>, I>>( object: I ): OpenDoorCommandRequest { const message = createBaseOpenDoorCommandRequest(); message.header = object.header !== undefined && object.header !== null ? RequestHeader.fromPartial(object.header) : undefined; message.lease = object.lease !== undefined && object.lease !== null ? Lease.fromPartial(object.lease) : undefined; message.doorCommand = object.doorCommand !== undefined && object.doorCommand !== null ? DoorCommand_Request.fromPartial(object.doorCommand) : undefined; return message; }, }; function createBaseOpenDoorCommandResponse(): OpenDoorCommandResponse { return { header: undefined, leaseUseResult: undefined, status: 0, message: "", doorCommandId: 0, }; } export const OpenDoorCommandResponse = { encode( message: OpenDoorCommandResponse, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.header !== undefined) { ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim(); } if (message.leaseUseResult !== undefined) { LeaseUseResult.encode( message.leaseUseResult, writer.uint32(18).fork() ).ldelim(); } if (message.status !== 0) { writer.uint32(24).int32(message.status); } if (message.message !== "") { writer.uint32(34).string(message.message); } if (message.doorCommandId !== 0) { writer.uint32(40).uint32(message.doorCommandId); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): OpenDoorCommandResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOpenDoorCommandResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = ResponseHeader.decode(reader, reader.uint32()); break; case 2: message.leaseUseResult = LeaseUseResult.decode( reader, reader.uint32() ); break; case 3: message.status = reader.int32() as any; break; case 4: message.message = reader.string(); break; case 5: message.doorCommandId = reader.uint32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OpenDoorCommandResponse { return { header: isSet(object.header) ? ResponseHeader.fromJSON(object.header) : undefined, leaseUseResult: isSet(object.leaseUseResult) ? LeaseUseResult.fromJSON(object.leaseUseResult) : undefined, status: isSet(object.status) ? openDoorCommandResponse_StatusFromJSON(object.status) : 0, message: isSet(object.message) ? String(object.message) : "", doorCommandId: isSet(object.doorCommandId) ? Number(object.doorCommandId) : 0, }; }, toJSON(message: OpenDoorCommandResponse): unknown { const obj: any = {}; message.header !== undefined && (obj.header = message.header ? ResponseHeader.toJSON(message.header) : undefined); message.leaseUseResult !== undefined && (obj.leaseUseResult = message.leaseUseResult ? LeaseUseResult.toJSON(message.leaseUseResult) : undefined); message.status !== undefined && (obj.status = openDoorCommandResponse_StatusToJSON(message.status)); message.message !== undefined && (obj.message = message.message); message.doorCommandId !== undefined && (obj.doorCommandId = Math.round(message.doorCommandId)); return obj; }, fromPartial<I extends Exact<DeepPartial<OpenDoorCommandResponse>, I>>( object: I ): OpenDoorCommandResponse { const message = createBaseOpenDoorCommandResponse(); message.header = object.header !== undefined && object.header !== null ? ResponseHeader.fromPartial(object.header) : undefined; message.leaseUseResult = object.leaseUseResult !== undefined && object.leaseUseResult !== null ? LeaseUseResult.fromPartial(object.leaseUseResult) : undefined; message.status = object.status ?? 0; message.message = object.message ?? ""; message.doorCommandId = object.doorCommandId ?? 0; return message; }, }; function createBaseOpenDoorFeedbackRequest(): OpenDoorFeedbackRequest { return { header: undefined, doorCommandId: 0 }; } export const OpenDoorFeedbackRequest = { encode( message: OpenDoorFeedbackRequest, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.header !== undefined) { RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim(); } if (message.doorCommandId !== 0) { writer.uint32(16).uint32(message.doorCommandId); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): OpenDoorFeedbackRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOpenDoorFeedbackRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = RequestHeader.decode(reader, reader.uint32()); break; case 2: message.doorCommandId = reader.uint32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OpenDoorFeedbackRequest { return { header: isSet(object.header) ? RequestHeader.fromJSON(object.header) : undefined, doorCommandId: isSet(object.doorCommandId) ? Number(object.doorCommandId) : 0, }; }, toJSON(message: OpenDoorFeedbackRequest): unknown { const obj: any = {}; message.header !== undefined && (obj.header = message.header ? RequestHeader.toJSON(message.header) : undefined); message.doorCommandId !== undefined && (obj.doorCommandId = Math.round(message.doorCommandId)); return obj; }, fromPartial<I extends Exact<DeepPartial<OpenDoorFeedbackRequest>, I>>( object: I ): OpenDoorFeedbackRequest { const message = createBaseOpenDoorFeedbackRequest(); message.header = object.header !== undefined && object.header !== null ? RequestHeader.fromPartial(object.header) : undefined; message.doorCommandId = object.doorCommandId ?? 0; return message; }, }; function createBaseOpenDoorFeedbackResponse(): OpenDoorFeedbackResponse { return { header: undefined, status: 0, feedback: undefined }; } export const OpenDoorFeedbackResponse = { encode( message: OpenDoorFeedbackResponse, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.header !== undefined) { ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim(); } if (message.status !== 0) { writer.uint32(800).int32(message.status); } if (message.feedback !== undefined) { DoorCommand_Feedback.encode( message.feedback, writer.uint32(18).fork() ).ldelim(); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): OpenDoorFeedbackResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOpenDoorFeedbackResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = ResponseHeader.decode(reader, reader.uint32()); break; case 100: message.status = reader.int32() as any; break; case 2: message.feedback = DoorCommand_Feedback.decode( reader, reader.uint32() ); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OpenDoorFeedbackResponse { return { header: isSet(object.header) ? ResponseHeader.fromJSON(object.header) : undefined, status: isSet(object.status) ? robotCommandFeedbackStatus_StatusFromJSON(object.status) : 0, feedback: isSet(object.feedback) ? DoorCommand_Feedback.fromJSON(object.feedback) : undefined, }; }, toJSON(message: OpenDoorFeedbackResponse): unknown { const obj: any = {}; message.header !== undefined && (obj.header = message.header ? ResponseHeader.toJSON(message.header) : undefined); message.status !== undefined && (obj.status = robotCommandFeedbackStatus_StatusToJSON(message.status)); message.feedback !== undefined && (obj.feedback = message.feedback ? DoorCommand_Feedback.toJSON(message.feedback) : undefined); return obj; }, fromPartial<I extends Exact<DeepPartial<OpenDoorFeedbackResponse>, I>>( object: I ): OpenDoorFeedbackResponse { const message = createBaseOpenDoorFeedbackResponse(); message.header = object.header !== undefined && object.header !== null ? ResponseHeader.fromPartial(object.header) : undefined; message.status = object.status ?? 0; message.feedback = object.feedback !== undefined && object.feedback !== null ? DoorCommand_Feedback.fromPartial(object.feedback) : undefined; return message; }, }; function createBaseDoorCommand(): DoorCommand { return {}; } export const DoorCommand = { encode(_: DoorCommand, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): DoorCommand { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDoorCommand(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(_: any): DoorCommand { return {}; }, toJSON(_: DoorCommand): unknown { const obj: any = {}; return obj; }, fromPartial<I extends Exact<DeepPartial<DoorCommand>, I>>(_: I): DoorCommand { const message = createBaseDoorCommand(); return message; }, }; function createBaseDoorCommand_AutoGraspCommand(): DoorCommand_AutoGraspCommand { return { frameName: "", searchRayStartInFrame: undefined, searchRayEndInFrame: undefined, hingeSide: 0, swingDirection: 0, }; } export const DoorCommand_AutoGraspCommand = { encode( message: DoorCommand_AutoGraspCommand, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.frameName !== "") { writer.uint32(10).string(message.frameName); } if (message.searchRayStartInFrame !== undefined) { Vec3.encode( message.searchRayStartInFrame, writer.uint32(18).fork() ).ldelim(); } if (message.searchRayEndInFrame !== undefined) { Vec3.encode( message.searchRayEndInFrame, writer.uint32(26).fork() ).ldelim(); } if (message.hingeSide !== 0) { writer.uint32(32).int32(message.hingeSide); } if (message.swingDirection !== 0) { writer.uint32(40).int32(message.swingDirection); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): DoorCommand_AutoGraspCommand { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDoorCommand_AutoGraspCommand(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.frameName = reader.string(); break; case 2: message.searchRayStartInFrame = Vec3.decode(reader, reader.uint32()); break; case 3: message.searchRayEndInFrame = Vec3.decode(reader, reader.uint32()); break; case 4: message.hingeSide = reader.int32() as any; break; case 5: message.swingDirection = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DoorCommand_AutoGraspCommand { return { frameName: isSet(object.frameName) ? String(object.frameName) : "", searchRayStartInFrame: isSet(object.searchRayStartInFrame) ? Vec3.fromJSON(object.searchRayStartInFrame) : undefined, searchRayEndInFrame: isSet(object.searchRayEndInFrame) ? Vec3.fromJSON(object.searchRayEndInFrame) : undefined, hingeSide: isSet(object.hingeSide) ? doorCommand_HingeSideFromJSON(object.hingeSide) : 0, swingDirection: isSet(object.swingDirection) ? doorCommand_SwingDirectionFromJSON(object.swingDirection) : 0, }; }, toJSON(message: DoorCommand_AutoGraspCommand): unknown { const obj: any = {}; message.frameName !== undefined && (obj.frameName = message.frameName); message.searchRayStartInFrame !== undefined && (obj.searchRayStartInFrame = message.searchRayStartInFrame ? Vec3.toJSON(message.searchRayStartInFrame) : undefined); message.searchRayEndInFrame !== undefined && (obj.searchRayEndInFrame = message.searchRayEndInFrame ? Vec3.toJSON(message.searchRayEndInFrame) : undefined); message.hingeSide !== undefined && (obj.hingeSide = doorCommand_HingeSideToJSON(message.hingeSide)); message.swingDirection !== undefined && (obj.swingDirection = doorCommand_SwingDirectionToJSON( message.swingDirection )); return obj; }, fromPartial<I extends Exact<DeepPartial<DoorCommand_AutoGraspCommand>, I>>( object: I ): DoorCommand_AutoGraspCommand { const message = createBaseDoorCommand_AutoGraspCommand(); message.frameName = object.frameName ?? ""; message.searchRayStartInFrame = object.searchRayStartInFrame !== undefined && object.searchRayStartInFrame !== null ? Vec3.fromPartial(object.searchRayStartInFrame) : undefined; message.searchRayEndInFrame = object.searchRayEndInFrame !== undefined && object.searchRayEndInFrame !== null ? Vec3.fromPartial(object.searchRayEndInFrame) : undefined; message.hingeSide = object.hingeSide ?? 0; message.swingDirection = object.swingDirection ?? 0; return message; }, }; function createBaseDoorCommand_WarmstartCommand(): DoorCommand_WarmstartCommand { return { hingeSide: 0, swingDirection: 0, handleType: 0 }; } export const DoorCommand_WarmstartCommand = { encode( message: DoorCommand_WarmstartCommand, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.hingeSide !== 0) { writer.uint32(8).int32(message.hingeSide); } if (message.swingDirection !== 0) { writer.uint32(16).int32(message.swingDirection); } if (message.handleType !== 0) { writer.uint32(24).int32(message.handleType); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): DoorCommand_WarmstartCommand { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDoorCommand_WarmstartCommand(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.hingeSide = reader.int32() as any; break; case 2: message.swingDirection = reader.int32() as any; break; case 3: message.handleType = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DoorCommand_WarmstartCommand { return { hingeSide: isSet(object.hingeSide) ? doorCommand_HingeSideFromJSON(object.hingeSide) : 0, swingDirection: isSet(object.swingDirection) ? doorCommand_SwingDirectionFromJSON(object.swingDirection) : 0, handleType: isSet(object.handleType) ? doorCommand_HandleTypeFromJSON(object.handleType) : 0, }; }, toJSON(message: DoorCommand_WarmstartCommand): unknown { const obj: any = {}; message.hingeSide !== undefined && (obj.hingeSide = doorCommand_HingeSideToJSON(message.hingeSide)); message.swingDirection !== undefined && (obj.swingDirection = doorCommand_SwingDirectionToJSON( message.swingDirection )); message.handleType !== undefined && (obj.handleType = doorCommand_HandleTypeToJSON(message.handleType)); return obj; }, fromPartial<I extends Exact<DeepPartial<DoorCommand_WarmstartCommand>, I>>( object: I ): DoorCommand_WarmstartCommand { const message = createBaseDoorCommand_WarmstartCommand(); message.hingeSide = object.hingeSide ?? 0; message.swingDirection = object.swingDirection ?? 0; message.handleType = object.handleType ?? 0; return message; }, }; function createBaseDoorCommand_AutoPushCommand(): DoorCommand_AutoPushCommand { return { frameName: "", pushPointInFrame: undefined, hingeSide: 0 }; } export const DoorCommand_AutoPushCommand = { encode( message: DoorCommand_AutoPushCommand, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.frameName !== "") { writer.uint32(10).string(message.frameName); } if (message.pushPointInFrame !== undefined) { Vec3.encode(message.pushPointInFrame, writer.uint32(18).fork()).ldelim(); } if (message.hingeSide !== 0) { writer.uint32(24).int32(message.hingeSide); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): DoorCommand_AutoPushCommand { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDoorCommand_AutoPushCommand(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.frameName = reader.string(); break; case 2: message.pushPointInFrame = Vec3.decode(reader, reader.uint32()); break; case 3: message.hingeSide = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DoorCommand_AutoPushCommand { return { frameName: isSet(object.frameName) ? String(object.frameName) : "", pushPointInFrame: isSet(object.pushPointInFrame) ? Vec3.fromJSON(object.pushPointInFrame) : undefined, hingeSide: isSet(object.hingeSide) ? doorCommand_HingeSideFromJSON(object.hingeSide) : 0, }; }, toJSON(message: DoorCommand_AutoPushCommand): unknown { const obj: any = {}; message.frameName !== undefined && (obj.frameName = message.frameName); message.pushPointInFrame !== undefined && (obj.pushPointInFrame = message.pushPointInFrame ? Vec3.toJSON(message.pushPointInFrame) : undefined); message.hingeSide !== undefined && (obj.hingeSide = doorCommand_HingeSideToJSON(message.hingeSide)); return obj; }, fromPartial<I extends Exact<DeepPartial<DoorCommand_AutoPushCommand>, I>>( object: I ): DoorCommand_AutoPushCommand { const message = createBaseDoorCommand_AutoPushCommand(); message.frameName = object.frameName ?? ""; message.pushPointInFrame = object.pushPointInFrame !== undefined && object.pushPointInFrame !== null ? Vec3.fromPartial(object.pushPointInFrame) : undefined; message.hingeSide = object.hingeSide ?? 0; return message; }, }; function createBaseDoorCommand_Request(): DoorCommand_Request { return { autoGraspCommand: undefined, warmstartCommand: undefined, autoPushCommand: undefined, }; } export const DoorCommand_Request = { encode( message: DoorCommand_Request, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.autoGraspCommand !== undefined) { DoorCommand_AutoGraspCommand.encode( message.autoGraspCommand, writer.uint32(82).fork() ).ldelim(); } if (message.warmstartCommand !== undefined) { DoorCommand_WarmstartCommand.encode( message.warmstartCommand, writer.uint32(90).fork() ).ldelim(); } if (message.autoPushCommand !== undefined) { DoorCommand_AutoPushCommand.encode( message.autoPushCommand, writer.uint32(98).fork() ).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): DoorCommand_Request { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDoorCommand_Request(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 10: message.autoGraspCommand = DoorCommand_AutoGraspCommand.decode( reader, reader.uint32() ); break; case 11: message.warmstartCommand = DoorCommand_WarmstartCommand.decode( reader, reader.uint32() ); break; case 12: message.autoPushCommand = DoorCommand_AutoPushCommand.decode( reader, reader.uint32() ); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DoorCommand_Request { return { autoGraspCommand: isSet(object.autoGraspCommand) ? DoorCommand_AutoGraspCommand.fromJSON(object.autoGraspCommand) : undefined, warmstartCommand: isSet(object.warmstartCommand) ? DoorCommand_WarmstartCommand.fromJSON(object.warmstartCommand) : undefined, autoPushCommand: isSet(object.autoPushCommand) ? DoorCommand_AutoPushCommand.fromJSON(object.autoPushCommand) : undefined, }; }, toJSON(message: DoorCommand_Request): unknown { const obj: any = {}; message.autoGraspCommand !== undefined && (obj.autoGraspCommand = message.autoGraspCommand ? DoorCommand_AutoGraspCommand.toJSON(message.autoGraspCommand) : undefined); message.warmstartCommand !== undefined && (obj.warmstartCommand = message.warmstartCommand ? DoorCommand_WarmstartCommand.toJSON(message.warmstartCommand) : undefined); message.autoPushCommand !== undefined && (obj.autoPushCommand = message.autoPushCommand ? DoorCommand_AutoPushCommand.toJSON(message.autoPushCommand) : undefined); return obj; }, fromPartial<I extends Exact<DeepPartial<DoorCommand_Request>, I>>( object: I ): DoorCommand_Request { const message = createBaseDoorCommand_Request(); message.autoGraspCommand = object.autoGraspCommand !== undefined && object.autoGraspCommand !== null ? DoorCommand_AutoGraspCommand.fromPartial(object.autoGraspCommand) : undefined; message.warmstartCommand = object.warmstartCommand !== undefined && object.warmstartCommand !== null ? DoorCommand_WarmstartCommand.fromPartial(object.warmstartCommand) : undefined; message.autoPushCommand = object.autoPushCommand !== undefined && object.autoPushCommand !== null ? DoorCommand_AutoPushCommand.fromPartial(object.autoPushCommand) : undefined; return message; }, }; function createBaseDoorCommand_Feedback(): DoorCommand_Feedback { return { status: 0 }; } export const DoorCommand_Feedback = { encode( message: DoorCommand_Feedback, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.status !== 0) { writer.uint32(8).int32(message.status); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): DoorCommand_Feedback { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDoorCommand_Feedback(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.status = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): DoorCommand_Feedback { return { status: isSet(object.status) ? doorCommand_Feedback_StatusFromJSON(object.status) : 0, }; }, toJSON(message: DoorCommand_Feedback): unknown { const obj: any = {}; message.status !== undefined && (obj.status = doorCommand_Feedback_StatusToJSON(message.status)); return obj; }, fromPartial<I extends Exact<DeepPartial<DoorCommand_Feedback>, I>>( object: I ): DoorCommand_Feedback { const message = createBaseDoorCommand_Feedback(); message.status = object.status ?? 0; return message; }, }; type Builtin = | Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> } : Partial<T>; type KeysOfUnion<T> = T extends T ? keyof T : never; export type Exact<P, I extends P> = P extends Builtin ? P : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never; }; function isSet(value: any): boolean { return value !== null && value !== undefined; }