FR 2716059 A1 19950811 FR 9401465 A 19940209 DISPOSITIF POUR REGLER LES PARAMETRES D'UN GRAND SYSTEME. Description La présente invention concerne un dispositif pour gérer les paramètres d'un grand système formé de différents éléments munis de circuits présentant des paramètres de réglage à gérer, dispositif comportant : un organe de gestion principal formé à partir d'un processeur auquel sont rattachés - un organe de mémoire de masse et des organes d'entrée-sortie, - un organe de transmission pour recevoir les informations décrivant les paramètres à régler et pour émettre les informations décrivant les paramètres à modifier, le tout par l'intermédiaire du système, Un tel dispositif trouve d'importantes applications, notamment dans le domaine des réseaux de télécommunications où les différents éléments sont des commutateurs de données reliés entre eux au moyen de modems. Avec ce genre de systèmes, il y a un très grand nombre de paramètres à régler et lton est confronté au problème de ce grand nombre et aussi à l'interdépendance de ceux-ci. Dans l'application ci-dessus envisagée ce genre de travail incombe aux centres de gestion. Un centre de gestion connu est décrit aux pages 11 à 19 dans l'article : "X25 Network management system.n paru dans la revue : "Philips Telecommunication Revient1, Ne 4 de décembre 1990. Cet article ne donne aucune précision en ce qui concerne la manière dont est effectuée la tâche de réglage. La présente invention propose un dispositif du genre mentionné dans le préambule qui est bien adapté aux réglages de dispositifs de tout type moyennant peu de modifications. Pour cela, la présente invention est remarquable en ce que le dispositif pour gérer les paramètres de réglage d'un grand système comporte - des moyens d'importation coopérant avec l'organe de transmission, pour recevoir, dans un fichier de configuration créé dans l'organe de mémoire de masse, des paramètres d'un circuit à régler, - des moyens pour transcrire les fichiers de configuration en fichiers de base de données, - des moyens pour modifier les bases de données par l'intermédiaire des organes d'entrée-sortie, - des moyens pour transcrire les fichiers de base de données modifiées en fichiers de configuration modifiés - et des moyens de rapatriement coopérant avec 1' organe de transmission, pour (télé)charger les fichiers de configuration vers le circuit à régler. La description suivante faite en regard des dessins ci-annexés, le tout donné à titre d'exemple non limitatif, fera bien comprendre comment l'invention peut être réalisée. La figure 1 montre un réseau à configurer. La figure 2 montre un organe de commutation et un modem faisant partie du réseau à configurer. La figure 3 montre un schéma du dispositif de l'invention. La figure 4 montre 1' arborescence de la base de données gérée par le dipositif de l'invention. La figure 5 montre l'aspect d'un écran apparaissant sur l'organe de visualisation du dispositif de l'invention. A la figure 1, un réseau 1 est montré. Il est formé de différents organes de commutation 5, 6, 7, 8, 9 et 10. Ces organes peuvent, par exemple, être du type décrit dans l'article intitulé "Nouvelle architecture pour la gamme Compac" paru dans le numéro 3 de la revue Commutation & Transmission de 1992. Ces différents organes de commutation sont reliés entre eux par des liaisons 20, 21, 22, 23, 24, 25 et 26, ces liaisons reliant respectivement les organes 5 et 7, 6 et 7, 6 et 10, 5 et 10, 8 et 10, 6 et 9 et 8 et 9. En principe, les liaisons impliquent la présence de modems. Pour des raisons de simplicité, on en a représenté seulement quatre : 31, 32, 33 et 34 dont les deux premiers sont rattachés à l'organe 9 et les deux derniers, respectivement aux organes de commutation 6 et 8. Pour modifier ou initialiser les paramètres de tous ces équipements distants, c'est-à-dire les différents organes de commutation ou les modems, on fait appel à un dispositif 40 constitué autour d'un ordinateur du genre PC comportant les éléments usuels : organe de visualisation, clavier, .. Pour l'explication de la mise en oeuvre de l'invention, on a isolé le disque dur 41 et le circuit de liaison 45 (un modem) qui raccorde le dispositif 50 au réseau 1 via l'organe de commutation 5. Pour bien montrer l'intérêt de l'invention, pour l'exploitation de systèmes complexes, on explicite ci-dessous la structure d'un organe de commutation. La figure 2 montre schématiquement une partie de l'organe de commutation 6 et le modem 33 qui lui est rattaché. Il va de soi que les autres organes de commutation peuvent avoir la même structure. L'organe de commutation 6 est formé de quatre microcontrôleurs 51, 52, 53 et 54 groupés en maitre-esclave (51 et 53 sont des maîtres et 52 et 54 sont leurs esclaves respectifs) ; ces microprocesseurs sont des 68302 fabriqués par "MOTOROLA" (marque déposée). Chacun de ces processeurs comporte trois accès de communication qui sont utilisés en tant qu'accès de commutation Al à A6, Bl à B6. Ainsi les accès Al, A2 et A3 sont rattachés au microprocesseur 51, A4, A5 et A6 au microprocesseur 52, les accès B1, B2 et B3 au microprocesseur 53 et les accès B4, B5 et B6 au microprocesseur 54. Ces différents microprocesseurs exploitent en commun au moins une première mémoire 61 et une deuxième mémoire 62. Dans la première mémoire sont inscrits des programmes de fonctionnement qui peuvent, entre autres choses, traiter le routage des différentes données auxdits accès Al,.., A6, B1,.., 136. Dans la deuxième mémoire du type EEPROM sont inscrits les différents paramètres susceptibles d'être modifiés ou initialisés par le dispositif de l'invention. Un circuit d'arbitrage 65 autorise l'accès des mémoires 61 et 62 pour le couple maitre-esclave 51 et 52 ou pour le couple 53 et 54. Ce circuit d'arbitrage a été décrit dans la demande de brevet français N 2 667 175 déposée le 25 septembre 1990 au nom de la demanderesse. Les informations à commuter peuvent aussi être dirigees vers d'autre parties de l'organe de structure identique à celle montrée à cette figure 3 par exemple par l'intermédiaire des liens 71 et 72 ; pour cela, on utilise un contrôleur 80 du type connu sous le nom de transputer, par exemple T222, fabriqué par "INMOS" (marque déposée). Une mémoire de commutation 85 est utilisée pour permettre l'échange des données entre les microprocesseurs 51, 52, 53, 54 et 80. Les accès à cette mémoire de commutation commune 85 sont réglés par un autre circuit d'arbitrage 88. Le modem 33 est relié à l'accès B6 via un circuit d'interface 90 qui assure une liaison respectant, par exemple, le protocole V24 du C.C.I.T.T. On estime à 30 000 le nombre de paramètres d'un organe de commutation, tandis que ce nombre est de l'ordre de quelques centaines pour les modems. Les paramètres contenus dans la mémoire 62 sont de forme binaire, de sorte que les microprocesseurs 51 à 54 peuvent les traiter directement alors que les paramètres des modems se présentent sous forme ASCII pour indiquer des commandes du genre HAYES. Ces commandes du type HAYES sont interprétées par le modem lorsque des signaux de l'interface 90 lui imposent d'accepter ces commandes HAYES. On pourra à ce sujet consulter la demande de brevet français n 2 687 877 du 2 mars 1993 au nom de la demanderesse. La figure 3 est un schéma qui montre l'organisation du dispositif 40 conformement à l'invention. Ce dispositif est bâti autour d'un ordinateur du genre PC compatible. La référence 100 indique l'unité centrale formée autour d'un microprocesseur du genre 80x86 d'"Intel" (marque déposée) et la référence 105, l'unité d'entrée-sortie regroupant, entre autres, le modem 45, un organe de visualisation 110, un clavier 115 et une souris 117. Le fonctionnement de ce dispositif est régi par un ensemble de logiciel 200. Ce logiciel 200 est composé de différents blocs de logiciel. Un premier bloc 201 est le bloc dit bloc moteur. C'est ce bloc qui orchestre toutes les opérations qui s'effectuent entre les autres blocs. Un deuxième bloc 202 est le bloc fichier de configuration qui est une copie totale ou partielle du fichier de paramètres à modifier. Par exemple, c'est une copie de la mémoire 62 contenant un empilement de paramètres. Ce fichier est obtenu par une commande envoyée à l'organe de commutation concerné via le réseau 1. Cette commande peut être soit une commande de télérapatriement, vers ce fichier de configuration, pour les paramètres de l'organe de commutation soit une commande de télérapatriement pour un modem rattaché à l'organe de commutation. Un troisième bloc 203 est un bloc dit de compilation qui traduit. dans les deux sens, le fichier de configuration en un fichier de travail 204 qui constitue un quatrième bloc. Ce quatrième bloc est obtenu par un cinquième bloc 205 qui est un ensemble de fonctions de gestion de base de données (librairie de fonctions pour le language C) du type C ISAM de la société des Etats-Unis d'Amérique "INFORMIX" (marque deposée) en Californie. Le dispositif est organisé de telle sorte qu'il est proposé à plusieurs sortes d'utilisateurs et d'opérateurs. Il y a deux sortes d'opérateurs - l'opérateur fournisseur, - l'opérateur client. Parmi les opérateurs clients, on distingue - l'utilisateur client. - l'utilisateur confirmé et - l'utilisateur expert. On décrit maintenant en détail le fonctionnement de ce dispositif, dans le cas d'un organe de commutation. Dans ce qui suit, on sera amené à faire appel à la syntaxe du langage C et on mentionnera des types de variable suivants - COUNT : entier signé sur 2 octets, - UCOUNT : entier non signé sur deux octets, - TEXT : caractère sur un octet, - UTEXT : caractère non signé sur un octet, - LONG : entier sur quatre octets. L'opérateur fournisseur doit fournir une base de données configurée. Ce travail consiste à partir d'une multitude de paramètres, environ 30 000, comme il l'a été déjà dit, et à les affecter à une arborescence. 1-) ORGANISATION DU FICHIER DE CONFIGURATION (pour organe de commutation). Ce fichier de configuration est un fichier binaire qui reflète le fichier des paramètres contenu dans la mémoire 62 de l'organe de commutation. La représentation mémoire de ce fichier est constituée par une copie du fichier dans un tableau dont l'adresse est définie par un pointeur p~fich~bin, soit "UTEXT *p~fich~bin". La longueur est sauvegardée dans une variable size~fich~bin de type UCOUNT, soit "UCOUNT size~fich~bin". Le constructeur de l'organe de commutation du genre mentionné organise les paramètres de l'organe selon une hiérarchie de classes et de récurrences respectivement. Dans chaque couple, (classe Cww, récurrence Rxx), tous les champs des paramètres Pyy ont la même longueur. Ainsi un paramètre peut s'écrire CwwRxxPyyy où ww sont deux octets de définition du numéro de la classe, xx sont deux octets de définition du numéro de la récurrence et yyy sont trois octets de définition du numéro du paramètre. Dans le fichier de configuration, tous ces paramètres sont disposés en pile et sont repérés par un offset. 2-) ORGANISATION DU FICHIER DE COMPILATION (pour organe de commutation). Ce fichier de compilation est un fichier texte. La représentation mémoire du fichier compilateur s'appuie sur un tableau dont l'adresse est mise dans une variable "UTEXT *p fich~offset" et dont la longueur est sauvegardée dans la variable "UCOUNT size~fich~offset". Ce fichier est indexé en classe/récurrence et donne la valeur d'offset du premier octet du couple classe/récurrence dans le fichier de configuration et donne aussi la longueur des paramètres. Ainsi il est possible de calculer l'offset dans le fichier binaire. Par exemple, soit le paramètre 2 de la classe 1 et de la récurrence 2 : C01R02P002E05. E05, ou en général EUV indique la position en octet d'un sous-champ. En aucun cas, EUV ne peut être supérieur à la taille en octet du champ, ce souschamp faisant partie du paramètre P002. En adressant le fichier compilation par COlR02 (0102) celui-ci retourne l'offset du premier octet et la longueur des paramètres de l'ensemble classe/récurrence. Soit, par exemple 0102 00003456 00000004 où 00003456 est l'offset précité et 00000004 la longueur des paramètres. Ainsi il est possible de trouver l'offset "OFFBIN" dans le fichier binaire en effectuant, selon la syntaxe du langage C, l'opération OFFBIN = 0x00003456 + 1 * 0x00000004 + 5 = 0x0oe03469 en général offset [C/R] + (P-l)*longueur + E. 3*) ORGANISATION DE LA BASE DE DONNEES. Cette base de données est mise en place par l'opérateur fournisseur. La figure 4 montre en partie une arborescence possible. Pour décrire cette arborescence, les termes branches et feuilles seront mentionnés comme c'est l'usage. Les indications qui suivent sont données toujours dans le cadre de l'exemple décrit. Sur cette figure, différentes cases sont rattachées soit à des branches soit à des feuilles. Leurs significations sont les suivantes : la case KO représente la version et la référence de l'organe de commutation. A partir de cette case, on a fait dériver deux branches repérées par les cases K1 et K3. La case K1 a trait à une clé d'accès pour le dispositif de l'invention pour un utilisateur, afin que celui ci puisse accéder notamment aux fonctions de télérapatriement de 1' organe de commutation. La valeur de ce paramètre est représentée à la case K11 et détermine donc la protection en lecture et en écriture de certains paramètres. La branche K3 est relative aux lignes configurables qui sont rattachées à l'organe de commutation. Il y en a 42 lignO (case K300) à lign41 (case K301). Seules les branches partant de la case K30 sont un peu plus détaillées. La case K35 est relative au type de ligne c'est-à-dire que cette ligne peut être du type synchrone X25, du type asynchrone ou du type SDLC (Synchronous Data Links Control). La branche qui démarre à la case K36 est relative aux paramètres proprement dits. De cette branche on dérive une pluralité de sous-branches dont quelques-unes sont explicitées ici : une sous-branche démarrant à la case K37 relative aux lignes synchrones X25, une autre à la case K38 relative aux lignes asynchrones et une autre à la case K39 relative aux lignes SDLC. En ce qui concerne les lignes synchrones X25, une branche amène de la case K37 à une case K40 qui débouche sur une pluralité de feuilles K41, K42,... La feuille K41 est le paramètre définissant le profil de la ligne, la feuille K42 le type de liaison. Pour les lignes asynchrones, deux sous-branches K50 et K51 sont dérivées de la branche K38 et sont relatives respectivement aux classes de paramètres c112 et c113. A chacune de ces branches sont reliées des pluralités de feuilles K52 et K53 d'une part et K56 et K57 d'autre part qui sont à rapprocher des feuilles K41 et K42. 4.) CREATION DE LA BASE DE DONNEES. Une fois qu'une arborescence a été définie, il convient de créer la base de données correspondante. Une base de données est formée de fiches formant des fichiers dont le nom est du type *.DAT auxquelles sont rattachés des index qui facilitent et accélèrent la recherche de ces fiches et qui sont des fichiers de nom *.IDX pour rester dans la nomenclature du gestionnaire de base de données précitée. Parmi ces fiches, on distingue les fiches relatives aux niveaux et les fiches relatives aux feuilles. Ces fiches sont structurées de la manière suivante. 4-1 Structure des fiches niveaux. Cette structure est donnée au tableau I ci-dessous en utilisant les conventions du language C. L'ensemble de ces fiches va constituer le fichier NIVEAUX.DAT TABLEAU I typedefstruct( TEXT deleteflag LONG code~niveau; LONG code~niveaupere; LONG code~niveau~fils~a; LONG codeniveau~frerep; LONG codeniveaufreres; TEXT bool~niveau~fichier; TEXT code~compilateur; TEXT bool~niveau~maj~automatique; }NIVEAU; Un chaînage a été réalisé entre les noeuds de l'arborescence de façon à parcourir celle-ci le plus rapidement possible, pour les différentes actions possibles sur les arbres. Un niveau de configuration est identifié de façon unique dans la base de données par son "code" (code~niveau dans le tableau I) symbolisé par un LONG (4 octets). Le chaînage implique donc que le code du père, du frère suivant, du frère précédent et du fils aîné soit connu, soit respectivement code~niveau~pere, code niveaufrere~s, codeniveau frereg ; code~niveau~fils~a. Ainsi, en se reportant sur la figure 4, et en identifiant la référence des cases avec les codes de niveaux, on peut écrire pour le niveau de la case K38 code~niveau~pere : K36 code~niveau~frere~s : K39 code~niveau~frere~p : K37 code~niveau~fils~a : K50 A chaque niveau créé, on met à jour une variable code~nouveau~niveau qui contient le code du prochain niveau qui va être créé. Cette variable est sauvegardée sur le disque dur 51. Lors de l'initialisation de la base de données, si il n'y a pas de fichier NIVEAUX.DAT, le fichier est créé et la fiche du niveau racine prend le code 1 (dans l'exemple ce serait KO). Le premier niveau créé par l'opérateur aura donc le numéro 2 ou case K1 si l'opérateur commence par cette case, ou case K2 si il commence par celle-là. Les autres codes donnés dans le tableau I sont explicités cidessous sous - bool~niveau~fichier : ce code booléen indique si un fichier de paramètres est associé à ce niveau. - code~compilateur : ce code indique le type d'appareil auquel se rapporte le fichier spécifique. Les valeurs possibles sont 0 : ORGANES DE COMMUTATION. 1 : MODEMS. 2 : MULTIPLEXEURS. ce code permet donc de déduire la technique de compilation à utiliser. - bool niveau maj automatique : ce code booléen indique si au niveau est rattaché un fichier spécifique ou si ce niveau est soumis à un filtrage. - delete flag : permet la gestion de la base de données, notamment pour supprimer les fiches. 4-2 Structure des fiches paramètres; Cette structure est donnée au tableau Il ci-dessous. L'ensemble de ces fiches va constituer le fichier PARAMS.DAT TABLEAU II typedefstruct{ TEXT delete~flag TEXT alignement[3]; LONG code~niveau~pere; TEXT visibilite~param; TEXT type~param; TEXT bool~param~modi; TEXT codage~param; TEXT nb~octets~codage~param; TEXT numero~param~fichie~reference; TEXT nom~param[LG~NOM~PARAM+1]; TEXT ext~nom~param[LG~EXT NOM+1]; TEXT position~param[LG~POSITION~PARAM+1]; TEXT description~paramCLG DESCRIPT PARAM+11; TEXT valeur~paramCLG VALEURPARAM+1); TEXT regles~saisie~param[LG~valeur~PARAM+1]; TEXT fcts~configuration[NB~FONCTIONS~CONFIG] (LGFONCTION~PARAM+1]; TEXT tests~integrite[NB~TESTS~INTEGRITE] (LGFONCTION~PARAN+îJ; }PARAMETRE; - delete~flag : c'est un octet réservé à la gestion de la base. - alignement[3] : octets de cadrage pour le champ suivant. - code~niveau~pere : code du niveau où est défini le paramètre. - visibilite~param : cet octet définit le niveau de privilège que doit avoir l'opérateur pour obtenir l'accès à ce paramètre. Soit on a affaire à l'utilisateur client, soit à l'utilisateur confirmé, soit à l'utilisateur expert. - type~param : on définit le type de paramètre, quatre types sont possibles - type lien = O (réservé pour une extension), - type param~commun = 1 (indique que le paramètre est commun avec d'autres), - type param~profil = 2, - type param~lien~profil = 3, ces types sont relatifs à des profils préétablis. - bool~parnm modi : cette valeur booléenne indique si la valeur du paramètre a changé depuis la lecture du fichier de configuration. Lors de l'assemblage, le compilateur ne traite que les paramètres modifiés. - codagegaram : octet spécifiant le type de codage du paramètre dans le fichier de configuration. Des valeurs possibles sont binaire, ascii hexadécimal quartet - nb octets codage~param : taille en octets réservés dans le fichier de configuration pour le paramètre. numero~param~fichie~reference : octet signifiant le numéro du paramètre dans le profil de référence. L'octet est significatif si type~param = TYPE~PARAM~LIEN~PROFIL. - nom param : chaîne en ASCII représentant le nom du paramètre. - ext nomgaram : chaîne en ASCII représentant une extension au nom du paramètre. - positionparam : chaine en ASCII spécifiant la position du paramètre dans le fichier de configuration donc la valeur CwwRxxPyyy. - descriptiongaram : chaine en ASCII représentant le commentaire descriptif du paramètre. - valeuyparam : chaîne en ASCII représentant la valeur du paramètre. - regles saisie param : chaîne ASCII représentant les contraintes imposées par l'opérateur sur la saisie de la valeur du paramètre. Elle représente les bornes des valeurs du paramètre, spécifiant aussi si ces valeurs doivent être saisies au clavier ou parmi une liste dans un menu déroulant. Selon une caractéristique importante de l'invention, on définit - fcts~configuration : tableaux de chaîne ASCII représentant les fonctions de configuration liées au paramètre. Pour chaque paramètre, l'opérateur peut définir 8 fonctions de configuration. Selon une autre caractéristique important de l'invention, on définit en outre - tests-integrite : tableaux de chaîne ASCII représentant les tests d'intégrité liés aux paramètres. Pour chaque paramètre, l'opérateur peut définir 4 tests d'intégrité. 5-) LE BLOC MOTEUR. I1 a pour but de gérer les actions de l'opérateur qui consistent essentiellement en dialogues avec l'unité d'entréesortie 105. I1 faut donc interpréter les commandes frappées sur le clavier 115, activer l'écran 110 en conformité. Il y a lieu aussi de prévoir l'activation du modem 55 pour les transferts entre le fichier de configuration et les piles de paramètres contenus dans les équipements distants. 5-1 Visualisation des niveaux et des paramètres. La figure 5 montre l'aspect d'un écran. Cet écran est divisé en deux parties P2 et P2. Sur la partie P1, sont représentées différentes cases KS1, KS2, KS3, KS4, KS5, KS6, KS7, KS8, KS9, KS10 destinées à l'exploration de l'arborescence. On considère les cases KS1 à KS3 comme étant inutilisées. La case KS4 est utilisée pour permettre la visualisation des niveaux. Dans le cadre de l'exemple décrit, seule la case KO de l'arborescence montrée à la figure 4 sera inscrite. On suppose qu'aux cases KS5, KS6, KS7 sont inscrits les niveaux K3, K30 et K36 et en partant de là, l'utilisateur veut explorer le reste de l'arborescence. Un commentaire descriptif est inscrit sur la case KS12. Au moyen de la souris, il clique sur la case KS8 de sorte qu'un menu déroulant apparaît sur la case KS20. Cette case n'a pas toujours la surface nécessaire pour représenter toutes les branches relatives au niveau concerné. I1 sera donc possible de faire défiler dans cette case toutes les branches de ce niveau (scrolling). Dans le cas de la figure 5, cette case est suffisante pour représenter les niveaux dépendant du niveau K36. Soit les niveaux K37, K38, K39 : au moyen de la souris, selon les techniques connues, par "cliquage", il sera facile d'en sélectionner un pour le faire apparaître dans la case KS8. Soit, par exemple la case K38 et de là, on peut arriver à la case K53. Comme K53 est une feuille de l'arborescence, on a affaire à un paramètre que l'on peut modifier. Pour cela, on se sert de la partie d'écran P2 qui visualise la fiche du paramètre. A cet effet, elle comporte des cases KS30, KS31, KS32, KS33, KS34 et KS35. La case KS30 indique le nom du paramètre (nom~param) et la case KS31 son extension, la case KS32, sa valeur (valeur~param), la case KS33, une description de ce paramètre (description~param), la case KS34, les bornes entre lesquelles doit être comprise la valeur du paramètre (regles saisieparam) et la case KS35 le type de codage de ce paramètre (codagegaram). 5-2 Modifications des paramètres. A chaque valeur de paramètres sont associés des fichiers association des paramètres profils qui permettent de fabriquer des menus déroulants pour proposer des choix de la valeur du paramètre profil. A chaque valeur de ces paramètres sont associés aussi des fichiers de référence qui sont des fichiers binaires qui permettent d'initialiser les valeurs de paramètres liés à un profil. Donc, la modification des valeurs des paramètres s'effectue à l'aide de ces fichiers. Pour cela, on définit une variable imagegar" de structure "PARAMETRE" voir tableau II. Puis, au moyen d'une fonction "memo~parametre(indice)" on transfère dans des tableaux de sauvegarde "memo--" à l'indice "indice" les champs suivants de la variable "imagegar" memo~niveau[] : "code~niveau~pere", memo~nom~param[] : "extnomparam". On utilise ensuite une fonction "restoregarametre(indice, flag~operation)" pour effectuer une recherche dans la base de données du paramètre défini dans les tableaux de sauvegarde "memo- " à l'indice "indice". "flag~operation" indique si 1' enregistrement doit être chargé totalement ou pas. La recherche du paramètre s'effectue selon l'index "code~niveau~pere", "nom~param" et "ext~nom~param". Enfin une fonction "modifie valeurgaram(vall ,va12, flag~test,niveau~pile,rest~fonctions)" effectue réellement la modification. Cette fonction vérifie cependant que vall et val2, qui représentent respectivement la valeur courante et la valeur proposée pour la modification, sont différentes. "niveau~pile" indique l'indice courant des tableaux "memo-". Si le paramètre courant est du type "TYPE~PARAM~PROFIL" la fonction se charge de modifier des paramètres profil de même nom dans le fichier paramètre ouvert. Si le paramètre courant est du type "TYPE~PARAM~PROFIL", la fonction doit calculer le nombre de deltas ou de différences par rapport à un profil de référence du paramètre. Si "flag~test" = O le nombre de deltas ne change pas. Sinon, la fonction compare la valeur de référence du paramètre et la nouvelle valeur. Elle modifie si nécessaire l'enregistrement du paramètre profil. La fonction "modifie valeurgaram()" cherche le paramètre dans le niveau courant. Si le paramètre n'existe pas dans le niveau courant elle effectue une recherche dans tout le fichier des paramètres. Pour modifier l'enregistrement elle se ré-appelle. Une variable "niveau~pile" limite le nombre de réappels. 6-) FONCTIONS COPIER/COUPER/COLLER. En fait, il faut discerner deux groupes d'opérations a) les fonctions COPIER/COUPER/COLLER qui sont réservées aux opérateurs fournisseurs devant construire la base de données et qui s'appliquent au copiage, à la coupure et au collage de branches et de leurs feuilles de la base de données, b) les opérations COPIER/COLLER qui, elles, sont réservées aux seuls opérateurs clients et qui n ont trait qu'aux valeurs de paramètres, donc aux feuilles. Ces fonctions font appel à - MOTEUR.C - G~NIVEAU.C - B~NIVEAU.C - C~SYNTAX.C Pour effectuer ces fonctions, différentes variables sont nécessaires. NIVEAU~EN~COURS : qui est le niveau sur lequel on travaille. DIRECTORY DESTINCLGNOM DIRECTORY+11 : cette variable représente le nom du répertoire de destination utilisé par les trois fonctions précitées. *tab~pointeur~fichiers~destin[NB~MAX~FICHIERS~REP+1] : est un tableau destiné à recevoir la liste des fichiers de base de données du répertoire distant. I1 est essentiel pour la fonction COLLER et il est utilisé par la fonction "tests~coller~base()" de B~NIVEAU.C. 6-1 Fonction COPIER. L'opération préalable consiste à faire appel aux fonctions suivantes. - detruit fichier repertoire() : cette fonction détruit tous les fichiers du répertoir distant qui est le destinataire des fichiers de la base de données locales (uniquement pour l'arborescence sélectionnée). - g~copierdase() : Cette fonction lance deux fonctions : "copier base()" de B NIVEAU.C qui lance vraiment l'opération COPIER de la base et "g selectionniveau()" de G~NIVEAU.C qui permet de se repositionner sur le niveau initial, sélectionné pour le COPIER. 6-2 Fonction COUPER. L'opération COUPER se réduit à une opération COPIER de l'arborescence puis à une destruction de celle-ci. On exécute en fait la fonction "gbestruction~arbre niveaux() de G~NIVEAUX.C qui à son tour lance une fonction "detruit arbre niveaux()" de B NIVEAU.C. 6-3 Fonction COLLER. L'opération COLLER implique que les fonctions suivantes soient lancées - listes~fichiers~repertoire() du fichier C~SYNTAX.C. Cette fonction retourne le nombre de fichiers trouvés dans le répertoire distant puisque si ce nombre est nul aucun COLLER ne peut être effectué. - g~tests coller base() du fichier G~NIVEAU.C. Cette fonction appelle la fonction "tests~coller~base()" de B~NIVEAU.C qui teste s'il est possible d'effectuer l'opération COLLER et affiche les messages d'erreur ou de confirmation. - g~coller base() du fichier G~NIVEAU.C. Cette fonction appelle la fonction "coller~base()" de B~NIVEAU.C qui effectue le COLLER proprement dit et affiche des messages de compte-rendu s'il y a lieu. 7t) APPLICATIONS POUR DES MODEMS ET DES MULTIPLEXEURS. 7-1 Les modems. Pour un modem, un fichier de configuration est une suite de commandes HAYES qui se présentent accompagnées d'un préambule AT. Il existe trois syntaxes possibles de commande AT - ATPxxx = yyy avec xxx compris entre O et 999 et yyy entre O et 255. - ATSxxx = yyy avec xxx compris entre O et 999 et yyy entre O et 255. Ces commandes ATP et ATS concernent le chargement dans les modems des valeurs pour différents registres de programmation que comportent les modems visés. - ATTxxx = numero~de~telepone avec xxx compris entre O et 999 et numero~de~telephone qui est une chaîne ASCII de 30 caractères maximum. Dans le fichier de configuration, les commandes AT ont un ordre bien précis. Les commandes ATP viennent en premier, les commandes ATS en deuxième et enfin les commandes ATT. La représentation en mémoire des commandes du fichier de configuratin se fait par tableaux pour les commandes ATP et ATS et par liste chaînée pour les commandes ATT. 7-2 Les multiplexeurs; Ce genre de dispositif est décrit dans l'article de N. Ghesquiere et P. de La Bourdonnaye intitulé "Semanet 128 Terminal Adapter for Digital Networks" paru dans l'édition anglaise de la revue Commutation et Transmission n 2 de 1992. Le fichier de configuration est lui aussi une suite de commandes AT. Le nombre des syntaxes de commande étant très important, il n'y a pas de test de la syntaxe d'une commande du fichier d'entrée. Celle-ci est reproduite dans le fichier de sortie. REVENDICATIONS 1) Dispositif pour gérer des paramètres d'un grand système formé de différents éléments munis de circuits présentant des paramètres de réglage à gérer, dispositif comportant : un organe de gestion principal formé à partir d'un processeur auquel sont rattachés - un organe de mémoire de masse et des organes d'entrée-sortie, - un organe de transmission pour recevoir les informations décrivant les paramètres à régler et pour émettre les informations décrivant les paramètres à modifier, le tout par l'intermédiaire du système, caractérisé en ce qu'il comporte - des moyens d'importation coopérant avec l'organe de transmission, pour recevoir, dans un fichier de configuration créé dans l'organe de mémoire de masse, des paramètres d'un circuit à régler, - des moyens pour transcrire les fichiers de configuration en fichiers de base de données, - des moyens pour modifier les bases de données par l'intermédiaire des organes d'entrée-sortie, - des moyens pour transcrire les fichiers de base de données modifiés en fichiers de configuration modifiés - et des moyens de rapatriement coopérant avec l'organe de transmission, pour (télé)charger les fichiers de configuration vers le circuit à régler. 2) Dispositif pour régler des paramètres selon la revendication 1, caractérisé en ce qu'il est prévu des moyens de test d'intégrité. 3) Dispositif pour régler des paramètres selon la revendication 1 ou 2, caractérisé en ce que les moyens pour modifier les bases de données impliquent des moyens de modifications de paramètres implicites pour modifier les paramètres en conformité avec la modification du paramètre en cours. 4) Dispositif pour régler des paramètre selon l'une des revendications 1 à 3, caractérisé en ce qu'il est prévu des moyens de compilation formés de fichiers de compilation affectés chacun à un type desdits circuits à régler. 5) Dispositif pour régler des paramètres selon l'une des revendications 1 à 4, caractérisé en ce que le fichier de base de données est organisé en arborescences. 6) Dispositif pour régler des paramètres selon la revendication 5, caractérisé en ce qu'il est prévu des moyens pour copier des sous-arborescences. 7) Dispositif pour régler des paramètres selon l'une des revendications 1 à 6, caractérisé en ce que les paramètres sont accessibles pour des classes d'utilisateur (client, confirmé, expert). 8) Dispositif pour régler des paramètres selon l'une des revendications 1 à 7, caractérisé en ce que les paramètres sont définis par différents champs. 9) Dispositif pour régler des paramètres selon l'une des revendications 1 à 8, caractérisé en ce que les paramètres comportent un code qui permet de les repérer rapidement dans le fichier de configuration.