UNPKG

daas-sdk

Version:

nodejs wrapper for the DaaS-IoT SDK

340 lines (285 loc) 7.61 kB
/** * DaaS-IoT 2024 (@) Sebyone Srl * * File: index.d.ts * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. * * Contributors: * alessio.farfaglia@gmail.com - initial implementation and documentation */ /** * @module DaasIoT */ export declare class DaasIoT { /** * @param hver */ constructor(hver: string); //#region ----------------- Node ---------------- /** * Restituisce la versione della libreria, del compilatore, della libreria standard e di node-gyp * @category Node */ getVersion(): { /** rappresenta la versione attuale della sottostante libreria Daas */ daasLibrary: string; /** versione di node-gyp utilizzata per costruire il binario */ nodeGyp: string; /** nome del compilatore c++ utilizzato e la sua versione (GCC, Clang/LLVM, MSVC)*/ compiler: string; /** versione della libreria standard c++ utilizzata (GNU libstdc++, LLVM libc++, MSVC STL)*/ cppStandardLibrary: string; /** versione di Node.js */ node: string; /** versione dell'addon API di Node.js */ nodeAddonApi: string; }; /** * Restituisce lo stato del nodo del nodo locale * @category Node */ getStatus(): { /** time reference */ lasttime: number; /** platform (hard-coded) */ hwver: number; /** channels counter (0=not linked) */ linked: number; /** synchronization status (0=not in sync) */ sync: number; /** required security policy */ lock: number; /** security phrase length */ sklen: number; /** security phrase (UTF-8) */ skey: string; /** data formatting model */ form: number; /** data encryption level */ codec: number; }; /** * Imposta la funzione invocata per propagare gli eventi di rete * * @category Node */ setOnChangesCallback(); /** * Inizializza lo stack * * Genera un Errore se non è possibile inizializzare il nodo o il din è già in uso * @returns true se l’inizializzazione è andata a buon fine altrimenti lancia un errore * * @category Node */ doInit(sid: number, din: number): boolean; /** * Avvia il nodo( in RT mode needs to be called cyclically) * * @category Node */ doPerform(): boolean; /** * Rilascia le risorse di sistema e disattiva il nodo * * * @returns true se il reset è andato a buon fine false altrimenti * @category Node */ doEnd(): boolean; /** * Inizializza le risorse di sistema e riavvia il nodo * * @returns true se il reset è andato a buon fine false altrimenti * @category Node */ doReset(): boolean; /** * Inizializza e abilita i driver per le interfacce disponibili * @param driver - 1 = "DaaS", 2 = "INET4", 3 = "MQTT", 4 = "UART" * @param data - dati di configurazione del driver, per INET4 è l'indirizzo IP * @category Node */ enableDriver(driver: DriverTypes, data: string): boolean; /** * Restituisce lista dei driver abilitati(1 = "INET4", 2 = "UART", 3 = "MQTT") * * @category Node */ listAvailableDrivers(): string[]; // /** // * Restituisce la lista dei moduli di sistema attivi // */ // listSystems(); // /** // * Restituisce le configurazioni attive // */ // getSystemSettings(); // /** // * Modifica le proprietà di configurazione // */ // setSystemProperty(); // /** // * Restituisce informazioni statistiche // */ // getSystemStatistics(); // /** // * Resetta i contatori e le variabili statistiche, imposta “zero - time” // */ // doSystemStatisticsReset(); //#region ------------- Mapping ------------- /** * Aggiunge i riferimenti di indirizzamento per i nodi remoti * @param din - indirizzo del nodo remoto * @param link - canale di comunicazione, 0 = ND, 1 = DaaS, 2 = Inet/IP, 3 = MQTT, 4 = Serial line * @param suri - URI del nodo remoto * @param skey - chiave di sicurezza * * @returns true se l’operazione è andata a buon fine altrimenti genera un errore * @category Mapping */ map(din: number, link?: number, suri?: string, skey?: string): boolean; /** * Verifica la disponibilità di riferimenti per l’indirizzamento(no network's acts) * * @param din - indirizzo del nodo remoto * @returns true se il nodo è mappato altrimenti false * @category Mapping */ locate(din: number): boolean; /** * Restituisce l’elenco dei nodi indirizzabili * * @category Mapping */ listNodes(): any[]; /** * Rintraccia nodo remoto * * @category Mapping */ fetch(din: number); /** * Rimuove i riferimenti di indirizzamento al nodo indicato * * @category Mapping * @returns true se l’operazione è andata a buon fine altrimenti genera un errore */ remove(din: number): boolean; //#region ----------- Security(Protect) -------------- // /** // * Varia le politiche di sicurezza adottate dal nodo locale // * // * @category Security // */ // lock(policy, skey); // /** // * Risolve le procedure di sicurezza tra nodo locale e nodo remoto indicato // * // * @category Security // */ // unLock(din: number, skey); //#region --------- Synchronize ------------ // /** // * Sincronizza il nodo remoto con il tempo locale rispetto alla time - zone // * // * @category Synchronize // */ // syncNode(din: number, timezone); // /** // * Imposta la finestra temporale entro cui devono essere risolte le trasmissioni // * // * @category Synchronize // */ // syncNet(bubble_time); //#region ---------- Transfer -------------- /** * Restituisce l’elenco dei tipi di oggetti dati definiti dall’utente * * @category Transfer */ typesetList(); /** * Aggiunge una definizione di oggetto dati * * @param typesetCode - codice del * * @category Transfer */ addTypeset(typesetCode: number, typesetSize: number): boolean; /** * Restituisce gli oggetti dati ricevuti * * @category Transfer */ pull(din: number, callback: (originDin: number, timestamp: number, typeset: number, data: object) => void): void; /** * Invia oggetti dati ad uno o più nodi remoti * * @param din - indirizzo del nodo remoto * @param typeset - codice dell’oggetto dati * @param timestamp - tempo di riferimento (uint32) * @param DDO - oggetto dati * * @category Transfer */ push(din: number, typeset: number, timestamp: number, DDO: object): boolean; // /** // * Invia un messaggio test al nodo remoto // * // * @category Transfer // */ // frisbee(); //#region --------------- Exchange --------------- // /** // * Attiva una sessione di comunicazione con il nodo indicato // * // * @category Exchange // */ // use(din: number); // /** // * Invia oggetto dati al nodo remoto // * // * @category Exchange // */ // send(); // /** // * Restituisce l’oggetto dati ricevuto dal nodo remoto // * // * @category Exchange // */ // receive(); // /** // * Termina una sessione di comunicazione // * // * @category Exchange // */ // end(din: number); } // export const enum ErrorCodes { // NONE = 0, // CANNOT_INITIALIZE = 1, // CANNOT_CREATE_NODE = 2, // DIN_ALREADY_EXIST = 3, // CANNOT_MAP_NODE = 4, // INVALID_USER_TYPESET = 5, // SEND_DDO = 6, // NO_DDO_PRESENT = 7, // DIN_UNKNOWN = 8, // INVALID_DME = 9, // NOT_IMPLEMENTED = 10, // }; export enum DriverTypes { /** not defined */ NONE = 0, /** DaaS routing & loopback */ DaaS = 1, /** Inet/IP */ INET4 = 2, /** MQTT */ MQTT5 = 3, /** Serial line */ UART = 4, }