44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#include "udp_logger.h"
|
|
|
|
UDPLogger::UDPLogger() {}
|
|
|
|
UDPLogger::UDPLogger(IPAddress interface_addr, IPAddress multicast_addr, int port, String name)
|
|
{
|
|
_interfaceAddr = interface_addr;
|
|
_multicastAddr = multicast_addr;
|
|
_name = name;
|
|
_port = port;
|
|
_udp.beginMulticast(_interfaceAddr, _multicastAddr, _port);
|
|
}
|
|
|
|
void UDPLogger::set_name(String name)
|
|
{
|
|
_name = name;
|
|
}
|
|
|
|
void UDPLogger::log_string(String message)
|
|
{
|
|
// wait 5 milliseconds if last send was less than 10 milliseconds before
|
|
if ((system_get_time() / 1000) < (_lastSend + 10))
|
|
{
|
|
delay(10);
|
|
}
|
|
message = _name + ": " + message;
|
|
#ifdef SERIAL_DEBUG
|
|
Serial.println(message);
|
|
delay(10);
|
|
#endif /* SERIAL_DEBUG */
|
|
_udp.beginPacketMulticast(_multicastAddr, _port, _interfaceAddr);
|
|
message.toCharArray(_packetBuffer, 100);
|
|
_udp.print(_packetBuffer);
|
|
_udp.endPacket();
|
|
_lastSend = (system_get_time() / 1000);
|
|
}
|
|
|
|
void UDPLogger::log_color_24bit(uint32_t color)
|
|
{
|
|
uint8_t result_red = color >> 16 & UINT8_MAX;
|
|
uint8_t result_green = color >> 8 & UINT8_MAX;
|
|
uint8_t result_blue = color & UINT8_MAX;
|
|
log_string(String(result_red) + ", " + String(result_green) + ", " + String(result_blue));
|
|
} |