daas-sdk
Version:
nodejs wrapper for the DaaS-IoT SDK
340 lines (285 loc) • 7.61 kB
TypeScript
/**
* 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,
}