@foxglove/ros1
Version:
Standalone TypeScript implementation of the ROS 1 (Robot Operating System) protocol with a pluggable transport layer
52 lines • 2 kB
TypeScript
import { MessageDefinition } from "@foxglove/message-definition";
import { MessageReader } from "@foxglove/rosmsg-serialization";
import { EventEmitter } from "eventemitter3";
import { Connection, ConnectionStats } from "./Connection";
import { LoggerService } from "./LoggerService";
import { TcpAddress, TcpSocket } from "./TcpTypes";
export interface TcpConnectionEvents {
header: (header: Map<string, string>, messageDefinition: MessageDefinition[], messageReader: MessageReader) => void;
message: (msg: unknown, msgData: Uint8Array) => void;
error: (err: Error) => void;
}
export declare class TcpConnection extends EventEmitter<TcpConnectionEvents> implements Connection {
retries: number;
private _socket;
private _address;
private _port;
private _connected;
private _shutdown;
private _transportInfo;
private _readingHeader;
private _requestHeader;
private _header;
private _stats;
private _transformer;
private _msgDefinition;
private _msgReader;
private _log?;
constructor(socket: TcpSocket, address: string, port: number, requestHeader: Map<string, string>, log?: LoggerService);
transportType(): string;
remoteAddress(): Promise<TcpAddress | undefined>;
connect(): Promise<void>;
private _retryConnection;
connected(): boolean;
header(): Map<string, string>;
stats(): ConnectionStats;
messageDefinition(): MessageDefinition[];
messageReader(): MessageReader | undefined;
close(): void;
writeHeader(): Promise<void>;
getTransportInfo(): string;
toString(): string;
private _getTransportInfo;
private _handleConnect;
private _handleClose;
private _handleError;
private _handleData;
private _handleMessage;
static Uri(address: string, port: number): string;
static SerializeHeader(header: Map<string, string>): Uint8Array;
static ParseHeader(data: Uint8Array): Map<string, string>;
}
//# sourceMappingURL=TcpConnection.d.ts.map