summaryrefslogtreecommitdiffstats
path: root/src/device/udp.ino
blob: 3074b6500444eb630edbe72da885cbb0d9ba9df3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "udp.h"
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

static char udppacketbuffer[32] = {0};
static char *udppacketcursor = NULL;

void udp_init_packet(IPAddress ip, const int port)
{
	Udp.beginPacket(ip, port);
	memset(udppacketbuffer, 0, sizeof(udppacketbuffer));
	udppacketcursor = udppacketbuffer;
}

void udp_push(const void * const data, const size_t size)
{
	memcpy(udppacketcursor, data, size);
	udppacketcursor += size;
}

int udp_flush(void)
{
	Udp.write((const uint8_t *) udppacketbuffer, udppacketcursor - udppacketbuffer);
	return Udp.endPacket();
}