[Nut-upsdev] Adding debugging information in serial.c

Arjen de Korte nut+devel at de-korte.org
Thu Oct 30 20:19:34 UTC 2008


In order to improve the diagnostics for serial connected devices, I  
would like to add the possibility to differentiate between errors and  
timeouts.

For the ser_get_char() and ser_get_buf_len() we might do this by  
changing the return value. For the first, return value -1 would be an  
error, 0 a timeout and 1 success. The latter could return -1 on error,  
between 0 and (buflen-1) for a timeout and buflen for success.  
Unfortunately, the ser_get_line_alert() and ser_get_line() functions  
don't have a fixed number of bytes (this is determined by the  
endchar). So we can no longer check if an endchar was received. Bad  
idea.

I'd prefer to add a couple of upsdebug statements in the serial.c  
library instead. This would leave the interface intact, at the cost of  
possibly redundant upsdebug statements (if the drivers already provide  
these). Before bailing out with -1 on error or timeout, the  
ser_get_*() functions would tell why (error with errno or mention  
timeout) at debug level 4 and show what they have received so far at  
debug level 5. Any objections?

Best regards, Arjen
-- 
Please keep list traffic on the list



More information about the Nut-upsdev mailing list