sto implementando uno script python che tramite minimalModbus e JSON e la libreria HTTPlib legge e invia dei dati da RS485 al sito emoncms; di base fuzniona tutto, i dati li raccoglie correttamente e li invia anche correttamente.
Il problema nasce dopo un lasso di tempo indefinito (a volte lo fa dopo due cicli, a volte dopo 100, ecc) dove lo script si blocca con la seguente dicitura:
Codice: Seleziona tutto
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1129, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 901, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 871, in _conn_request
response = conn.getresponse()
File "/usr/lib/python2.7/httplib.py", line 1027, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 407, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 371, in _read_status
raise BadStatusLine(line)
Volevo chiedere se c'è qualche maniera per gestire questo "errore", magari tramite un try..catch.. o altro, per fare in modo che nel caso in cui una prima chiamata non andasse a buon fine non blocca lo script ma ritenta la connessione, continuando comunque a leggere dati nel frattempo.
Grazie mille in anticipo