Merge pull request #3397 from luhuadong/develop

[Sensor] Support custom commands for rt_sensor_control
This commit is contained in:
Bernard Xiong 2020-03-16 21:28:30 +08:00 committed by GitHub
commit beda0899f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 2 deletions

View File

@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2019-01-31 flybreak first version
* 2020-02-22 luhuadong support custom commands
*/
#include "sensor.h"
@ -307,7 +308,7 @@ static rt_err_t rt_sensor_control(rt_device_t dev, int cmd, void *args)
case RT_SENSOR_CTRL_GET_ID:
if (args)
{
sensor->ops->control(sensor, RT_SENSOR_CTRL_GET_ID, args);
result = sensor->ops->control(sensor, RT_SENSOR_CTRL_GET_ID, args);
}
break;
case RT_SENSOR_CTRL_GET_INFO:
@ -352,7 +353,17 @@ static rt_err_t rt_sensor_control(rt_device_t dev, int cmd, void *args)
result = sensor->ops->control(sensor, RT_SENSOR_CTRL_SELF_TEST, args);
break;
default:
return -RT_ERROR;
if (cmd > RT_SENSOR_CTRL_USER_CMD_START)
{
/* Custom commands */
result = sensor->ops->control(sensor, cmd, args);
}
else
{
result = -RT_ERROR;
}
break;
}
if (sensor->module)

View File

@ -111,6 +111,8 @@ extern "C" {
#define RT_SENSOR_CTRL_SET_POWER (5) /* Set power mode. args type of sensor power mode. ex. RT_SENSOR_POWER_DOWN,RT_SENSOR_POWER_NORMAL */
#define RT_SENSOR_CTRL_SELF_TEST (6) /* Take a self test */
#define RT_SENSOR_CTRL_USER_CMD_START 0x100 /* User commands should be greater than 0x100 */
struct rt_sensor_info
{
rt_uint8_t type; /* The sensor type */