SysIo  1.9.0
Embedded Library and tools
Télé-information client ERDF

Detailed Description

Ce module permet d'analyser les informations transmises sur une liaison de télé-information client des appareils de comptage électroniques utilisés par ERDF.
Il est compatible avec les trames émises par :

Il pourra évoluer pour prendre en charge d'autres compteurs (Jaune, ...).
L'analyse utilise le document ERDF-NOI-CPT_02E, Version 5.
Dans la mesure où le compteur LINKY dispose d'un mode « Historique », ce module devrait être en mesure de décoder ses trames dans ce mode (9600 bd).
L'interface matérielle devra effectuer une démodulation ASK 50 kHz et fournir un signal conforme au paragraphe 1.5 document ERDF-NOI-CPT_02E et reliée au port série fourni lors de l'ouverture.

Classes

union  uTinfoTarif
 Données de la trame spécifiques à une option de tarification. More...
 
struct  xTinfoBase
 Données de la trame spécifiques à l'option de base. More...
 
struct  xTinfoEjp
 Données de la trame spécifiques à option EJP. More...
 
union  xTinfoFrame
 Trame de télé-information. More...
 
struct  xTinfoFrameBlue
 Trame d'un compteur bleu. More...
 
struct  xTinfoFrameBlueShort
 Trame courte d'un compteur bleu triphasé Emise lors d'un dépassement d'intensité souscrite sur une ou plusieurs phases. More...
 
struct  xTinfoFrameRaw
 Trame brute Permet de tester le type de trame. More...
 
struct  xTinfoHc
 Données de la trame spécifiques à l'option Heures creuses. More...
 
struct  xTinfoTempo
 Données de la trame spécifiques à option Tempo. More...
 

Functions

int iTinfoClose (xTinfo *tinfo)
 Fermeture d'une liaison de télé-information. More...
 
int iTinfoPoll (xTinfo *tinfo)
 Scrute la liaison de télé-information en attente de réception d'octet. More...
 
void * pvTinfoGetUserContext (const xTinfo *tinfo)
 Renvoie le pointeur sur les données de l'utilisateur. More...
 
const char * sTinfoOpTarifToStr (eTinfoOpTarif tarif)
 Chaîne de caractère correspondant à une option tarifaire. More...
 
const char * sTinfoPtecToStr (eTinfoPtec ptec)
 Chaîne de caractère correspondant à une période de tarification. More...
 
const char * sTinfoTempoColorToStr (eTinfoTempoColor color)
 Chaîne de caractère correspondant à une couleur Tempo. More...
 
void vTinfoSetCB (xTinfo *tinfo, eTinfoCbType type, iTinfoCb cb)
 Modifie un gestionnaire de réception. More...
 
void vTinfoSetUserContext (xTinfo *tinfo, void *udata)
 Modifie le contexte utilisateur. More...
 
xTinfoxTinfoOpen (const char *port, unsigned long baudrate)
 Ouverture d'une liaison de télé-information. More...
 

Typedefs

typedef int(* iTinfoCb) (struct xTinfo *tinfo, union xTinfoFrame *frame)
 Prototype d'un gestionnaire de réception. More...
 
typedef struct xTinfo xTinfo
 Contexte d'une liaison de télé-information. More...
 
typedef union xTinfoFrame xTinfoFrame
 Trame de télé-information. More...
 

Enumerations

enum  eTinfoCbType {
  eTinfoCbFrame = 0, eTinfoCbAdps = 1, eTinfoCbPtec = 2, eTinfoCbMotEtat = 3,
  eTinfoCbTempo = 4
}
 Type de gestionnaire de réception. More...
 
enum  eTinfoFlag {
  eTinfoFlagShort = 0x0001, eTinfoFlagPapp = 0x0002, eTinfoFlagAdps = 0x0100, eTinfoFlagNewPtec = 0x0200,
  eTinfoFlagTempoNewColor = 0x0400, eTinfoFlagNewMotEtat = 0x0800
}
 Drapeaux de la trame. More...
 
enum  eTinfoFrame { eTinfoFrameUnknown = 0, eTinfoFrameBlue = 0x0001 }
 Type de trame. More...
 
enum  eTinfoOpTarif {
  eTinfoOpTarifUnknown = 0, eTinfoOpTarifBase, eTinfoOpTarifHc, eTinfoOpTarifEjp,
  eTinfoOpTarifTempo
}
 Option de tarification. More...
 
enum  eTinfoPtec {
  eTinfoPtecUnknown = 0, eTinfoPtecTh, eTinfoPtecHc, eTinfoPtecHp,
  eTinfoPtecHn, eTinfoPtecPm, eTinfoPtecHcJb, eTinfoPtecHcJw,
  eTinfoPtecHcJr, eTinfoPtecHpJb, eTinfoPtecHpJw, eTinfoPtecHpJr
}
 Période Tarifaire En Cours. More...
 
enum  eTinfoTempoColor { eTinfoColorUnknown = 0, eTinfoColorBlue, eTinfoColorWhite, eTinfoColorRed }
 Couleur Tempo. More...
 

Typedef Documentation

typedef int(* iTinfoCb) (struct xTinfo *tinfo, union xTinfoFrame *frame)

#include <tinfo.h>

Prototype d'un gestionnaire de réception.

Parameters
tinfopointeur sur le contexte du module tinfo initialisé
framepointeur sur la trame reçue (ne doit pas être libérée)
Returns
Si il réussit un gestionnaire doit renvoyer 0, sinon c'est une erreur

Definition at line 260 of file tinfo.h.

typedef struct xTinfo xTinfo

#include <tinfo.h>

Contexte d'une liaison de télé-information.

Cette structure est opaque pour l'utilisateur

Definition at line 249 of file tinfo.h.

typedef union xTinfoFrame xTinfoFrame

#include <tinfo.h>

Trame de télé-information.

Cette union permet de stocker les différents type de trame, le champ frame est commun à toutes les trames et peut être testé grace à la structure raw.

Enumeration Type Documentation

#include <tinfo.h>

Type de gestionnaire de réception.

Enumerator
eTinfoCbFrame 

Réception d'une trame

eTinfoCbAdps 

Avertissement de Dépassement de Puissance Souscrite

eTinfoCbPtec 

Changement de période tarifaire

eTinfoCbMotEtat 

Changement du mot d'état

eTinfoCbTempo 

Changement de la couleur du jour du lendemain (tempo)

Definition at line 119 of file tinfo.h.

119  {
120  eTinfoCbFrame = 0,
121  eTinfoCbAdps = 1,
122  eTinfoCbPtec = 2,
123  eTinfoCbMotEtat = 3,
124  eTinfoCbTempo = 4,
125 #ifndef __DOXYGEN__
126 #define TINFO_CB_FIRST eTinfoCbFrame
127 #define TINFO_CB_LAST eTinfoCbTempo
128 #endif /* __DOXYGEN__ not defined */
129 } eTinfoCbType;
eTinfoCbType
Type de gestionnaire de réception.
Definition: tinfo.h:119
enum eTinfoFlag

#include <tinfo.h>

Drapeaux de la trame.

Enumerator
eTinfoFlagShort 

Trame courte (Triphasé, Dépassement puissance)

eTinfoFlagPapp 

Trame contenant une puissance apparente

eTinfoFlagAdps 

Avertissement de Dépassement De Puissance Souscrite

eTinfoFlagNewPtec 

Changement de période de tarification

eTinfoFlagTempoNewColor 

Changement de couleur de jour Tempo

eTinfoFlagNewMotEtat 

Changement de mot d'état

Definition at line 79 of file tinfo.h.

79  {
80  eTinfoFlagShort = 0x0001,
81  eTinfoFlagPapp = 0x0002,
82  eTinfoFlagAdps = 0x0100,
83  eTinfoFlagNewPtec = 0x0200,
84  eTinfoFlagTempoNewColor = 0x0400,
85  eTinfoFlagNewMotEtat = 0x0800,
86 } eTinfoFlag;
eTinfoFlag
Drapeaux de la trame.
Definition: tinfo.h:79

#include <tinfo.h>

Type de trame.

Actuellement le module ne sait géré que des trames envoyées par un compteur bleu.

Enumerator
eTinfoFrameUnknown 

Inconnue

eTinfoFrameBlue 

Bleue

Definition at line 50 of file tinfo.h.

50  {
51  eTinfoFrameUnknown = 0,
52  eTinfoFrameBlue = 0x0001,
54 #ifndef __DOXYGEN__
55  /* Réservé pour évolution future */
56  eTinfoFrameYellow = 0x0002,
57  eTinfoFrameIce = 0x0004,
58  eTinfoFrameIce2Q = eTinfoFrameIce,
59  eTinfoFrameIce4Q = eTinfoFrameIce + 0x0008,
60  eTinfoFramePmePmi = 0x0010,
61  eTinfoFrameSaphir = 0x0020,
62 #endif /* __DOXYGEN__ not defined */
63 } eTinfoFrame;
eTinfoFrame
Type de trame.
Definition: tinfo.h:50

#include <tinfo.h>

Option de tarification.

Enumerator
eTinfoOpTarifUnknown 

Option tarifaire inconnue

eTinfoOpTarifBase 

Option tarifaire de base

eTinfoOpTarifHc 

Option tarifaire Heures creuses

eTinfoOpTarifEjp 

Option tarifaire EJP (Effacecement des Jours de Pointe)

eTinfoOpTarifTempo 

Option tarifaire Tempo

Definition at line 68 of file tinfo.h.

enum eTinfoPtec

#include <tinfo.h>

Période Tarifaire En Cours.

Enumerator
eTinfoPtecTh 

Toutes les Heures

eTinfoPtecHc 

Heures Creuses

eTinfoPtecHp 

Heures Pleines

eTinfoPtecHn 

Heures Normales

eTinfoPtecPm 

Heures de Pointe Mobile

eTinfoPtecHcJb 

Heures Creuses, Jours Bleus

eTinfoPtecHcJw 

Heures Creuses, Jours Blancs (White)

eTinfoPtecHcJr 

Heures Creuses, Jours Rouges

eTinfoPtecHpJb 

Heures Pleines, Jours Bleus

eTinfoPtecHpJw 

Heures Pleines, Jours Blancs (White)

eTinfoPtecHpJr 

Heures Pleines, Jours Rouges

Definition at line 91 of file tinfo.h.

91  {
92  eTinfoPtecUnknown = 0,
93  eTinfoPtecTh,
94  eTinfoPtecHc,
95  eTinfoPtecHp,
96  eTinfoPtecHn,
97  eTinfoPtecPm,
104 } eTinfoPtec;
eTinfoPtec
Période Tarifaire En Cours.
Definition: tinfo.h:91

#include <tinfo.h>

Couleur Tempo.

Enumerator
eTinfoColorBlue 

Jour Bleu

eTinfoColorWhite 

Jour Blanc

eTinfoColorRed 

Jour Rouge

Definition at line 109 of file tinfo.h.

109  {
110  eTinfoColorUnknown = 0,
eTinfoTempoColor
Couleur Tempo.
Definition: tinfo.h:109

Function Documentation

int iTinfoClose ( xTinfo tinfo)

#include <tinfo.h>

Fermeture d'une liaison de télé-information.

Parameters
tinfopointeur sur l'objet Tinfo
Returns
0, -1 si erreur
Examples:
serial/tinfo/sysio_demo_tinfo.c.
int iTinfoPoll ( xTinfo tinfo)

#include <tinfo.h>

Scrute la liaison de télé-information en attente de réception d'octet.

Cette fonction doit être appellée dans la boucle principale aussi souvent que possible.

Warning
Il faut appeller cette fonction sinon aucune réception n'est possible.
Returns
0, -1 si erreur
Examples:
serial/tinfo/sysio_demo_tinfo.c.
void* pvTinfoGetUserContext ( const xTinfo tinfo)

#include <tinfo.h>

Renvoie le pointeur sur les données de l'utilisateur.

Le contexte xTinfo dispose d'un pointeur void * permettant à l'utilisateur d'y attacher des donnnées spécifiques. Comme les gestionnaires d'événements reçoivent le contexte xTinfo, il leur est possible de le récupérer.

Parameters
tinfopointeur sur l'objet Tinfo
Returns
pointeur sur les données de l'utilisateur
const char* sTinfoOpTarifToStr ( eTinfoOpTarif  tarif)

#include <tinfo.h>

Chaîne de caractère correspondant à une option tarifaire.

Parameters
tarifoption tarifaire
Returns
chaîne de caractère string ci-dessous:
string tarif Option tarifaire
base eTinfoOpTarifBase de Base
hc eTinfoOpTarifHc Heures creuses
ejp eTinfoOpTarifEjp EJP (Effacecement des Jours de Pointe)
tempo eTinfoOpTarifTempo Tempo
-— autre valeur Valeur inconnue (4 tirets -)
Examples:
serial/tinfo/sysio_demo_tinfo.c.
const char* sTinfoPtecToStr ( eTinfoPtec  ptec)

#include <tinfo.h>

Chaîne de caractère correspondant à une période de tarification.

Parameters
ptecpériode tarifaire en cours
Returns
chaîne de caractère string ci-dessous:
string ptec période tarifaire en cours
th eTinfoPtecTh Toutes les Heures
hc eTinfoPtecHc Heures Creuses
hp eTinfoPtecHp Heures Pleines
hn eTinfoPtecHn Heures Normales
hpm eTinfoPtecPm Heures de Pointe Mobile
hcjb eTinfoPtecHcJb Heures Creuses, Jours Bleus
hcjw eTinfoPtecHcJw Heures Creuses, Jours Blancs (White)
hcjr eTinfoPtecHcJr Heures Creuses, Jours Rouges
hpjb eTinfoPtecHpJb Heures Pleines, Jours Bleus
hpjw eTinfoPtecHpJw Heures Pleines, Jours Blancs (White)
hpjr eTinfoPtecHpJr Heures Pleines, Jours Rouges
-— autre valeur Valeur inconnue (4 tirets -)
Examples:
serial/tinfo/sysio_demo_tinfo.c.
const char* sTinfoTempoColorToStr ( eTinfoTempoColor  color)

#include <tinfo.h>

Chaîne de caractère correspondant à une couleur Tempo.

Parameters
colorcouleur tempo du jour
Returns
chaîne de caractère string ci-dessous:
string color couleur tempo du jour
bleu eTinfoColorBlue Bleu
blanc eTinfoColorWhite Blanc
rouge eTinfoColorRed Rouge
-— autre valeur Valeur inconnue (4 tirets -)
Examples:
serial/tinfo/sysio_demo_tinfo.c.
void vTinfoSetCB ( xTinfo tinfo,
eTinfoCbType  type,
iTinfoCb  cb 
)

#include <tinfo.h>

Modifie un gestionnaire de réception.

Permet d'installer qui sera appelée lors de l'événement corresondant à type.

Parameters
tinfopointeur sur l'objet Tinfo
typetype de l'événement géré
cbfonction de l'utilisateur gérant l'événement
Examples:
serial/tinfo/sysio_demo_tinfo.c.
void vTinfoSetUserContext ( xTinfo tinfo,
void *  udata 
)

#include <tinfo.h>

Modifie le contexte utilisateur.

Le contexte xTinfo dispose d'un pointeur void * permettant à l'utilisateur d'y attacher des donnnées spécifiques. Comme les gestionnaires d'événements reçoivent le contexte xTinfo, il leur est possible de le récupérer.

Parameters
tinfopointeur sur l'objet Tinfo
pointeursur les données de l'utilisateur
xTinfo* xTinfoOpen ( const char *  port,
unsigned long  baudrate 
)

#include <tinfo.h>

Ouverture d'une liaison de télé-information.

Cette fonction doit être appellée avant toute utilisation du contexte tinfo.

Parameters
portport série à utiliser (/dev/ttyUSB0...)
baudratevitesse en bauds, devrait être 1200 sauf pour Linky (9600)
Returns
le contexte, NULL si erreur
Examples:
serial/tinfo/sysio_demo_tinfo.c.