UNPKG

@foxglove/ros1

Version:

Standalone TypeScript implementation of the ROS 1 (Robot Operating System) protocol with a pluggable transport layer

50 lines 1.75 kB
import { MessageDefinition } from "@foxglove/message-definition"; import { MessageReader } from "@foxglove/rosmsg-serialization"; import { EventEmitter } from "eventemitter3"; import { Connection } from "./Connection"; import { PublisherLink } from "./PublisherLink"; import { RosFollowerClient } from "./RosFollowerClient"; type PublisherStats = [ connectionId: number, bytesReceived: number, messagesReceived: number, estimatedDrops: number, connected: 0 ]; type PublisherInfo = [ connectionId: number, publisherXmlRpcUri: string, direction: "i", transport: string, topicName: string, connected: number, connectionInfo: string ]; type SubscriptionOpts = { name: string; md5sum: string; dataType: string; tcpNoDelay: boolean; }; export interface SubscriptionEvents { header: (header: Map<string, string>, msgDef: MessageDefinition[], msgReader: MessageReader) => void; message: (msg: unknown, data: Uint8Array, publisher: PublisherLink) => void; error: (err: Error) => void; } export declare class Subscription extends EventEmitter<SubscriptionEvents> { readonly name: string; readonly md5sum: string; readonly dataType: string; readonly tcpNoDelay: boolean; private _publishers; constructor({ name, md5sum, dataType, tcpNoDelay }: SubscriptionOpts); close(): void; publishers(): Readonly<Map<number, PublisherLink>>; addPublisher(connectionId: number, rosFollowerClient: RosFollowerClient, connection: Connection): void; removePublisher(connectionId: number): boolean; getInfo(): PublisherInfo[]; getStats(): [string, PublisherStats[]]; receivedBytes(): number; } export {}; //# sourceMappingURL=Subscription.d.ts.map