LibDriver STCC4
Loading...
Searching...
No Matches
driver_stcc4_basic.c
Go to the documentation of this file.
1
36
37#include "driver_stcc4_basic.h"
38
39static stcc4_handle_t gs_handle;
40
50{
51 uint8_t res;
52
53 /* link functions */
61
62 /* set address pin */
63 res = stcc4_set_address_pin(&gs_handle, address);
64 if (res != 0)
65 {
66 stcc4_interface_debug_print("stcc4: set address pin failed.\n");
67
68 return 1;
69 }
70
71 /* stcc4 init */
72 res = stcc4_init(&gs_handle);
73 if (res != 0)
74 {
75 stcc4_interface_debug_print("stcc4: init failed.\n");
76
77 return 1;
78 }
79
80 /* start continuous measurement */
81 res = stcc4_start_continuous_measurement(&gs_handle);
82 if (res != 0)
83 {
84 stcc4_interface_debug_print("stcc4: start continuous measurement failed.\n");
85 (void)stcc4_deinit(&gs_handle);
86
87 return 1;
88 }
89
90 return 0;
91}
92
103uint8_t stcc4_basic_read(int16_t *co2_ppm, float *temperature, float *humidity)
104{
105 uint8_t res;
106 int16_t co2_raw;
107 uint16_t temperature_raw;
108 uint16_t humidity_raw;
109 uint16_t sensor_status;
110
111 /* read data */
112 res = stcc4_read(&gs_handle, &co2_raw, co2_ppm,
113 &temperature_raw, temperature,
114 &humidity_raw, humidity, &sensor_status);
115 if (res != 0)
116 {
117 return 1;
118 }
119
120 return 0;
121}
122
131{
132 /* stop */
133 if (stcc4_stop_continuous_measurement(&gs_handle) != 0)
134 {
135 return 1;
136 }
137
138 /* close stcc4 */
139 if (stcc4_deinit(&gs_handle) != 0)
140 {
141 return 1;
142 }
143
144 return 0;
145}
146
156uint8_t stcc4_basic_get_product_id(uint32_t *product_id, uint8_t unique_serial_number[8])
157{
158 /* get product id */
159 if (stcc4_get_product_id(&gs_handle, product_id, unique_serial_number) != 0)
160 {
161 return 1;
162 }
163
164 return 0;
165}
166
175{
176 /* wake up */
177 if (stcc4_exit_sleep_mode(&gs_handle) != 0)
178 {
179 return 1;
180 }
181
182 return 0;
183}
184
193{
194 /* power down */
195 if (stcc4_enter_sleep_mode(&gs_handle) != 0)
196 {
197 return 1;
198 }
199
200 return 0;
201}
driver stcc4 basic header file
uint8_t stcc4_stop_continuous_measurement(stcc4_handle_t *handle)
stop continuous measurement
uint8_t stcc4_exit_sleep_mode(stcc4_handle_t *handle)
exit sleep mode
uint8_t stcc4_deinit(stcc4_handle_t *handle)
close the chip
struct stcc4_handle_s stcc4_handle_t
stcc4 handle structure definition
stcc4_address_t
stcc4 address enumeration definition
uint8_t stcc4_enter_sleep_mode(stcc4_handle_t *handle)
enter sleep mode
uint8_t stcc4_init(stcc4_handle_t *handle)
initialize the chip
uint8_t stcc4_set_address_pin(stcc4_handle_t *handle, stcc4_address_t address)
set address pin
uint8_t stcc4_read(stcc4_handle_t *handle, int16_t *co2_raw, int16_t *co2_ppm, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, float *humidity_s, uint16_t *sensor_status)
read data
uint8_t stcc4_get_product_id(stcc4_handle_t *handle, uint32_t *product_id, uint8_t unique_serial_number[8])
get product id
uint8_t stcc4_start_continuous_measurement(stcc4_handle_t *handle)
start continuous measurement
uint8_t stcc4_basic_read(int16_t *co2_ppm, float *temperature, float *humidity)
basic example read
uint8_t stcc4_basic_wake_up(void)
basic wake up
uint8_t stcc4_basic_deinit(void)
basic example deinit
uint8_t stcc4_basic_init(stcc4_address_t address)
basic example init
uint8_t stcc4_basic_get_product_id(uint32_t *product_id, uint8_t unique_serial_number[8])
basic example get product id
uint8_t stcc4_basic_power_down(void)
basic power down
uint8_t stcc4_interface_iic_write_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus write command
void stcc4_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t stcc4_interface_iic_init(void)
interface iic bus init
uint8_t stcc4_interface_iic_deinit(void)
interface iic bus deinit
uint8_t stcc4_interface_iic_read_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus read command
void stcc4_interface_debug_print(const char *const fmt,...)
interface print format data