sim800
Version:
A modern and opiniated module for SIM800 GSM modems ( SIM800 / SIM800L ).
72 lines (71 loc) • 3.5 kB
TypeScript
/// <reference types="node" />
import { AsyncSubject, Subject } from 'rxjs';
import EventEmitter from 'stream';
import { Sim800Command } from './classes/sim800-command';
import { Sim800Sms } from './classes/sim800-sms';
import { Sim800DeliveryEvent, Sim800DeliveryStatusDetail } from './interfaces/sim-800-delivery.interface';
import { Sim800ClientConfig } from './interfaces/sim800-client-config.interface';
import { Sim800ClientState } from './interfaces/sim800-client-state.enum';
import { Sim800EventEmitter } from './interfaces/sim800-event-emitter';
import { Sim800IncomingSms } from './interfaces/sim800-incoming-sms.interface';
import { Sim800MultipartSms } from './interfaces/sim800-multipart-sms.interface';
import { Sim800OutgoingSms, Sim800OutgoingSmsPart, Sim800OutgoingSmsStatus, Sim800OutgoingSmsStreamEvent } from './interfaces/sim800-outgoing-sms.interface';
import { NetworkStatus } from './interfaces';
export declare class Sim800Client implements Sim800EventEmitter {
eventEmitter: EventEmitter;
private nextJob$;
private buffer;
private port;
private baudRate;
private delimiter;
private logger;
private serial;
private parser;
private noInit;
private pin?;
private cnmi;
ready$: AsyncSubject<boolean>;
network$: AsyncSubject<boolean>;
smsBusy$: AsyncSubject<boolean>;
stream$: Subject<string>;
inputStream$: Subject<string>;
smsStream$: Subject<Sim800OutgoingSmsStreamEvent>;
deliveryReportStream$: Subject<Sim800DeliveryEvent>;
smsQueuePing$: Subject<void>;
state: Sim800ClientState;
incomingSms: Sim800MultipartSms[];
preventWipe: boolean;
outboxSpooler: Sim800OutgoingSms[];
receivingDeliveryReport: boolean;
smsQueue: Sim800Sms[];
constructor({ port, baudRate, delimiter, logger, pin, preventWipe, noInit }: Sim800ClientConfig);
private init;
awaitDevice(): Promise<boolean>;
isNetworkReady(): Promise<boolean>;
send(command: Sim800Command, options?: {
raw?: boolean;
}): Promise<string | string[] | null>;
sendSms(number: string, text: string, deliveryReport?: boolean): Promise<number[] | undefined>;
private handlePinState;
/**
*
* @deprecated will be removed from the next minor release
*/
checkNetwork(network$: AsyncSubject<boolean>): void;
monitorNetworkUntilReady(network$: AsyncSubject<boolean>): void;
getNetworkStatus(): Promise<NetworkStatus>;
private setNetworkReady;
private setNetworkNotReady;
private handleNetworkResult;
private handleInputData;
reset(emptyBuffers?: boolean, gracePeriodMs?: number): void;
deleteAllStoredSms(): Promise<void>;
on(event: 'deviceReady', listener: () => void): import('events');
on(event: 'networkReady', listener: () => void): import('events');
on(event: 'input', listener: (data: string) => void): import('events');
on(event: 'incoming-sms', listener: (sms: Sim800IncomingSms) => void): EventEmitter;
on(event: 'sms-sent', listener: (compositeId: number[]) => void): EventEmitter;
on(event: 'delivery-report', listener: (compositeId: number[], status: Sim800OutgoingSmsStatus.Delivered, detail?: Omit<Sim800OutgoingSmsPart, 'belongsTo'>[]) => void): EventEmitter;
on(event: 'delivery-report', listener: (compositeId: number[], status: Sim800OutgoingSmsStatus, detail?: Sim800DeliveryStatusDetail) => void): EventEmitter;
on(event: 'error', listener: (error: Error) => void): EventEmitter;
}