Files
VesiScan-Basic_Zephyr/src/command/cmd_common.h
T
2026-07-10 17:06:20 +09:00

39 lines
1.9 KiB
C

/*******************************************************************************
* @file cmd_common.h
* @brief BLE command common helpers
******************************************************************************/
#ifndef CMD_COMMON_H__
#define CMD_COMMON_H__
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "imu_i2c.h"
#include "piezo_measure.h"
#include "measure_queue.h"
void cmd_reboot_after_response(void);
uint16_t cmd_crc16_compute(const uint8_t *p_data, uint32_t size);
bool cmd_get_data_u16_be(const uint8_t *data, uint8_t data_len, uint8_t word_index, uint16_t *out);
void cmd_copy_fixed_ascii(char *dst, size_t dst_len, const char *src, size_t src_len);
char cmd_ascii_to_lower(char ch);
uint8_t cmd_next_echo_session(void);
int cmd_send_response_u16(const char *tag, uint16_t value);
int cmd_send_response_ascii(const char *tag, const char *value, uint8_t value_len);
int cmd_send_response_identity(void);
int cmd_send_response_tag_echo(const char *tag, const char *echo_tag);
int cmd_send_response_imu(const int16_t accel[3], const int16_t gyro[3]);
void cmd_send_response_echo(uint8_t session, uint8_t channel, const uint16_t *samples, uint16_t num_samples);
void cmd_send_response_bundle(uint16_t batt_mv, const int16_t accel[3], const int16_t gyro[3], int16_t temp_cdeg);
void cmd_send_response_rim(const uint8_t *sample_bytes, uint16_t sample_count);
void cmd_send_response_piezo_config(const char *tag, uint16_t freq, uint16_t cycles, uint16_t avg, uint16_t delay_us, uint16_t samples);
int cmd_send_response_rfq(uint32_t tick_start);
int cmd_send_response_rfe(uint16_t status, uint8_t session, uint32_t tick_end, uint16_t total_frames);
int cmd_send_response_rqh(const measure_queue_frame_header_t *header);
int cmd_send_response_rqb(uint16_t frame_idx, uint8_t channel, const uint16_t *samples, uint8_t num_samples);
int cmd_send_response_rqd(uint16_t status, uint16_t sent_frames);
#endif /* CMD_COMMON_H__ */