Пример #1
0
SocketCanPump::SocketCanPump(double nominal_frequency,
                             double bitrate, size_t channels,
                             size_t nominal_pump_size, bool virtual_can) :
    CanPump(nominal_frequency, bitrate, channels, nominal_pump_size)
{
    initialize_devices(virtual_can);
}
Пример #2
0
static void PLATFORM_main_task(void* pvParameters) {
	subsystem_t *ss = pvParameters;
    g_previous_mode = SM_OFF;
    g_mode = g_next_mode = SM_BOOTING;
    retval_t rv;

    initialize_nvram();
    increment_reboot_counter();
    saved_last_boot_reason = nvram.platform.last_boot_reason;
    PLATFORM_save_boot_reason("Unexpected reboot");

	rv = board_init_scheduler_running();
    FUTURE_HOOK_1(PM_board_init_failure, &rv);
	if (rv != RV_SUCCESS) {
        /* XXX save in subsystem status, report in beacons */
	}

    display_boot_banner();

    initialize_devices();

	PLATFORM_ss_is_ready(ss);
	PLATFORM_ss_expect_heartbeats(ss, HEARTBEAT_MAIN_TASK);

	start_ss_tasks();
    if (!wait_all_ss_ready(PM_SS_BOOT_TIMEOUT_MS / portTICK_RATE_MS)) {
    	report_ss_states_and_hang(true);
    }

    while (1) {
		PLATFORM_ss_is_alive(ss, HEARTBEAT_MAIN_TASK);

    	if (g_mode != g_next_mode) {
			FUTURE_HOOK_3(platform_mode_change, ss, &g_mode, &g_next_mode);
    		mode_change_synchronous(g_next_mode, PM_SS_MODE_CHANGE_TIMEOUT_MS);
			PLATFORM_ss_is_ready(ss);
    	}

    	switch (PLATFORM_current_satellite_mode()) {
			case SM_BOOTING:
				PLATFORM_request_mode_change(SM_INITIALIZING);
		        break;
			case SM_INITIALIZING:
				if (are_all_vital_ready()) {
					PLATFORM_request_mode_change(SM_SURVIVAL);
				} else {
					/* Do nothing. Ground Control will decide what to do */
				}
			default:
				break;
    	}

    	check_and_update_heartbeat_watchdog();

    	vTaskDelay(PM_MODE_CHANGE_DETECT_TIME_SLOT_MS / portTICK_RATE_MS);
    }
}
Пример #3
0
bool        initialize_system(void)
{
    if (!initialize_ports()      ||
        !initialize_devices()    ||
        !initialize_interrupts() ||
        !initialize_timers()     ||
        !initialize_menu_tree())
        return (false);
    return (true);
}
Пример #4
0
int main()
{
    initialize_devices();
    while (true)
        do_background_task();
}