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]), true); // 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"); } }