c# - SerialPort ReadTimeout is 5 seconds, but the timeout takes 432 seconds -


i have bit of code looking byte on serial port, , trying test happens when no data comes across.

byte[] startbytearray = new byte[1];  // find start byte try {         {         logger.trace("starting read @ " + datetime.now.tostring());         logger.trace("comm.readtimeout = " + comm.readtimeout);         comm.read(startbytearray, 0, 1);         logger.trace("found byte: " + startbytearray[0].tostring("x2"));          if((new timespan(datetime.utcnow.ticks - starttime)).totalmilliseconds > comm.readtimeout)             throw new timeoutexception("invalid data: start byte never found, others were: " + startbytearray[0].tostring("x2"));      } while (!isstartbyte(startbytearray[0]));  } catch (timeoutexception ex) {     logger.trace("caught exception @ " + datetime.now.tostring());     logger.trace("comm.readtimeout = " + comm.readtimeout);     logger.trace("exception = " + ex.message);      if(ex.message.contains("invalid data"))         driverevent = new driverevent(drivereventcode.invalid_data, ex.message, datetime.utcnow.ticks);     else         driverevent = new driverevent(drivereventcode.no_data, "no bytes received in " + comm.readtimeout + " milliseconds: " + ex.message, datetime.utcnow.ticks);     return null; } 

some of output generated follows:

03.24 16:04:22 trace:com301.295           starting read @ 3/24/2014 4:04:22 pm 03.24 16:04:22 trace:com301.295           comm.readtimeout = 5000 03.24 16:11:34 trace:com301.295           caught exception @ 3/24/2014 4:11:34 pm 03.24 16:11:34 trace:com301.295           comm.readtimeout = 5000 03.24 16:11:34 trace:com301.295           exception = operation has timed out. 03.24 16:11:34 error:com301.280           no_data error received: no bytes received in 5000 milliseconds: operation has timed out. generated. ... 03.24 16:12:11 trace:com301.287           starting read @ 3/24/2014 4:12:11 pm 03.24 16:12:11 trace:com301.287           comm.readtimeout = 5000 03.24 16:19:23 trace:com301.287           caught exception @ 3/24/2014 4:19:23 pm 03.24 16:19:23 trace:com301.287           comm.readtimeout = 5000 ... 03.24 16:20:00 trace:com301.293           starting read @ 3/24/2014 4:20:00 pm 03.24 16:20:00 trace:com301.293           comm.readtimeout = 5000 03.24 16:27:13 trace:com301.293           caught exception @ 3/24/2014 4:27:13 pm 03.24 16:27:13 trace:com301.293           comm.readtimeout = 5000 

the readtimeout set 5000 milliseconds; why taking on 7 minutes? can't think of thread holding serial port hostage.

update

all control lines being held high; serialport class disregarding readtimeout because of this?


Comments

Popular posts from this blog

user interface - How to replace the Python logo in a Tkinter-based Python GUI app? -

objective c - Greedy NSProgressIndicator Allocation -

how to set an OCR language in Google Drive -