2015/12/30

[esp8266]HTTP GETする

検索して出てきたESP8266のサンプルを見ながら、HTTP GETするサンプルソースを書いた。

https://github.com/hirokuma/esp8266_httpget

 

user_init()がメイン関数代わりというわけではないんだな。
別のサンプルがタスクを使うタイプだったから、WiFiのイベントとタイマや通信、GPIOなどの割込みでタスクで回していくような考え方でよいのかな。

また、UART0が自分が出したメッセージ以外にもいろいろ出しているのがわかった。
他の機器と通信するなら、system_uart_swap()とかos_install_putc1()を使うか、system_set_os_print()を使うかするのが良いのか。

 

しかし、こういうSSIDやパスワードのような自分の環境に関する情報をソースに埋め込むタイプは、githubとかに置くときやログを載せるのに苦心するな。


追記:

espconn_sent_callback()というAPIを呼んでみたが、これはたぶん間違いだ。
https://github.com/hirokuma/esp8266_httpget/blob/master/user/user_main.c#L135

PDFに、espconn_send()の注記としてこう書いてあったのだ。

Please call espconn_send after espconn_sent_callback of the pre-packet.

私はこれを「espconn_sent_callback()のあとでespconn_send()を呼んでくれ」と解釈した。
でも、espconn_sent_callbackは関数じゃなくて、typedefした型名のようだ。
使っているのは、espconn_regist_sentcb()。
recvcb()があるのにsentの方はAPI名が違うんだなー、などとのんびり考えていたのだけど、ちゃんとあったのだ。

いま、手元に環境が無いので確認できないけど、たぶんそうだろう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。