예제 #1
0
파일: main.c 프로젝트: drmetal/stm32-demos
int main(void)
{
    flash_led(LED1);

    // init logger
	log_init(&mainlog, "main");

	lcd_init();
	graphics_init();
	touch_panel_init();
	lcd_backlight_init();
	lcd_backlight_auto_off(false);
	lcd_backlight_enable();
	set_background_colour(BLACK);

	panel_meter_init(&panelmeter, buffer, BOX_LOCATION, BOX_SIZE, true, "%.3f", "C", BOX_MAIN_FONT, BOX_UNIT_FONT);
	panel_meter_enable_touch(&panelmeter, (touch_callback_t)touch_key_callback, panelmeter_touch_appdata);

	float val = 0;
	while(1)
	{
		printf("val %.3f\n", (double)val);
		panel_meter_update(&panelmeter, val);
		val += 0.1;
		sleep(1);
	}

	pthread_exit(0);

    return 0;
}
예제 #2
0
파일: game.cpp 프로젝트: FlibbleMr/neogfx
void create_game(ng::i_layout& aLayout)
{
    auto spritePlane = std::make_shared<ng::sprite_plane>();
    aLayout.add_item(spritePlane);
    spritePlane->set_font(ng::font(spritePlane->font(), ng::font::Bold, 28));
    spritePlane->set_background_colour(ng::colour::Black);
    spritePlane->enable_z_sorting(true);
    for (uint32_t i = 0; i < 1000; ++i)
        spritePlane->add_shape(std::make_shared<ng::rectangle>(
                                   *spritePlane,
                                   ng::vec3{static_cast<ng::scalar>(std::rand() % 800), static_cast<ng::scalar>(std::rand() % 800), -(static_cast<ng::scalar>(std::rand() % 32))},
                                   ng::size{static_cast<ng::scalar>(std::rand() % 64), static_cast<ng::scalar>(std::rand() % 64)},
                                   ng::colour(std::rand() % 64, std::rand() % 64, std::rand() % 64)));
    //spritePlane->set_uniform_gravity();
    //spritePlane->set_gravitational_constant(0.0);
    //spritePlane->create_earth();
    auto& spaceshipSprite = spritePlane->create_sprite(ng::image(sSpaceshipImagePattern, { {0, ng::colour()}, {1, ng::colour::LightGoldenrod}, {2, ng::colour::DarkGoldenrod4} }));
    spaceshipSprite.physics().set_mass(1.0);
    spaceshipSprite.set_size(ng::size(36.0, 36.0));
    spaceshipSprite.set_position_3D(ng::vec3(400.0, 18.0, 1.0));
    auto shipInfo = std::make_shared<ng::text>(*spritePlane, ng::vec3{}, "", ng::font("SnareDrum One NBP", "Regular", 24.0), ng::colour::White);
    shipInfo->set_border(1.0);
    shipInfo->set_margins(ng::margins(2.0));
    shipInfo->set_buddy(spaceshipSprite, ng::vec3{18.0, 18.0, 0.0});
    spritePlane->add_shape(shipInfo);
    spritePlane->sprites_painted([spritePlane](ng::graphics_context& aGraphicsContext)
    {
        aGraphicsContext.draw_text(ng::point(0.0, 0.0), "Hello, World!", spritePlane->font(), ng::colour::White);
    });
    spritePlane->physics_applied([spritePlane, &spaceshipSprite, shipInfo]()
    {
        const auto& keyboard = ng::app::instance().keyboard();
        spaceshipSprite.physics().set_acceleration({
            keyboard.is_key_pressed(ng::ScanCode_RIGHT) ? 16.0 : keyboard.is_key_pressed(ng::ScanCode_LEFT) ? -16.0 : 0.0,
            keyboard.is_key_pressed(ng::ScanCode_UP) ? 16.0 : keyboard.is_key_pressed(ng::ScanCode_DOWN) ? -16.0 : 0.0
        });
        if (keyboard.is_key_pressed(ng::ScanCode_X))
            spaceshipSprite.physics().set_spin_degrees(30.0);
        else if (keyboard.is_key_pressed(ng::ScanCode_Z))
            spaceshipSprite.physics().set_spin_degrees(-30.0);
        else
            spaceshipSprite.physics().set_spin_degrees(0.0);
        if (keyboard.is_key_pressed(ng::ScanCode_SPACE))
            spritePlane->add_sprite(std::make_shared<bullet>(spaceshipSprite));
        std::ostringstream oss;
        oss << "VELOCITY:  " << spaceshipSprite.physics().velocity().magnitude() << " m/s" << "\n";
        oss << "ACCELERATION:  " << spaceshipSprite.physics().acceleration().magnitude() << " m/s/s";
        shipInfo->set_value(oss.str());
    });
}
예제 #3
0
파일: main.c 프로젝트: drmetal/coolioso
int main(void)
{
    flash_led(LED1);
    // init logger
    log_init(&mainlog, "main");

    lcd_init();
    graphics_init();
    touch_panel_init();
    lcd_backlight_init();

    set_background_colour(BACKGROUND);
    lcd_backlight_auto_off(true);
    lcd_backlight_enable();
    lcd_backlight_timeout(30000);
    statusbar_init();

    // init filesystem
    sdfs_init();
    log_info(&mainlog, "wait for filesystem...");
    while(!sdfs_ready());

    // init networking
    net_config(&netconf, DEFAULT_RESOLV_CONF_PATH, DEFAULT_NETIF_CONF_PATH);
    net_init(&netconf);

    log_info(&mainlog, "device init done...");

    init_heater_cooler();

    log_info(&mainlog, "service init done...");

    while(1)
    {
        usleep(250000);
        update_heater_cooler();
    }

    return 0;
}