X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=bertos%2Fdrv%2Fser.c;h=a684ebbaf6cdcb22767afe8ad248fb09db685235;hb=42c8858fcf3b852cb7e34d7e9170b484da59e63a;hp=f0f06ddd72ad16677ab71c881982879d2d3a87cf;hpb=92d5e5f668bb596036e7c4fe674b29448f7ac65d;p=bertos.git diff --git a/bertos/drv/ser.c b/bertos/drv/ser.c index f0f06ddd..a684ebba 100644 --- a/bertos/drv/ser.c +++ b/bertos/drv/ser.c @@ -56,7 +56,7 @@ #include "ser_p.h" #include "cfg/cfg_ser.h" -#include "cfg/cfg_kern.h" +#include "cfg/cfg_proc.h" #include #include @@ -241,38 +241,20 @@ static size_t ser_write(struct KFile *fd, const void *_buf, size_t size) #if CONFIG_SER_RXTIMEOUT != -1 || CONFIG_SER_TXTIMEOUT != -1 void ser_settimeouts(struct Serial *fd, mtime_t rxtimeout, mtime_t txtimeout) { - fd->rxtimeout = ms_to_ticks(rxtimeout); - fd->txtimeout = ms_to_ticks(txtimeout); + #if CONFIG_SER_RXTIMEOUT != -1 + fd->rxtimeout = ms_to_ticks(rxtimeout); + #else + (void)rxtimeout; + #endif + + #if CONFIG_SER_TXTIMEOUT != -1 + fd->txtimeout = ms_to_ticks(txtimeout); + #else + (void)txtimeout; + #endif } #endif /* CONFIG_SER_RXTIMEOUT || CONFIG_SER_TXTIMEOUT */ -#if CONFIG_SER_RXTIMEOUT != -1 -/** - * Discard input to resynchronize with remote end. - * - * Discard incoming data until the port stops receiving - * characters for at least \a delay milliseconds. - * - * \note Serial errors are reset before and after executing the purge. - */ -void ser_resync(struct Serial *fd, mtime_t delay) -{ - mtime_t old_rxtimeout = ticks_to_ms(fd->rxtimeout); - - ser_settimeouts(fd, delay, ticks_to_ms(fd->txtimeout)); - do - { - ser_setstatus(fd, 0); - ser_getchar(fd); - } - while (!(ser_getstatus(fd) & SERRF_RXTIMEOUT)); - - /* Restore port to an usable status */ - ser_setstatus(fd, 0); - ser_settimeouts(fd, old_rxtimeout, ticks_to_ms(fd->txtimeout)); -} -#endif /* CONFIG_SER_RXTIMEOUT */ - void ser_setbaudrate(struct Serial *fd, unsigned long rate) {