IDE for GRにおけるTCP/IP通信

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:

    }