EthernetUDP.parsePacket関数
parsePacket関数は、UDP.read関数でバッファを読み取る前に呼び出す必要があります。
※1:EthernetUDPのクラスは、UDPメッセージの送受信が出来ます。
例えば「Arduino Leonardo Ethernet」をPCにUSB接続し、またネットワークに接続されたLANケーブル接続して、ArduinoIDEの「ツール」→「ボード」→「Arduino Ethernet」を選択した状態にします。
Udp.parsePacket関数で利用可能なデータがある場合は、パケットサイズを読み取り「"Received packet of size "」と共に結果をシリアル出力します。
#include <SPI.h> // 0018より後のArduinoバージョンに必要
#include <Ethernet.h>
#include <EthernetUdp.h> // UDPライブラリ: bjoern@cs.stanford.edu 12/30/2008
// 下のコントローラのMACアドレスとIPアドレスを入力します。
// IPアドレスはローカルネットワークに依存します。
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);
unsigned int localPort = 8888; // 待機するローカルポート
EthernetUDP Udp; //UDP経由でパケットを送受信できるようにするEthernetUDPインスタンス
void setup() {
Ethernet.begin(mac,ip); // イーサネットとUDPを開始します。
Udp.begin(localPort);
Serial.begin(9600);}
void loop() {
// 利用可能なデータがある場合は、パケットを読み取ります。
int packetSize = Udp.parsePacket();
if(packetSize){
Serial.print("Received packet of size ");
Serial.println(packetSize);}
delay(10);}
#include <Ethernet.h>
#include <EthernetUdp.h> // UDPライブラリ: bjoern@cs.stanford.edu 12/30/2008
// 下のコントローラのMACアドレスとIPアドレスを入力します。
// IPアドレスはローカルネットワークに依存します。
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);
unsigned int localPort = 8888; // 待機するローカルポート
EthernetUDP Udp; //UDP経由でパケットを送受信できるようにするEthernetUDPインスタンス
void setup() {
Ethernet.begin(mac,ip); // イーサネットとUDPを開始します。
Udp.begin(localPort);
Serial.begin(9600);}
void loop() {
// 利用可能なデータがある場合は、パケットを読み取ります。
int packetSize = Udp.parsePacket();
if(packetSize){
Serial.print("Received packet of size ");
Serial.println(packetSize);}
delay(10);}
図2:プログラムの内容