57 lines
1.5 KiB
Java
57 lines
1.5 KiB
Java
package com.github.boukefalos.tm1638.helper;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.IOException;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import tm1638.Tm1638.Color;
|
|
import tm1638.Tm1638.Command;
|
|
import tm1638.Tm1638.Ping;
|
|
import tm1638.Tm1638.Server;
|
|
import tm1638.Tm1638.SetLed;
|
|
|
|
import com.github.boukefalos.tm1638.TM1638;
|
|
|
|
public class ServerHelper {
|
|
protected static Logger logger = LoggerFactory.getLogger(ServerHelper.class);
|
|
|
|
public static void receive(TM1638 tm1638, byte[] buffer) {
|
|
ByteArrayInputStream input = new ByteArrayInputStream(buffer);
|
|
System.out.println("receive() " + new String(buffer).trim());
|
|
try {
|
|
//Command command = Command.parseFrom(buffer);
|
|
Command command = Command.parseDelimitedFrom(input);
|
|
logger.debug("Command type = " + command.getType().name());
|
|
switch (command.getType()) {
|
|
case SERVER:
|
|
Server server = command.getServer();
|
|
// setup new udp server connection, multicast?
|
|
break;
|
|
case PING:
|
|
Ping ping = command.getPing();
|
|
tm1638.ping(ping.getId());
|
|
break;
|
|
case SET_LED:
|
|
SetLed setLed = command.getSetLed();
|
|
logger.debug("Color = " + setLed.getColor().name());
|
|
switch (setLed.getColor()) {
|
|
case RED:
|
|
tm1638.setLed(Color.RED, 1);
|
|
case GREEN:
|
|
tm1638.setLed(Color.GREEN, 1);
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
} catch (IOException e) {
|
|
logger.error("Failed to parse input");
|
|
return;
|
|
}
|
|
}
|
|
}
|