import { Observable, Subject } from 'rxjs'; import { IMotionMasterMessage, MotionMasterMessage } from './util'; export declare type RequestType = keyof MotionMasterMessage.IRequest; export declare type StatusType = keyof MotionMasterMessage.IStatus; export declare type SignalGeneratorType = keyof MotionMasterMessage.Request.ISetSignalGeneratorParameters; export declare type ComputeAutoTuningGainsType = keyof MotionMasterMessage.Request.IComputeAutoTuningGains; export declare type DeviceAddressType = number | null | undefined; /** * Select observable of Status message based on status type argument. * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html#conditional-types */ export declare type StatusTypeObservable = T extends 'systemPong' ? Observable : T extends 'systemVersion' ? Observable : T extends 'systemEvent' ? Observable : T extends 'deviceInfo' ? Observable : T extends 'deviceParameterInfo' ? Observable : T extends 'deviceParameterValues' ? Observable : T extends 'multiDeviceParameterValues' ? Observable : T extends 'deviceFileList' ? Observable : T extends 'deviceFile' ? Observable : T extends 'deviceEvent' ? Observable : T extends 'deviceFirmwareInstallation' ? Observable : T extends 'deviceLog' ? Observable : T extends 'deviceFaultReset' ? Observable : T extends 'coggingTorqueRecording' ? Observable : T extends 'coggingTorqueData' ? Observable : T extends 'offsetDetection' ? Observable : T extends 'plantIdentification' ? Observable : T extends 'autoTuning' ? Observable : T extends 'motionController' ? Observable : T extends 'signalGenerator' ? Observable : T extends 'monitoringParameterValues' ? Observable : T extends 'deviceStop' ? Observable : T extends 'ethercatNetworkState' ? Observable : T extends 'narrowAngleCalibration' ? Observable : T extends 'systemIdentification' ? Observable : T extends 'circuloEncoderMagnetDistance' ? Observable : T extends 'circuloEncoderNarrowAngleCalibrationProcedure' ? Observable : T extends 'deviceCia402State' ? Observable : T extends 'systemLog' ? Observable : T extends 'deviceSiiRestore' ? Observable : T extends 'openLoopFieldControl' ? Observable : T extends 'fullAutoTuning' ? Observable : T extends 'circuloEncoderConfiguration' ? Observable : T extends 'osCommand' ? Observable : Observable; export declare class MotionMasterClient { /** * Decoded message instances coming from Motion Master. * @see https://github.com/protobufjs/protobuf.js#toolset Message.decode */ readonly input$: Subject; /** * Message instances or objects going to Motion Master. * @see https://github.com/protobufjs/protobuf.js#toolset Message.encode */ readonly output$: Subject; requestPingSystem(messageId?: string): Observable; requestGetSystemVersion(messageId?: string): Observable; requestGetDeviceInfo(messageId?: string): Observable; requestGetDeviceParameterInfo(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestGetDeviceParameterValues(deviceAddress: DeviceAddressType, parameters: MotionMasterMessage.Request.GetDeviceParameterValues.IParameter[], sendProgress?: boolean, messageId?: string): Observable; requestSetDeviceParameterValues(deviceAddress: DeviceAddressType, parameterValues: MotionMasterMessage.Request.SetDeviceParameterValues.IParameterValue[], messageId?: string): Observable; requestGetDeviceFileList(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestGetDeviceFile(deviceAddress: DeviceAddressType, name: string, messageId?: string): Observable; requestSetDeviceFile(deviceAddress: DeviceAddressType, name: string, content: Uint8Array, overwrite: boolean, messageId?: string): Observable; requestDeleteDeviceFile(deviceAddress: DeviceAddressType, name: string, messageId?: string): Observable; requestResetDeviceFault(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestStopDevice(deviceAddress: DeviceAddressType, messageId?: string): string; requestStartDeviceFirmwareInstallation(deviceAddress: DeviceAddressType, firmwarePackageContent: Uint8Array, skipSiiInstallation?: boolean, messageId?: string): Observable; requestGetDeviceLog(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestStartCoggingTorqueRecording(deviceAddress: DeviceAddressType, skipAutoTuning: boolean, messageId?: string): Observable; requestGetCoggingTorqueData(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestStartOffsetDetection(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestStartPlantIdentification(deviceAddress: DeviceAddressType, durationSeconds: number, torqueAmplitude: number, startFrequency: number, endFrequency: number, cutoffFrequency: number, messageId?: string): Observable; requestComputePositionAutoTuningGains(deviceAddress: DeviceAddressType, positionParameters: MotionMasterMessage.Request.ComputeAutoTuningGains.IPositionParameters, messageId?: string): Observable; requestComputeVelocityAutoTuningGains(deviceAddress: DeviceAddressType, velocityParameters: MotionMasterMessage.Request.ComputeAutoTuningGains.IVelocityParameters, messageId?: string): Observable; requestComputeFullAutoTuningGains(deviceAddress: DeviceAddressType, type: MotionMasterMessage.Request.ComputeFullAutoTuningGains.Type, controllerType?: MotionMasterMessage.Request.ComputeAutoTuningGains.PositionParameters.ControllerType, messageId?: string): Observable; requestSetMotionControllerParameters(deviceAddress: DeviceAddressType, target: number, messageId?: string): string; requestEnableMotionController(deviceAddress: DeviceAddressType, controllerType: MotionMasterMessage.Request.EnableMotionController.ControllerType, filterValue: boolean, messageId?: string): Observable; requestDisableMotionController(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestSetSignalGeneratorParameters(setSignalGeneratorParameters: MotionMasterMessage.Request.ISetSignalGeneratorParameters, messageId?: string): string; requestStartSignalGenerator(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestStopSignalGenerator(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestStartMonitoringDeviceParameterValues(deviceAddress: DeviceAddressType, parameters: MotionMasterMessage.Request.GetDeviceParameterValues.IParameter[], interval: number, topic: string, messageId?: string): Observable; requestStopMonitoringDeviceParameterValues(startMonitoringRequestId: string, messageId?: string): Observable; requestGetEthercatNetworkState(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestSetEthercatNetworkState(deviceAddress: DeviceAddressType, state: MotionMasterMessage.Request.SetEthercatNetworkState.State, messageId?: string): Observable; requestStartNarrowAngleCalibration(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestSetSystemClientTimeout(timeoutMs: number, messageId?: string): string; requestStartSystemIdentification(deviceAddress: DeviceAddressType, durationSeconds: number, torqueAmplitude: number, startFrequency: number, endFrequency: number, messageId?: string): Observable; requestGetCirculoEncoderMagnetDistance(deviceAddress: DeviceAddressType, encoderOrdinal: number, ringRevision: number, messageId?: string): Observable; requestStartCirculoEncoderNarrowAngleCalibrationProcedure(deviceAddress: DeviceAddressType, encoderOrdinal: number, messageId?: string): Observable; requestGetDeviceCia402State(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestSetDeviceCia402State(deviceAddress: DeviceAddressType, state: MotionMasterMessage.Status.DeviceCiA402State.State, messageId?: string): Observable; requestGetSystemLog(messageId?: string): Observable; requestStartDeviceSiiRestore(devicePosition: number, siiContent: Uint8Array, messageId?: string): Observable; requestStartOpenLoopFieldControl(properties: MotionMasterMessage.Request.IStartOpenLoopFieldControl, messageId?: string): Observable; requestStartFullAutoTuning(deviceAddress: DeviceAddressType, type: MotionMasterMessage.Request.StartFullAutoTuning.Type, controllerType?: MotionMasterMessage.Request.ComputeAutoTuningGains.PositionParameters.ControllerType, messageId?: string): Observable; requestStopFullAutoTuning(deviceAddress: DeviceAddressType, messageId?: string): Observable; requestStartCirculoEncoderConfiguration(deviceAddress: DeviceAddressType, encoderOrdinal: number, messageId?: string): Observable; requestStopCirculoEncoderNarrowAngleCalibrationProcedure(deviceAddress: DeviceAddressType, encoderOrdinal: number, messageId?: string): Observable; requestStartOsCommand(deviceAddress: DeviceAddressType, timeoutMs: number, command: Uint8Array, messageId?: string): Observable; /** * Select device at position in EtherCAT chain. This function makes an initial request to fetch a list of devices. * @param position device position in EtherCAT chain * @returns an observable of device messages */ selectDeviceAtPosition(position: number): Observable; /** * Select incoming messages by id. * * This function filters messages by id as there can be multiple messages coming in for a single request, * e.g. startOffsetDetection → started → progress → done. Ensure that you unsubscribe or use `takeWhile` operator. * * @param messageId * @returns an observable of motion master messages */ selectMessage(messageId: string): Observable; /** * Select incoming messages by id (optionally) and get their status response. * * This function filters messages by id as there can be multiple messages coming in for a single request, * e.g. startOffsetDetection → started → progress → done. Ensure that you unsubscribe or use `takeWhile` operator. * * @param messageId * @param type of status message received as a response */ selectMessageStatus(type: T, messageId?: string): StatusTypeObservable; /** * Send Request message to output. * @param request proto message * @param [messageId] identifies request, if no messageId is provided one is generated with uuid v4 and returned * @returns passed or generated messageId */ sendRequest(request: MotionMasterMessage.IRequest, messageId?: string): string; sendMessage(message: IMotionMasterMessage): string | null | undefined; } //# sourceMappingURL=motion-master-client.d.ts.map