150void parse_multitap(uint8_t sensor_id,
const uint8_t *data_ptr, uint32_t len, uint64_t *
timestamp,
void *user_data)
181 Serial.begin(115200);
187 Serial.println(
"Initializing Sensors...");
190 bhy.setFirmware(bosch_firmware_image, bosch_firmware_size);
201 Serial.println(
"Initializing Sensors...");
203#ifdef USE_I2C_INTERFACE
208 Serial.print(
"Failed to initialize sensor - error code:");
209 Serial.println(
bhy.getError());
216#ifdef USE_SPI_INTERFACE
219 Serial.print(
"Failed to initialize sensor - error code:");
220 Serial.println(
bhy.getError());
227 Serial.println(
"Initializing the sensor successfully!");
230 BoschSensorInfo info =
bhy.getSensorInfo();
233 ArduinoStreamPrinter printer(Serial);
234 info.printInfo(printer);
236 info.printInfo([](
const char *format, ...) ->
int {
238 va_start(args, format);
239 int result = vprintf(format, args);
246 float sample_rate = 1.0;
247 uint32_t report_latency_ms = 0;
249#ifdef USING_DATA_HELPER
250 multiTap.enable(sample_rate, report_latency_ms);
253 bhy.configure(BoschSensorID::MULTI_TAP, sample_rate, report_latency_ms);
255 bhy.onResultEvent(BoschSensorID::MULTI_TAP, parse_multitap);
258#ifdef USING_SENSOR_IRQ_METHOD
273 Serial.println(
"--- Multi tap log start ---");
276 Serial.print(
"Multi Tap Info : ");
277 Serial.println(bhi360_event_data_multi_tap_string_out[buffer[0]]);
279 Serial.println(
"Failed to get multi tap config");
283 Serial.println(
"Set multi tap config successfully");
285 Serial.println(
"Failed to set multi tap config");
289 Serial.print(
"Single Tap CNFG : ");
290 Serial.println(((multitap_setting & (uint8_t)BHI360_SINGLE_TAP) == (uint8_t)BHI360_SINGLE_TAP) ?
"Enabled" :
"Disabled");
291 Serial.print(
" \t\t -<axis_sel> : ");
292 Serial.println(multitap_cnfg.stap_setting.as_s.axis_sel);
293 Serial.print(
" \t\t -<wait_for_timeout> : ");
294 Serial.println(multitap_cnfg.stap_setting.as_s.wait_for_timeout);
295 Serial.print(
" \t\t -<max_pks_for_tap> : ");
296 Serial.println(multitap_cnfg.stap_setting.as_s.max_peaks_for_tap);
297 Serial.print(
" \t\t -<mode> : ");
298 Serial.println(multitap_cnfg.stap_setting.as_s.mode);
299 Serial.print(
"Double Tap CNFG : ");
300 Serial.println(((multitap_setting & (uint8_t)BHI360_DOUBLE_TAP) == (uint8_t)BHI360_DOUBLE_TAP) ?
"Enabled" :
"Disabled");
301 Serial.print(
" \t\t -<tap_peak_thrs> : ");
302 Serial.println(multitap_cnfg.dtap_setting.as_s.tap_peak_thres);
303 Serial.print(
" \t\t -<max_ges_dur> : ");
304 Serial.println(multitap_cnfg.dtap_setting.as_s.max_gesture_dur);
305 Serial.print(
"Triple Tap CNFG : ");
306 Serial.println(((multitap_setting & (uint8_t)BHI360_TRIPLE_TAP) == (uint8_t)BHI360_TRIPLE_TAP) ?
"Enabled" :
"Disabled");
307 Serial.print(
" \t\t -<max_dur_bw_pks> : ");
308 Serial.println(multitap_cnfg.ttap_setting.as_s.max_dur_between_peaks);
309 Serial.print(
" \t\t -<tap_shock_settl_dur> : ");
310 Serial.println(multitap_cnfg.ttap_setting.as_s.tap_shock_settling_dur);
311 Serial.print(
" \t\t -<min_quite_dur_bw_taps> : ");
312 Serial.println(multitap_cnfg.ttap_setting.as_s.min_quite_dur_between_taps);
313 Serial.print(
" \t\t -<quite_time_after_ges> : ");
314 Serial.println(multitap_cnfg.ttap_setting.as_s.quite_time_after_gesture);
316 multitap_cnfg.stap_setting.as_s.mode = 0;
319 Serial.println(
"Failed to set multi tap detector config");
324 Serial.print(
"Multi tap mode after setting : ");
325 Serial.println(multitap_cnfg.stap_setting.as_s.mode);
327 Serial.println(
"Failed to get multi tap detector config");
330 Serial.println(
"Failed to get multi tap detector config");