SysIo  1.9.0
Embedded Library and tools
Modules Blyss™

Detailed Description

Ce module permet de gérer la transmission vers des modules domotiques Blyss™ commerciailisés par Castorama (protocole LiveEz™ 433.92 MHz).
La plateforme doit disposer d'un GPIO.
Ce code est basé sur le travail de « reverse engineering » de 7 membres du forum arduino.cc: SkyWodd, Artouste, Al1fch, Barbudor, Bunyman, Trigger et Bidle (https://skyduino.wordpress.com/2012/07/19/hack-partie-2-reverse-engineering-des-interrupteurs-domotique-blyss)

Classes

class  xBlyssFrame
 Classe permettant de manipuler une liaison LiveEz Classe opaque pour l'utilisateur. More...
 

Functions

bool bBlyssChannelIsValid (uint8_t channel)
 Test si un canal est valide. More...
 
bool bBlyssFrameIsValid (const void *buffer)
 Test si un buffer contient une trame LiveEz valide. More...
 
bool bBlyssFrameState (const xBlyssFrame *frame)
 Etat du destinataire de la trame. More...
 
int iBlyssDelete (xBlyss *b)
 Fermeture et destruction d'une liaison LiveEz. More...
 
int iBlyssSend (xBlyss *b, xBlyssFrame *frame, uint8_t repeat)
 Envoi d'une trame. More...
 
uint8_t ucBlyssFrameChannel (const xBlyssFrame *frame)
 Canal destinataire de la trame. More...
 
uint8_t ucBlyssFrameGlobalChannel (const xBlyssFrame *frame)
 Canal global d'une trame. More...
 
uint16_t usBlyssFrameAddress (const xBlyssFrame *frame)
 Adresse source d'une trame. More...
 
void vBlyssFramePrintToFile (const xBlyssFrame *frame, FILE *out)
 Imprime le contenu d'une trame dans un fichier. More...
 
void vBlyssFrameSetAddress (xBlyssFrame *frame, uint16_t address)
 Modification de l'adresse source d'une trame. More...
 
void vBlyssFrameSetChannel (xBlyssFrame *frame, uint8_t channel)
 Modification du canal destinataire d'une trame. More...
 
void vBlyssFrameSetGlobalChannel (xBlyssFrame *frame, uint8_t global_channel)
 Modification du canal global d'une trame. More...
 
void vBlyssFrameSetState (xBlyssFrame *frame, bool state)
 Modification de l'état du destinataire. More...
 
void vBlyssFrameSetTxId (xBlyssFrame *frame, const uint8_t *tx_id)
 Modification de l'identifiant de l'émetteur d'une trame. More...
 
xBlyssFramexBlyssFrameNew (const uint8_t *tx_id)
 Création et initialisation d'une trame LiveEz. More...
 
xBlyssxBlyssNew (int iOutPin, int iInPin)
 Création d'une liaison LiveEz. More...
 

Macros

#define vBlyssFramePrint(f)   vBlyssFramePrintToFile (f, stdout)
 Affiche le contenu de la trame pointée par f sur stdout. More...
 

Typedefs

typedef struct xBlyss xBlyss
 xBlyss
 
typedef struct xBlyssFrame xBlyssFrame
 xBlyssFrame
 

Macro Definition Documentation

#define vBlyssFramePrint (   f)    vBlyssFramePrintToFile (f, stdout)

#include <blyss.h>

Affiche le contenu de la trame pointée par f sur stdout.

Parameters
fpointeur sur une trame de type xBlyssFrame
Examples:
gpio/blyss-tx/sysio_demo_blyss_tx.c.

Definition at line 78 of file blyss.h.

Function Documentation

bool bBlyssChannelIsValid ( uint8_t  channel)

#include <blyss.h>

Test si un canal est valide.

Parameters
channelcanal à tester
Returns
true si valide
Examples:
gpio/blyss-tx/sysio_demo_blyss_tx.c.
bool bBlyssFrameIsValid ( const void *  buffer)

#include <blyss.h>

Test si un buffer contient une trame LiveEz valide.

Parameters
bufferpointeur sur une zone contenant les octets
Returns
true si valide
bool bBlyssFrameState ( const xBlyssFrame frame)

#include <blyss.h>

Etat du destinataire de la trame.

Parameters
framepointeur sur la trame
Returns
état du destinataire ON = true
int iBlyssDelete ( xBlyss b)

#include <blyss.h>

Fermeture et destruction d'une liaison LiveEz.

Parameters
bpointeur sur la liaison
Returns
0, -1 si erreur
Examples:
gpio/blyss-tx/sysio_demo_blyss_tx.c.
int iBlyssSend ( xBlyss b,
xBlyssFrame frame,
uint8_t  repeat 
)

#include <blyss.h>

Envoi d'une trame.

Parameters
bpointeur sur la liaison
framepointeur sur la trame
repeatnombre de répétition d'nevoi
Returns
0, -1 si erreur
Examples:
gpio/blyss-tx/sysio_demo_blyss_tx.c.
uint8_t ucBlyssFrameChannel ( const xBlyssFrame frame)

#include <blyss.h>

Canal destinataire de la trame.

Parameters
framepointeur sur la trame
Returns
canal destinataire codé sur les 4 bits de poids faible uniquement, valeur comprise entre 0 et 8, 0 correspondant à tous les canaux (broadcast), 1 au canal 1, 2 au canal 2 ...
uint8_t ucBlyssFrameGlobalChannel ( const xBlyssFrame frame)

#include <blyss.h>

Canal global d'une trame.

Parameters
framepointeur sur la trame
Returns
canal global (4 bits de poids faible)
uint16_t usBlyssFrameAddress ( const xBlyssFrame frame)

#include <blyss.h>

Adresse source d'une trame.

Parameters
framepointeur sur la trame
Returns
adresse de l'émetteur de la trame sur 16 bits
void vBlyssFramePrintToFile ( const xBlyssFrame frame,
FILE *  out 
)

#include <blyss.h>

Imprime le contenu d'une trame dans un fichier.

Le contenu imprimé pour chaque trame est formaté comme ci-dessous:

1 RF frame : FE5082410987D
2 RF footprint : FE - Ok
3 RF global channel : 05
4 RF adress : 0824
5 RF channel : Ch4
6 Light status : On
7 Rolling code : 98 - Ok
8 Token : 7D
Parameters
framepointeur sur la trame
outpointeur sur le fichier ouvert en écriture
void vBlyssFrameSetAddress ( xBlyssFrame frame,
uint16_t  address 
)

#include <blyss.h>

Modification de l'adresse source d'une trame.

Parameters
framepointeur sur la trame
addressadresse de l'émetteur de la trame sur 16 bits
void vBlyssFrameSetChannel ( xBlyssFrame frame,
uint8_t  channel 
)

#include <blyss.h>

Modification du canal destinataire d'une trame.

Parameters
framepointeur sur la trame
channelcanal destinataire codé sur les 4 bits de poids faible uniquement, valeur comprise entre 0 et 8, 0 correspondant à tous les canaux (broadcast), 1 au canal 1, 2 au canal 2 ...
Examples:
gpio/blyss-tx/sysio_demo_blyss_tx.c.
void vBlyssFrameSetGlobalChannel ( xBlyssFrame frame,
uint8_t  global_channel 
)

#include <blyss.h>

Modification du canal global d'une trame.

Parameters
framepointeur sur la trame
global_channelcanal global (4 bits de poids faible)
void vBlyssFrameSetState ( xBlyssFrame frame,
bool  state 
)

#include <blyss.h>

Modification de l'état du destinataire.

Parameters
framepointeur sur la trame
stateétat du destinataire ON = true
Examples:
gpio/blyss-tx/sysio_demo_blyss_tx.c.
void vBlyssFrameSetTxId ( xBlyssFrame frame,
const uint8_t *  tx_id 
)

#include <blyss.h>

Modification de l'identifiant de l'émetteur d'une trame.

Parameters
framepointeur sur la trame
tx_idpointeur sur un tableau de 3 octets contenant dans l'ordre le canal global (4 bits de poids faible), le poids fort de l'adresse et le poids faible de l'adresse identifiant l'emetteur.
xBlyssFrame* xBlyssFrameNew ( const uint8_t *  tx_id)

#include <blyss.h>

Création et initialisation d'une trame LiveEz.

La trame devra être libérée avec free()

Parameters
tx_idpointeur sur un tableau de 3 octets contenant dans l'ordre le canal global, le poids fort de l'adresse et le poids faible de l'adresse identifiant l'emetteur.
Returns
pointeur sur la trame initialisée, NULL si ereeur
Examples:
gpio/blyss-tx/sysio_demo_blyss_tx.c.
xBlyss* xBlyssNew ( int  iOutPin,
int  iInPin 
)

#include <blyss.h>

Création d'une liaison LiveEz.

Parameters
iOutPinNuméro de la broche reliée à l'émetteur, -1 si pas d'émetteur
iInPinNuméro de la broche reliée au récepteur, -1 si pas de récepteur
Returns
pointeur sur la liaison initialisée, NULL si erreur
Examples:
gpio/blyss-tx/sysio_demo_blyss_tx.c.