v1.9.12: SARA loop - 2e test de comm avant hardware reboot
Quand AT+CSQ ne repond pas (hoquet serie temporaire), retente le AT+CSQ jusqu'a 3x (0.5s d'intervalle) avant d'escalader. Si le modem repond, le flux normal reprend sans reboot -> evite les coupures d'alim GPIO et l'usure du modem pour une absence de reponse ponctuelle. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,18 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "1.9.12",
|
||||
"date": "2026-05-28",
|
||||
"changes": {
|
||||
"features": [],
|
||||
"improvements": [
|
||||
"SARA loop: 2e test de comm avant hardware reboot. Quand AT+CSQ ne répond pas (hoquet série temporaire), le script retente le AT+CSQ jusqu'à 3 fois (0.5s d'intervalle) avant d'escalader. Si le modem répond, le flux normal reprend sans reboot — évite les coupures d'alim GPIO et l'usure du modem pour une simple absence de réponse ponctuelle."
|
||||
],
|
||||
"fixes": [],
|
||||
"compatibility": []
|
||||
},
|
||||
"notes": "Ne touche pas aux autres causes de reboot (erreur Treck, etc.) ni au cas signal=99. Cible uniquement le 'No answer from SARA module' qui déclenchait un hardware reboot dès le premier AT+CSQ muet."
|
||||
},
|
||||
{
|
||||
"version": "1.9.11",
|
||||
"date": "2026-05-28",
|
||||
|
||||
@@ -1083,7 +1083,21 @@ try:
|
||||
command = f'AT+CSQ\r'
|
||||
ser_sara.write((command + '\r').encode('utf-8'))
|
||||
response2 = read_complete_response(ser_sara, wait_for_lines=["OK", "ERROR", "+CME ERROR","Socket:bind"])
|
||||
|
||||
|
||||
# Re-test comm avant d'escalader : un AT+CSQ sans reponse est le plus souvent
|
||||
# un hoquet serie temporaire, pas un modem plante. On retente quelques fois ;
|
||||
# ce n'est que si le modem reste muet qu'on tombe dans le hardware reboot plus
|
||||
# bas (coupure d'alim GPIO + usure du modem).
|
||||
if response2 is None or response2 == "":
|
||||
for attempt in range(3):
|
||||
print(f"⏳ Pas de reponse au CSQ, 2e test de comm {attempt + 1}/3...")
|
||||
time.sleep(0.5)
|
||||
ser_sara.write((command + '\r').encode('utf-8'))
|
||||
response2 = read_complete_response(ser_sara, wait_for_lines=["OK", "ERROR", "+CME ERROR", "Socket:bind"])
|
||||
if response2:
|
||||
print(f"✅ SARA a repondu (essai {attempt + 1}) — hoquet serie temporaire, pas de hardware reboot")
|
||||
break
|
||||
|
||||
print('<p class="text-danger-emphasis">', end="")
|
||||
print(response2)
|
||||
print("</p>", end="")
|
||||
|
||||
Reference in New Issue
Block a user