/* eslint-disable */ import { LoadMissionResponse, PlayMissionResponse, PauseMissionResponse, StopMissionResponse, RestartMissionResponse, GetStateResponse, GetInfoResponse, GetMissionResponse, AnswerQuestionResponse, LoadMissionRequest, PlayMissionRequest, PauseMissionRequest, StopMissionRequest, RestartMissionRequest, GetStateRequest, GetInfoRequest, GetMissionRequest, AnswerQuestionRequest, } from "./mission"; import { map } from "rxjs/operators"; import { Observable } from "rxjs"; import { DataChunk } from "../data_chunk"; import _m0 from "protobufjs/minimal"; export const protobufPackage = "bosdyn.api.mission"; /** The MissionService can be used to specify high level autonomous behaviors for Spot using behavior trees. */ export interface MissionService { /** Load a mission to run later. */ LoadMission(request: LoadMissionRequest): Promise; /** * Alternative loading method for large missions, that allows you to break the * mission up into multiple streamed requests. The data chunks should deserialize * into a LoadMissionRequest */ LoadMissionAsChunks( request: Observable ): Promise; /** * Start executing a loaded mission. * Will not restart a mission that has run to completion. Use RestartMission to do that. */ PlayMission(request: PlayMissionRequest): Promise; /** Pause mission execution. */ PauseMission(request: PauseMissionRequest): Promise; /** * Stop a running mission. * Must use RestartMission, not PlayMission, to begin from the beginning. */ StopMission(request: StopMissionRequest): Promise; /** * Start executing a loaded mission from the beginning. * Does not need to be called after LoadMission. */ RestartMission( request: RestartMissionRequest ): Promise; /** Get the state of the mission. */ GetState(request: GetStateRequest): Promise; /** Get static information regarding the mission. Used to interpret mission state. */ GetInfo(request: GetInfoRequest): Promise; /** Download the mission as it was uploaded to the service. */ GetMission(request: GetMissionRequest): Promise; /** Specify an answer to the question asked by the mission. */ AnswerQuestion( request: AnswerQuestionRequest ): Promise; } export class MissionServiceClientImpl implements MissionService { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.LoadMission = this.LoadMission.bind(this); this.LoadMissionAsChunks = this.LoadMissionAsChunks.bind(this); this.PlayMission = this.PlayMission.bind(this); this.PauseMission = this.PauseMission.bind(this); this.StopMission = this.StopMission.bind(this); this.RestartMission = this.RestartMission.bind(this); this.GetState = this.GetState.bind(this); this.GetInfo = this.GetInfo.bind(this); this.GetMission = this.GetMission.bind(this); this.AnswerQuestion = this.AnswerQuestion.bind(this); } LoadMission(request: LoadMissionRequest): Promise { const data = LoadMissionRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "LoadMission", data ); return promise.then((data) => LoadMissionResponse.decode(new _m0.Reader(data)) ); } LoadMissionAsChunks( request: Observable ): Promise { const data = request.pipe( map((request) => DataChunk.encode(request).finish()) ); const promise = this.rpc.clientStreamingRequest( "bosdyn.api.mission.MissionService", "LoadMissionAsChunks", data ); return promise.then((data) => LoadMissionResponse.decode(new _m0.Reader(data)) ); } PlayMission(request: PlayMissionRequest): Promise { const data = PlayMissionRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "PlayMission", data ); return promise.then((data) => PlayMissionResponse.decode(new _m0.Reader(data)) ); } PauseMission(request: PauseMissionRequest): Promise { const data = PauseMissionRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "PauseMission", data ); return promise.then((data) => PauseMissionResponse.decode(new _m0.Reader(data)) ); } StopMission(request: StopMissionRequest): Promise { const data = StopMissionRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "StopMission", data ); return promise.then((data) => StopMissionResponse.decode(new _m0.Reader(data)) ); } RestartMission( request: RestartMissionRequest ): Promise { const data = RestartMissionRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "RestartMission", data ); return promise.then((data) => RestartMissionResponse.decode(new _m0.Reader(data)) ); } GetState(request: GetStateRequest): Promise { const data = GetStateRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "GetState", data ); return promise.then((data) => GetStateResponse.decode(new _m0.Reader(data)) ); } GetInfo(request: GetInfoRequest): Promise { const data = GetInfoRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "GetInfo", data ); return promise.then((data) => GetInfoResponse.decode(new _m0.Reader(data))); } GetMission(request: GetMissionRequest): Promise { const data = GetMissionRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "GetMission", data ); return promise.then((data) => GetMissionResponse.decode(new _m0.Reader(data)) ); } AnswerQuestion( request: AnswerQuestionRequest ): Promise { const data = AnswerQuestionRequest.encode(request).finish(); const promise = this.rpc.request( "bosdyn.api.mission.MissionService", "AnswerQuestion", data ); return promise.then((data) => AnswerQuestionResponse.decode(new _m0.Reader(data)) ); } } interface Rpc { request( service: string, method: string, data: Uint8Array ): Promise; clientStreamingRequest( service: string, method: string, data: Observable ): Promise; serverStreamingRequest( service: string, method: string, data: Uint8Array ): Observable; bidirectionalStreamingRequest( service: string, method: string, data: Observable ): Observable; }