// ************************************************************************************************* // @fn process_requests // @brief Process requested actions outside ISR context. // @param none // @return none // ************************************************************************************************* void process_requests(void) { // Do temperature measurement if (request.flag.temperature_measurement) temperature_measurement(FILTER_ON); // Do pressure measurement #ifdef CONFIG_ALTITUDE if (request.flag.altitude_measurement) do_altitude_measurement(FILTER_ON); #endif #ifdef FEATURE_PROVIDE_ACCEL // Do acceleration measurement if (request.flag.acceleration_measurement) do_acceleration_measurement(); #endif // Do voltage measurement if (request.flag.voltage_measurement) battery_measurement(); // Generate alarm (two signals every second) if (request.flag.buzzer) start_buzzer(2, BUZZER_ON_TICKS, BUZZER_OFF_TICKS); #ifdef CONFIG_STRENGTH if (request.flag.strength_buzzer && strength_data.num_beeps != 0) { start_buzzer(strength_data.num_beeps, STRENGTH_BUZZER_ON_TICKS, STRENGTH_BUZZER_OFF_TICKS); strength_data.num_beeps = 0; } #endif // Reset request flag request.all_flags = 0; }
// ************************************************************************************************* // @fn process_requests // @brief Process requested actions outside ISR context. // @param none // @return none // ************************************************************************************************* void process_requests(void) { // Do temperature measurement if (request.flag.temperature_measurement) temperature_measurement(FILTER_ON); // Do pressure measurement if (request.flag.altitude_measurement) do_altitude_measurement(FILTER_ON); // Do acceleration measurement if (request.flag.acceleration_measurement) do_acceleration_measurement(); // Do voltage measurement if (request.flag.voltage_measurement) battery_measurement(); // Generate alarm (two signals every second) if (request.flag.buzzer) start_buzzer(2, BUZZER_ON_TICKS, BUZZER_OFF_TICKS); // Reset request flag request.all_flags = 0; }
//* ************************************************************************************************ /// @fn check_events(void) /// @brief Check for events and notify the listener. /// @return none //* ************************************************************************************************ void check_events(void) { enum sys_message msg = 0; // Event from : "drivers/rtca" if (rtca_last_event) { msg |= rtca_last_event; rtca_last_event = 0; } // Event from : "drivers/timer" if (timer0_last_event) { msg |= timer0_last_event << 7; timer0_last_event = 0; } // Event from : "drivers/accelerometer" if(as_last_interrupt) { msg |= SYS_MSG_AS_INT; as_last_interrupt = 0; } // Event from : "driver/pressure" if(ps_last_interrupt) { msg |= SYS_MSG_PS_INT; ps_last_interrupt = 0; } #ifdef CONFIG_BATTERY_MONITOR // Event from : "drivers/battery" if ((msg & SYS_MSG_RTC_MINUTE) == SYS_MSG_RTC_MINUTE) { msg |= SYS_MSG_BATT; battery_measurement(); } #endif { struct sys_messagebus *p = messagebus; while (p) { // Notify listener if he registered for any of these messages if (msg & p->listens) { p->fn(msg); } // Move to next p = p->next; } } }
// ************************************************************************************************* // @fn process_requests // @brief Process requested actions outside ISR context. // @param none // @return none // ************************************************************************************************* void process_requests(void) { #ifdef ECO_DISPLAY // Change display freq when needed if (request.flag.eco_display) eco_display(); #endif // Do temperature measurement if (request.flag.temperature_measurement) temperature_measurement(FILTER_ON); // Do pressure measurement #ifdef CONFIG_ALTITUDE if (request.flag.altitude_measurement) do_altitude_measurement(FILTER_ON); #endif #ifdef CONFIG_ALTI_ACCUMULATOR if (request.flag.altitude_accumulator) altitude_accumulator_periodic(); #endif #ifdef FEATURE_PROVIDE_ACCEL // Do acceleration measurement if (request.flag.acceleration_measurement) do_acceleration_measurement(); #endif #ifdef CONFIG_BATTERY // Do voltage measurement if (request.flag.voltage_measurement) battery_measurement(); #endif #ifdef CONFIG_ALARM // Generate alarm (two signals every second) if (request.flag.alarm_buzzer) start_buzzer(2, BUZZER_ON_TICKS, BUZZER_OFF_TICKS); #endif #ifdef CONFIG_EGGTIMER // Generate alarm (two signals every second) if (request.flag.eggtimer_buzzer) start_buzzer(2, BUZZER_ON_TICKS, BUZZER_OFF_TICKS); #endif #ifdef CONFIG_STRENGTH if (request.flag.strength_buzzer && strength_data.num_beeps != 0) { start_buzzer(strength_data.num_beeps, STRENGTH_BUZZER_ON_TICKS, STRENGTH_BUZZER_OFF_TICKS); strength_data.num_beeps = 0; } #endif // Reset request flag request.all_flags = 0; }
static void battery_activate(void) { battery_measurement(); sys_messagebus_register(&battery_event, SYS_MSG_BATT); /* display static symbols */ #ifdef CONFIG_MOD_BATTERY_SHOW_VOLTAGE display_symbol(0, LCD_SEG_L2_DP, SEG_ON); #endif display_symbol(0, LCD_SYMB_BATTERY, SEG_ON); display_symbol(0, LCD_SYMB_PERCENT, SEG_ON); /* refresh display */ display_battery(); }
// ************************************************************************************************* // @fn process_requests // @brief Process requested actions outside ISR context. // @param none // @return none // ************************************************************************************************* void process_requests(void) { // Do temperature and pressure measurement if (request.flag.altitude_measurement) do_altitude_measurement(FILTER_ON); // Add data to datalog buffer if (request.flag.datalog) do_datalog(); // Do voltage measurement if (request.flag.voltage_measurement) battery_measurement(); // Reset request flag request.all_flags = 0; }
// ************************************************************************************************* // @fn init_global_variables // @brief Initialize global variables. // @param none // @return none // ************************************************************************************************* void init_global_variables(void) { // -------------------------------------------- // Apply default settings // set menu pointers to default menu items ptrMenu_L1 = &menu_L1_Time; // ptrMenu_L1 = &menu_L1_Alarm; // ptrMenu_L1 = &menu_L1_Heartrate; // ptrMenu_L1 = &menu_L1_Speed; // ptrMenu_L1 = &menu_L1_Temperature; // ptrMenu_L1 = &menu_L1_Altitude; // ptrMenu_L1 = &menu_L1_Acceleration; ptrMenu_L2 = &menu_L2_Date; // ptrMenu_L2 = &menu_L2_Stopwatch; // ptrMenu_L2 = &menu_L2_Rf; // ptrMenu_L2 = &menu_L2_Ppt; // ptrMenu_L2 = &menu_L2_Sync; // ptrMenu_L2 = &menu_L2_Distance; // ptrMenu_L2 = &menu_L2_Calories; // ptrMenu_L2 = &menu_L2_Battery; // ptrMenu_L2 = &menu_L2_Phase; // Assign LINE1 and LINE2 display functions fptr_lcd_function_line1 = ptrMenu_L1->display_function; fptr_lcd_function_line2 = ptrMenu_L2->display_function; // Init system flags button.all_flags = 0; sys.all_flags = 0; request.all_flags = 0; display.all_flags = 0; message.all_flags = 0; // Force full display update when starting up display.flag.full_update = 1; #ifndef ISM_US // Use metric units when displaying values sys.flag.use_metric_units = 1; #else #ifdef CONFIG_METRIC_ONLY sys.flag.use_metric_units = 1; #endif #endif // Read calibration values from info memory read_calibration_values(); // Set system time to default value reset_clock(); // Set date to default value reset_date(); // Set alarm time to default value reset_alarm(); // Set buzzer to default value reset_buzzer(); // Reset stopwatch reset_stopwatch(); // Reset altitude measurement #ifdef CONFIG_ALTITUDE reset_altitude_measurement(); #endif // Reset acceleration measurement reset_acceleration(); // Reset BlueRobin stack //pfs #ifndef ELIMINATE_BLUEROBIN reset_bluerobin(); #endif #ifdef CONFIG_EGGTIMER //Set Eggtimer to a 5 minute default memcpy(seggtimer.defaultTime, "00010000", sizeof(seggtimer.time)); reset_eggtimer(); #endif #ifdef CONFIG_PHASE_CLOCK // default program sPhase.program = 0; #endif // Reset SimpliciTI stack reset_rf(); // Reset temperature measurement reset_temp_measurement(); // Reset battery measurement reset_batt_measurement(); battery_measurement(); }
// ************************************************************************************************* // @fn init_global_variables // @brief Initialize global variables. // @param none // @return none // ************************************************************************************************* void init_global_variables(void) { // -------------------------------------------- // Apply default settings // set menu pointers to default menu items ptrMenu_L1 = &menu_L1_Time; // ptrMenu_L1 = &menu_L1_Alarm; // ptrMenu_L1 = &menu_L1_Heartrate; // ptrMenu_L1 = &menu_L1_Speed; // ptrMenu_L1 = &menu_L1_Temperature; // ptrMenu_L1 = &menu_L1_Altitude; // ptrMenu_L1 = &menu_L1_Acceleration; ptrMenu_L2 = &menu_L2_Date; // ptrMenu_L2 = &menu_L2_Stopwatch; // ptrMenu_L2 = &menu_L2_Rf; // ptrMenu_L2 = &menu_L2_Ppt; // ptrMenu_L2 = &menu_L2_Sync; // ptrMenu_L2 = &menu_L2_Distance; // ptrMenu_L2 = &menu_L2_Calories; // ptrMenu_L2 = &menu_L2_Battery; // Assign LINE1 and LINE2 display functions fptr_lcd_function_line1 = ptrMenu_L1->display_function; fptr_lcd_function_line2 = ptrMenu_L2->display_function; // Init system flags button.all_flags = 0; sys.all_flags = 0; request.all_flags = 0; display.all_flags = 0; message.all_flags = 0; // Force full display update when starting up display.flag.full_update = 1; #ifndef ISM_US // Use metric units when displaying values sys.flag.use_metric_units = 1; #endif // Read calibration values from info memory read_calibration_values(); // Set system time to default value reset_clock(); // Set date to default value reset_date(); // Set alarm time to default value reset_alarm(); // Set buzzer to default value reset_buzzer(); // Reset stopwatch reset_stopwatch(); // Reset altitude measurement reset_altitude_measurement(); // Reset acceleration measurement reset_acceleration(); // Reset BlueRobin stack reset_bluerobin(); // Reset SimpliciTI stack reset_rf(); // Reset temperature measurement reset_temp_measurement(); // Reset battery measurement reset_batt_measurement(); battery_measurement(); //Set cdtimer to a 5:00 minute default memcpy(scdtimer.defaultTime, "000500", sizeof(scdtimer.time)); reset_cdtimer(); // Reset random generator reset_random(); // Reset agility measurement reset_agility(); // Reset number storage reset_number_storage(); }
// ************************************************************************************************* // @fn init_global_variables // @brief Initialize global variables. // @param none // @return none // ************************************************************************************************* void init_global_variables(void) { // -------------------------------------------- // Apply default settings menu_L1_position=0; menu_L2_position=0; // set menu pointers to default menu items ptrMenu_L1 = menu_L1[menu_L1_position]; ptrMenu_L2 = menu_L2[menu_L2_position]; // Assign LINE1 and LINE2 display functions fptr_lcd_function_line1 = ptrMenu_L1->display_function; fptr_lcd_function_line2 = ptrMenu_L2->display_function; // Init system flags button.all_flags = 0; sys.all_flags = 0; request.all_flags = 0; display.all_flags = 0; message.all_flags = 0; // Force full display update when starting up display.flag.full_update = 1; #ifndef ISM_US // Use metric units when displaying values sys.flag.use_metric_units = 1; #else #ifdef CONFIG_METRIC_ONLY sys.flag.use_metric_units = 1; #endif #endif // Read calibration values from info memory read_calibration_values(); #ifdef CONFIG_ALTI_ACCUMULATOR // By default, don't have the altitude accumulator running alt_accum_enable = 0; #endif #ifdef CONFIG_INFOMEM if(infomem_ready()==-2) { infomem_init(INFOMEM_C, INFOMEM_C+2*INFOMEM_SEGMENT_SIZE); } #endif // Set system time to default value reset_clock(); // Set date to default value reset_date(); #ifdef CONFIG_SIDEREAL reset_sidereal_clock(); #endif #ifdef CONFIG_ALARM // Set alarm time to default value reset_alarm(); #endif // Set buzzer to default value reset_buzzer(); #ifdef CONFIG_STOP_WATCH // Reset stopwatch reset_stopwatch(); #endif // Reset altitude measurement #ifdef CONFIG_ALTITUDE reset_altitude_measurement(); #endif #ifdef FEATURE_PROVIDE_ACCEL // Reset acceleration measurement reset_acceleration(); #endif // Reset BlueRobin stack //pfs #ifndef ELIMINATE_BLUEROBIN reset_bluerobin(); #endif #ifdef CONFIG_EGGTIMER init_eggtimer(); // Initialize eggtimer #endif #ifdef CONFIG_PROUT reset_prout(); #endif #ifdef CONFIG_PHASE_CLOCK // default program sPhase.program = 0; #endif // Reset SimpliciTI stack reset_rf(); // Reset temperature measurement reset_temp_measurement(); #ifdef CONFIG_BATTERY // Reset battery measurement reset_batt_measurement(); battery_measurement(); #endif }
// ************************************************************************************************* // @fn init_global_variables // @brief Initialize global variables. // @param none // @return none // ************************************************************************************************* void init_global_variables(void) { // -------------------------------------------- // Apply default settings // set menu pointers to default menu items ptrMenu_L1 = &menu_L1_Time; // ptrMenu_L1 = &menu_L1_Alarm; // ptrMenu_L1 = &menu_L1_Temperature; // ptrMenu_L1 = &menu_L1_Altitude; // ptrMenu_L1 = &menu_L1_Acceleration; ptrMenu_L2 = &menu_L2_Date; // ptrMenu_L2 = &menu_L2_Stopwatch; // ptrMenu_L2 = &menu_L2_Battery; // ptrMenu_L2 = &menu_L2_Acc; // ptrMenu_L2 = &menu_L2_Ppt; // ptrMenu_L2 = &menu_L2_Sync; // ptrMenu_L2 = &menu_L2_RFBSL; // Assign LINE1 and LINE2 display functions fptr_lcd_function_line1 = ptrMenu_L1->display_function; fptr_lcd_function_line2 = ptrMenu_L2->display_function; // Init system flags button.all_flags = 0; sys.all_flags = 0; request.all_flags = 0; display.all_flags = 0; message.all_flags = 0; // Force full display update when starting up display.flag.full_update = 1; #ifndef ISM_US // Use metric units when displaying values sys.flag.use_metric_units = 1; #endif // Read calibration values from info memory read_calibration_values(); // Set system time to default value reset_clock(); // Set date to default value reset_date(); // Set alarm time to default value reset_alarm(); // Set buzzer to default value reset_buzzer(); // Reset stopwatch reset_stopwatch(); // Reset altitude measurement reset_altitude_measurement(); // Reset acceleration measurement reset_acceleration(); #ifdef BLUEROBIN // Reset BlueRobin stack reset_bluerobin(); #endif // Reset SimpliciTI stack reset_rf(); // Reset temperature measurement reset_temp_measurement(); // Reset battery measurement reset_batt_measurement(); battery_measurement(); }