| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| refmodule [2026/08/01 18:18] – [ssh] root | refmodule [2026/08/04 12:03] (Version actuelle) – [shm] root |
|---|
| NOTA : module/doc à revoir (treefetch et print) | NOTA : module/doc à revoir (treefetch et print) |
| |
| * ''decode(jsonText, extractedKeyValue)'' : réalise le décodage du contenu json présent dans la variable chaîne ''jsonText'', et renvoie l'ensemble des clés/valeurs décodées dans la chaîne ''extractedKeyValue''. Les informations globales liées au contenu json qui vient d'être décodé restent mémorisées dans le module. | * ''decode(jsonText, extractedKey, extractedValue)'' : réalise le décodage du contenu json présent dans la variable chaîne ''jsonText'', et renvoie l'ensemble des clés/valeurs décodées dans les chaînes ''extractedKey'' et ''extractedValue''. Les informations globales liées au contenu json qui vient d'être décodé restent mémorisées dans le module. |
| * ''print(prettyprint, tmp1, tmp2)'' : restitue de manière lisible le contenu json dernièrement décodé dans la variable chaîne ''prettyprint''. Utilise ''tmp1'' et ''tmp2'' en variables temporaires (type Dynamic) | * ''print(extractedKey, extractedValue, prettyPrint)'' : restitue de manière lisible dans la variable chaîne ''prettyPrint'' le contenu json déjà décodé dans les 2 chaines ''extractedKey'' et ''extractedValue''. |
| * ''treeFetch(fetchParameters, done)'' : récupère une série de clés, en utilisant les informations données par la hashtable ''fetchParameters''. La variable Numeric ''done'' renvoie @true quand la récupération est terminée, @false sinon. | * ''treeFetch(fetchParameters, done)'' : récupère une série de clés, en utilisant les informations données par la hashtable ''fetchParameters''. La variable Numeric ''done'' renvoie ''@true'' quand la récupération est terminée, ''@false'' sinon. La hashtable ''fetchParameters'' doit contenir en entrée les deux chaines issues du décodage json. ''fetchParameters.DecodedKey'' doit recevoir ''extractedKey'' et ''fetchParameters.DecodedValue'' doit recevoir ''extractedValue''. |
| |
| |
| * ''analyze(compiledRules, value, tokenList)'' : à partir des règles au format interne, paramètre ''compiledRules'' fourni par la fonction ''compile'', lit la chaine paramètre ''value'' et génère le résultat de l'analyse syntaxique dans le paramètre ''tokenList''. Le résultat contient les tokens trouvés, selon 3 champs en multi-champs ; chaque sous-champ donne l'élément trouvé, dans l'ordre : | * ''analyze(compiledRules, value, tokenList)'' : à partir des règles au format interne, paramètre ''compiledRules'' fourni par la fonction ''compile'', lit la chaine paramètre ''value'' et génère le résultat de l'analyse syntaxique dans le paramètre ''tokenList''. Le résultat contient les tokens trouvés, selon 3 champs en multi-champs ; chaque sous-champ donne l'élément trouvé, dans l'ordre : |
| - ''token{1, x}'' : valeur du token en hexa (à décoder avec [[:refmodule#conv|conv&fromHexa]]) | - ''token{1, x}'' : valeur du token en hexa (à décoder avec [[:refmodule#conv|conv&fromHexa]]) |
| - ''token{2, x}'' : numéro de la regle trouvée pour le token, à comparer avec les constantes créées suite à l'appel de la fonction // compile// (''rulesNameSet'') | - ''token{2, x}'' : numéro de la regle trouvée pour le token, à comparer avec les constantes créées suite à l'appel de la fonction // compile// (''rulesNameSet'') |
| - ''token{3, x}'' : position du token trouvé dans la chaine source ''value'' | - ''token{3, x}'' : position du token trouvé dans la chaine source ''value'' |
| * ''getToken(tokenList, index, tokenSet)'' : renvoie dans la //hashtable// paramètre ''tokenSet'' le token trouvé (''.tokenNumber''''.tokenValue''''.tokenLocation''), indice dans le paramètre ''index'', à partir de la liste de tous les tokens trouvés depuis le dernier //analyze// (paramètre ''tokenList''). Si l'indice du token demandé n'est pas présent dans le résultat, ''.ruleNumber'' est renvoyé à 0. | * ''getToken(tokenList, tokenIndex, tokenSet)'' : renvoie dans la //hashtable// paramètre ''tokenSet'' le token trouvé (''.tokenNumber''''.tokenValue''''.tokenLocation''), indice dans le paramètre ''tokenIndex'', à partir de la liste de tous les tokens trouvés depuis le dernier //analyze// (paramètre ''tokenList''). Si l'indice du token demandé n'est pas présent dans le résultat, ''.ruleNumber'' est renvoyé à 0. |
| |
| |
| Module permettant de compresser et décompresser des données, algorithme //LZW// compatible au format lzw utilisé dans les fichiers PDF. | Module permettant de compresser et décompresser des données, algorithme //LZW// compatible au format lzw utilisé dans les fichiers PDF. |
| |
| * ''set(plaintextThenCompressed)'' : compresse les données contenues dans la variable Dynamic ''plaintextThenCompressed'', et renvoi dans la même variable les données compressées | * ''set(plaintextThenCompressed)'' : compresse les données contenues dans la variable Dynamic ''plaintextThenCompressed'', et renvoi dans la même variable les données compressées, compatibles Lzw-PDF. |
| * ''get(compressedThenPlaintext)'' : décompresse les données fournies dans la variable Dynamic ''compressedThenPlaintext'', et renvoi dans la même variable les données en clair | * ''get(compressedThenPlaintext, reverse)'' : décompresse les données fournies dans la variable Dynamic ''compressedThenPlaintext'', et renvoi dans la même variable les données en clair. Mettre le paramètre ''reverse'' à ''@true'' pour décompresser des données spécifiquement au format GIF ; par défaut à ''@false'' (compatible Lzw-PDF). |
| |
| |
| * ''addCab128(pdfParameterSet, string)'' : ajoute à la page la chaîne ''string'' transformée en code à barre EAN128, ''pdfParameterSet'' doit contenir les éléments suivants : | * ''addCab128(pdfParameterSet, string)'' : ajoute à la page la chaîne ''string'' transformée en code à barre EAN128, ''pdfParameterSet'' doit contenir les éléments suivants : |
| * ''.X'', ''.Y'', ''.H'' : position x,y et hauteur h des barres | * ''.X'', ''.Y'', ''.H'' : position x,y et hauteur h des barres |
| * ''addImage(input)'' : ajoute à la page courante une image déjà chargée au préalable, selon les informations décrites dans la hashtable ''pdfParameterSet'' qui doit contenir les champs suivants : | * ''addImage(pdfParameterSet)'' : ajoute à la page courante une image déjà chargée au préalable, selon les informations décrites dans la hashtable ''pdfParameterSet'' qui doit contenir les champs suivants : |
| * ''.X'', ''.Y'' : coordonnées x,y du coin haut/gauche de l'image dans la page | * ''.X'', ''.Y'' : coordonnées x,y du coin haut/gauche de l'image dans la page |
| * ''.Image'' : numéro de l'image | * ''.ImageIndex'' : numéro de l'image |
| * ''loadImage(image, format)'' : charge dans le module, pour un usage ultérieur, l'image dont le contenu est passé dans la chaîne ''image''. La première image chargée porte le numéro 1, etc. Formats supportés, chaîne ''format'' : //BMP// (32bpp) et //GIF//. | * ''loadImage(image, format)'' : charge dans le module, pour un usage ultérieur, l'image dont le contenu est passé dans la chaîne ''image''. La première image chargée porte le numéro 1, etc. Formats supportés, chaîne ''format'' : //BMP// (32bpp) et //GIF//. |
| * ''delImage(image)'' : supprime l'image numéro <image> du module ; elle ne pourra plus être utilisée par la suite (NOTA pbm de numéro avec suppression) | * ''delImage(imageIndex)'' : supprime l'image numéro ''imageIndex'' du module ; elle ne pourra plus être utilisée par la suite (NOTA pbm de numéro avec suppression) |
| * ''listing(pdfParameterSet, textContentThenPdfContent)'' : créé un document Pdf, de type //listing//, avec les données textuelle de ''textContentThenPdfContent'' et renvoie le contenu du Pdf généré dans ''textContentThenPdfContent''. Les éléments permettant de créer le listing sont donnés par la hashtable ''pdfParameterSet'' qui doit contenir les champs suivants : | * ''listing(pdfParameterSet, textThenPdfContent)'' : créé un document Pdf, de type //listing//, avec les données textuelle de ''textThenPdfContent'' et renvoie le contenu du Pdf généré dans ''textThenPdfContent''. Les éléments permettant de créer le listing sont donnés par la hashtable ''pdfParameterSet'' qui doit contenir les champs suivants : |
| * ''.Title'' : titre du listing (texte) | * ''.Title'' : titre du listing (texte) |
| * ''.Format'' : nombre donnant le format de la page à utiliser : A4P A4L (1 2) | * ''.Format'' : nombre donnant le format de la page à utiliser : A4P A4L (1 2) |
| ==== shm ==== | ==== shm ==== |
| |
| NOTA : module à finir, revoir doc (newprocessshmreader/writer) Module gérant la communication inter-processus, basée sur des messages textes. Chaque processus possède une //queue// qui permet de recevoir les messages émis par les autres processus. | //NOTA// : module à finir, revoir doc (newprocessshmreader/writer) Module gérant la communication inter-processus, basée sur des messages textes. Chaque processus possède une //queue// qui permet de recevoir les messages émis par les autres processus. |
| |
| * ''get(content)'' : renvoi dans ''content'' le prochain message reçu depuis la queue interne du processus en cours. S'il n'y a pas de message à lire, renvoi //vide//. | * ''get(content)'' : renvoi dans ''content'' le prochain message reçu depuis la queue interne du processus en cours. S'il n'y a pas de message à lire, renvoi //vide//. |
| * ''get(socket, data, timeout)'' : lit les données venant de l'autre côté de la connexion identifiée par l'id ''socket''. Les données lues sont renvoyées dans la chaîne ''data''. Si aucune donnée d'est disponible au bout du délai ''timeout'' donné, (en secondes), la chaîne ''data'' est renvoyée //vide//. | * ''get(socket, data, timeout)'' : lit les données venant de l'autre côté de la connexion identifiée par l'id ''socket''. Les données lues sont renvoyées dans la chaîne ''data''. Si aucune donnée d'est disponible au bout du délai ''timeout'' donné, (en secondes), la chaîne ''data'' est renvoyée //vide//. |
| * ''set(socket, data)'' : écrit les données de ''data'' sur la connexion identifiée par l'id ''socket''. | * ''set(socket, data)'' : écrit les données de ''data'' sur la connexion identifiée par l'id ''socket''. |
| | * ''getHostname(name, ip)'' : renvoi le nom (dans ''name'') et l'addresse ip (dans ''ip'') de l'hôte qui exécute le programme en cours. |
| |
| |
| ==== ssh ==== | ==== wssh ==== |
| |
| Module basé sur ''lib_ssh'' permettant l'accès sécurisé à un serveur. | Module basé sur ''lib_ssh'' permettant l'accès sécurisé à un serveur. |
| |
| * ''openSession(host, username, password)'' : ouvre une connexion sécurisée vers le serveur ''host'' <font inherit/inherit;;inherit;;rgb(251, 250, 249)></font> (nom ou adresse IP), en utilisant l'authentification ''username'' /''password'' | * ''openSession(host, username, password)'' : ouvre une connexion sécurisée vers le serveur ''host'' (nom ou adresse IP), en utilisant l'authentification ''username'' /''password'' |
| * ''endSession'' : ferme la connexion courante | * ''endSession'' : ferme la connexion courante |
| * ''execChannel(command, response, timeout)'' : exécute la commande ''command'' sur le serveur distant, et lit la réponse dans ''response'', en utilisant la paramètre ''timeout'' comme délai de lecture (en seconde). | * ''execChannel(command, response, timeout)'' : exécute la commande ''command'' sur le serveur distant, et lit la réponse dans ''response'', en utilisant la paramètre ''timeout'' comme délai de lecture (en seconde). |
| * ''openChannel'' : ouvre un //pseudo terminal// sur le serveur distant. | * ''openChannel'' : ouvre un //pseudo terminal// sur le serveur distant. |
| * ''closeChannel'' : termine le //pseudo terminal// distant. | * ''closeChannel'' : termine le //pseudo terminal// distant. |
| * ''readChannel(response, timeout)'' : lit la réponse du serveur distant dans ''response'', en utilisant ''timeout'' comme délai de lecture (en seconde). | * ''readChannel(response, timeout)'' : lit la réponse du serveur distant dans ''response'', en utilisant ''timeout'' comme délai de lecture (en seconde). |
| * ''writeChannel(command)'' : exécute la commande ''command'' sur le serveur distant | * ''writeChannel(command)'' : exécute la commande ''command'' sur le serveur distant |
| | * ''openSftp'' : ouvre un canal de type //transfer// avec le serveur distant. |
| | * ''closeSftp'' : ferme le canal de type //transfert// mais laisse la connexion au serveur ouverte. |
| | * //to be continued…// |
| Pour l'exécution de commandes ponctuelles, le worflow typique d'exécution est le suivant : | Pour l'exécution de commandes ponctuelles, le worflow typique d'exécution est le suivant : |
| |
| <code wlang> | <code wlang> |
| ; | ; |
| invoke ssh&openSession(host, user, pwd) | invoke wssh&openSession(host, user, pwd) |
| ; | ; |
| ; do something | ; do something |
| ; | ; |
| invoke ssh&execChannel(cmd, res, timeout) | invoke wssh&execChannel(cmd, res, timeout) |
| ; | ; |
| ; do another thing | ; do another thing |
| ; | ; |
| invoke ssh&execChannel(cmd, res, timeout) | invoke wssh&execChannel(cmd, res, timeout) |
| ; | ; |
| ; terminate | ; terminate |
| invoke ssh&endSession | invoke wssh&endSession |
| ; | ; |
| | |
| |
| </code> | </code> |
| <code wlang> | <code wlang> |
| ; | ; |
| invoke ssh&openSession(host, user, pwd) | invoke wssh&openSession(host, user, pwd) |
| invoke ssh&openChannel | invoke wssh&openChannel |
| ; | ; |
| ; read login information | ; read login information |
| invoke ssh&readChannel(res, timeout) | invoke wssh&readChannel(res, timeout) |
| ; | ; |
| loop | loop |
| ; | ; |
| invoke ssh&writeChannel(cmd) | invoke wssh&writeChannel(cmd) |
| ; | ; |
| invoke ssh&readChannel(res, timeout) | invoke wssh&readChannel(res, timeout) |
| ; | ; |
| endloop | endloop |
| ; | ; |
| ; terminate | ; terminate |
| invoke ssh&endSession | invoke wssh&endSession |
| ; | ; |
| | |
| |
| </code> | </code> |
| |
| ==== system ==== | ==== system ==== |
| | |
| Module gérant les liens avec le shell et l'OS hôte. | Module gérant les liens avec le shell et l'OS hôte. |
| * ''execute(cmd, ret, [capturing])'' : execute la commande OS ''cmd'' dans un shell. Renvoi le code retour de la commande dans ''ret''. SI le 3ème paramètre ''capturing'' est fourni, il contient en retour la sortie générée par la commande dans le terminal (sortie standard) | |
| |
| * ''getEnv(var, result)'' : renvoi dans ''result'' le contenu de la variable d'environnement (dans la session courante) nommée ''var''. Génère l'exception EXMOD_SYSTEM_UNKNOWNVARENV si la variable d'environnement est inconnue | * ''execute(command, returnCode, [capturing])'' : execute la commande OS ''command'' dans un shell. Renvoi le code retour de la commande dans ''returnCode''. SI le 3ème paramètre ''capturing'' est fourni, il contient en retour la sortie générée par la commande dans le terminal (sortie standard) |
| * ''createEnv(var, valeur)'' : créé la variable d'environnement nommée ''var'' dans la session courante, avec la valeur ''valeur''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est déjà présente (utiliser ''updateEnv'' dans ce cas) | * ''getEnv(varName, value)'' : renvoi dans ''value'' le contenu de la variable d'environnement (dans la session courante) nommée ''varName''. Génère l'exception EXMOD_SYSTEM_UNKNOWNVARENV si la variable d'environnement est inconnue |
| * ''updateEnv(var, valeur)'' : met à jour la variable d'environnement ''var'' avec la valeur ''valeur''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue de la session en cours. | * ''createEnv(varName, value)'' : créé la variable d'environnement nommée ''varName'' dans la session courante, avec la valeur ''value''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est déjà présente (utiliser ''updateEnv'' dans ce cas) |
| * ''deleteEnv(var)'' : supprime la variable d'environnement nommée ''var'' de la session courante. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue | * ''updateEnv(varName, value)'' : met à jour la variable d'environnement ''varName'' avec la valeur ''value''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue de la session en cours. |
| | * ''deleteEnv(varName)'' : supprime la variable d'environnement nommée ''varName'' de la session courante. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue |
| | * ''getOS(OScode)'' : renvoi un code, dans le paramètre ''OScode'', indiquant le type de l'OS hôte du programme en cours (de type chaîne) : //Windows//, //Linux// |
| | * ''sendSignal(pid, signalNumber)'' : envoi le signal numéro ''signalNumber'' au processus identifié par son numéro ''pid''. Seuls les 3 signaux SIGTERM, SIGINT, SIGUSR1 sont pris en charge. Les autres sont ignorés. Fonction compatible Unix/Windows mais sous Windows, ce sont des évènements qui sont générés, pas des signaux ; SIGTERM et SIGINT génèrent un évènement ''Global\\wterm<pid>'' et SIGUSR1 génère un évènement ''Global\\wdebug<pid>'' |
| | * ''sleep(duration)'' : endort le process en cours, pour une durée de ''duration'' secondes |
| |
| * ''getOS(n)'' : renvoi un code indiquant le type de l'OS hôte du programme en cours : Windows, Linux... | |
| * ''getHostname(nom, ip)'' : renvoi le nom (dans ''nom'') et l'addresse ip (dans ''ip'') de l'hôte qui exécute le programme en cours | |
| |
| * ''sendSignal(pid, number)'' : envoi le signal numéro ''number'' au processus identifié par son numéro ''pid''. Seuls les 3 signaux SIGTERM, SIGINT, SIGUSR1 sont pris en charge. Les autres sont ignorés. Fonction compatible Unix/Windows mais sous Windows, ce sont des évènements qui sont générés, pas des signaux ; SIGTERM et SIGINT génèrent un évènement ''Global\\wterm<pid>'' et SIGUSR1 génère un évènement ''Global\\wdebug<pid>'' | ==== time ==== |
| |
| * ''sleep(n)'' : endort le process en cours, pour une durée de ''n'' secondes | Module permettant de manipuler des horodates, en TU et temps local, de mesurer le temps passé (chrono) et de gérer des alarmes temporelles. |
| | |
| ==== time ==== | |
| Module permettant de manipuler des horodates, en TU et temps local, de mesurer le temps passé (chrono) et de gérer des alarmes temporelles.\\ | |
| * ''startChrono'' : démarre le chronomètre, pour mesurer une durée | |
| * ''lapChrono(n)'' : donne le temps passé en secondes depuis le dernier appel de start ou lap (variable Number) | |
| |
| * ''setUTC(hash, format, date)'' : mémorise dans la hashtable ''hash'' la date UTC passée dans ''date'' selon le format ''format''. Le résultat est stocké dans ''hash.timestamp'' et ''hash.jetlag'' | * ''startChrono'' : démarre le chronomètre, pour mesurer une durée |
| * ''setLocal(hash, format, date)'' : idem setUTC ci-dessus mais sur une date fournie dans le fuseau local | * ''lapChrono(duration)'' : donne le temps passé en secondes depuis le dernier appel de start ou lap (variable Number ''duration'') |
| * ''setNowLocal(hash)'' : mémorise la date locale en cours, résultat dans la hashtable ''hash'' idem ci-dessus | * ''setUTC(timeParameterSet, format, date)'' : mémorise dans la hashtable ''timeParameterSet'' la date UTC passée dans ''date'' selon le format ''format''. Le résultat est stocké dans ''.timestamp'' et ''.offset'' |
| * ''setNowUTC(hash)'' : idem setNowLocal ci-dessus maus sur une date fournie en UTC | * ''setLocal(timeParameterSet, format, date)'' : idem setUTC ci-dessus mais sur une date fournie dans le fuseau local |
| * ''set(hash, format, date)'' : mémorise dans la hashtable ''hash'' la date passée dans ''date'' selon le format ''format'', format qui indique le fuseau de la date fournie, selon la norme ISO8601 | * ''setNowLocal(timeParameterSet)'' : mémorise la date locale en cours, résultat dans la hashtable ''timeParameterSet'' idem ci-dessus |
| * ''getUTC(hash, format, date)'' : renvoi dans ''date'' la date mémorisée dans la hashtable ''hash'', selon le format défini dans ''format'' et en UTC | * ''setNowUTC(timeParameterSet)'' : idem setNowLocal ci-dessus maus sur une date fournie en UTC |
| * ''getLocal(hash, format, date)'' : idem getUTC ci-dessus mais renvoi la date dans le fuseau local | * ''set(timeParameterSet, format, date)'' : mémorise dans la hashtable ''timeParameterSet'' la date passée dans ''date'' selon le format ''format'', format qui indique le fuseau de la date fournie, selon la norme ISO8601 |
| * ''get(hash, format, date)'' : idem ci-dessus, mais c'est le format qui indique si la date retournée est en UTC ou dans un fuseau local, format à la norme ISO8601 | * ''getUTC(timeParameterSet, format, date)'' : renvoi dans ''date'' la date mémorisée dans la hashtable ''timeParameterSet'', selon le format défini dans ''format'' et en UTC |
| | * ''getLocal(timeParameterSet, format, date)'' : idem getUTC ci-dessus mais renvoi la date dans le fuseau local |
| | * ''get(timeParameterSet, format, date)'' : idem ci-dessus, mais c'est le format qui indique si la date retournée est en UTC ou dans un fuseau local, format à la norme ISO8601 |
| | * ''alarmUTCHM(hhmm, endTime, duration)'' : déclare une alarme quotidienne, à déclencher à l'heure ''hhmm'' en heure UTC. Renvoi le timestamp de fin dans ''endTime'' et le delai entre chaque alarme dans ''duration'' |
| | * ''alarmLocalHM(hhmm, endTime, duration)'' : idem alarmUTCHM ci-dessus, mais l'heure donnée est dans le fuseau local |
| |
| * ''alarmUTCHM(hhmm, fin, delai)'' : déclare une alarme quotidienne, à déclencher à l'heure ''hhmm'' en heure UTC. Renvoi le timestamp de fin dans ''inf'' et le delai entre chaque alarme dans ''delai'' | |
| * ''alarmLocalHM(hhmm, fin, delai)'' : idem alarmUTCHM ci-dessus, mais l'heure donnée est dans le fuseau local | |
| |