package com.hxzkoa.udp;
|
|
import java.io.IOException;
|
import java.lang.Thread.State;
|
import java.net.DatagramPacket;
|
import java.net.DatagramSocket;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Set;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import com.hxzkoa.json.tb_system;
|
import com.hxzkoa.json.tb_tag;
|
import com.hxzkoa.services.SysSettingService;
|
import com.hxzkoa.util.Config;
|
import com.hxzkoa.util.HttpUtil;
|
import com.hxzkoa.util.ModifyConfig;
|
|
import net.sf.json.JSONObject;
|
|
/** 该类用于接收UDP报文 */
|
public class Baowen_Receive implements Runnable {
|
static DatagramSocket socket;
|
DatagramPacket packet;
|
int times = 5;
|
Thread t = new Thread(this);
|
public static List<String> BaowenMessage = new ArrayList<String>();
|
|
public static void insert(String message) {
|
BaowenMessage.add(message);
|
}
|
|
/**
|
* 初始化对象
|
*
|
* @throws NumberFormatException
|
* @throws IOException
|
*/
|
// public Baowen_Receive() throws NumberFormatException, IOException {
|
//// socket = new DatagramSocket(Integer.parseInt(udpPort));
|
//// byte[] data = new byte[40960]; // 创建byte数组
|
//// packet = new DatagramPacket(data, data.length);
|
//
|
// }
|
|
/** 启动线程的方法 */
|
public void startThread() {
|
t.start();
|
|
}
|
|
/** 停止线程的方法 */
|
public void stopThread() {
|
try {
|
Thread.sleep(2000);
|
t.interrupt();
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}
|
|
// /** 查看线程状态的方法 */
|
public State getState() {
|
State state = t.getState();
|
return state;
|
}
|
|
public void run() {
|
while (true) {
|
if(BaowenMessage.size()>0){
|
try {
|
String message = BaowenMessage.get(0);
|
//报文处理
|
String BaowenPath = Config.getBaowenConfig();
|
String baowenStatus = ModifyConfig.readData(BaowenPath, "baowenSwitch");
|
if(message!=null){
|
// 处理以display开头的数据
|
if (message.startsWith("display")) {
|
//定位数据转发
|
Transfer_Receive.insert(message);
|
Dell_display.display(message);
|
} else if (message.startsWith("anchor_info")) {
|
Anchor_info.anchor_info(message);
|
} else if (message.startsWith("anchor_near")) {
|
Anchor_near.anchor_near(message);
|
} else if (message.startsWith("anchor_tongbu")) {
|
Anchor_tongbu.anchor_tongbu(message);
|
} else if (message.startsWith("tag_info")) {
|
Tag_info.tag_info(message);
|
} else if (message.startsWith("hxzk_heart")) {
|
Hxzk_heart.hxzk_heart(message);
|
} else if (message.startsWith("get_anchor_info")) {
|
Anchor_info.get_anchor_info(message);
|
} else if (message.startsWith("get_anchor_nearinfo")) {
|
Anchor_near.get_anchor_nearinfo(message);
|
} else if(message.startsWith("get_taginfo")){
|
Tag_info.get_tag_info(message);
|
} else if (message.startsWith("gas_colector")) {
|
gasCollector.collector(message);
|
} else if (message.startsWith("gas_sensor")) {
|
gasSensor.sensor(message);
|
} else if( message.startsWith("$GNGGA")) {
|
new Dell_GNGGA().dell_gps(message);
|
}
|
BaowenMessage.remove(0);
|
Thread.sleep(0);
|
} else {
|
Thread.sleep(300);
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace(); // 输出异常信息
|
}
|
}
|
|
}
|
}
|
|
public static DatagramSocket getSocket() {
|
return socket;
|
}
|
|
public static byte[] subBytes(byte[] src, int begin, int count) {
|
byte[] bs = new byte[count];
|
System.arraycopy(src, begin, bs, 0, count);
|
return bs;
|
}
|
|
public static void main(String[] args) {
|
// try {
|
// Udp_Receive receive = new Udp_Receive("8081");
|
// receive.run();
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
// String result = "{\"result\":{\"addtime\":\"2021-02-24 09:41:06\",\"dong_status\":\"\",\"gaodu\":\"155\",\"gongfang\":\"\",\"id\":35,\"imu\":\"\",\"pinglv\":\"2\",\"power\":\"100\",\"sleep_satus\":\"\",\"sleep_time\":\"\",\"state\":\"未绑定\",\"status\":\"status\",\"sudu\":\"无\",\"tag_id\":\"1013\",\"version\":\"V2.21\"}}";
|
// // String result = "{\"result\":\"1103\"}";
|
// JSONObject re_tag_bw = JSONObject.fromObject(result);
|
// System.out.println("----------response:" + re_tag_bw.toString());
|
// tb_tag re_tag = (tb_tag) JSONObject.toBean(JSONObject.fromObject(re_tag_bw.get("result").toString()),
|
// tb_tag.class);
|
//
|
// System.out.println(re_tag.toString());
|
// System.out.println(re_tag.getTag_id());
|
// JSONObject json = JSONObject.fromObject(result);
|
// System.out.println(json.toString());
|
}
|
}
|