Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Библиотеки/Ethernet/Класс EthernetUDP/read()

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.

Библиотека Ethernet
(Обсуждение Arduino:Библиотеки/Ethernet#disqus_thread)

Функции:

Функция read()[1]

Считывает UDP-данные из указанного буфера. Если никаких аргументов не задано, возвращает следующий символ, находящийся в буфере.

Эту функцию можно вызывать только после EthernetUDP.parsePacket(). В противном случае она работать не будет.

Синтаксис

EthernetUDP.read()
EthernetUDP.read(packetBuffer, MaxSize)

Параметры

packetBuffer – буфер, содержащий входящие пакеты. Тип данных – char
MaxSize – максимальный размер буфера. Тип данных – int

Что возвращает

Символы, находящиеся в буфере. Тип данных – char.

Пример

  1. #include <SPI.h>        
  2. #include <Ethernet.h>
  3. #include <EthernetUdp.h>
  4.  
  5. // Ниже введите MAC-адрес и IP-адрес для своего контроллера.
  6. // IP-адрес будет зависеть от локальной сети:
  7. byte mac[] = {  
  8.   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
  9. IPAddress ip(192, 168, 1, 177);
  10.  
  11. unsigned int localPort = 8888;      // локальный порт, который нужно прослушивать
  12.  
  13. // экземпляр EthernetUDP, необходимый для получения и передачи пакетов через UDP:
  14. EthernetUDP Udp;
  15.  
  16. char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; // буфер для хранения входящих пакетов
  17.  
  18. void setup() {
  19.   // запускаем Ethernet и UDP:
  20.   Ethernet.begin(mac,ip);
  21.   Udp.begin(localPort);
  22.  
  23. }
  24.  
  25. void loop() {
  26.  
  27.   int packetSize = Udp.parsePacket();
  28.   if(packetSize)
  29.   {
  30.     Serial.print("Received packet of size "); // "Размер присланного пакета "
  31.     Serial.println(packetSize);
  32.     Serial.print("From "); // "От "
  33.     IPAddress remote = Udp.remoteIP();
  34.     for (int i =0; i < 4; i++)
  35.     {
  36.       Serial.print(remote[i], DEC);
  37.       if (i < 3)
  38.       {
  39.         Serial.print(".");
  40.       }
  41.     }
  42.     Serial.print(", port "); // ", порт "
  43.     Serial.println(Udp.remotePort());
  44.  
  45.     // считываем пакет в packetBufffer:
  46.     Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
  47.     Serial.println("Contents:"); // "Содержимое:"
  48.     Serial.println(packetBuffer);
  49. }
  50. }

См.также

Внешние ссылки

  1. Arduino - UDP.read()