package cit.PureATN;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;
public class DPenReceiver implements Runnable {
SimpleDateFormat sdf = new SimpleDateFormat("-- MM/dd hh:mm --");
public static SimpleDateFormat sdfdate = new SimpleDateFormat("yyyy-MM-dd");
public static SimpleDateFormat sdftime = new SimpleDateFormat("HH:mm:ss");
Thread serverThread;
Note note; //筆記を表示する画面
public DPenReceiver(Note _note){
note = _note;
initPenHash();
serverThread = new Thread(this);
serverThread.start();
}
@SuppressWarnings("resource")
public void run() {
DatagramSocket datagramSocket = null;
try {
datagramSocket = new DatagramSocket(19876);
} catch (SocketException e) {
e.printStackTrace();
}
byte[] data = new byte[200];
while(true){
DatagramPacket datagramPacket = new DatagramPacket(data, 200);
try {
datagramSocket.receive(datagramPacket);
} catch (IOException e) {
e.printStackTrace();
}
data = datagramPacket.getData();
int length = datagramPacket.getLength();
String message = new String(data,0,length);
// System.out.println(message);
receive(message); // この下に定義があります
}
}
public void receive(String mes){
// String dtime = sdf.format(new Date());
// System.out.println(dtime+" "+mes);
String[] ints = mes.split(" ");
if (ints[0].equals("press")){
String pen = ints[2];
String penid = convertPenSerial2PenID.get(pen);
if (penid != null) pen = penid;
PenUser.press(penid, Integer.parseInt(ints[1])); // 1 press, 0 up
} else {
int x1 = Integer.parseInt(ints[2]);
int y1 = Integer.parseInt(ints[3]);
// TODO: check x1y1 or x2y2 for latest point in .NET!
// int x2 = Integer.parseInt(ints[2]);
// int y2 = Integer.parseInt(ints[3]);
String pen = ints[4];
String penid = convertPenSerial2PenID.get(pen);
if (penid != null) pen = penid;
// send(x1,y1,x2,y2,pen,1);
PenUser.add(penid, x1, y1);
}
}
Hashtable<String,String> convertPenSerial2PenID;
public void initPenHash(){
convertPenSerial2PenID = new Hashtable<String,String>();
convertPenSerial2PenID.put("AR6-AAP-ETK-C4", "pen01");
convertPenSerial2PenID.put("AR6-AAP-DYT-GJ", "pen02");
convertPenSerial2PenID.put("AR6-AAP-EH3-3S", "pen03");
convertPenSerial2PenID.put("AR6-AAP-D2D-H5", "pen04");
convertPenSerial2PenID.put("AR6-AAP-BPY-6D", "pen05");
convertPenSerial2PenID.put("AR6-AAP-EG8-2Y", "pen06");
convertPenSerial2PenID.put("AR6-AAP-EQ4-AK", "pen07");
convertPenSerial2PenID.put("AR6-AAP-ED3-XS", "pen08");
convertPenSerial2PenID.put("AR6-AAP-BPZ-6E", "pen09");
convertPenSerial2PenID.put("AR6-AAP-DYP-GE", "pen10");
}
}