NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(EthernetUDP.parsePacket関数の使い方)

EthernetUDP.parsePacket関数
 EthernetUDPクラス※1UDP.parsePacket関数は、UDPパケットの存在をチェックしサイズを返します。
 parsePacket関数は、UDP.read関数でバッファを読み取る前に呼び出す必要があります。
Arduino Leonardo EthernetArduino Leonardo(ATmega32u4搭載)とArduinoイーサネットシールド2をひとつに合わせたArduinoボードです。MACアドレスを書いたシールがボードに貼られています。このボードで開発をするためにはArduino IDE 1.7.2以降が必要です。(2015.04.30現在)PoE (Power over Ethernet)モジュールを追加すると、LANケーブル1本で電源供給と通信が可能です。IEEE802.3af の規格に準拠した環境下で動作します。
図1:Arduino Leonardo Ethernet
以下補足です

※1:EthernetUDPのクラスは、UDPメッセージの送受信が出来ます。


 Arduino IDEで使用するUDP.parsePacket関数の使い方は以下の通りです。
  例えば「Arduino Leonardo Ethernet」をPCにUSB接続し、またネットワークに接続されたLANケーブル接続して、ArduinoIDEの「ツール」→「ボード」→「Arduino Ethernet」を選択した状態にします。
 最初にEthernetUDP関数でUDP経由でパケットを送受信できるようにするEthernetUDPインスタンスを作成します。
 Ethernet.begin関数とUdp.begin関数でイーサネットUDPを開始します。
 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);}
イメージ 1
図2:プログラムの内容
EthernetUDP.parsePacket関数の構文
 UDP.parsePacket()

EthernetUDP.parsePacket関数のパラメータ
 特に無し。

EthernetUDP.parsePacket関数の戻り値
 受信したUDPパケットのサイズ。(int)

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、スイッチサイエンスウェブショップ が販売、発送します。 この出品商品にはコンビニ・ATM・ネットバンキング・電子マネー払いが利用できます。