希望提供Nonblocking的WebService

如題,目前在ard_socket.c中的get_available內會提供一個while loop以確認socket的連線,但這會導致一但開啟等待之後,所有的動作都會等到有client連進來之後才會進行。

目前我的解法是直接拿掉while loop,由arduino的loop() method來處理,希望可以提供一個獨立的method讓我們自行polling client

2 Likes

@xidameng @wyy
雖然不是很恰當但我想在同一個thread上請教一個問題

根據規格,BW16上有另一個核心,雖然時脈很低,但如果拿來單純處理GPIO應該是夠的,也不用煩惱被socket block的問題,想知道另一個核心有辦法使用嗎?

可以的,使用standard sdk就可以了

進入到 這個路徑下,你會看到兩個folder

其中 hp 裏面的main.c對應的是大核的程式, lp對應的就是小核的

@Victor

Arduino 环境并不支持用小核心。想要大小核心一起用,建议使用 SDK。

nonblocking webservice 的建议会加入开发日程。也可以跳过 arduino socket 的 api,直接用 LwIP。

謝謝兩位的回覆,有點可惜Arduino不支援

因為我的用途基本上都還偏上層,直接從standard SDK或直接用LwIP感覺不太實際
所以我應該會選擇等nonblocking webservice的實作

在等的過程中,您也可以考慮使用RTOS創建一個新的thread來實現concurrent運行