LibDriver CS100
Loading...
Searching...
No Matches
driver_cs100.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_CS100_H
38#define DRIVER_CS100_H
39
40#include <stdlib.h>
41#include <stdint.h>
42#include <stdio.h>
43#include <string.h>
44
45#ifdef __cplusplus
46extern "C"{
47#endif
48
54
59
63#ifndef CS100_READ_RETRY_TIMES
64 #define CS100_READ_RETRY_TIMES 3
65#endif
66
70typedef struct cs100_time_s
71{
72 uint64_t microsecond;
73 uint32_t millisecond;
75
79typedef struct cs100_handle_s
80{
81 uint8_t (*trig_init)(void);
82 uint8_t (*trig_deinit)(void);
83 uint8_t (*trig_write)(uint8_t value);
84 uint8_t (*echo_init)(void);
85 uint8_t (*echo_deinit)(void);
86 uint8_t (*echo_read)(uint8_t *value);
87 uint8_t (*timestamp_read)(cs100_time_t *time);
88 void (*delay_us)(uint32_t ms);
89 void (*delay_ms)(uint32_t ms);
90 void (*debug_print)(const char *const fmt, ...);
91 uint8_t inited;
93
109
113
120
127#define DRIVER_CS100_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
128
135#define DRIVER_CS100_LINK_TRIG_INIT(HANDLE, FUC) (HANDLE)->trig_init = FUC
136
143#define DRIVER_CS100_LINK_TRIG_DEINIT(HANDLE, FUC) (HANDLE)->trig_deinit = FUC
144
151#define DRIVER_CS100_LINK_TRIG_WRITE(HANDLE, FUC) (HANDLE)->trig_write = FUC
152
159#define DRIVER_CS100_LINK_ECHO_INIT(HANDLE, FUC) (HANDLE)->echo_init = FUC
160
167#define DRIVER_CS100_LINK_ECHO_DEINIT(HANDLE, FUC) (HANDLE)->echo_deinit = FUC
168
175#define DRIVER_CS100_LINK_ECHO_WRITE(HANDLE, FUC) (HANDLE)->echo_read = FUC
176
183#define DRIVER_CS100_LINK_TIMESTAMP_READ(HANDLE, FUC) (HANDLE)->timestamp_read = FUC
184
191#define DRIVER_CS100_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
192
199#define DRIVER_CS100_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
200
207#define DRIVER_CS100_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
208
212
219
228uint8_t cs100_info(cs100_info_t *info);
229
240uint8_t cs100_init(cs100_handle_t *handle);
241
252uint8_t cs100_deinit(cs100_handle_t *handle);
253
266uint8_t cs100_read(cs100_handle_t *handle, uint32_t *time_us, float *m);
267
271
275
276#ifdef __cplusplus
277}
278#endif
279
280#endif
struct cs100_info_s cs100_info_t
cs100 information structure definition
struct cs100_time_s cs100_time_t
cs100 time structure definition
uint8_t cs100_init(cs100_handle_t *handle)
initialize the chip
struct cs100_handle_s cs100_handle_t
cs100 handle structure definition
uint8_t cs100_info(cs100_info_t *info)
get chip's information
uint8_t cs100_deinit(cs100_handle_t *handle)
close the chip
uint8_t cs100_read(cs100_handle_t *handle, uint32_t *time_us, float *m)
read the distance
cs100 handle structure definition
uint8_t(* timestamp_read)(cs100_time_t *time)
void(* delay_ms)(uint32_t ms)
uint8_t(* echo_read)(uint8_t *value)
void(* delay_us)(uint32_t ms)
uint8_t(* echo_deinit)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* trig_write)(uint8_t value)
uint8_t(* trig_deinit)(void)
uint8_t(* trig_init)(void)
uint8_t(* echo_init)(void)
cs100 information structure definition
float temperature_max
float supply_voltage_max_v
uint32_t driver_version
float temperature_min
float max_current_ma
char manufacturer_name[32]
float supply_voltage_min_v
char interface[8]
char chip_name[32]
cs100 time structure definition
uint32_t millisecond
uint64_t microsecond