Files
lucky-cat/components/domain/internal/domain_internal.h
T

51 lines
1.8 KiB
C

/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include <stdbool.h>
#include <stddef.h>
#include "domain.h"
#include "esp_err.h"
typedef struct {
const char *name_cn;
const char *name_en;
float angle;
} domain_direction_entry_t;
size_t domain_direction_catalog_count(void);
const domain_direction_entry_t *domain_direction_catalog_get(size_t index);
bool domain_direction_catalog_find_by_name(const char *input, size_t *out_index);
bool domain_direction_catalog_find_by_angle(float angle, size_t *out_index);
float domain_angle_normalize(float angle);
float domain_angle_shortest_rotation(float current, float target);
void domain_calibration_store_set(const domain_direction_calibration_t *config);
bool domain_calibration_store_get(domain_direction_calibration_t *out_config);
bool domain_direction_lock_state(int timeout_ms);
void domain_direction_unlock_state(void);
typedef struct {
int gpio_num;
int active_level;
bool pullup_enabled;
bool pulldown_enabled;
} domain_digital_input_config_t;
esp_err_t domain_runtime_platform_init(void);
esp_err_t domain_runtime_stepper_rotate_angle_with_accel_timeout(float angle,
int target_delay_us,
int timeout_ms);
esp_err_t domain_runtime_stepper_release_hold(int timeout_ms);
void domain_runtime_stepper_power_off(void);
esp_err_t domain_runtime_digital_input_configure(const domain_digital_input_config_t *config);
bool domain_runtime_digital_input_is_active(const domain_digital_input_config_t *config);
esp_err_t domain_runtime_calibration_switch_init(void);
bool domain_runtime_calibration_switch_is_active(void);