This commit is contained in:
wgzAIIT 2022-07-28 14:29:18 +08:00
commit 4745f77708
11 changed files with 99 additions and 16 deletions

View File

@ -32,6 +32,7 @@ extern int Ps5308Pm1_0Init(void);
extern int Ps5308Pm2_5Init(void); extern int Ps5308Pm2_5Init(void);
extern int Ps5308Pm10Init(void); extern int Ps5308Pm10Init(void);
extern int Zg09Co2Init(void); extern int Zg09Co2Init(void);
extern int G8sCo2Init(void);
extern int As830Ch4Init(void); extern int As830Ch4Init(void);
extern int Tb600bIaq10IaqInit(void); extern int Tb600bIaq10IaqInit(void);
extern int Tb600bTvoc10TvocInit(void); extern int Tb600bTvoc10TvocInit(void);
@ -106,6 +107,10 @@ static struct InitDesc sensor_desc[] =
{ "zg09_co2", Zg09Co2Init }, { "zg09_co2", Zg09Co2Init },
#endif #endif
#ifdef SENSOR_G8S
{ "g8s_co2", G8sCo2Init },
#endif
#ifdef SENSOR_QS_FX #ifdef SENSOR_QS_FX
{ "qs_fx_wind_direction", QsFxWindDirectionInit }, { "qs_fx_wind_direction", QsFxWindDirectionInit },
#endif #endif

View File

@ -23,6 +23,11 @@ ifeq ($(CONFIG_ADD_NUTTX_FETURES),y)
CSRCS += co2_zg09.c CSRCS += co2_zg09.c
endif endif
ifeq ($(CONFIG_APPLICATION_SENSOR_CO2_G8S), y)
CSRCS += co2_g8s.c
endif
ifeq ($(CONFIG_APPLICATION_SENSOR_PM1_0_PS5308), y) ifeq ($(CONFIG_APPLICATION_SENSOR_PM1_0_PS5308), y)
CSRCS += pm1_0_ps5308.c CSRCS += pm1_0_ps5308.c
endif endif

View File

@ -17,8 +17,10 @@
* @author AIIT XUOS Lab * @author AIIT XUOS Lab
* @date 2021.12.23 * @date 2021.12.23
*/ */
//
#include <user_api.h> #ifdef ADD_XIZI_FETURES
# include <user_api.h>
#endif
#include <sensor.h> #include <sensor.h>
/** /**

View File

@ -64,6 +64,7 @@ config SENSOR_ZG09
endif endif
endif endif
config SENSOR_G8S config SENSOR_G8S
bool "Using g8-s" bool "Using g8-s"
default n default n
@ -99,7 +100,11 @@ config SENSOR_G8S
endif endif
if ADD_NUTTX_FETURES if ADD_NUTTX_FETURES
config SENSOR_DEVICE_G8S_DEV
string "CO2 device name"
default "/dev/ttyS3"
---help---
If USART1 is selected, then fill in /dev/ttyS1 here.
endif endif
if ADD_RTTHREAD_FETURES if ADD_RTTHREAD_FETURES

View File

@ -0,0 +1,6 @@
############################################################################
# APP_Framework/Framework/sensor/co2/g8s/Make.defs
############################################################################
ifneq ($(CONFIG_SENSOR_G8S),)
CONFIGURED_APPS += $(APPDIR)/../../../APP_Framework/Framework/sensor/co2/g8s
endif

View File

@ -1,3 +1,13 @@
SRC_FILES := g8s.c include $(KERNEL_ROOT)/.config
ifeq ($(CONFIG_ADD_NUTTX_FETURES),y)
include $(APPDIR)/Make.defs
CSRCS += g8s.c
include $(APPDIR)/Application.mk
endif
ifeq ($(CONFIG_ADD_XIZI_FETURES),y)
SRC_FILES := g8s.c
include $(KERNEL_ROOT)/compiler.mk
endif
include $(KERNEL_ROOT)/compiler.mk

View File

@ -37,6 +37,7 @@ static struct SensorProductInfo info =
* @param sdev - sensor device pointer * @param sdev - sensor device pointer
* @return success: 1 , failure: other * @return success: 1 , failure: other
*/ */
#ifdef ADD_NUTTX_FETURES
static int SensorDeviceOpen(struct SensorDevice *sdev) static int SensorDeviceOpen(struct SensorDevice *sdev)
{ {
int result = 0; int result = 0;
@ -46,6 +47,19 @@ static int SensorDeviceOpen(struct SensorDevice *sdev)
printf("open %s error\n", SENSOR_DEVICE_G8S_DEV); printf("open %s error\n", SENSOR_DEVICE_G8S_DEV);
return -1; return -1;
} }
}
#else
static int SensorDeviceOpen(struct SensorDevice *sdev)
{
int result = 0;
sdev->fd = PrivOpen(SENSOR_DEVICE_G8S_DEV, O_RDWR);
if (sdev->fd < 0) {
printf("open %s error\n", SENSOR_DEVICE_G8S_DEV);
return -1;
}
struct SerialDataCfg cfg; struct SerialDataCfg cfg;
cfg.serial_baud_rate = BAUD_RATE_9600; cfg.serial_baud_rate = BAUD_RATE_9600;
@ -67,7 +81,7 @@ static int SensorDeviceOpen(struct SensorDevice *sdev)
return result; return result;
} }
#endif
/** /**
* @description: Read sensor device * @description: Read sensor device
* @param sdev - sensor device pointer * @param sdev - sensor device pointer
@ -76,10 +90,9 @@ static int SensorDeviceOpen(struct SensorDevice *sdev)
*/ */
static int SensorDeviceRead(struct SensorDevice *sdev, size_t len) static int SensorDeviceRead(struct SensorDevice *sdev, size_t len)
{ {
uint8_t tmp = 0;
PrivWrite(sdev->fd, g8s_read_instruction, sizeof(g8s_read_instruction)); PrivWrite(sdev->fd, g8s_read_instruction, sizeof(g8s_read_instruction));
PrivTaskDelay(500);
if (PrivRead(sdev->fd, sdev->buffer, len) < 0) if (PrivRead(sdev->fd, sdev->buffer, len) < 0)
return -1; return -1;
@ -140,16 +153,26 @@ static int32_t QuantityRead(struct SensorQuantity *quant)
result_ascii[i] = quant->sdev->buffer[i]; result_ascii[i] = quant->sdev->buffer[i];
} }
if (8 == ascii_length) { if (ascii_length == 0){
for (i = 0; i < ascii_length; i ++) {
result_hex[i] = result_ascii[i] - 0x30;
result += result_hex[i] * pow(10, ascii_length - 1 - i);
}
return result;
} else {
printf("This reading is wrong\n"); printf("This reading is wrong\n");
result = SENSOR_QUANTITY_VALUE_ERROR; result = SENSOR_QUANTITY_VALUE_ERROR;
return result; return result;
}else{
for (i = 0; i < ascii_length; i ++) {
result_hex[i] = result_ascii[i] - 0x30;
result += result_hex[i] * pow(10, ascii_length - 1 - i);
}
return result;
} }
} }
if (quant->sdev->status == SENSOR_DEVICE_ACTIVE) { if (quant->sdev->status == SENSOR_DEVICE_ACTIVE) {

View File

@ -571,6 +571,10 @@ config NSH_DISABLE_CO2ZG09
bool "Disable the sensor zg09." bool "Disable the sensor zg09."
default n default n
config NSH_DISABLE_CO2G8S
bool "Disable the sensor g8-s."
default n
config NSH_DISABLE_PM1_0PS5308 config NSH_DISABLE_PM1_0PS5308
bool "Disable the pm1.0 function of the sensor ps5308." bool "Disable the pm1.0 function of the sensor ps5308."
default n default n

View File

@ -1478,6 +1478,10 @@ int nsh_foreach_var(FAR struct nsh_vtbl_s *vtbl, nsh_foreach_var_t cb,
int cmd_Co2Zg09(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv); int cmd_Co2Zg09(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv);
#endif #endif
#if defined(CONFIG_APPLICATION_SENSOR_CO2_G8S) && !defined(CONFIG_NSH_DISABLE_CO2G8S)
int cmd_Co2G8S(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv);
#endif
#if defined(CONFIG_APPLICATION_SENSOR_PM1_0_PS5308) && !defined(CONFIG_NSH_DISABLE_PM1_0PS5308) #if defined(CONFIG_APPLICATION_SENSOR_PM1_0_PS5308) && !defined(CONFIG_NSH_DISABLE_PM1_0PS5308)
int cmd_Pm10Ps5308(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv); int cmd_Pm10Ps5308(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv);
#endif #endif

View File

@ -138,6 +138,21 @@ int cmd_Co2Zg09(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
} }
#endif #endif
/****************************************************************************
* Name: cmd_Co2g8s
****************************************************************************/
#if defined(CONFIG_APPLICATION_SENSOR_CO2_G8S) && !defined(CONFIG_NSH_DISABLE_CO2G8S)
extern void Co2G8s(void);
int cmd_Co2G8S(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
nsh_output(vtbl, "Hello, world!\n");
FrameworkInit();
Co2G8s();
return OK;
}
#endif
/**************************************************************************** /****************************************************************************
* Name: cmd_Pm10Ps5308 * Name: cmd_Pm10Ps5308
****************************************************************************/ ****************************************************************************/

View File

@ -624,6 +624,10 @@ static const struct cmdmap_s g_cmdmap[] =
{ "zg09", cmd_Co2Zg09, 1, 1, "[get the concentration of co2 with sensor ZG09.]" }, { "zg09", cmd_Co2Zg09, 1, 1, "[get the concentration of co2 with sensor ZG09.]" },
#endif #endif
#if defined(CONFIG_APPLICATION_SENSOR_CO2_G8S) && !defined(CONFIG_NSH_DISABLE_CO2G8S)
{ "g8s", cmd_Co2G8S, 1, 1, "[get the concentration of co2 with sensor G8S.]" },
#endif
#if defined(CONFIG_APPLICATION_SENSOR_PM1_0_PS5308) && !defined(CONFIG_NSH_DISABLE_PM1_0PS5308) #if defined(CONFIG_APPLICATION_SENSOR_PM1_0_PS5308) && !defined(CONFIG_NSH_DISABLE_PM1_0PS5308)
{ "pm1.0", cmd_Pm10Ps5308, 1, 1, "[get pm1.0 with sensor Ps5308.]" }, { "pm1.0", cmd_Pm10Ps5308, 1, 1, "[get pm1.0 with sensor Ps5308.]" },
#endif #endif