roslib
Version:
The standard ROS Javascript Library
187 lines (186 loc) • 8.43 kB
TypeScript
/**
* https://github.com/RobotWebTools/rosbridge_suite/blob/ros2/ROSBRIDGE_PROTOCOL.md
*/
export interface RosbridgeMessageBase {
op: string;
}
export declare function isRosbridgeMessage(message: unknown): message is RosbridgeMessageBase;
export interface RosbridgeAuthMessage extends RosbridgeMessageBase {
op: "auth";
mac: string;
client: string;
dest: string;
rand: string;
t: number;
level: string;
end: number;
}
export interface RosbridgeStatusMessage extends RosbridgeMessageBase {
op: "status";
id?: string;
level: string;
msg: string;
}
export declare function isRosbridgeStatusMessage(message: RosbridgeMessageBase): message is RosbridgeStatusMessage;
export interface RosbridgeSetStatusLevelMessage extends RosbridgeMessageBase {
op: "set_level";
id?: string;
level: "info" | "warning" | "error" | "none";
}
export declare function isRosbridgeSetStatusLevelMessage(message: RosbridgeMessageBase): message is RosbridgeSetStatusLevelMessage;
export interface RosbridgeFragmentMessage extends RosbridgeMessageBase {
op: "fragment";
id: string;
data: string;
num: number;
total: number;
}
export declare function isRosbridgeFragmentMessage(message: RosbridgeMessageBase): message is RosbridgeFragmentMessage;
export interface RosbridgePngMessage extends RosbridgeMessageBase {
op: "png";
id?: string;
data: string;
num?: number;
total?: number;
}
export declare function isRosbridgePngMessage(message: RosbridgeMessageBase): message is RosbridgePngMessage;
export interface RosbridgeAdvertiseMessage extends RosbridgeMessageBase {
op: "advertise";
id?: string;
type: string;
topic: string;
latch?: boolean;
queue_size?: number;
}
export declare function isRosbridgeAdvertiseMessage(message: RosbridgeMessageBase): message is RosbridgeAdvertiseMessage;
export interface RosbridgeUnadvertiseMessage extends RosbridgeMessageBase {
op: "unadvertise";
id?: string;
topic: string;
}
export declare function isRosbridgeUnadvertiseMessage(message: RosbridgeMessageBase): message is RosbridgeUnadvertiseMessage;
export interface RosbridgePublishMessage<TMessage = unknown> extends RosbridgeMessageBase {
op: "publish";
id?: string;
topic: string;
msg: TMessage;
}
export declare function isRosbridgePublishMessage<T>(message: RosbridgeMessageBase): message is RosbridgePublishMessage<T>;
export interface RosbridgeSubscribeMessage extends RosbridgeMessageBase {
op: "subscribe";
id?: string;
topic: string;
type?: string;
throttle_rate?: number;
queue_length?: number;
fragment_size?: number;
compression?: string;
}
export declare function isRosbridgeSubscribeMessage(message: RosbridgeMessageBase): message is RosbridgeSubscribeMessage;
export interface RosbridgeUnsubscribeMessage extends RosbridgeMessageBase {
op: "unsubscribe";
id?: string;
topic: string;
}
export declare function isRosbridgeUnsubscribeMessage(message: RosbridgeMessageBase): message is RosbridgeUnsubscribeMessage;
export interface RosbridgeAdvertiseServiceMessage extends RosbridgeMessageBase {
op: "advertise_service";
type: string;
service: string;
}
export declare function isRosbridgeAdvertiseServiceMessage(message: RosbridgeMessageBase): message is RosbridgeAdvertiseServiceMessage;
export interface RosbridgeUnadvertiseServiceMessage extends RosbridgeMessageBase {
op: "unadvertise_service";
service: string;
}
export declare function isRosbridgeUnadvertiseServiceMessage(message: RosbridgeMessageBase): message is RosbridgeUnadvertiseServiceMessage;
export interface RosbridgeCallServiceMessage<TArgs = unknown> extends RosbridgeMessageBase {
op: "call_service";
id?: string;
service: string;
/**
* TODO this should be deeply partial when *outgoing*, because rosbridge will "fill in the blanks",
* but it's not partial when *incoming* - need to figure out a way to represent this.
*/
args: TArgs;
fragment_size?: number;
compression?: string;
timeout?: number;
}
export declare function isRosbridgeCallServiceMessage<T>(message: RosbridgeMessageBase): message is RosbridgeCallServiceMessage<T>;
interface BaseRosbridgeServiceResponseMessage extends RosbridgeMessageBase {
op: "service_response";
id?: string;
service: string;
}
/** If the service call failed, `values` will be a string error message. */
export interface FailedRosbridgeServiceResponseMessage extends BaseRosbridgeServiceResponseMessage {
values?: string;
result: false;
}
export interface SuccessfulRosbridgeServiceResponseMessage<TValues = unknown> extends BaseRosbridgeServiceResponseMessage {
values: TValues;
result: true;
}
export type RosbridgeServiceResponseMessage<TValues = unknown> = FailedRosbridgeServiceResponseMessage | SuccessfulRosbridgeServiceResponseMessage<TValues>;
export declare function isRosbridgeServiceResponseMessage<T>(message: RosbridgeMessageBase): message is RosbridgeServiceResponseMessage<T>;
export interface RosbridgeAdvertiseActionMessage extends RosbridgeMessageBase {
op: "advertise_action";
type: string;
action: string;
}
export declare function isRosbridgeAdvertiseActionMessage(message: RosbridgeMessageBase): message is RosbridgeAdvertiseActionMessage;
export interface RosbridgeUnadvertiseActionMessage extends RosbridgeMessageBase {
op: "unadvertise_action";
action: string;
}
export declare function isRosbridgeUnadvertiseActionMessage(message: RosbridgeMessageBase): message is RosbridgeUnadvertiseActionMessage;
export interface RosbridgeSendActionGoalMessage<TArgs = unknown> extends RosbridgeMessageBase {
op: "send_action_goal";
id: string;
action: string;
action_type: string;
args?: TArgs;
feedback?: boolean;
fragment_size?: number;
compression?: string;
}
export declare function isRosbridgeSendActionGoalMessage<TArgs = unknown>(message: RosbridgeMessageBase): message is RosbridgeSendActionGoalMessage<TArgs>;
export interface RosbridgeCancelActionGoalMessage extends RosbridgeMessageBase {
op: "cancel_action_goal";
id: string;
action: string;
}
export declare function isRosbridgeCancelActionGoalMessage(message: RosbridgeMessageBase): message is RosbridgeCancelActionGoalMessage;
export interface RosbridgeActionFeedbackMessage<TFeedback = unknown> extends RosbridgeMessageBase {
op: "action_feedback";
id: string;
action: string;
values: TFeedback;
}
export declare function isRosbridgeActionFeedbackMessage<TFeedback = unknown>(message: RosbridgeMessageBase): message is RosbridgeActionFeedbackMessage<TFeedback>;
interface RosbridgeActionResultMessageBase extends RosbridgeMessageBase {
op: "action_result";
id: string;
action: string;
status: number;
}
export interface FailedRosbridgeActionResultMessage extends RosbridgeActionResultMessageBase {
result: false;
values?: string;
}
export interface SuccessfulRosbridgeActionResultMessage<TResultValues = unknown> extends RosbridgeActionResultMessageBase {
values: TResultValues;
result: true;
}
export type RosbridgeActionResultMessage<TResultValues = unknown> = FailedRosbridgeActionResultMessage | SuccessfulRosbridgeActionResultMessage<TResultValues>;
export declare function isRosbridgeActionResultMessage<TResultValues = unknown>(message: RosbridgeMessageBase): message is RosbridgeActionResultMessage<TResultValues>;
export interface RosbridgeActionStatusMessage extends RosbridgeMessageBase {
op: "action_status";
id: string;
action: string;
status: number;
}
export declare function isRosbridgeActionStatusMessage(message: RosbridgeMessageBase): message is RosbridgeActionStatusMessage;
export type RosbridgeMessage = RosbridgeAuthMessage | RosbridgeStatusMessage | RosbridgeSetStatusLevelMessage | RosbridgeFragmentMessage | RosbridgePngMessage | RosbridgeAdvertiseMessage | RosbridgeUnadvertiseMessage | RosbridgePublishMessage | RosbridgeSubscribeMessage | RosbridgeUnsubscribeMessage | RosbridgeAdvertiseServiceMessage | RosbridgeUnadvertiseServiceMessage | RosbridgeCallServiceMessage | RosbridgeServiceResponseMessage | RosbridgeAdvertiseActionMessage | RosbridgeUnadvertiseActionMessage | RosbridgeSendActionGoalMessage | RosbridgeCancelActionGoalMessage | RosbridgeActionFeedbackMessage | RosbridgeActionResultMessage;
export {};