From 40d0320ef8a94e5bd0daadc335fe19bc7fc307c6 Mon Sep 17 00:00:00 2001 From: wgzAIIT <820906721@qq.com> Date: Mon, 21 Mar 2022 19:04:18 +0800 Subject: [PATCH] add qs-fx and qs-fs sensor support Nuttx on stm32f407-discovery --- .../Applications/sensor_app/Makefile | 8 +++++ .../sensor_app/winddirection_qs_fx.c | 2 ++ .../Applications/sensor_app/windspeed_qs_fs.c | 2 ++ .../Framework/sensor/winddirection/Kconfig | 5 ++++ .../Framework/sensor/winddirection/Make.defs | 4 +++ .../sensor/winddirection/qs-fx/Make.defs | 6 ++++ .../sensor/winddirection/qs-fx/Makefile | 12 ++++++-- .../sensor/winddirection/qs-fx/qs-fx.c | 15 +++++++++- .../Framework/sensor/windspeed/Kconfig | 5 ++++ .../Framework/sensor/windspeed/Make.defs | 4 +++ .../sensor/windspeed/qs-fs/Make.defs | 6 ++++ .../Framework/sensor/windspeed/qs-fs/Makefile | 12 ++++++-- .../Framework/sensor/windspeed/qs-fs/qs-fs.c | 12 ++++++++ .../Nuttx/app_match_nuttx/apps/nshlib/Kconfig | 8 +++++ .../Nuttx/app_match_nuttx/apps/nshlib/nsh.h | 8 +++++ .../apps/nshlib/nsh_Applicationscmd.c | 29 +++++++++++++++++++ .../app_match_nuttx/apps/nshlib/nsh_command.c | 8 +++++ 17 files changed, 141 insertions(+), 5 deletions(-) create mode 100644 APP_Framework/Framework/sensor/winddirection/Make.defs create mode 100644 APP_Framework/Framework/sensor/winddirection/qs-fx/Make.defs create mode 100644 APP_Framework/Framework/sensor/windspeed/Make.defs create mode 100644 APP_Framework/Framework/sensor/windspeed/qs-fs/Make.defs diff --git a/APP_Framework/Applications/sensor_app/Makefile b/APP_Framework/Applications/sensor_app/Makefile index 54daa1592..76fd4e16c 100644 --- a/APP_Framework/Applications/sensor_app/Makefile +++ b/APP_Framework/Applications/sensor_app/Makefile @@ -47,6 +47,14 @@ ifeq ($(CONFIG_ADD_NUTTX_FETURES),y) CSRCS += temperature_hs300x.c endif + ifeq ($(CONFIG_APPLICATION_SENSOR_WINDDIRECTION_QS_FX), y) + CSRCS += winddirection_qs_fx.c + endif + + ifeq ($(CONFIG_APPLICATION_SENSOR_WINDSPEED_QS_FS), y) + CSRCS += windspeed_qs_fs.c + endif + include $(APPDIR)/Application.mk endif diff --git a/APP_Framework/Applications/sensor_app/winddirection_qs_fx.c b/APP_Framework/Applications/sensor_app/winddirection_qs_fx.c index 455b64ec1..d5032718b 100644 --- a/APP_Framework/Applications/sensor_app/winddirection_qs_fx.c +++ b/APP_Framework/Applications/sensor_app/winddirection_qs_fx.c @@ -34,5 +34,7 @@ void WindDirectionQsFx(void) printf("wind direction : %d degree\n", result); SensorQuantityClose(wind_direction); } +#ifdef ADD_XIZI_FETURES SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, WindDirectionQsFx, WindDirectionQsFx, WindDirectionQsFx function); +#endif diff --git a/APP_Framework/Applications/sensor_app/windspeed_qs_fs.c b/APP_Framework/Applications/sensor_app/windspeed_qs_fs.c index 006296aac..72b91db6e 100644 --- a/APP_Framework/Applications/sensor_app/windspeed_qs_fs.c +++ b/APP_Framework/Applications/sensor_app/windspeed_qs_fs.c @@ -34,5 +34,7 @@ void WindSpeedQsFs(void) printf("wind speed : %d.%d m/s\n", result/10, result%10); SensorQuantityClose(wind_speed); } +#ifdef ADD_XIZI_FETURES SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, WindSpeedQsFs, WindSpeedQsFs, WindSpeedQsFs function); +#endif diff --git a/APP_Framework/Framework/sensor/winddirection/Kconfig b/APP_Framework/Framework/sensor/winddirection/Kconfig index 94b2385f0..726bfea8a 100644 --- a/APP_Framework/Framework/sensor/winddirection/Kconfig +++ b/APP_Framework/Framework/sensor/winddirection/Kconfig @@ -34,6 +34,11 @@ config SENSOR_QS_FX endif if ADD_NUTTX_FETURES + config SENSOR_DEVICE_QS_FX_DEV + string "qs-fx device name" + default "/dev/ttyS1" + ---help--- + If USART1 is selected, then fill in /dev/ttyS1 here. endif diff --git a/APP_Framework/Framework/sensor/winddirection/Make.defs b/APP_Framework/Framework/sensor/winddirection/Make.defs new file mode 100644 index 000000000..75fed1c91 --- /dev/null +++ b/APP_Framework/Framework/sensor/winddirection/Make.defs @@ -0,0 +1,4 @@ +############################################################################ +# APP_Framework/Framework/sensor/winddirection/Make.defs +############################################################################ +include $(wildcard $(APPDIR)/../../../APP_Framework/Framework/sensor/winddirection/*/Make.defs) diff --git a/APP_Framework/Framework/sensor/winddirection/qs-fx/Make.defs b/APP_Framework/Framework/sensor/winddirection/qs-fx/Make.defs new file mode 100644 index 000000000..8d9518b2d --- /dev/null +++ b/APP_Framework/Framework/sensor/winddirection/qs-fx/Make.defs @@ -0,0 +1,6 @@ +############################################################################ +# APP_Framework/Framework/sensor/winddirection/qs-fx/Make.defs +############################################################################ +ifneq ($(CONFIG_SENSOR_QS_FX),) +CONFIGURED_APPS += $(APPDIR)/../../../APP_Framework/Framework/sensor/winddirection/qs-fx +endif diff --git a/APP_Framework/Framework/sensor/winddirection/qs-fx/Makefile b/APP_Framework/Framework/sensor/winddirection/qs-fx/Makefile index 4752b388f..e45522588 100644 --- a/APP_Framework/Framework/sensor/winddirection/qs-fx/Makefile +++ b/APP_Framework/Framework/sensor/winddirection/qs-fx/Makefile @@ -1,3 +1,11 @@ -SRC_FILES := qs-fx.c +include $(KERNEL_ROOT)/.config +ifeq ($(CONFIG_ADD_NUTTX_FETURES),y) + include $(APPDIR)/Make.defs + CSRCS += qs-fx.c + include $(APPDIR)/Application.mk +endif -include $(KERNEL_ROOT)/compiler.mk +ifeq ($(CONFIG_ADD_XIZI_FETURES),y) + SRC_FILES := qs-fx.c + include $(KERNEL_ROOT)/compiler.mk +endif diff --git a/APP_Framework/Framework/sensor/winddirection/qs-fx/qs-fx.c b/APP_Framework/Framework/sensor/winddirection/qs-fx/qs-fx.c index 6f3c7ad13..24a6cb726 100644 --- a/APP_Framework/Framework/sensor/winddirection/qs-fx/qs-fx.c +++ b/APP_Framework/Framework/sensor/winddirection/qs-fx/qs-fx.c @@ -35,6 +35,18 @@ static struct SensorProductInfo info = * @param sdev - sensor device pointer * @return success: 1 , failure: other */ +#ifdef ADD_NUTTX_FETURES +static int SensorDeviceOpen(struct SensorDevice *sdev) +{ + sdev->fd = PrivOpen(SENSOR_DEVICE_QS_FX_DEV, O_RDWR); + if (sdev->fd < 0) { + printf("open %s error\n", SENSOR_DEVICE_QS_FX_DEV); + return -1; + } + + return sdev->fd ; +} +#else static int SensorDeviceOpen(struct SensorDevice *sdev) { int result = 0; @@ -64,7 +76,8 @@ static int SensorDeviceOpen(struct SensorDevice *sdev) result = PrivIoctl(sdev->fd, OPE_INT, &ioctl_cfg); return result; -} +} +#endif /** * @description: Read sensor device diff --git a/APP_Framework/Framework/sensor/windspeed/Kconfig b/APP_Framework/Framework/sensor/windspeed/Kconfig index 8db034a35..91bc1fb92 100644 --- a/APP_Framework/Framework/sensor/windspeed/Kconfig +++ b/APP_Framework/Framework/sensor/windspeed/Kconfig @@ -34,6 +34,11 @@ config SENSOR_QS_FS endif if ADD_NUTTX_FETURES + config SENSOR_DEVICE_QS_FS_DEV + string "qs-fx device name" + default "/dev/ttyS1" + ---help--- + If USART1 is selected, then fill in /dev/ttyS1 here. endif diff --git a/APP_Framework/Framework/sensor/windspeed/Make.defs b/APP_Framework/Framework/sensor/windspeed/Make.defs new file mode 100644 index 000000000..ae9715416 --- /dev/null +++ b/APP_Framework/Framework/sensor/windspeed/Make.defs @@ -0,0 +1,4 @@ +############################################################################ +# APP_Framework/Framework/sensor/windspeed/Make.defs +############################################################################ +include $(wildcard $(APPDIR)/../../../APP_Framework/Framework/sensor/windspeed/*/Make.defs) diff --git a/APP_Framework/Framework/sensor/windspeed/qs-fs/Make.defs b/APP_Framework/Framework/sensor/windspeed/qs-fs/Make.defs new file mode 100644 index 000000000..8edbfb6f7 --- /dev/null +++ b/APP_Framework/Framework/sensor/windspeed/qs-fs/Make.defs @@ -0,0 +1,6 @@ +############################################################################ +# APP_Framework/Framework/sensor/windspeed/qs-fs/Make.defs +############################################################################ +ifneq ($(CONFIG_SENSOR_QS_FS),) +CONFIGURED_APPS += $(APPDIR)/../../../APP_Framework/Framework/sensor/windspeed/qs-fs +endif diff --git a/APP_Framework/Framework/sensor/windspeed/qs-fs/Makefile b/APP_Framework/Framework/sensor/windspeed/qs-fs/Makefile index 32a4000d0..a6872570e 100644 --- a/APP_Framework/Framework/sensor/windspeed/qs-fs/Makefile +++ b/APP_Framework/Framework/sensor/windspeed/qs-fs/Makefile @@ -1,3 +1,11 @@ -SRC_FILES := qs-fs.c +include $(KERNEL_ROOT)/.config +ifeq ($(CONFIG_ADD_NUTTX_FETURES),y) + include $(APPDIR)/Make.defs + CSRCS += qs-fs.c + include $(APPDIR)/Application.mk +endif -include $(KERNEL_ROOT)/compiler.mk +ifeq ($(CONFIG_ADD_XIZI_FETURES),y) + SRC_FILES := qs-fs.c + include $(KERNEL_ROOT)/compiler.mk +endif diff --git a/APP_Framework/Framework/sensor/windspeed/qs-fs/qs-fs.c b/APP_Framework/Framework/sensor/windspeed/qs-fs/qs-fs.c index 6478fd2c9..427fa8273 100644 --- a/APP_Framework/Framework/sensor/windspeed/qs-fs/qs-fs.c +++ b/APP_Framework/Framework/sensor/windspeed/qs-fs/qs-fs.c @@ -35,6 +35,17 @@ static struct SensorProductInfo info = * @param sdev - sensor device pointer * @return success: 1 , failure: other */ +#ifdef ADD_NUTTX_FETURES +static int SensorDeviceOpen(struct SensorDevice *sdev) +{ + sdev->fd = PrivOpen(SENSOR_DEVICE_QS_FS_DEV, O_RDWR); + if (sdev->fd < 0) { + printf("open %s error\n", SENSOR_DEVICE_QS_FS_DEV); + return -1; + } + return sdev->fd; +} +#else static int SensorDeviceOpen(struct SensorDevice *sdev) { int result = 0; @@ -65,6 +76,7 @@ static int SensorDeviceOpen(struct SensorDevice *sdev) return result; } +#endif /** * @description: Read sensor device diff --git a/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/Kconfig b/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/Kconfig index 0ce94d01a..f84148ed5 100644 --- a/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/Kconfig +++ b/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/Kconfig @@ -630,6 +630,14 @@ config NSH_DISABLE_TEMPHS300X config NSH_DISABLE_HUMIHS300X bool "Disable the humidity function of the sensor Hs300x." default n + +config NSH_DISABLE_QS_FX + bool "Disable the winddirection function of the sensor QS-FX." + default n + +config NSH_DISABLE_QS_FS + bool "Disable the windspeed function of the sensor QS-FS." + default n config NSH_DISABLE_OPENZIGBEE bool "Disable the open function of the zigebee." diff --git a/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh.h b/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh.h index a10aa150d..f23773552 100644 --- a/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh.h +++ b/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh.h @@ -1461,6 +1461,14 @@ int nsh_foreach_var(FAR struct nsh_vtbl_s *vtbl, nsh_foreach_var_t cb, int cmd_HumiHs300x(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv); #endif +#if defined(CONFIG_APPLICATION_SENSOR_WINDDIRECTION_QS_FX) && !defined(CONFIG_NSH_DISABLE_QS_FX) + int cmd_WindDirectionQsFx(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv); +#endif + +#if defined(CONFIG_APPLICATION_SENSOR_WINDSPEED_QS_FS) && !defined(CONFIG_NSH_DISABLE_QS_FS) + int cmd_WindSpeedQsFs(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv); +#endif + #if defined(CONFIG_CONNECTION_ADAPTER_ZIGBEE) && !defined(CONFIG_NSH_DISABLE_OPENZIGBEE) int cmd_openzigbee(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv); diff --git a/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh_Applicationscmd.c b/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh_Applicationscmd.c index f42fec198..68a5da9d4 100644 --- a/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh_Applicationscmd.c +++ b/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh_Applicationscmd.c @@ -204,6 +204,35 @@ int cmd_HumiHs300x(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) } #endif +/**************************************************************************** + * Name: cmd_WindDirectionQsFx + ****************************************************************************/ + +#if defined(CONFIG_APPLICATION_SENSOR_WINDDIRECTION_QS_FX) && !defined(CONFIG_NSH_DISABLE_QS_FX) +extern void WindDirectionQsFx(void); +int cmd_WindDirectionQsFx(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) +{ + nsh_output(vtbl, "Hello, world!\n"); + FrameworkInit(); + WindDirectionQsFx(); + return OK; +} +#endif + +/**************************************************************************** + * Name: cmd_WindSpeedQsFs + ****************************************************************************/ + +#if defined(CONFIG_APPLICATION_SENSOR_WINDSPEED_QS_FS) && !defined(CONFIG_NSH_DISABLE_QS_FS) +extern void WindSpeedQsFs(void); +int cmd_WindSpeedQsFs(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) +{ + nsh_output(vtbl, "Hello, world!\n"); + FrameworkInit(); + WindSpeedQsFs(); + return OK; +} +#endif /**************************************************************************** * Name: cmd_openzigbee diff --git a/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh_command.c b/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh_command.c index a60bc254f..8cd21e468 100644 --- a/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh_command.c +++ b/Ubiquitous/Nuttx/app_match_nuttx/apps/nshlib/nsh_command.c @@ -634,6 +634,14 @@ static const struct cmdmap_s g_cmdmap[] = { "humi", cmd_HumiHs300x, 1, 1, "[get humidity with sensor HS300x.]" }, #endif +#if defined(CONFIG_APPLICATION_SENSOR_WINDDIRECTION_QS_FX) && !defined(CONFIG_NSH_DISABLE_QS_FX) + { "WindDirectionQsFx", cmd_WindDirectionQsFx, 1, 1, "[get WindDirection with sensor QsFx.]" }, +#endif + +#if defined(CONFIG_APPLICATION_SENSOR_WINDSPEED_QS_FS) && !defined(CONFIG_NSH_DISABLE_QS_FS) + { "WindSpeedQsFs", cmd_WindSpeedQsFs, 1, 1, "[get WindSpeed with sensor QsFs.]" }, +#endif + #if defined(CONFIG_CONNECTION_ADAPTER_ZIGBEE) && !defined(CONFIG_NSH_DISABLE_OPENZIGBEE) { "openzigbee", cmd_openzigbee, 1, 1, "[open the zigebee device.]" }, #endif