static void page1_data_log(volatile ant_hrm_page1_data_t const * p_page_data) { LOG_PAGE1("Cumulative operating time: %ud ", (unsigned int)ANT_HRM_OPERATING_DAYS(p_page_data->operating_time)); LOG_PAGE1("%uh ", (unsigned int)ANT_HRM_OPERATING_HOURS(p_page_data->operating_time)); LOG_PAGE1("%um ", (unsigned int)ANT_HRM_OPERATING_MINUTES(p_page_data->operating_time)); LOG_PAGE1("%us\n\r", (unsigned int)ANT_HRM_OPERATING_SECONDS(p_page_data->operating_time)); }
/**@brief Function for printing speed or cadence page1 data. */ static void page1_data_log(ant_bsc_page1_data_t const * p_page_data) { LOG_PAGE1("%-30s %ud ", "Cumulative operating time:", (unsigned int)ANT_BSC_OPERATING_DAYS(p_page_data->operating_time)); LOG_PAGE1("%uh ", (unsigned int)ANT_BSC_OPERATING_HOURS(p_page_data->operating_time)); LOG_PAGE1("%um ", (unsigned int)ANT_BSC_OPERATING_MINUTES(p_page_data->operating_time)); LOG_PAGE1("%us\n\r", (unsigned int)ANT_BSC_OPERATING_SECONDS(p_page_data->operating_time)); }
/**@brief Function for tracing page 1 and common data. * * @param[in] p_common_data Pointer to the common data. * @param[in] p_page_data Pointer to the page 1 data. */ static void page_1_data_log(ant_sdm_page1_data_t const * p_page_data, ant_sdm_common_data_t const * p_common_data) { #if (defined TRACE_SDM_PAGE_1_ENABLE) && (defined ENABLE_DEBUG_LOG_SUPPORT) uint32_t strides = p_common_data->strides; uint64_t distance = ANT_SDM_DISTANCE_RESCALE(p_common_data->distance); uint16_t update_latency = ANT_SDM_UPDATE_LATENCY_RESCALE(p_page_data->update_latency); uint32_t time = ANT_SDM_TIME_RESCALE(p_page_data->time); #endif // (defined TRACE_SDM_PAGE_1_ENABLE) && (defined ENABLE_DEBUG_LOG_SUPPORT) LOG_PAGE1("Update latency %u.%03u s\n\r", update_latency / ANT_SDM_UPDATE_LATENCY_DISP_PRECISION, update_latency % ANT_SDM_UPDATE_LATENCY_DISP_PRECISION); LOG_PAGE1("Time %u.%03u s\n\r", (unsigned int)(time / ANT_SDM_TIME_DISP_PRECISION), (unsigned int)(time % ANT_SDM_TIME_DISP_PRECISION)); LOG_PAGE1("Distance %u.%01um \n\r", (unsigned int)(distance / ANT_SDM_DISTANCE_DISP_PRECISION), (unsigned int)(distance % ANT_SDM_DISTANCE_DISP_PRECISION)); LOG_PAGE1("Strides %u\n\r", (unsigned int)strides); }
static void page1_data_log(ant_bpwr_page1_data_t const * p_page_data) { LOG_PAGE1("Calibration id: %u\n\r", p_page_data->calibration_id); switch (p_page_data->calibration_id) { case ANT_BPWR_CALIB_ID_MANUAL: // No implementation needed break; case ANT_BPWR_CALIB_ID_MANUAL_SUCCESS: /* fall through */ case ANT_BPWR_CALIB_ID_FAILED: LOG_PAGE1("General calibration data: %u\n\r", p_page_data->data.general_calib); /* fall through */ case ANT_BPWR_CALIB_ID_AUTO: /* fall through */ case ANT_BPWR_CALIB_ID_AUTO_SUPPORT: switch (p_page_data->auto_zero_status) { case ANT_BPWR_AUTO_ZERO_NOT_SUPPORTED: LOG_PAGE1("Auto zero not supported\n\r"); break; case ANT_BPWR_AUTO_ZERO_OFF: LOG_PAGE1("Auto zero off\n\r"); break; case ANT_BPWR_AUTO_ZERO_ON: LOG_PAGE1("Auto zero on\n\r"); break; } break; case ANT_BPWR_CALIB_ID_CTF: LOG_PAGE1("Not supported\n\r"); break; case ANT_BPWR_CALIB_ID_CUSTOM_REQ: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_REQ_SUCCESS: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_UPDATE: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_UPDATE_SUCCESS: LOG_PAGE1("Manufacture specyfic: "); for (uint8_t i = 0; i < sizeof (p_page_data->data.custom_calib); i++) { LOG_PAGE1(" %u", p_page_data->data.custom_calib[i]); } LOG_PAGE1("\n\r"); break; default: // shouldn't occur LOG_PAGE1("Unsupported calibration ID\n\r"); break; } }
void ant_bpwr_page_1_decode(uint8_t const * p_page_buffer, ant_bpwr_page1_data_t * p_page_data) { ant_bpwr_page1_data_layout_t const * p_incoming_data = (ant_bpwr_page1_data_layout_t *)p_page_buffer; p_page_data->calibration_id = (ant_bpwr_calib_id_t)p_incoming_data->calibration_id; switch (p_incoming_data->calibration_id) { case ANT_BPWR_CALIB_ID_MANUAL: // No implementation needed break; case ANT_BPWR_CALIB_ID_AUTO: /* fall through */ p_page_data->auto_zero_status = (ant_bpwr_auto_zero_status_t)p_incoming_data->data.auto_zero_config.auto_zero_status; break; case ANT_BPWR_CALIB_ID_MANUAL_SUCCESS: /* fall through */ case ANT_BPWR_CALIB_ID_FAILED: p_page_data->auto_zero_status = (ant_bpwr_auto_zero_status_t)p_incoming_data->data.general_calib_response. auto_zero_status; p_page_data->data.general_calib = uint16_decode( p_incoming_data->data.general_calib_response.data); break; case ANT_BPWR_CALIB_ID_CTF: LOG_PAGE1("Not supported\n\r"); break; case ANT_BPWR_CALIB_ID_AUTO_SUPPORT: if (p_incoming_data->data.auto_zero_support.enable == false) { p_page_data->auto_zero_status = ANT_BPWR_AUTO_ZERO_NOT_SUPPORTED; } else if (p_incoming_data->data.auto_zero_support.status) { p_page_data->auto_zero_status = ANT_BPWR_AUTO_ZERO_ON; } else { p_page_data->auto_zero_status = ANT_BPWR_AUTO_ZERO_OFF; } break; case ANT_BPWR_CALIB_ID_CUSTOM_REQ: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_REQ_SUCCESS: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_UPDATE: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_UPDATE_SUCCESS: memcpy((void *)p_page_data->data.custom_calib, p_incoming_data->data.custom_calib.manufac_spec, sizeof (p_page_data->data.custom_calib)); break; default: // shouldn't occur break; } page1_data_log(p_page_data); }
void ant_bpwr_page_1_encode(uint8_t * p_page_buffer, ant_bpwr_page1_data_t const * p_page_data) { ant_bpwr_page1_data_layout_t * p_outcoming_data = (ant_bpwr_page1_data_layout_t *)p_page_buffer; page1_data_log(p_page_data); p_outcoming_data->calibration_id = p_page_data->calibration_id; switch (p_page_data->calibration_id) { case ANT_BPWR_CALIB_ID_MANUAL: memset(p_outcoming_data->data.general_calib_request.reserved, 0xFF, sizeof (p_outcoming_data->data.general_calib_request.reserved)); break; case ANT_BPWR_CALIB_ID_AUTO: memset(p_outcoming_data->data.auto_zero_config.reserved, 0xFF, sizeof (p_outcoming_data->data.auto_zero_config.reserved)); p_outcoming_data->data.auto_zero_config.auto_zero_status = p_page_data->auto_zero_status; break; case ANT_BPWR_CALIB_ID_MANUAL_SUCCESS: /* fall through */ case ANT_BPWR_CALIB_ID_FAILED: memset(p_outcoming_data->data.general_calib_response.reserved, 0xFF, sizeof (p_outcoming_data->data.general_calib_response.reserved)); p_outcoming_data->data.general_calib_response.auto_zero_status = p_page_data->auto_zero_status; UNUSED_PARAMETER(uint16_encode(p_page_data->data.general_calib, p_outcoming_data->data.general_calib_response.data)); break; case ANT_BPWR_CALIB_ID_CTF: LOG_PAGE1("Not supported\n\r"); break; case ANT_BPWR_CALIB_ID_AUTO_SUPPORT: memset(p_outcoming_data->data.auto_zero_support.reserved1, 0xFF, sizeof (p_outcoming_data->data.auto_zero_support.reserved1)); p_outcoming_data->data.auto_zero_support.reserved0 = 0x00; p_outcoming_data->data.auto_zero_support.enable = (p_page_data->auto_zero_status == ANT_BPWR_AUTO_ZERO_NOT_SUPPORTED) ? false : true; p_outcoming_data->data.auto_zero_support.status = (p_page_data->auto_zero_status == ANT_BPWR_AUTO_ZERO_ON) ? true : false; break; case ANT_BPWR_CALIB_ID_CUSTOM_REQ: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_REQ_SUCCESS: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_UPDATE: /* fall through */ case ANT_BPWR_CALIB_ID_CUSTOM_UPDATE_SUCCESS: memcpy(p_outcoming_data->data.custom_calib.manufac_spec, (void *)p_page_data->data.custom_calib, sizeof (p_page_data->data.custom_calib)); break; default: // shouldn't occur break; } }