Jump to content

artem_dmitriev

Members
  • Posts

    12
  • Joined

  • Last visited

Posts posted by artem_dmitriev

  1. Hello. I'd like to draw a scheme on the screen by using of different functions like gdispDrawPixel,gdispDrawLine,gdispDrawCircle etc.

    Does ugfx has scale function (coordinate transformation)? I need to scale created image on the screen.

  2. Is it necessary to call cyg_scheduler_start before gfxInit ? I call gfxInit in cyg_user_start,but cyg_sheduler_start is called after that now.

    void
    cyg_start( void )
    {
    CYG_REPORT_FUNCTION();
    CYG_REPORT_FUNCARGVOID();

    cyg_prestart();

    cyg_package_start();

    cyg_user_start();

    #ifdef CYGPKG_KERNEL
    Cyg_Scheduler::start();
    #endif


    CYG_REPORT_RETURN();
    } // cyg_start()

    When i try to call cyg_scheduler_start before gfxInit, the program doesn't reach gfxInit().

  3. For example, i am trying to run GWIN/slider example. Here is the code from main.c

    #include "gfx.h"

    static GListener gl;
    static GHandle ghSlider1, ghSlider2, ghConsole;

    static void createWidgets(void) {
    GWidgetInit wi;

    // Apply some default values for GWIN
    gwinWidgetClearInit(&wi);
    wi.g.show = TRUE;

    // create Slider1
    wi.g.y = 10; wi.g.x = 10; wi.g.width = gdispGetWidth()-20; wi.g.height = 20; wi.text = "S1";
    ghSlider1 = gwinSliderCreate(0, &wi);

    // create Slider2
    wi.g.y = 40; wi.g.x = 10; wi.g.width = 20; wi.g.height = gdispGetHeight() - 50; wi.text = "S2";
    ghSlider2 = gwinSliderCreate(0, &wi);

    // Set slider 2 to return extended events
    gwinSliderSendExtendedEvents(ghSlider2, TRUE);

    // Some options to try
    //gwinSliderSetRange(ghSlider1, 0, 70000);
    //gwinSliderSetRange(ghSlider2, -4, 4);
    //gwinSliderSetRange(ghSlider1, 4, -4);

    // Console to display slider events
    wi.g.y = 40; wi.g.x = 40; wi.g.width = gdispGetWidth()-50; wi.g.height = gdispGetHeight()-50;
    ghConsole = gwinConsoleCreate(0, &wi.g);
    }

    void cyg_user_start(void){

    GEventGWinSlider * pe;
    const char * sAction;

    // Initialize the display
    gfxInit();

    // Set the widget defaults
    gwinSetDefaultFont(gdispOpenFont("UI2"));
    gwinSetDefaultStyle(&WhiteWidgetStyle, FALSE);
    gdispClear(White);

    // create the widget
    createWidgets();
    gwinSetColor(ghConsole, Green);
    gwinSetBgColor(ghConsole, White);
    gwinClear(ghConsole);

    // We want to listen for widget events
    geventListenerInit(&gl);
    gwinAttachListener(&gl);

    while(1) {
    // Get an Event (assume it is a slider event)
    pe = (GEventGWinSlider *)geventEventWait(&gl, TIME_INFINITE);

    switch(pe->type) {
    case GEVENT_GWIN_SLIDER:
    switch(pe->action) {
    case GSLIDER_EVENT_SET: sAction = "SET"; break;
    case GSLIDER_EVENT_CANCEL: sAction = "CANCEL"; break;
    case GSLIDER_EVENT_MOVE: sAction = "MOVE"; break;
    case GSLIDER_EVENT_START: sAction = "START"; break;
    default: sAction = "????"; break;
    }
    gwinPrintf(ghConsole, "Slider %s = %d %s\n", gwinGetText(pe->gwin), pe->position, sAction);
    break;

    default:
    // Oops - not a slider event.
    break;
    }
    }
    }

    The program can't reach "switch(pe->type)" line. When i suspend debug session, i see, that an exception occured. For example, the program reach "cyg_posix_exception_handler" with exception number 3. I also noticed that exception occured on line 109 in file packages/kernel/current/src/sync/cnt_sem.cxx

            // Allow other threads to run
    Cyg_Scheduler::reschedule();

    Maybe i should run ugfx from thread?

  4. Hello. I am trying to use ugfx with ecos os on custom board based on stm32f429 controller . I've tried to run examples from GDISP directory,and all works fine.

    But when i try to run examples from GWIN an exception happends. I use my own touch driver, but the problem is not in it. Did anybody try to use ecos with ugfx?

×
×
  • Create New...