LibDriver SFA30
Loading...
Searching...
No Matches
driver_sfa30_read_test.c
Go to the documentation of this file.
1
36
38
39static sfa30_handle_t gs_handle;
40
50uint8_t sfa30_read_test(sfa30_interface_t interface, uint32_t times)
51{
52 uint8_t res;
53 uint32_t i;
54 sfa30_info_t info;
55 char device_info[32];
56 sfa30_data_t data;
57
58 /* link functions */
71
72 /* get information */
73 res = sfa30_info(&info);
74 if (res != 0)
75 {
76 sfa30_interface_debug_print("sfa30: get info failed.\n");
77
78 return 1;
79 }
80 else
81 {
82 /* print chip info */
83 sfa30_interface_debug_print("sfa30: chip is %s.\n", info.chip_name);
84 sfa30_interface_debug_print("sfa30: manufacturer is %s.\n", info.manufacturer_name);
85 sfa30_interface_debug_print("sfa30: interface is %s.\n", info.interface);
86 sfa30_interface_debug_print("sfa30: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
87 sfa30_interface_debug_print("sfa30: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
88 sfa30_interface_debug_print("sfa30: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
89 sfa30_interface_debug_print("sfa30: max current is %0.2fmA.\n", info.max_current_ma);
90 sfa30_interface_debug_print("sfa30: max temperature is %0.1fC.\n", info.temperature_max);
91 sfa30_interface_debug_print("sfa30: min temperature is %0.1fC.\n", info.temperature_min);
92 }
93
94 /* start read test */
95 sfa30_interface_debug_print("sfa30: start read test.\n");
96
97 /* set the interface */
98 res = sfa30_set_interface(&gs_handle, interface);
99 if (res != 0)
100 {
101 sfa30_interface_debug_print("sfa30: set interface failed.\n");
102
103 return 1;
104 }
105
106 /* init the chip */
107 res = sfa30_init(&gs_handle);
108 if (res != 0)
109 {
110 sfa30_interface_debug_print("sfa30: init failed.\n");
111
112 return 1;
113 }
114
115 /* get device information */
116 res = sfa30_get_device_information(&gs_handle, device_info);
117 if (res != 0)
118 {
119 sfa30_interface_debug_print("sfa30: get device information failed.\n");
120
121 return 1;
122 }
123
124 /* output */
125 sfa30_interface_debug_print("sfa30: device information is %s.\n", device_info);
126
127 /* start measurement */
128 res = sfa30_start_measurement(&gs_handle);
129 if (res != 0)
130 {
131 sfa30_interface_debug_print("sfa30: start measurement failed.\n");
132 (void)sfa30_deinit(&gs_handle);
133
134 return 1;
135 }
136
137 /* delay 2000 ms */
139
140 for (i = 0; i < times; i++)
141 {
142 res = sfa30_read(&gs_handle, &data);
143 if (res != 0)
144 {
145 sfa30_interface_debug_print("sfa30: read failed.\n");
146 (void)sfa30_deinit(&gs_handle);
147
148 return 1;
149 }
150 sfa30_interface_debug_print("sfa30: formaldehyde is %0.2fppb.\n", data.formaldehyde);
151 sfa30_interface_debug_print("sfa30: humidity is %0.2f%%.\n", data.humidity);
152 sfa30_interface_debug_print("sfa30: temperature is %0.2fC.\n", data.temperature);
153
154 /* delay 2000 ms */
156 }
157
158 /* stop measurement */
159 res = sfa30_stop_measurement(&gs_handle);
160 if (res != 0)
161 {
162 sfa30_interface_debug_print("sfa30: stop measurement failed.\n");
163 (void)sfa30_deinit(&gs_handle);
164
165 return 1;
166 }
167
168 /* finish read test */
169 sfa30_interface_debug_print("sfa30: finish read test.\n");
170 (void)sfa30_deinit(&gs_handle);
171
172 return 0;
173}
driver sfa30 read test header file
uint8_t sfa30_info(sfa30_info_t *info)
get chip information
sfa30_interface_t
sfa30 interface enumeration definition
struct sfa30_handle_s sfa30_handle_t
sfa30 handle structure definition
uint8_t sfa30_set_interface(sfa30_handle_t *handle, sfa30_interface_t interface)
set the chip interface
uint8_t sfa30_init(sfa30_handle_t *handle)
initialize the chip
uint8_t sfa30_deinit(sfa30_handle_t *handle)
close the chip
uint8_t sfa30_get_device_information(sfa30_handle_t *handle, char info[32])
get device information
uint8_t sfa30_read(sfa30_handle_t *handle, sfa30_data_t *data)
read the result
struct sfa30_data_s sfa30_data_t
sfa30 data structure definition
uint8_t sfa30_stop_measurement(sfa30_handle_t *handle)
stop the measurement
uint8_t sfa30_start_measurement(sfa30_handle_t *handle)
start the measurement
struct sfa30_info_s sfa30_info_t
sfa30 information structure definition
uint8_t sfa30_interface_uart_flush(void)
interface uart flush
void sfa30_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t sfa30_interface_iic_read_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus read
void sfa30_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t sfa30_interface_iic_init(void)
interface iic bus init
uint16_t sfa30_interface_uart_read(uint8_t *buf, uint16_t len)
interface uart read
uint8_t sfa30_interface_uart_init(void)
interface uart init
uint8_t sfa30_interface_uart_deinit(void)
interface uart deinit
uint8_t sfa30_interface_iic_deinit(void)
interface iic bus deinit
uint8_t sfa30_interface_iic_write_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t sfa30_interface_uart_write(uint8_t *buf, uint16_t len)
interface uart write
uint8_t sfa30_read_test(sfa30_interface_t interface, uint32_t times)
read test
float formaldehyde
float temperature
float temperature_max
float supply_voltage_max_v
uint32_t driver_version
char interface[16]
float temperature_min
float max_current_ma
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]