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)
La configuration du module se fait dans le fichier avrio-board-blyss.h, la partie réception utilise un timer 16 bits en mode capture sous interruption, la broche reliée au récepteur devra être une broche de capture ICP.
static bool bBlyssFrameState |
( |
const xBlyssFrame * |
frame | ) |
|
|
inlinestatic |
Etat du destinataire de la trame.
- Paramètres
-
frame | pointeur sur la trame |
- Renvoie
- état du destinataire ON = true
- Exemples:
- net/blyss/rx/demo_blyss_rx.c.
bool bBlyssIsValidChannel |
( |
uint8_t |
channel | ) |
|
Test si un canal est valide.
- Paramètres
-
- Renvoie
- true si valide
bool bBlyssIsValidFrame |
( |
const void * |
buffer | ) |
|
Test si un buffer contient une trame LiveEz valide.
- Paramètres
-
buffer | pointeur sur une zone contenant les octets |
- Renvoie
- true si valide
Réception d'une trame.
La réception et le décodage de trames reçues se fait sous interruption, si une nouvelle trame a été reçue, elle est copiée dans frame et la fonction retourne true, sinon elle retourne false et frame n'est pas modifiée.
La réception d'une nouvelle trame est bloquée tant que la précédente n'a pas été lue avec cette fonction, il faut donc appeler cette fonction le plus souvent possible afin de ne pas perdre de trame.
- Avertissement
- Cette fonction ne fait rien et retourne false si la macro BLYSS_RX_DISABLE a été définie à la compilation.
- Paramètres
-
frame | pointeur sur la trame |
- Renvoie
- true si f a été modifiée
- Exemples:
- net/blyss/rx/demo_blyss_rx.c, et net/blyss/sniffer/demo_blyss_sniffer.c.
uint8_t ucBlyssFrameChannel |
( |
const xBlyssFrame * |
frame | ) |
|
Canal destinataire de la trame.
- Paramètres
-
frame | pointeur sur la trame |
- Renvoie
- 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 ...
- Exemples:
- net/blyss/rx/demo_blyss_rx.c.
static uint8_t ucBlyssFrameGlobalChannel |
( |
const xBlyssFrame * |
frame | ) |
|
|
inlinestatic |
Canal global d'une trame.
- Paramètres
-
frame | pointeur sur la trame |
- Renvoie
- canal global (4 bits de poids faible)
static uint16_t usBlyssFrameAddress |
( |
const xBlyssFrame * |
frame | ) |
|
|
inlinestatic |
Adresse source d'une trame.
- Paramètres
-
frame | pointeur sur la trame |
- Renvoie
- adresse de l'émetteur de la trame sur 16 bits
void vBlyssFrameInit |
( |
xBlyssFrame * |
frame, |
|
|
const uint8_t * |
tx_id |
|
) |
| |
void vBlyssFrameSetChannel |
( |
xBlyssFrame * |
frame, |
|
|
uint8_t |
channel |
|
) |
| |
Modification du canal destinataire d'une trame.
- Paramètres
-
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 ... |
- Exemples:
- net/blyss/tx/demo_blyss_tx.c.
static void vBlyssFrameSetState |
( |
xBlyssFrame * |
frame, |
|
|
bool |
state |
|
) |
| |
|
inlinestatic |
Modification de l'état du destinataire.
- Paramètres
-
frame | pointeur sur la trame |
state | état du destinataire ON = true |
- Exemples:
- net/blyss/tx/demo_blyss_tx.c.
void vBlyssPrintFrameToFile |
( |
const xBlyssFrame * |
frame, |
|
|
FILE * |
out |
|
) |
| |
Imprime le contenu d'une trame dans un fichier.
Le contenu imprimé pour chaque trame est formaté comme ci-dessous:
1 RF frame : FE5082410987D
- Paramètres
-
frame | pointeur sur la trame |
out | pointeur sur le fichier ouvert en écriture |
void vBlyssSend |
( |
xBlyssFrame * |
frame, |
|
|
uint8_t |
repeat |
|
) |
| |
Envoi d'une trame.
- Avertissement
- Cette fonction ne fait rien si la macro BLYSS_TX_DISABLE a été définie à la compilation.
- Paramètres
-
frame | pointeur sur la trame |
repeat | nombre de répétition d'nevoi |
- Exemples:
- net/blyss/tx/demo_blyss_tx.c.