IDE for GRでのTCP/IP通信は可能でしょうか?
リファレンスにはEthernetクラスを用いたサンプルがありましたが,肝心のライブラリにはEthernetClientクラスやEthernetServerクラスがなく,コンパイルできませんでした.
Arduino UNOのEthernetシールドを用いる際のEthernet2.hも試してみましたが,コンパイルできませんでした.
ライブラリを探したところ,mbedライブラリの方にTCPSocketクラスを発見しました.
可能であれば,こちらを用いたサーバー及クライアントのサンプルプログラム,もしくはEthernetクラスを用いたサンプルプログラムがあれば教えていただきたいです.
よろしくお願いします.
がじぇるね岡宮です。
ご不便をおかけしてすみません。
今現在のGR-PEACH用のライブラリには、おっしゃる通り、Mbed OS 5のEtherneが実装されており、ArduinoのEthernetクラスはありません。
https://os.mbed.com/docs/mbed-os/v5.15/apis/ethernet.html
以下、上記サイトのサンプルを少しだけ変更して、arduino.ccのアスキーコードを取得するサンプルを試してみましたが、動作することを確認いたしました。
#include "EthernetInterface.h"EthernetInterface net;void setup() { // Bring up the ethernet interface printf("Ethernet socket example\n"); net.connect(); // Show the network address const char *ip = net.get_ip_address(); printf("IP address is: %s\n", ip ? ip : "No IP"); // Open a socket on the network interface, and create a TCP connection to mbed.org TCPSocket socket; socket.open(&net); socket.connect("arduino.cc", 80); // Send a simple http request char sbuffer[] = "GET /asciilogo.txt HTTP/1.1\r\nHost: arduino.cc\r\nConnection: close\r\n\r\n"; int scount = socket.send(sbuffer, sizeof sbuffer); printf("sent %d [%.*s]\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer); // Recieve a simple http response and print out the response line char rbuffer[1500]; int rcount = socket.recv(rbuffer, sizeof rbuffer); printf("recv %d [%.*s]\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer); printf("%s\n", rbuffer); // Close the socket to return its memory and bring down the network interface socket.close(); // Bring down the ethernet interface net.disconnect(); printf("Done\n");}void loop() { // put your main code here, to run repeatedly: }