fix(wifi): kurze Pause vor dem Standalone-Wechsel, Abnahmepunkt dazu
I6: Der HTTP-Task schreibt die 202 erst nach nl_api_handle(); die Warteschlangennachricht geht aber schon darin raus, und net_task hat die hoehere Prioritaet (35 gegen 42, im WM-SDK ist die kleinere Zahl hoeher). Er verdraengt also sofort und reisst das Netz ab, bevor send_all() laeuft. Beim Wechsel AUS dem WLAN kam die 202 trotzdem an, weil tls_wifi_disconnect() asynchron arbeitet - ueber den eigenen AP ist tls_wifi_softap_destroy() der haertere Abriss, und dieser Fall ist ungemessen. Deshalb beides: rund 250 ms Pause im MSG_STANDALONE-Zweig vor dem Wechsel als billige Versicherung, und der Fall als offener Punkt in der Abnahmeliste - die Messung am Geraet bleibt noetig.
This commit is contained in:
@@ -401,6 +401,16 @@ static void net_task(void *arg)
|
||||
|
||||
if (m & MSG_NETIF)
|
||||
printf("wifi: netif event %u\r\n", (unsigned)(m & 0xFFu));
|
||||
/* I6: Die 202 auf den Standalone-Wunsch schreibt der HTTP-Task erst, nachdem
|
||||
* nl_api_handle() zurueck ist - die Warteschlangennachricht geht aber schon darin
|
||||
* raus, und dieser Task hat die hoehere Prioritaet (35 gegen 42, kleinere Zahl heisst
|
||||
* hoeher). Er verdraengt also sofort und risse das Netz ab, bevor send_all() lief.
|
||||
* Beim Wechsel AUS dem WLAN ging das bisher gut, weil tls_wifi_disconnect() asynchron
|
||||
* arbeitet; ueber den eigenen AP ist tls_wifi_softap_destroy() der haertere Abriss.
|
||||
* Die Pause ist billige Versicherung - gemessen ist der AP-Fall damit nicht, er steht
|
||||
* als offener Punkt in der Abnahmeliste. */
|
||||
if (m == MSG_STANDALONE)
|
||||
tls_os_time_delay(HZ / 4); /* ~250 ms */
|
||||
if (ignored_off)
|
||||
printf("wifi: standalone was already off, nothing to do\r\n");
|
||||
/* C1: Beim Verlassen des Standalone-Modus OHNE gespeicherte WLAN-Daten geht die
|
||||
|
||||
Reference in New Issue
Block a user