Sistema Embarcado LockWise
Sistema de fechadura inteligente com autenticação por voz, controle MQTT e aplicativo móvel
Carregando...
Procurando...
Nenhuma entrada encontrada
Referência ao ficheiro lock.c
#include "config.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
#include "freertos/timers.h"
#include "lock.h"
#include "mqtt.h"
#include <stdint.h>

Estruturas de Dados

struct  lock_context_t
 Estrutura de contexto para gerenciamento da fechadura. Mais...
 

Funções

void lock_init (void)
 Inicializa o controle da fechadura.
 
static void lock_timeout_callback (TimerHandle_t xTimer)
 Callback do timer de trancamento automático.
 
void blink (void *param)
 Tarefa para fazer o LED piscar continuamente.
 
void unlock_door (door_reason_t reason)
 Destranca a fechadura.
 
void lock_door (door_reason_t reason)
 Tranca a fechadura.
 
void toggle_door (door_reason_t reason)
 Alterna o estado da fechadura.
 
lock_state_t get_lock_state (void)
 Retorna o estado atual da fechadura.
 

Variáveis

static const char * TAG = "\033[1mLOCKWISE:\033[93mLOCK"
 
static lock_context_t lock_ctx
 Instância singleton do contexto da fechadura.
 

Documentação das funções

◆ blink()

void blink ( void *  param)

Tarefa para fazer o LED piscar continuamente.

Parâmetros
paramPonteiro para blink_params_t contendo os parâmetros de piscar.

Esta função roda em loop infinito, controlando o GPIO do LED conforme os parâmetros fornecidos.

◆ get_lock_state()

lock_state_t get_lock_state ( void  )

Retorna o estado atual da fechadura.

Retorna
Estado atual da fechadura (LOCK_STATE_LOCKED, LOCK_STATE_UNLOCKED ou LOCK_STATE_AUTHENTICATING).

◆ lock_door()

void lock_door ( door_reason_t  reason)

Tranca a fechadura.

Parâmetros
reasonRazão para o trancamento.

Desativa o atuador da fechadura e publica o evento via MQTT.

◆ lock_init()

void lock_init ( void  )

Inicializa o controle da fechadura.

Esta função configura os GPIOs necessários, inicializa o mutex e define o estado inicial da fechadura como trancada.

◆ lock_timeout_callback()

static void lock_timeout_callback ( TimerHandle_t  xTimer)
static

Callback do timer de trancamento automático.

Parâmetros
xTimerHandle do timer que expirou.

Chamado quando o timer de auto-trancamento expira, trancando a fechadura automaticamente.

◆ toggle_door()

void toggle_door ( door_reason_t  reason)

Alterna o estado da fechadura.

Parâmetros
reasonRazão para a alternância.

Se estiver trancada, destranca; se estiver destrancada, tranca.

◆ unlock_door()

void unlock_door ( door_reason_t  reason)

Destranca a fechadura.

Parâmetros
reasonRazão para o destrancamento.

Se a fechadura não estiver já destrancada, ativa o atuador, publica o evento via MQTT e inicia o timer de auto-trancamento.

Documentação das variáveis

◆ lock_ctx

lock_context_t lock_ctx
static

Instância singleton do contexto da fechadura.

◆ TAG

const char* TAG = "\033[1mLOCKWISE:\033[93mLOCK"
static