package com.hxzkoa.udp;
|
import java.util.Vector;
|
|
import com.hxzkoa.json.tb_system;
|
import com.hxzkoa.util.Config;
|
import com.hxzkoa.util.HttpUtil;
|
|
import net.sf.json.JSONObject;
|
|
|
public class Dell_Ceju {
|
|
static Vector<Tag_Ceju_hex> tagcjvec=new Vector<Tag_Ceju_hex>();
|
|
//跨度
|
static String postUrl = Config.getPostUrl();
|
static String url_setting_bw = postUrl + "getSysSetting.do";
|
static JSONObject re_tb_setting = HttpUtil.doPost(url_setting_bw, "", Config.getCharset());
|
static tb_system re_setting = (tb_system) JSONObject.toBean(JSONObject.fromObject(re_tb_setting.get("result").toString()),
|
tb_system.class);
|
static int kuadu=Integer.parseInt(re_setting.getRssid());
|
|
|
/**获取标签测距的集合*/
|
public static Vector<Tag_Ceju_hex> getTagcjvec() {
|
return tagcjvec;
|
}
|
|
|
|
|
/**找到某个标签的Tag_Ceju_hex对象*/
|
public static Tag_Ceju_hex get_cjhex(String tagid) {
|
Tag_Ceju_hex cejuhex=null;
|
int size=tagcjvec.size();
|
for(int i=0;i<size;i++) {
|
String tagid1=tagcjvec.get(i).getTagid();
|
if(tagid1.equals(tagid)) {
|
cejuhex=tagcjvec.get(i);
|
}
|
}
|
return cejuhex;
|
}
|
|
|
/**获取某个包序的测距集合*/
|
public static Vector<Ceju> get_moubaoxu_cjve(String tagid,String baoxu){
|
Vector<Ceju> cjvec=new Vector<Ceju>();
|
if(get_cjhex(tagid) !=null) {
|
int size=get_cjhex(tagid) .getCeju().size();
|
for(int i=0;i<size;i++) {
|
Ceju cj=get_cjhex(tagid) .getCeju().get(i);
|
String baoxu1=cj.getCe_baoxu();
|
if(baoxu.equals(baoxu1)) {
|
cjvec.add(cj);
|
}
|
}
|
|
}
|
return cjvec;
|
}
|
|
|
/**删除某个标签的某个包序测距对象*/
|
public static void delete_cj(String tagid,String baoxu) {
|
//获得某个标签的测距集合
|
int size=get_cjhex(tagid).getCeju().size();
|
//找到需要删除的测距对象
|
for(int i=size-1;i>=0;i--) {
|
String baoxu1=get_cjhex(tagid).getCeju().get(i).getCe_baoxu();
|
if(baoxu1.equals(baoxu)) {
|
get_cjhex(tagid).getCeju().removeElement(get_cjhex(tagid).getCeju().get(i));
|
}
|
}
|
}
|
|
/**清空标签某个测距集合*/
|
public static void deleteall_cj(String tagid) {
|
if( get_cjhex(tagid)!=null) {
|
get_cjhex(tagid).getCeju().removeAllElements();
|
}
|
}
|
|
|
/**获取一个测距数据集合*/
|
public static Vector<Ceju> get_cejuvc(Ceju ceju) {
|
Vector<Ceju> cejuvec=new Vector<Ceju>();
|
cejuvec.add(ceju);
|
return cejuvec;
|
}
|
|
|
|
|
// public static void dell_ceju(String ip,String tagid,Ceju cj,int baoxu,String anchorid) {
|
// StringBuffer data=new StringBuffer();
|
// data.append("当前标签:"+tagid+" 跨度:"+kuadu+"--->当前包序:"+baoxu+"\n");
|
//
|
// //收到的包序减去跨度等于将要下一次将要处理的包序
|
// int will_chuli=baoxu-kuadu;
|
// if(will_chuli<0) {
|
// will_chuli=will_chuli+256;
|
// }
|
//
|
// data.append("将要处理的包序will_chuli: "+will_chuli+"\n");
|
//
|
//
|
// //如果某个标签的测距对象不为空
|
// if( get_cjhex(tagid)!=null) {
|
// //获取该标签的上一包包序
|
// int last_baoxu=get_cjhex(tagid).getLast_baoxu();
|
//
|
// //获取该标签初始的包序
|
// int fistbaoxu=get_cjhex(tagid).getFirst_baoxu();
|
//
|
//
|
// //获取该标签已经处理的包序
|
// int already_chuli=get_cjhex(tagid).getDell_baoxu();
|
//
|
// data.append("上一包包序: "+last_baoxu+" 初始包序:"+fistbaoxu+"\n");
|
//
|
// data.append("已经处理的包序already_chuli: "+already_chuli+"\n");
|
//
|
// //将要处理的包序减去已经处理的包序
|
// int p=will_chuli-already_chuli;
|
//
|
// //如果将要处理的包序大于需要处理的包序
|
// if(p==1||p==(-255)) {
|
//
|
// //获取需要处理的包序集合
|
// Vector<Ceju> cejuvc= get_moubaoxu_cjve(tagid,String.valueOf(will_chuli));
|
//
|
// int size=cejuvc.size();
|
//
|
// data.append(p+"======="+size+"包数据给JNA处理============================"+will_chuli+"\n");
|
//
|
// //将数据给到JNA处理
|
// if(size !=0) {
|
//
|
// DataToJnaDell.do_dell_JAN(cejuvc, size,String.valueOf(will_chuli));
|
// //删除掉集合中已经处理的包序
|
// delete_cj(tagid,String.valueOf(will_chuli));
|
// }
|
//
|
// //修改已经处理的包序
|
// get_cjhex(tagid).setDell_baoxu(will_chuli);
|
//
|
// }else if(p>1 && p<200 ) {//丢包
|
//
|
// for(int i=0;i<p;i++) {
|
//
|
// already_chuli++;
|
//
|
// //获取需要处理的包序集合
|
// Vector<Ceju> cejuvc= get_moubaoxu_cjve(tagid,String.valueOf(already_chuli));
|
//
|
// int size=cejuvc.size();
|
// data.append(p+"======="+size+"包数据给JNA处理============================"+already_chuli+"\n");
|
// //将数据给到JNA处理
|
// if(size !=0) {
|
// DataToJnaDell.do_dell_JAN(cejuvc, size,String.valueOf(already_chuli));
|
// //删除掉集合中已经处理的包序
|
// delete_cj(tagid,String.valueOf(already_chuli));
|
// }
|
//
|
//
|
// //修改已经处理的包序
|
// get_cjhex(tagid).setDell_baoxu(already_chuli);
|
// }
|
//
|
//
|
//
|
// }else if(p<(-30) ){
|
//
|
// if(already_chuli !=255) {
|
// for(int i=already_chuli;i<=255;i++) {
|
//
|
// //获取需要处理的包序集合
|
// Vector<Ceju> cejuvc= get_moubaoxu_cjve(tagid,String.valueOf(i));
|
//
|
// int size=cejuvc.size();
|
//
|
// data.append(p+"======="+size+"包数据给JNA处理============================"+i+"\n");
|
// //将数据给到JNA处理
|
// if(size !=0) {
|
// DataToJnaDell.do_dell_JAN(cejuvc, size,String.valueOf(i));
|
//
|
// //删除掉集合中已经处理的包序
|
// delete_cj(tagid,String.valueOf(i));
|
// }
|
// }
|
//
|
//
|
//
|
//
|
// for(int j=0;j<=will_chuli;j++) {
|
//
|
// //获取需要处理的包序集合
|
// Vector<Ceju> cejuvc= get_moubaoxu_cjve(tagid,String.valueOf(j));
|
//
|
// int size=cejuvc.size();
|
//
|
// data.append(p+"======="+size+"包数据给JNA处理============================"+j+"\n");
|
// //将数据给到JNA处理
|
// if(size !=0) {
|
// DataToJnaDell.do_dell_JAN(cejuvc, size,String.valueOf(j));
|
//
|
// //删除掉集合中已经处理的包序
|
// delete_cj(tagid,String.valueOf(j));
|
// }
|
//
|
//
|
// }
|
//
|
// //修改已经处理的包序
|
// get_cjhex(tagid).setDell_baoxu(will_chuli);
|
// }
|
// }
|
//
|
// get_cjhex(tagid).getCeju().add(cj);
|
//
|
//
|
// }else {
|
// Tag_Ceju_hex tcjh=new Tag_Ceju_hex();
|
// tcjh.setTagid(tagid);
|
// tcjh.setCeju(get_cejuvc(cj));
|
// tcjh.setFirst_baoxu(baoxu);
|
// tcjh.setDell_baoxu(will_chuli);
|
// tcjh.setLast_baoxu(baoxu);
|
// tagcjvec.add(tcjh);
|
// }
|
//
|
//
|
//
|
//
|
// data=new StringBuffer("");
|
//
|
// }
|
|
}
|