[ECOS] how to set overtime to serial port block read/write?

Jonathan Larmour jifl@jifvik.org
Sun Sep 27 21:55:00 GMT 2009


wb ning wrote:
> Hi, everyone:
>     I think it's a common question, but i can't find the answer. I
> think block read/write of serial port need a overtime, if time exceeds
> that, i can made my program don't
> wait any longer, if i can't set overtime, maybe i send a command and
> wait for response, but when some error occurs and the reponse is lost,
> my thread will wait forever.
> 
> Do anyone have find how to send overtime to block read/write? Please help me.

By overtime, I assume you mean a timeout. You can use a kernel alarm and 
from the alarm callback (after the timeout) use the 
CYG_IO_GET_CONFIG_SERIAL_ABORT config key with cyg_io_get_config(). Look 
at the eCos documentation for how to use kernel alarms, and 
cyg_io_get_config().

Alternatively don't forget that with the file I/O package, you can use 
select() with serial drivers (e.g. if opened as filename "/dev/ser0").

Jifl
-- 
--["No sense being pessimistic, it wouldn't work anyway"]-- Opinions==mine

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list