@foxglove/ros1
Version:
Standalone TypeScript implementation of the ROS 1 (Robot Operating System) protocol with a pluggable transport layer
46 lines • 1.44 kB
TypeScript
import EventEmitter from "eventemitter3";
import { Client, ClientStats } from "./Client";
import { LoggerService } from "./LoggerService";
import { Publication } from "./Publication";
import { TcpSocket } from "./TcpTypes";
export type PublicationLookup = (topic: string) => Publication | undefined;
type TcpClientOpts = {
socket: TcpSocket;
nodeName: string;
getPublication: PublicationLookup;
log?: LoggerService;
};
export interface TcpClientEvents {
close: () => void;
subscribe: (topic: string, destinationCallerId: string) => void;
error: (err: Error) => void;
}
export declare class TcpClient extends EventEmitter<TcpClientEvents> implements Client {
private _socket;
private _address?;
private _port?;
private _transportInfo;
private _nodeName;
private _connected;
private _receivedHeader;
private _stats;
private _getPublication;
private _log?;
private _transformer;
constructor({ socket, nodeName, getPublication, log }: TcpClientOpts);
transportType(): string;
connected(): boolean;
stats(): ClientStats;
write(data: Uint8Array): Promise<void>;
close(): void;
getTransportInfo(): string;
toString(): string;
private _updateTransportInfo;
private _writeHeader;
private _handleClose;
private _handleError;
private _handleData;
private _handleMessage;
}
export {};
//# sourceMappingURL=TcpClient.d.ts.map