优化:

1.枚举编码格式。
This commit is contained in:
MacRsh
2023-05-10 00:53:34 +08:00
parent 5b4f5dce58
commit 5883620f38
11 changed files with 54 additions and 53 deletions

View File

@@ -105,7 +105,7 @@ mr_err_t mr_hw_adc_add(mr_adc_t adc, const char *name, struct mr_adc_ops *ops, v
MR_ASSERT(ops != MR_NULL);
/* Add the adc-device to the container */
ret = mr_device_add(&adc->device, name, Mr_Device_Type_Adc, MR_OPEN_RDONLY, &device_ops, data);
ret = mr_device_add(&adc->device, name, MR_DEVICE_TYPE_ADC, MR_OPEN_RDONLY, &device_ops, data);
if (ret != MR_ERR_OK)
return ret;

View File

@@ -104,7 +104,7 @@ mr_err_t mr_hw_dac_add(mr_dac_t dac, const char *name, struct mr_dac_ops *ops, v
MR_ASSERT(ops != MR_NULL);
/* Add the dac-device to the container */
ret = mr_device_add(&dac->device, name, Mr_Device_Type_Dac, MR_OPEN_WRONLY, &device_ops, data);
ret = mr_device_add(&dac->device, name, MR_DEVICE_TYPE_DAC, MR_OPEN_WRONLY, &device_ops, data);
if (ret != MR_ERR_OK)
return ret;

View File

@@ -129,7 +129,7 @@ static mr_err_t mr_i2c_device_ioctl(mr_device_t device, int cmd, void *args)
mr_device_t i2c_bus = mr_device_find((char *)args);
if (i2c_bus == MR_NULL)
return - MR_ERR_NOT_FOUND;
if (i2c_bus->type != Mr_Device_Type_I2c_bus)
if (i2c_bus->type != MR_DEVICE_TYPE_I2C_BUS)
return - MR_ERR_INVALID;
/* Open the i2c-bus */
@@ -261,7 +261,7 @@ mr_err_t mr_hw_i2c_bus_add(mr_i2c_bus_t i2c_bus, const char *name, struct mr_i2c
MR_ASSERT(ops != MR_NULL);
/* Add the i2c-bus to the container */
ret = mr_device_add(&i2c_bus->device, name, Mr_Device_Type_I2c_bus, MR_OPEN_RDWR, &device_ops, data);
ret = mr_device_add(&i2c_bus->device, name, MR_DEVICE_TYPE_I2C_BUS, MR_OPEN_RDWR, &device_ops, data);
if (ret != MR_ERR_OK)
return ret;
@@ -300,7 +300,7 @@ mr_err_t mr_hw_i2c_device_add(mr_i2c_device_t i2c_device,
MR_ASSERT(support_flag != MR_NULL);
/* Add the i2c-device to the container */
ret = mr_device_add(&i2c_device->device, name, Mr_Device_Type_I2c, support_flag, &device_ops, MR_NULL);
ret = mr_device_add(&i2c_device->device, name, MR_DEVICE_TYPE_I2C, support_flag, &device_ops, MR_NULL);
if (ret != MR_ERR_OK)
return ret;

View File

@@ -112,7 +112,7 @@ mr_err_t mr_hw_pin_add(mr_pin_t pin, const char *name, struct mr_pin_ops *ops, v
MR_ASSERT(ops != MR_NULL);
/* Add the pin-device to the container */
ret = mr_device_add(&pin->device, name, Mr_Device_Type_Pin, MR_OPEN_RDWR, &device_ops, data);
ret = mr_device_add(&pin->device, name, MR_DEVICE_TYPE_PIN, MR_OPEN_RDWR, &device_ops, data);
if (ret != MR_ERR_OK)
return ret;

View File

@@ -188,7 +188,7 @@ mr_err_t mr_hw_serial_add(mr_serial_t serial, const char *name, struct mr_serial
MR_ASSERT(ops != MR_NULL);
/* Add the serial-device to the container */
ret = mr_device_add(&serial->device, name, Mr_Device_Type_Serial, MR_OPEN_RDWR, &device_ops, data);
ret = mr_device_add(&serial->device, name, MR_DEVICE_TYPE_SERIAL, MR_OPEN_RDWR, &device_ops, data);
if (ret != MR_ERR_OK)
return ret;

View File

@@ -134,7 +134,7 @@ static mr_err_t mr_spi_device_ioctl(mr_device_t device, int cmd, void *args)
mr_device_t spi_bus = mr_device_find((char *)args);
if (spi_bus == MR_NULL)
return - MR_ERR_NOT_FOUND;
if (spi_bus->type != Mr_Device_Type_Spi_bus)
if (spi_bus->type != MR_DEVICE_TYPE_SPI_BUS)
return - MR_ERR_INVALID;
/* Open the spi-bus */
@@ -234,7 +234,7 @@ mr_err_t mr_hw_spi_bus_add(mr_spi_bus_t spi_bus, const char *name, struct mr_spi
MR_ASSERT(ops != MR_NULL);
/* Add the spi-bus to the container */
ret = mr_device_add(&spi_bus->device, name, Mr_Device_Type_Spi_bus, MR_OPEN_RDWR, &device_ops, data);
ret = mr_device_add(&spi_bus->device, name, MR_DEVICE_TYPE_SPI_BUS, MR_OPEN_RDWR, &device_ops, data);
if (ret != MR_ERR_OK)
return ret;
@@ -271,7 +271,7 @@ mr_err_t mr_hw_spi_device_add(mr_spi_device_t spi_device,
MR_ASSERT(support_flag != MR_NULL);
/* Add the spi-device to the container */
ret = mr_device_add(&spi_device->device, name, Mr_Device_Type_Spi, support_flag, &device_ops, MR_NULL);
ret = mr_device_add(&spi_device->device, name, MR_DEVICE_TYPE_SPI, support_flag, &device_ops, MR_NULL);
if (ret != MR_ERR_OK)
return ret;

View File

@@ -231,7 +231,7 @@ mr_err_t mr_hw_timer_add(mr_timer_t timer,
MR_ASSERT(information->max_cut != 0);
/* Add the timer-device to the container */
ret = mr_device_add(&timer->device, name, Mr_Device_Type_Timer, MR_OPEN_RDWR, &device_ops, data);
ret = mr_device_add(&timer->device, name, MR_DEVICE_TYPE_TIMER, MR_OPEN_RDWR, &device_ops, data);
if (ret != MR_ERR_OK)
return ret;

View File

@@ -113,8 +113,8 @@
#define MR_HIGH 1 /**< High level */
#define MR_DISABLE 0 /**< Disable */
#define MR_ENABLE 1 /**< Enable */
#define MR_UNLOCK 0 /**< Unlock */
#define MR_LOCK 1 /**< Lock */
#define MR_UNLOCK 0 /**< Unlock */
#define MR_LOCK 1 /**< Lock */
typedef signed char mr_int8_t; /**< Type for 8bit integer */
typedef signed short mr_int16_t; /**< Type for 16bit integer */
@@ -182,10 +182,10 @@ typedef struct mr_fifo *mr_fifo_t; /**< Type fo
*/
enum mr_container_type
{
Mr_Container_Type_Misc, /**< Miscellaneous container */
Mr_Container_Type_Device, /**< Device container */
Mr_Container_Type_Manager, /**< Event container */
_Mr_Container_Type_Mask, /**< Mask for getting container type */
MR_CONTAINER_TYPE_MISC, /**< Miscellaneous container */
MR_CONTAINER_TYPE_DEVICE, /**< Device container */
MR_CONTAINER_TYPE_MANAGER, /**< Event container */
MR_CONTAINER_TYPE_MASK, /**< Mask for getting container type */
};
struct mr_container
@@ -226,18 +226,18 @@ typedef struct mr_mutex *mr_mutex_t; /**< Type fo
*/
enum mr_device_type
{
Mr_Device_Type_None, /**< No device */
Mr_Device_Type_Pin, /**< GPIO device */
Mr_Device_Type_Spi_bus, /**< SPI-BUS device */
Mr_Device_Type_Spi, /**< SPI device */
Mr_Device_Type_I2c_bus, /**< I2C-BUS device */
Mr_Device_Type_I2c, /**< I2C device */
Mr_Device_Type_Serial, /**< UART device */
Mr_Device_Type_Adc, /**< ADC device */
Mr_Device_Type_Dac, /**< DAC device */
Mr_Device_Type_Pwm, /**< PWM device */
Mr_Device_Type_Timer, /**< TIMER device */
Mr_Device_Type_Flash, /**< FLASH device */
MR_DEVICE_TYPE_NONE, /**< No device */
MR_DEVICE_TYPE_PIN, /**< GPIO device */
MR_DEVICE_TYPE_SPI_BUS, /**< SPI-BUS device */
MR_DEVICE_TYPE_SPI, /**< SPI device */
MR_DEVICE_TYPE_I2C_BUS, /**< I2C-BUS device */
MR_DEVICE_TYPE_I2C, /**< I2C device */
MR_DEVICE_TYPE_SERIAL, /**< UART device */
MR_DEVICE_TYPE_ADC, /**< ADC device */
MR_DEVICE_TYPE_DAC, /**< DAC device */
MR_DEVICE_TYPE_PWM, /**< PWM device */
MR_DEVICE_TYPE_TIMER, /**< TIMER device */
MR_DEVICE_TYPE_FLASH, /**< FLASH device */
/* ... */
};
@@ -272,20 +272,21 @@ struct mr_device
*/
enum mr_manager_type
{
Mr_Manager_Type_Event, /**< Event manager */
Mr_Manager_Type_Fsm, /**< Finite state machine(FSM) manager */
Mr_Manager_Type_At, /**< Attention manager */
MR_MANAGER_TYPE_EVENT, /**< Event manager */
MR_MANAGER_TYPE_FSM, /**< Finite state machine(FSM) manager */
MR_MANAGER_TYPE_AT_PARSER, /**< Attention(AT) Parser manager */
/* ... */
};
enum mr_manager_at_state
{
Mr_Manager_At_State_None, /**< No state */
Mr_Manager_At_State_Start, /**< Start state */
Mr_Manager_At_State_Flag, /**< Flag state */
Mr_Manager_At_State_Id, /**< Name state */
Mr_Manager_At_State_Stop, /**< Stop state */
Mr_Manager_At_State_Handle, /**< Handle state */
MR_MANAGER_AT_STATE_NONE, /**< No state */
MR_MANAGER_AT_STATE_START, /**< Start state */
MR_MANAGER_AT_STATE_FLAG, /**< Flag state */
MR_MANAGER_AT_STATE_ID, /**< Id state */
MR_MANAGER_AT_STATE_ARGS, /**< Args state */
MR_MANAGER_AT_STATE_STOP, /**< Stop state */
MR_MANAGER_AT_STATE_HANDLE, /**< Handle state */
};
struct mr_manager
@@ -293,7 +294,6 @@ struct mr_manager
struct mr_object object; /**< Manager object */
enum mr_manager_type type; /**< Manager type */
mr_size_t ref_count; /**< Number of manager references */
void *data; /**< Manager data */
struct mr_fifo queue; /**< Agent queue */
@@ -311,7 +311,6 @@ typedef struct mr_manager *mr_manager_t; /**< Type fo
struct mr_agent
{
struct mr_avl avl; /**< Avl-tree and agent id */
mr_size_t ref_count; /**< Number of agent references */
mr_err_t (*cb)(mr_manager_t manager, void *args); /**< Agent occurrence baud function */
void *args; /**< Callback function argument */

View File

@@ -98,6 +98,8 @@ mr_err_t mr_manager_remove(mr_manager_t manager);
mr_err_t mr_manager_notify(mr_manager_t manager, mr_uint32_t agent_id);
void mr_manager_handler(mr_manager_t manager);
void mr_manager_at_isr(mr_manager_t manager, char data);
mr_size_t mr_manager_at_get_length(void *args);
char *mr_manager_at_get_arg(void *args, mr_size_t number);
/**
* Export agent functions

View File

@@ -25,7 +25,7 @@ mr_device_t mr_device_find(const char *name)
MR_ASSERT(name != MR_NULL);
/* Find the device object from the device container */
return (mr_device_t)mr_object_find(name, Mr_Container_Type_Device);
return (mr_device_t)mr_object_find(name, MR_CONTAINER_TYPE_DEVICE);
}
/**
@@ -54,7 +54,7 @@ mr_err_t mr_device_add(mr_device_t device,
MR_ASSERT(name != MR_NULL);
/* Add the object to the container */
ret = mr_object_add(&device->object, name, Mr_Container_Type_Device);
ret = mr_object_add(&device->object, name, MR_CONTAINER_TYPE_DEVICE);
if (ret != MR_ERR_OK)
return ret;

View File

@@ -10,22 +10,22 @@
#include <mrlib.h>
static struct mr_container mr_kernel_container[_Mr_Container_Type_Mask] =
static struct mr_container mr_kernel_container[MR_CONTAINER_TYPE_MASK] =
{
{
.type = Mr_Container_Type_Misc,
.list = {&mr_kernel_container[Mr_Container_Type_Misc].list,
&mr_kernel_container[Mr_Container_Type_Misc].list}
.type = MR_CONTAINER_TYPE_MISC,
.list = {&mr_kernel_container[MR_CONTAINER_TYPE_MISC].list,
&mr_kernel_container[MR_CONTAINER_TYPE_MISC].list}
},
{
.type = Mr_Container_Type_Device,
.list = {&mr_kernel_container[Mr_Container_Type_Device].list,
&mr_kernel_container[Mr_Container_Type_Device].list}
.type = MR_CONTAINER_TYPE_DEVICE,
.list = {&mr_kernel_container[MR_CONTAINER_TYPE_DEVICE].list,
&mr_kernel_container[MR_CONTAINER_TYPE_DEVICE].list}
},
{
.type = Mr_Container_Type_Manager,
.list = {&mr_kernel_container[Mr_Container_Type_Manager].list,
&mr_kernel_container[Mr_Container_Type_Manager].list}
.type = MR_CONTAINER_TYPE_MANAGER,
.list = {&mr_kernel_container[MR_CONTAINER_TYPE_MANAGER].list,
&mr_kernel_container[MR_CONTAINER_TYPE_MANAGER].list}
},
};
@@ -38,7 +38,7 @@ static struct mr_container mr_kernel_container[_Mr_Container_Type_Mask] =
*/
mr_container_t mr_container_find(enum mr_container_type type)
{
MR_ASSERT(type < _Mr_Container_Type_Mask);
MR_ASSERT(type < MR_CONTAINER_TYPE_MASK);
return &mr_kernel_container[type];
}