#include "evse_hardware.h" #include "pilot.h" #include "ac_relay.h" #include "socket_lock.h" #include "proximity.h" static const char *TAG = "evse_hardware"; void evse_hardware_init(void) { pilot_set_level(true); // Sinal piloto em 12V (inicial) ac_relay_set_state(false); // Relé desligado //socket_lock_set_locked(false); // Destrava o conector } void evse_hardware_tick(void) { // Tick para atualizações de hardware com polling, se necessário } bool evse_hardware_is_pilot_high(void) { return pilot_get_state(); // true se sinal piloto estiver em nível alto } bool evse_hardware_is_vehicle_connected(void) { // Verifica se o veículo está conectado pelo resistor do pino PP return proximity_get_max_current() > 0; } bool evse_hardware_is_energy_detected(void) { // TODO: Substituir com medição real de corrente ou consumo return true; } void evse_hardware_relay_on(void) { ac_relay_set_state(true); } void evse_hardware_relay_off(void) { ac_relay_set_state(false); } bool evse_hardware_relay_status(void) { return ac_relay_get_state(); } void evse_hardware_lock(void) { socket_lock_set_locked(true); } void evse_hardware_unlock(void) { socket_lock_set_locked(false); } bool evse_hardware_is_locked(void) { return socket_lock_get_status() == SOCKED_LOCK_STATUS_IDLE; }