@essense/iso-claim
Version:
Library & background program that implements the ISO address claim procedure for CANbus (i.e. for NMEA2000 devices)
70 lines (69 loc) • 1.66 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
declare interface CANBus {
bus: string;
channel: any;
open: boolean;
address?: number;
parser: any;
network: object;
}
export interface CANMessage {
id: number;
ext: boolean;
data: Uint8Array;
timestamp?: string;
}
export interface CANBoatMessage {
pgn: number;
src: number;
dest: number;
id?: number;
data?: Uint8Array;
timestamp?: string;
length: number;
description: string;
fields: any;
}
export interface OutgoingIntermediate {
pgn: number;
src: number;
dest?: number;
dst?: number;
data: any;
}
export interface N2KMessage {
pgn: number;
src?: number;
dest?: number;
timestamp?: string;
length?: number;
id: number;
data: Uint8Array;
}
interface PGNIntermediate {
id: number;
pgn: number;
src: number;
dest: number;
}
declare class CANBus extends EventEmitter {
constructor(bus: string);
getAddress(): number;
setAddress(address: number): void;
addDevice(src: number, device: object): void;
getDevices(array?: boolean): object;
reconnect(): void;
connect(): void;
send(message: OutgoingIntermediate): void;
sendRawPgn(pgn: number, data: Buffer, dest?: number): void;
isConnected(): boolean;
PGNtoID(pgn: number, src: number, dest?: number, prio?: number): number;
IDtoPGN(id: number): PGNIntermediate;
CANtoN2Kmessage(message: CANMessage): N2KMessage;
private generateCANFrames;
private handlePGN;
private onChannelMessage;
private onChannelStopped;
}
export default CANBus;