For two years or so, I have been using successive versions of SynaSer in a Windows 7/64 PC application that communicates with an Arduino Mega2560. The application has run continuously almost all that time. Communication (9600, 8, N, no flow control) uses only the Connect, Config, SendByte, SendString, and RcvPacket calls.

Every so often, averaging about once a day, communication freezes, with persistent timeouts in SendBuffer. I can detect a freeze by using a timer interrupt on the PC, but I don't know what I can then do to recover under program control. Restarting the application doesn't help, nor does rebooting the Arduino. The only ways to resume operation of the application are
   * to reboot the PC, or
* In the Windows Device Manager, to Disable and then re-Enable the affected port. My first choice would of course be to eliminate the freezes, but they are sufficiently rare that I am pessimistic about figuring out what is causing them. I'd be satisfied to find a way to add to the application some new code that might, as needed, imitate the Device Manager's Disable/Enable sequence. My knowledge of Windows internals is not sufficient to do this. Can it be done using the existing apparatus of SynaSer?

Robert R. Fenichel, M.D.
reply to b...@fenichel.net
see also http://www.fenichel.net  
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
synalist-public mailing list
synalist-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synalist-public

Reply via email to