Le JavaScript sur ZiBASE Multi - Opérations sur l'enregistreur

Le JavaScript sur ZiBASE Multi - Retour aux généralités

Le JavaScript sur ZiBASE Multi - Mise en oeuvre

Le JavaScript sur ZiBASE Multi - Opérations sur Android

Le JavaScript sur ZiBASE Multi - Opérations sur les périphériques

Le JavaScript sur ZiBASE Multi - Opérations sur les fichiers

Le JavaScript sur ZiBASE Multi - Opérations sur le réseau IP

Le JavaScript sur ZiBASE Multi - Opérations sur ZiBASE

Le JavaScript sur ZiBASE Multi - Opérations sur l'enregistreur

 

OBJET :   recorder

 

ROLE : Cet objet comporte les fonctions liées à l'enregistrement des événements de temps-réel de ZiBASE Multi.

 

L’objet « recorder » est un enregistreur de données à configurer à l’initialisation de la machine. Par la suite, son fonctionnement est automatique.

Il exploite des données identiques à celles issues de zibase.realTimeEvent() et les classifie avant de les ranger dans des fichiers permanents

dans la ‘SandBox’ :  /storage/emulated/0/data/data/zibase/userfiles/


int setMode(String label, int mode)
Définition générale du mode de classification sur chacune des catégories.
label : valeurs possibles :
« scenarios », « probes », « sensors », « actuators », « remotes » , «*»
NOTA : «*» désigne les 5 catégories à la fois.
mode :
1 : Ranger les évenements de la catégorie dans le fichier unique « events_Zibase.txt»

2 : Ranger les événements de la catégorie dans le fichier « events_catégorie» (exemple : events_sensors.txt)

3 : Ranger les événements de la catégorie en ayant pour sélecteur le champ JSON « name », dans de fichiers multiples « events_categorie_name.txt».
Exemple « events_probes_température Salon ». De très nombreux fichiers peuvent donc être générés…

int setMode(String label, int mode, int interval)
Fonction identique à la précédente mais avec le paramètre ‘interval’ qui définit l’intervalle minimum en secondes à respecter entre 2 écritures dans le fichier à modifier. Ce paramètre est intéressant avec le ‘mode3’ pour des sondes trop bavardes qui envoient une mesure toutes les 40s par exemple.

int setFileType(String label, String txtCsv)
label : valeurs possibles :
« scenarios », « probes », « sensors », « actuators », « remotes », «*»
Cette fonction donne le type de fichier généré et l’extension du fichier : txt ou csv. Dans la pratique, seuls les modes « mode2 » ou « mode3 » sont exploitables en mode csv.
L’extension du fichier par défaut d’appel de la fonction est « txt »

int setSepa(String label, String separator, String indicator)
label : valeurs possibles :
« scenarios », « probes », « sensors », « actuators », « remotes » , «*»

Définition de séparateurs particuliers. Utile notamment pour la reprise du fichier csv sur Excel par exemple.
Separator est la chaine de caractères qui sépare 2 items indépendants (classiquement un ou plusieurs espaces, une virgule, un point-virgule). Indicator est la chaine de caractères qui est insérée entre le label et sa valeur (classiquement « deux-points » ou « égal »).

int setDirRollUp(String pattern, int triggerKB, int keepKB)

L’ensemble de ces fichiers concerné est défini par la présence de la sous-chaine ‘pattern’ dans les noms de fichiers. Le pattern «*» concerne tous les fichiers.
Les fichiers « .zip » ne sont jamais pris en compte.

Cette fonction évaluée toutes les minutes permet de ne pas saturer votre appareil Android par des fichiers prenant des tailles gigantesques.
Le principe est de définir un seuil de taille fichier maximum ‘triggerKB’, pour lancer la troncature des éléments les plus anciens jusqu’à redescendre jusqu’à une taille définie par ‘keepKB’.
label : valeurs possibles :
« scenarios », « probes », « sensors », « actuators », « remotes » , «*»

Exemple de configuration (à lancer uniquement à l’initialisation):
recorder.setMode("*",3);
recorder.setSepa("*", ";" , ":;");
recorder.setFileType("*", "csv");
recorder.setDirRollUp("*", 50, 40);

Exemple de ligne enregistrée avec cette configuration:
GMT:;1416246899;Local Time:;Mon Nov 17 18:54:59 CET 2014;Type:;probes;Name:;sensor ENOCEAN ch1;Id:;OS30640128;Val1:;21.6;Unit1:;C

Exemple de ligne enregistrée en mode « txt »:
GMT:1416306087  Local Time:Tue Nov 18 11:21:27 CET 2014  Type:probes  Name:sensor ENOCEAN ch1  Id:OS30640128  Val1:24.5  Unit1:C

Exemple de configuration