Tom,
your suggestion is OK. but to write a driver is difficult to some degree.
now I have a new idea to solve my problem
A) in the main thread:
1)create a event buffer 'eventBuffer' with CreateEventBuffer ( notice , not
to create event input buffer
2)do a while loop:
while {1) {
eventBuffer->WaitForEvent(eventBuffer);
eventBuffer->GetEvent(eventBuffer, &event);
}
B) in the UART input thread
1) get a byte from the UART hardware
2) call function
PostEvent(eventBuffer,uart_event);
where uartevent is made of with the result of step 1.
I feel this method doe not modify the DirectFB code!!!!!
Am I right?
Please give me your comments.
Regards,
Yunfeng
----- Original Message -----
From: "Tom Bridgwater" <[EMAIL PROTECTED]>
To: "Lu yunfeng" <[EMAIL PROTECTED]>; "DirectFB-Dev" <[email protected]>
Sent: Monday, May 15, 2006 11:51 AM
Subject: Re: [directfb-dev] how to write a DirectFb driver
> 你好,
>
> Have a look in the DFB sources under inputdrivers/keyboard/keyboard.c
> for some reference code. The driver works with the "magic"
> DFB_INPUT_DRIVER(keyboard) macro at the top that sets up a data
> structure full of pointers to five static functions in the same file
> with the names like driver_xxx() that will be called by the DFB input
> core:
>
> driver_get_available() - tells the input core whether or not to use
> this driver
> driver_get_info() - tells the input core some meta information about
> the driver
> driver_open_device() - where the driver initializes itself
> driver_get_keymap_entry() - converts a DIKI_XXX constant to a
> DIKS_XXX constant and sets DILS_XXX flags
> driver_close_device() - where the driver shuts down and frees all
> resources
>
> During initialization the driver will need to open the serial port
> (or whatever channel it uses to communicate with the hardware) and
> create a thread to read from the hardware, and then it returns some
> information to the input core about its capabilities. The driver_data
> is for the driver to store a pointer to a data structure holding its
> private data, which is passed back to the other four driver calls
> from the input core.
>
> In the driver's input thread it does whatever it needs to according
> to the hardware's protocols, and as keys are pressed/released it
> sends events to the input core with dfb_input_dispatch().
>
> 祝你順利
> /TomB
>
> On May 14, 2006, at 6:53 PM, Lu yunfeng wrote:
>
> > Dear all,
> >
> > 1) I have remote control which is connect to the embedded target
> > through UART2.
> >
> > 2)I wish the output of UART2 as the normal keyboard input event of
> > DirectFB.
> >
> > 3) someone suggests me that a driver for UART2 should be
> > programmed. however I do not know how to write a driver for DirectFB.
> >
> > can anyone know how to program a driver for UART2? who can send me
> > some documentation about DirectFB driver programming or a demo
> > driver sample source code?
> >
> > Regards,
> > Yunfeng
> >
> >
> >
> >
> > _______________________________________________
> > directfb-dev mailing list
> > [email protected]
> > http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
>
>
> _______________________________________________
> directfb-dev mailing list
> [email protected]
> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
>
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev