icom-wlan-node
Version:
Icom WLAN (CI‑V, audio) protocol implementation for Node.js/TypeScript.
53 lines (52 loc) • 1.44 kB
TypeScript
import { UdpClient } from '../transport/UdpClient';
import { SessionType } from '../types';
export interface SessionOptions {
ip: string;
port: number;
}
export interface SessionHandlers {
onData: (data: Buffer) => void;
onSendError: (err: Error) => void;
}
export declare class Session {
readonly udp: UdpClient;
localId: number;
remoteId: number;
trackedSeq: number;
pingSeq: number;
innerSeq: number;
rigToken: number;
localToken: number;
lastSentTime: number;
lastReceivedTime: number;
private address;
private handlers;
private txHistory;
private areYouThereTimer?;
private pingTimer?;
private destroyed;
sessionType?: SessionType;
constructor(address: SessionOptions, handlers: SessionHandlers);
open(): void;
close(): void;
get localPort(): number;
sendRaw(buf: Buffer): void;
sendUntracked(buf: Buffer): void;
sendTracked(buf: Buffer): void;
retransmit(seq: number): void;
private idleTimer?;
startIdle(): void;
stopIdle(): void;
startAreYouThere(): void;
stopAreYouThere(): void;
startPing(): void;
stopPing(): void;
stopTimers(): void;
setRemote(ip: string, port: number): void;
/**
* Reset session state to initial values
* Call this before reconnecting to ensure clean state
* (especially important after radio restart)
*/
resetState(): void;
}