Newer
Older
PureATN_M / src / main / java / cit / PureATN / DPenReceiver.java
@motoki miura motoki miura on 2 Jun 2022 2 KB penhash
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(pen, 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(pen, 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");
	}
}