Documentation de l’option VCP (port série virtuel)

[Dernière mise à jour: 06/12/2023]

Dracal VCP icon

1. Introduction

Les capteurs Dracal ayant la possibilité de communiquer tel des ports série virtuels sont identifiables par le préfixe "VCP-" présent leur code de produit. Le protocole de communication de ces produits peut être converti librement entre deux modes: le mode USB et le mode VCP. À la livraison, vous recevrez vos produits VCP en mode USB afin de permettre une première lecture rapide des données via notre logiciel gratuit de visualisation et d'enregistrement de données DracalView. Vous trouverez dans cette documentation les informations relatives à la conversion entre les modes de communication USB et VCP, le format des données générées ainsi que les commandes disponibles en mode VCP. Cette documentation s'adresse aux usagers détenant les connaissances nécessaires pour manipuler les données générées par ports série virtuels de manière autonome.

2. Prérequis

1. Avoir installé DracalView (instructions spéciales pour les utilisateurs sous Linux)

2. Avoir pris connaissance du guide de démarrage avec les outils en ligne de commande

3. Avoir pris connaissance du guide de démarrage avec le mode VCP

3. Produits VCP et DracalView

Les instruments VCP de Dracal dont le protocole de communication est en mode USB se comportent exactement comme tous les autres capteurs Dracal. Leurs données sont accessibles via notre outil en ligne de commande dracal-usb-get ou encore notre logiciel gratuit de visualisation et d'enregistrement de données DracalView.

Cependant, une fois le mode de communication changé pour le mode VCP, les utilisateurs travaillant sous Windows ne pourront plus accéder à leurs données via ces deux outils. Les utilisateurs travaillant sous Linux ou Mac OS X pourront toutefois encore accéder à leurs données via ces deux outils, dû à la plus grande flexibilité dans le processus de gestion des périphériques de ces deux systèmes d'opération.

4. Conversion du mode USB vers le mode VCP

Le protocole de communication des produits de la série VCP- est modifié du mode USB vers le mode VCP via notre outil en ligne de commande dracal-usb-set. Pour ce faire, la commande de conversion set_protocol VCP doit d'abord être exécutée, puis être suivie du débranchement de l'instrument. Dans l'exemple suivant, et pour l'entièreté de la présente documentation, nous utiliserons un instrument VCP-PTH200 dont le numéro de série est E16026 pour illustrer nos propos. Ici, le débranchement de l'instrument a été effectué virtuellement via la commande reset disponible avec dracal-usb-set.

C:Program Files (x86)DracalView>  dracal-usb-set -s E16026 set_protocol VCP
C:Program Files (x86)DracalView>  dracal-usb-set -s E16026 reset

Si un seul instrument Dracal est connecté à votre ordinateur au moment de l'exécution de ces commandes, vous pouvez omettre de préciser la numéro de série de votre appareil (comme il n'y en a qu'un seul) en utilisant l'option -f comme dans l'exemple suivant:

C:Program Files (x86)DracalView>  dracal-usb-set -f set_protocol VCP
C:Program Files (x86)DracalView>  dracal-usb-set -f reset

Note pour les utilisateurs de Windows: À l'exécution de la commande reset, l'écho suivant sera retourné dans votre outil de terminal:

C:Program Files (x86)DracalView>  dracal-usb-set -f reset
USB control message error: usb_control_msg: sending control message failed, win error: The device does not recognize the command.

Ce comportement est normal et confirme que le débranchement a été complété avec succès.

5. Mode VCP: Requis et format des données

5.1. Paramétrage de votre outil de travail

Afin de permettre l'envoi de commandes à votre appareil Dracal maintenant en mode VCP, il est nécessaire de désactiver l'écho de votre outil d'accès aux données, quel qu'il soit (terminal Linux, Putty, etc.).

Aussi, nous rappelons aux utilisateurs sous Linux l'importance de se prévaloir des droits d'accès nécessaires pour accéder aux données. Pour plus d'information, consultez le point 5) de la documentation pour les utilisateurs Linux.

5.2. Données disponibles

Seules les données provenant des canaux réels de vos instruments sont communiquées par protocole VCP. Rappelons qu'un canal réel est un canal dont les données proviennent directement de la lecture d'une grandeur physique (température, humidité relative, pression, concentration, etc.) alors qu'un canal virtuel en est un dont les données sont calculées à partir des canaux réels (humidex, altitude, etc.) Pour connaître la nature (réelle ou virtuelle) des canaux existants pour votre produit, consulter la section "Canaux disponibles" de l'onglet Caractéristiques présent dans sa fiche de produit.

5.3. Format des données

Le format des données générées en mode VCP par les produits Dracal est le suivant (les espacements en moins):

TYPE_LIGNE , PRODUIT , NO_SERIE , MESSAGE , D1,U1 , D2,U2 , ... , Dn,Un , CHECKSUM

  • TYPE_LIGNE : Le type de la ligne. Les options possibles sont:
    • D : Ligne de données
    • I : Ligne d'information
    • C : Données étalonnées (pour les produits VCP supportant le mécanisme d'étalonnage par l'usager Dracal)
  • PRODUIT : Numéro de produit. (ex. VCP-PTH200)
  • NO_SERIE : Numéro de série unique du produit (ex. E16026)
  • MESSAGE : Message d'écho lorsqu'une commande est envoyée à l'appareil (ex. Poll interval set to 1000 ms)
  • (D1,U1),(D2,U2),...,(Dn,Un) : Lectures par paires (valeur numérique, unité) (ex. 100676,Pa,23.8945,C.21.7853,%)
  • CHECKSUM : *[Code hexa à 4 caractères calculé avec la fonction CRC-16] (ex. *A13D)

L'algorithme CRC est CRC-16-CCITT (XMODEM) et il est calculé pour chaque ligne à partir du premier caractère de la ligne jusqu'à l'astérisque '*' exclusivement, ce qui signifie que l'astérisque lui-même n'est pas inclus. Il y a toujours exactement un astérisque par ligne, suivi du CRC exprimé en 4 chiffres hexadécimaux, suivi d'un retour chariot '\r' et d'une nouvelle ligne '\n' . Aucun de ces caractères n'est inclus dans le calcul du CRC.

Voici un extrait de lecture de notre VCP-PTH200 en mode VCP:

D,VCP-PTH200,E16026,,100681,Pa,*040A
%,D,VCP-PTH200,E16026,,100680,Pa,23.9239,C,23.154,%,*CC78
D,VCP-PTH200,E16026,,100680,Pa,23.9532,C,23.1098,%,*aa99
D,VCP-PTH200,E16026,,100684,Pa,23.9666,C,23.035,%,*723f
D,VCP-PTH200,E16026,,100680,Pa,23.9666,C,22.9892,%,*9758
D,VCP-PTH200,E16026,,100681,Pa,23.9666,C,22.9587,%,*8abb
D,VCP-PTH200,E16026,,100680,Pa,23.9372,C,23.0625,%,*1169
D,VCP-PTH200,E16026,,100681,Pa,23.9532,C,23.1098,%,*ef2d
D,VCP-PTH200,E16026,,100683,Pa,23.9532,C,22.9725,%,*01f3
	

Note: Remarquez que les deux premières lectures peuvent être incomplètes ou incohérentes. Ceci est normal comme il est très peu probable que le début de la lecture des données par l'usager soit exactement synchronisée avec le début d'une ligne de données communiquée.

6. Commandes disponibles en mode VCP

6.1. Obtenir l'information sur les colonnes: commande INFO

La commande INFO affiche la description des différentes colonnes de données, qui sont spécifiques à chaque instrument. Cette commande permet entre autres aux usagers désirant effectuer des enregistrements de données dans un fichier .csv d'obtenir l'entête de leurs colonnes. Voici le résultat de l'appel de cette commande pour notre VCP-PTH200:

D,VCP-PTH200,E16026,,100724,Pa,22.2816,C,22.5376,%,*aa91
D,VCP-PTH200,E16026,,100724,Pa,22.3243,C,22.4674,%,*4e1d
D,VCP-PTH200,E16026,,100724,Pa,22.3083,C,22.3728,%,*8202
I,Product ID,Serial Number,Message,MS5611 Pressure,Pa,SHT31 Temperature,C,SHT31 Relative Humidity,%,*bbdd      (Appel de la commande: INFO)
D,VCP-PTH200,E16026,,100725,Pa,22.3243,C,22.3301,%,*8a7d
D,VCP-PTH200,E16026,,100724,Pa,22.3377,C,22.3484,%,*0f44
D,VCP-PTH200,E16026,,100723,Pa,22.351,C,22.3026,%,*97d4

Comme le terminal est configuré sans écho, l'envoi de la commande INFO n'apparait pas dans le terminal, mais le résultat est bel et bien présent. Notez, sur la ligne correspondant au résultat de la commande, que le premier caractère affiché est I, rappelant que la ligne n'en est pas une de données, mais bien d'information.

6.2. Déterminer la fréquence de récupération des données: commande POLL

La commande POLL n, n ≥ 0, est invoquée pour établir à n (en ms) la fréquence de récupération des données. Voici un exemple de retour affiché lors de l'appel de la commande POLL 2000, pour récupérer les données aux 2000 ms:

D,VCP-PTH200,E16026,,100696,Pa,23.3845,C,20.2197,%,*78df
D,VCP-PTH200,E16026,,100700,Pa,23.3711,C,20.3082,%,*25c8
D,VCP-PTH200,E16026,,100698,Pa,23.4005,C,20.3845,%,*3cac
D,VCP-PTH200,E16026,,100698,Pa,23.4005,C,20.4593,%,*6d48
I,VCP-PTH200,E16026,Poll interval set to 2000 ms,,,,,,,*b754    (Appel de la commande: POLL 2000)
D,VCP-PTH200,E16026,,100699,Pa,23.3845,C,20.5051,%,*4d46
D,VCP-PTH200,E16026,,100698,Pa,23.3711,C,20.4303,%,*01db

Si nous tentons de forcer une fréquence de 5 ms (commande POLL 5), qui serait beaucoup plus rapide de la fréquence limite interne de 100 ms de l'instrument, c'est cette dernière qui sera appliquée, tel qu'illustré dans l'exemple suivant:

D,VCP-PTH200,E16026,,100682,Pa,23.769,C,19.9542,%,*f0d0
D,VCP-PTH200,E16026,,100682,Pa,23.769,C,20.1053,%,*8f8a
I,VCP-PTH200,E16026,Specified interval is below minimum,,,,,,,*3bd8     (Appel de la commande: POLL 5)
I,VCP-PTH200,E16026,Poll interval set to 100 ms,,,,,,,*6cef
D,VCP-PTH200,E16026,,100681,Pa,23.769,C,20.2121,%,*c111
D,VCP-PTH200,E16026,,100683,Pa,23.769,C,20.2121,%,*af17
D,VCP-PTH200,E16026,,100683,Pa,23.769,C,20.2121,%,*af17
D,VCP-PTH200,E16026,,100683,Pa,23.769,C,20.2884,%,*1d1e

De même, si nous tentons de forcer une fréquence moins rapide (ex. POLL 100000) que la fréquence limite de 60000 ms, c'est cette dernière qui sera appliquée, tel qu'illustré dans l'exemple suivant:

D,VCP-PTH200,E16026,,100696,Pa,23.3845,C,20.2197,%,*78df
D,VCP-PTH200,E16026,,100700,Pa,23.3711,C,20.3082,%,*25c8
D,VCP-PTH200,E16026,,100698,Pa,23.4005,C,20.3845,%,*3cac
I,VCP-PTH200,E16026,Specified interval is above maximum,,,,,,,*82c7      (Appel de la commande: POLL 100000)
I,VCP-PTH200,E16026,Poll interval set to 60000 ms,,,,,,,*6053 
D,VCP-PTH200,E16026,,100681,Pa,23.769,C,20.2121,%,*c111 
D,VCP-PTH200,E16026,,100683,Pa,23.769,C,20.2121,%,*af17 
D,VCP-PTH200,E16026,,100681,Pa,23.769,C,20.2121,%,*c111 

Enfin, la commande POLL 0 cesse la récupération de données, jusqu'à ce qu'une nouvelle commande POLL n, n>0, soit appelée de nouveau:

D,VCP-PTH200,E16026,,100681,Pa,23.769,C,20.2121,%,*c111 
D,VCP-PTH200,E16026,,100683,Pa,23.769,C,20.2121,%,*af17
I,VCP-PTH200,E16026,Polling disabled,,,,,,,*3567                          (Appel de la commande: POLL 0)

6.3. (VCP-CAL) Activer ou désactiver l'étalonnage: commande CAL

Les capteurs Dracal de type VCP-CAL, c'est-à-dire possédant simultanément l'option VCP ainsi que le mécanisme d'étalonnage en 3 points Dracal, ont accès à la commande CAL. Cette commande permet d'activer ou de désactiver l'application de l'étalonnage pour les points saisis préalablement par l'usager. Par défaut, le mécanisme d'étalonnage est en mode actif (CAL ON) et les données retournées par l'instrument sont étalonnées. Pour désactiver le mécanisme d'étalonnage, il suffit d'invoquer la commande CAL OFF tel qu'illustré ci-dessous.

Dans cet exemple, un point d'étalonnage a été saisi dans le logiciel DracalView pour un appareil VCP-PTH450-CAL. Le point saisi applique un décalage de +5 °C au canal de température de l'instrument:

Voyons l'effet de l'invocation des commandes CAL OFF et CAL ON sur les données retournées:

C,VCP-PTH450-CAL,E21402,,103183,Pa,29.41,C,38.46,%,*d0ea
C,VCP-PTH450-CAL,E21402,,103183,Pa,29.40,C,38.46,%,*d39f
C,VCP-PTH450-CAL,E21402,,103182,Pa,29.41,C,38.48,%,*a746
I,VCP-PTH450-CAL,E21402,Calibration OFF,,,,,,,*6819       (Appel de la commande: CAL OFF)
D,VCP-PTH450-CAL,E21402,,103183,Pa,24.40,C,38.43,%,*b0a9
D,VCP-PTH450-CAL,E21402,,103183,Pa,24.41,C,38.49,%,*db77
D,VCP-PTH450-CAL,E21402,,103182,Pa,24.42,C,38.42,%,*1501
D,VCP-PTH450-CAL,E21402,,103184,Pa,24.41,C,38.46,%,*0619
I,VCP-PTH450-CAL,E21402,Calibration ON,,,,,,,*6819      (Appel de la commande: CAL ON)
C,VCP-PTH450-CAL,E21402,,103181,Pa,29.41,C,38.35,%,*972f
C,VCP-PTH450-CAL,E21402,,103181,Pa,29.41,C,38.34,%,*e19b
C,VCP-PTH450-CAL,E21402,,103181,Pa,29.40,C,38.31,%,*5eab

Tel qu'attendu, nous pouvons constater que les mesures de températures en mode CAL ON, en orange, sont effectivement supérieures de +5 °C aux données de températures en mode CAL OFF, en vert.

Notez aussi le premier élément des lignes de données, qui indiquent par le caractère C si les données retournées sont étalonnées, et par le caractère D si elles ne le sont pas. En particulier, un appareil en mode CAL ON pour lequel aucun point d'étalonnage n'est saisi sera identifié par la lettre D, comme ses données ne sont effectivement pas étalonnées.

6.4. (VCP-CAL) Déterminer le nombre de décimales à afficher : commande FRAC

Les instruments munis des options VCP et CAL possèdent la commande FRAC, qui permet de choisir le nombre de décimales à afficher en mode VCP. La commande FRAC peut prendre en paramètre les entiers allant de 1 jusqu'à 7. La saisie d'un entier supérieur à 7 est ramené à la limite supérieure permise de 7 décimales.

Voici une illustration de l'invocation de la commande FRAC:

D,VCP-PTH450-CAL,E21402,,103180,Pa,24.3965050,C,38.4328960,%,*573b
D,VCP-PTH450-CAL,E21402,,103178,Pa,24.3965050,C,38.3489720,%,*9f9f
D,VCP-PTH450-CAL,E21402,,103179,Pa,24.4098570,C,38.3504980,%,*2e50
D,VCP-PTH450-CAL,E21402,,103178,Pa,24.3965050,C,38.3627050,%,*5599
I,VCP-PTH450-CAL,E21402,Printing 4 fractional digits,,,,,,,*70f1      (Appel de la commande: FRAC 4)
D,VCP-PTH450-CAL,E21402,,103180,Pa,24.4099,C,38.3780,%,*2af4
D,VCP-PTH450-CAL,E21402,,103181,Pa,24.3965,C,38.4192,%,*3ecf
D,VCP-PTH450-CAL,E21402,,103180,Pa,24.3832,C,38.3490,%,*213a
I,VCP-PTH450-CAL,E21402,Printing 2 fractional digits,,,,,,,*a9d4      (Appel de la commande: FRAC 2)
D,VCP-PTH450-CAL,E21402,,103183,Pa,24.40,C,38.42,%,*c61d
D,VCP-PTH450-CAL,E21402,,103181,Pa,24.38,C,38.43,%,*dac4
D,VCP-PTH450-CAL,E21402,,103179,Pa,24.41,C,38.42,%,*fe59

6.5. Retourner en mode USB: commandes PROTOCOL et RESET

La commande PROTOCOL est celle qui doit être utilisée pour convertir le protocole de communication du mode VCP vers le mode USB. Afin que la conversion soit effective, l'appareil doit par la suite est déconnecté soit de manière manuelle, soit de manière virtuelle en utilisant la commande RESET. Voici un exemple du retour suite à l'invocation des commandes PROTOCOL USB suivi de RESET:

D,VCP-PTH200,E16026,,101671,Pa,23.2883,C,25.9022,%,*f065
D,VCP-PTH200,E16026,,101670,Pa,23.3017,C,25.7649,%,*ac59
D,VCP-PTH200,E16026,,101671,Pa,23.2883,C,25.5314,%,*a5a5
D,VCP-PTH200,E16026,,101669,Pa,23.3017,C,25.3696,%,*7c3c
I,VCP-PTH200,E16026,Protocol set,,,,,,,*0803                 (Appel de la commande: PROTOCOL USB)
D,VCP-PTH200,E16026,,101668,Pa,23.3017,C,25.2293,%,*3b0d
D,VCP-PTH200,E16026,,101669,Pa,23.315,C,25.1652,%,*89b9
D,VCP-PTH200,E16026,,101669,Pa,23.3017,C,25.1499,%,*F4371
D,VCP-PTH200,E16026,,101668,Pa,23.3017,C,25.1637,%,*6971
I,VCP-PTH200,E16026,Resetting device,,,,,,,*9500                (Appel de la commande: RESET)


À ce stade, votre produit communique de nouveau par protocole USB et vous pouvez à nouveau (utilisateurs sous Windows) accéder à vos données via nos logiciels gratuits d'acquisition de données. Quant aux utilisateurs de Linux et Mac OS X, vous avez toujours pu continuer à utiliser ces outils même lorsque vous étiez en mode VCP.