Hello,
I don't understand why the power_manage(); doesn't work when I don't simulate the speed & cadence??
//#define SIMULATED
void csc_sim_measurement(ble_cscs_meas_t * p_measurement, uint8_t boolSpeedZero){
static uint16_t cumulative_crank_revs = 0;
static uint16_t event_time = 0;
static uint16_t wheel_revolution_mm = 0;
static uint16_t crank_rev_degrees = 0;
uint16_t mm_per_sec;
uint16_t degrees_per_sec;
uint16_t event_time_inc;
event_time_inc = (1024 * SPEED_AND_CADENCE_MEAS_INTERVAL) / 1000; // Per specification event time is in 1/1024th's of a second.
p_measurement->is_wheel_rev_data_present = true; // Calculate simulated wheel revolution values.
//--------------------------------------------------------------------------------------------------
// Calculate simulated speed values ----------------------------------------------------------------
#ifdef SIMULATED
mm_per_sec = KPH_TO_MM_PER_SEC * sensorsim_measure(&m_speed_kph_sim_state,&m_speed_kph_sim_cfg);
#endif
#ifndef SIMULATED
if(boolSpeedZero){
mm_per_sec = 0;
}else{
mm_per_sec = (speed_wheel__*100) / 36;
}
#endif
wheel_revolution_mm += mm_per_sec * SPEED_AND_CADENCE_MEAS_INTERVAL / 1000;
m_cumulative_wheel_revs += wheel_revolution_mm / WHEEL_CIRCUMFERENCE_MM;
wheel_revolution_mm %= WHEEL_CIRCUMFERENCE_MM;
p_measurement->cumulative_wheel_revs = m_cumulative_wheel_revs;
p_measurement->last_wheel_event_time = event_time + (event_time_inc * (mm_per_sec - wheel_revolution_mm) / mm_per_sec);
// Calculate simulated cadence values.
p_measurement->is_crank_rev_data_present = true;
#ifdef SIMULATED
degrees_per_sec = RPM_TO_DEGREES_PER_SEC * sensorsim_measure(&m_crank_rpm_sim_state,&m_crank_rpm_sim_cfg);
#endif
#ifndef SIMULATED
if(boolSpeedZero){
degrees_per_sec = 0;
}else{
kdnce_current__ = kdnce_current__ - 200;
degrees_per_sec = (uint16_t)(360.f * ( 1024.f/(float)kdnce_current__ ));
}
#endif
crank_rev_degrees += degrees_per_sec * SPEED_AND_CADENCE_MEAS_INTERVAL / 1000;
cumulative_crank_revs += crank_rev_degrees / DEGREES_PER_REVOLUTION;
crank_rev_degrees %= DEGREES_PER_REVOLUTION;
p_measurement->cumulative_crank_revs = cumulative_crank_revs;
p_measurement->last_crank_event_time = event_time + (event_time_inc * (degrees_per_sec - crank_rev_degrees) / degrees_per_sec);
event_time += event_time_inc;
}