@essense/iso-claim
Version:
Library & background program that implements the ISO address claim procedure for CANbus (i.e. for NMEA2000 devices)
59 lines (58 loc) • 1.62 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import CANBus from './can-bus';
export interface CANNodeOptions {
supportedPGNs: number[];
preferAddress: number;
deviceClass?: number;
deviceFunction?: number;
systemInstance?: number;
industryGroup?: number;
instanceLower?: number;
instanceUpper?: number;
manufacturerCode?: number;
uniqueNumber?: number;
certificationLevel?: number;
loadEquivalency?: number;
modelId?: string;
modelSerialCode?: string;
modelVersion?: string;
productCode?: string;
port?: number;
reconnect?: boolean;
}
declare interface CANNode {
options: CANNodeOptions;
bus: CANBus;
address: number;
connected: boolean;
state: number;
}
declare class CANNode extends EventEmitter {
protected READY: number;
protected ADDRESS_REQUESTED: number;
protected IDLE: number;
private addressClaimTimeout;
private http;
private busname;
private reconnect;
constructor(bus: string, opts: CANNodeOptions);
init(): void;
requestISO(PGN: number, dest?: number): void;
private showDevicesJSON;
private showDevicesTable;
private incomingMessage;
private addressClaimFields;
private claimAddress;
private setReady;
private NAKacknowledgement;
private broadcastSupportedPGNs;
private broadcastProductInfo;
private handleISORequest;
private handleGroupFunction;
private handleProductInfo;
private handleSupportedPGNList;
private handleISOAddressClaim;
private increaseAddress;
}
export default CANNode;