|
Portier Wireless Le portier sans fil est un système bidirectionnel basé sur un microcontrôleur PIC32MX130F064B-I/SS et un module radio 868 MHz, permettant à un visiteur d’envoyer une requête depuis l’extérieur via un bouton alimenté par piles, et à l’occupant du bureau de répondre par des signaux lumineux et sonores grâce à une unité intérieure alimentée en USB, le tout avec appairage sécurisé et gestion autonome de l’énergie.
|
#include "app.h"#include <stdio.h>#include <string.h>#include "driver/nvm/drv_nvm.h"#include "led.h"#include "Mc32Debounce.h"#include "Mc32Delays.h"#include "Pairing.h"#include "RF.h"#include "sound.h"
Énumérations | |
| enum | BellState { BELL_IDLE , BELL_SEND_P0 , BELL_SEND_P1 , BELL_WAIT_ACK , BELL_DONE } |
| enum | DoorState { DOOR_IDLE , DOOR_WAIT_P , DOOR_SEND_A0 , DOOR_SEND_A1 , DOOR_DONE } |
Fonctions | |||
Serial_IsPairingRunning | |||
Indique si une procédure d'appairage est en cours.
| |||
| bool | Serial_IsPairingRunning (void) | ||
NVM_OpenDriver | |||
Ouvre le driver NVM si ce n'est pas déjà fait. | |||
SaveSerialHarmony | |||
Sauvegarde le numéro de série appairé en mémoire non volatile (NVM).
| |||
LoadSerialHarmony | |||
Charge le numéro de série appairé depuis la mémoire non volatile (NVM).
| |||
SavePairedSerialToFlash | |||
Sauvegarde le numéro de série appairé courant en mémoire flash. | |||
| void | SavePairedSerialToFlash (void) | ||
LoadPairedSerialAndApply | |||
Charge le numéro de série appairé depuis la flash et l'applique à l'application. | |||
| void | LoadPairedSerialAndApply (void) | ||
GetActifSerialNbr | |||
Retourne le numéro de série actuellement actif (appairé).
| |||
| uint32_t | GetActifSerialNbr (void) | ||
ResetSerialList | |||
Réinitialise la liste des numéros de série et l'état d'appairage. | |||
| void | ResetSerialList (void) | ||
ShowPairingSuccess | |||
Indique visuellement et auditivement le succès de l'appairage. | |||
| void | ShowPairingSuccess (void) | ||
PairingReset_DoReset | |||
Effectue la réinitialisation de l'appairage. Cette fonction réinitialise la liste des numéros de série appairés, efface la mémoire flash correspondante, remet l'état d'appairage à zéro, et effectue une indication visuelle et sonore de la réinitialisation.
| |||
PairingReset_DoorTask | |||
Tâche de surveillance du bouton d'appairage pour la porte (Door). Déclenche une réinitialisation de l'appairage si le bouton swRing est maintenu appuyé suffisamment longtemps (appui long).
| |||
| void | PairingReset_DoorTask (void) | ||
PairingReset_BellTask | |||
Tâche de surveillance des boutons d'appairage pour la sonnette (Bell). Déclenche une réinitialisation de l'appairage si les trois boutons (swEnter, swWait, swBusy) sont maintenus appuyés simultanément suffisamment longtemps (appui long).
| |||
| void | PairingReset_BellTask (void) | ||
| void | RF_SendWithSerial (uint8_t *payload) | ||
| Envoie une trame RF avec le numéro de série, en utilisant P0 et P1. | |||
| bool | Serial_CheckIfFromPaired (uint8_t *msg) | ||
| Vérifie si le message RF reçu provient du périphérique appairé. | |||
| uint32_t | PairingManagement (void) | ||
| Gère la procédure complète d'appairage côté Door ou Bell. | |||
| enum BellState |
| enum DoorState |
| uint32_t GetActifSerialNbr | ( | void | ) |
| void LoadPairedSerialAndApply | ( | void | ) |
| uint32_t PairingManagement | ( | void | ) |
Gère la procédure complète d'appairage côté Door ou Bell.
Cette fonction implémente la machine d'état d'appairage pour les deux rôles (Door/Bell). Elle pilote l'envoi/réception des trames, la sauvegarde du numéro de série appairé, l'affichage du succès, et la sortie de la procédure.
| void PairingReset_BellTask | ( | void | ) |
| void PairingReset_DoorTask | ( | void | ) |
| void ResetSerialList | ( | void | ) |
| void RF_SendWithSerial | ( | uint8_t * | payload | ) |
Envoie une trame RF avec le numéro de série, en utilisant P0 et P1.
| payload | Pointeur vers la charge utile à envoyer. |
| void SavePairedSerialToFlash | ( | void | ) |
| bool Serial_CheckIfFromPaired | ( | uint8_t * | msg | ) |
Vérifie si le message RF reçu provient du périphérique appairé.
| msg | Pointeur vers le message RF reçu. |
| bool Serial_IsPairingRunning | ( | void | ) |
| void ShowPairingSuccess | ( | void | ) |