![]() |
SysIo
1.9.0
Embedded Library and tools
|
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... | |
xBlyssFrame * | xBlyssFrameNew (const uint8_t *tx_id) |
Création et initialisation d'une trame LiveEz. More... | |
xBlyss * | xBlyssNew (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 | |
#define vBlyssFramePrint | ( | f | ) | vBlyssFramePrintToFile (f, stdout) |
#include <blyss.h>
Affiche le contenu de la trame pointée par f sur stdout.
f | pointeur sur une trame de type xBlyssFrame |
bool bBlyssChannelIsValid | ( | uint8_t | channel | ) |
#include <blyss.h>
Test si un canal est valide.
channel | canal à tester |
bool bBlyssFrameIsValid | ( | const void * | buffer | ) |
#include <blyss.h>
Test si un buffer contient une trame LiveEz valide.
buffer | pointeur sur une zone contenant les octets |
bool bBlyssFrameState | ( | const xBlyssFrame * | frame | ) |
#include <blyss.h>
Etat du destinataire de la trame.
frame | pointeur sur la trame |
int iBlyssDelete | ( | xBlyss * | b | ) |
#include <blyss.h>
Fermeture et destruction d'une liaison LiveEz.
b | pointeur sur la liaison |
int iBlyssSend | ( | xBlyss * | b, |
xBlyssFrame * | frame, | ||
uint8_t | repeat | ||
) |
#include <blyss.h>
Envoi d'une trame.
b | pointeur sur la liaison |
frame | pointeur sur la trame |
repeat | nombre de répétition d'nevoi |
uint8_t ucBlyssFrameChannel | ( | const xBlyssFrame * | frame | ) |
#include <blyss.h>
Canal destinataire de la trame.
frame | pointeur sur la trame |
uint8_t ucBlyssFrameGlobalChannel | ( | const xBlyssFrame * | frame | ) |
#include <blyss.h>
Canal global d'une trame.
frame | pointeur sur la trame |
uint16_t usBlyssFrameAddress | ( | const xBlyssFrame * | frame | ) |
#include <blyss.h>
Adresse source d'une trame.
frame | pointeur sur la trame |
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:
frame | pointeur sur la trame |
out | pointeur sur le fichier ouvert en écriture |
void vBlyssFrameSetAddress | ( | xBlyssFrame * | frame, |
uint16_t | address | ||
) |
#include <blyss.h>
Modification de l'adresse source d'une trame.
frame | pointeur sur la trame |
address | adresse 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.
frame | pointeur sur la trame |
channel | 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 ... |
void vBlyssFrameSetGlobalChannel | ( | xBlyssFrame * | frame, |
uint8_t | global_channel | ||
) |
#include <blyss.h>
Modification du canal global d'une trame.
frame | pointeur sur la trame |
global_channel | canal global (4 bits de poids faible) |
void vBlyssFrameSetState | ( | xBlyssFrame * | frame, |
bool | state | ||
) |
#include <blyss.h>
Modification de l'état du destinataire.
frame | pointeur sur la trame |
state | état du destinataire ON = true |
void vBlyssFrameSetTxId | ( | xBlyssFrame * | frame, |
const uint8_t * | tx_id | ||
) |
#include <blyss.h>
Modification de l'identifiant de l'émetteur d'une trame.
frame | pointeur sur la trame |
tx_id | pointeur 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()
tx_id | pointeur 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. |
xBlyss* xBlyssNew | ( | int | iOutPin, |
int | iInPin | ||
) |
#include <blyss.h>
Création d'une liaison LiveEz.
iOutPin | Numéro de la broche reliée à l'émetteur, -1 si pas d'émetteur |
iInPin | Numéro de la broche reliée au récepteur, -1 si pas de récepteur |