package JNADell;
|
import com.sun.jna.Library;
|
import com.sun.jna.Native;
|
import BaoWen.DebugStarMessage;
|
import Frame.TcpIpManage;
|
public class DellJAN {
|
|
static boolean start=true;
|
static int youxiao=0;
|
static int suanfaversion=0;
|
static boolean biaozhi=true;
|
|
|
|
|
/**
|
* ¶¯Ì¬Á´½Ó¿â±àÒëʱѡÔñµÄƽ̨¡£Èç¹ûͨ¹ýx86ƽ̨±àÒ룬ÄÇôֻÄÜʹÓÃ32λjdk»·¾³¼ÓÔØ£¬Èç¹ûҪʹÓÃ64λjdk,±ØÐëʹÓÃx64ƽ̨±àÒë¡£
|
*
|
* ½Ó¿ÚÄÚ²¿ÐèÒªÒ»¸ö¹«¹²¾²Ì¬³£Á¿£ºINSTANCE£¬Í¨¹ýÕâ¸ö³£Á¿£¬¾Í¿ÉÒÔ»ñµÃÕâ¸ö½Ó¿ÚµÄʵÀý£¬´Ó¶øÊ¹Óýӿڵķ½·¨£¬Ò²¾ÍÊǵ÷ÓÃÍⲿdll/soµÄº¯Êý¡£
|
* ¸Ã³£Á¿Í¨¹ýNative.loadLibrary()Õâ¸öAPIº¯Êý»ñµÃ£¬¸Ãº¯ÊýÓÐ2¸ö²ÎÊý£º
|
*
|
* µÚÒ»¸ö²ÎÊýÊǶ¯Ì¬Á´½Ó¿âdll/soµÄÃû³Æ£¬µ«²»´ø.dll»ò.soÕâÑùµÄºó׺£¬Õâ·ûºÏJNIµÄ¹æ·¶£¬ÒòΪ´øÁ˺ó׺Ãû¾Í²»¿ÉÒÔ¿ç²Ù×÷ϵͳƽ̨ÁË¡£
|
* ËÑË÷¶¯Ì¬Á´½Ó¿â·¾¶µÄ˳ÐòÊÇ£ºÏÈ´Óµ±Ç°ÀàµÄµ±Ç°Îļþ¼ÐÕÒ£¬Èç¹ûûÓÐÕÒµ½£¬ÔÙÔÚ¹¤³Ìµ±Ç°Îļþ¼ÐÏÂÃæÕÒwin32/win64Îļþ¼Ð£¬
|
* ÕÒµ½ºóËÑË÷¶ÔÓ¦µÄdllÎļþ£¬Èç¹û ÕÒ²»µ½ÔÙµ½WINDOWSÏÂÃæÈ¥ËÑË÷£¬ÔÙÕÒ²»µ½¾Í»áÅ×Òì³£ÁË¡£
|
* µÚ¶þ¸ö²ÎÊýÊDZ¾½Ó¿ÚµÄClassÀàÐÍ¡£JNAͨ¹ýÕâ¸öClassÀàÐÍ£¬¸ù¾ÝÖ¸¶¨µÄ.dll/.soÎļþ£¬¶¯Ì¬´´½¨½Ó¿ÚµÄʵÀý¡£
|
* ¸ÃʵÀýÓÉJNAͨ¹ý·´Éä×Ô¶¯Éú³É¡£
|
*
|
* ½Ó¿ÚÖÐÖ»ÐèÒª¶¨ÒåÄãÒªÓõ½µÄº¯Êý»òÕß¹«¹²±äÁ¿£¬²»ÐèÒªµÄ¿ÉÒÔ²»¶¨Ò壬עÒâ²ÎÊýºÍ·µ»ØÖµµÄÀàÐÍ£¬Ó¦¸ÃºÍÁ´½Ó¿âÖеĺ¯ÊýÀàÐͱ£³ÖÒ»Ö¡£
|
* ¶¨ÒåºÃ½Ó¿Úºó£¬¾Í¿ÉÒÔʹÓýӿÚÖеĺ¯Êý¼´ÏàÓ¦dll/soÖеĺ¯ÊýÁË
|
*/
|
|
public interface DLibrary extends Library {
|
//´Ë´¦ÎÒµÄjdk°æ±¾Îª64λ,¹Ê¼ÓÔØ64λµÄDll
|
DLibrary INSTANCE = (DLibrary) Native.loadLibrary("JNA1",DLibrary.class);
|
//JNA.dll Öж¨ÒåµÄº¯Êý
|
|
/**³õʼ»¯
|
* @param anchornum ϵͳ»ùÕ¾×ÜÊý*/
|
public int SuanFa_Init(int anchornum);
|
|
|
/**¸üлùÕ¾µÄÆøÑ¹Öµ*/
|
public int anchor_baro_update(int anchorid,int anchorqiya);
|
|
|
/**Ìí¼Ó»ùÕ¾*/
|
public int anchor_register(
|
int an_id,
|
int an_px,
|
int an_py,
|
int an_pz,
|
int floor,
|
int config_num,//»ùÕ¾ÔÚ¼¸¸ö×éÄÚ
|
int[] group, //»ùÕ¾ËùÊôµÄ×é
|
int[] range, //»ùÕ¾µÄÁ¿³Ì
|
int[] dimension,//»ùÕ¾µÄά¶È
|
int nearby_anchor_number, // ÁÙ½ü»ùÕ¾idÊýÄ¿
|
int[] nearby_anchor_id_list
|
); // ÁÙ½ü»ùÕ¾idÊý×é
|
|
|
/**Ìí¼ÓÇøÓò*/
|
public int add_area(
|
int id, //ÇøÓò±àºÅ
|
int floor,//»ùÕ¾µÄ²ã
|
int group, //×éid
|
int num, //¶¥µãÊýÄ¿
|
int[] px, //x¶¥µã¼¯ºÏ
|
int[] py, //y¶¥µã¼¯ºÏ
|
int[] entrance, // ¿ÉÈë
|
int[] exit
|
); // ¿É³ö
|
|
/**ɾ³ýÇøÓò*/
|
public int delete_area( // Èç¹û²»³É¹¦·µ»Ø-1
|
int id); // Ҫɾ³ýµÄ»ùÕ¾id
|
|
/** ·µ»ØÇøÓòÄÚ»ùÕ¾*/
|
public int get_anchor_in_area( // ·µ»ØÇøÓòÄÚ»ùÕ¾ÊýÄ¿
|
int area_id, // ÊäÈëÇøÓòid
|
int[] an_id); // ·µ»Ø»ùÕ¾id
|
|
/**»ùÕ¾µÄ²ãÐÅÏ¢*/
|
public int add_floor(
|
int id, // ²ãid
|
int bottom, // ±¾²ãµ×²¿¸ß¶È
|
int top); // ±¾²ã¶¥²¿¸ß¶È
|
|
|
|
/**·µ»ØÊ±¼äƬº¯Êý
|
* @param timestampʱ¼ä´Á
|
* @param ±êÇ©id
|
* @param ±êÇ©µÄƵÂÊ*/
|
public int slotted_aloha(int timestamp, int tagid, int tag_freq);
|
|
|
/**¼ä¸ôÒ»¸ö·ÖÅäÒ»¸öʱ¼äƬ*/
|
public int slotted_aloha_gap1(int stamp, int tagid, int taghz);
|
|
/**[0,199]ʱ¼äƬ»ìºÏ×î´ó»¯Ê¹ÓÃ, ÊÊÓÃÓÚ¶àÖÖÆµÂÊ»ìÓÃ, ½öÖ§³Ö[1,2,5,10,20]*/
|
public int slotted_aloha_mix(int stamp, int tagid, int taghz);
|
|
/**ɾ³ýʱ¼äƬ½Ó¿Úº¯Êý£¬·µ»ØÖµ0Õý³£³É¹¦É¾³ý£¬ÆäËûÒì³£¡£
|
* @param ²ÎÊýΪtagid(±êÇ©id)ºÍ
|
* @param tag_freq(±êǩƵÂÊ)*/
|
public int delete_tag_from_slotted_aloha(int tagid, int tag_freq);
|
|
/**
|
*
|
* @param int counter, // °üÐò
|
* @param int stamp, // ʱ¼ä´Á
|
* @param int tagid, // ±êÇ©id
|
* @param int tagpz, // ±êÇ©¸ß¶È
|
* @param int taghz, // ±êǩƵÂÊ
|
* @param int speed, // ±êÇ©×î´óËÙ¶È
|
* @param int nmove, // ±êÇ©¾²Ö¹×´Ì¬flag
|
* @param int tbaro, // ÆøÑ¹¸ß¶È, ÔÀ´µÄ¸ß¶ÈÐÅÏ¢Ïȱ£Áô²»¶¯
|
* @param int annum, // »ùÕ¾ÊýÄ¿
|
* @param int[] an_id, // »ùÕ¾id, Óëannum¶ÔÓ¦
|
* @param int[] andis, // ²â¾à, Óëannum¶ÔÓ¦
|
* @param int[] power, // ÐźÅÇ¿¶È, Óëannum¶ÔÓ¦
|
* @param int[] powerd, // ÐźÅÇ¿¶È²î, Óëannum¶ÔÓ¦
|
* @param int[] tag_pos_out // 4ά±äÁ¿Êä³ö, x,y,z,floor*/
|
|
public int get_position(
|
int counter, // °üÐò
|
int stamp, // ʱ¼ä´Á
|
int tagid, // ±êÇ©id
|
int tagpz, // ±êÇ©¸ß¶È
|
int taghz, // ±êǩƵÂÊ
|
int speed, // ±êÇ©×î´óËÙ¶È
|
int nmove, // ±êÇ©¾²Ö¹×´Ì¬flag
|
int tbaro, // ÆøÑ¹¸ß¶È, ÔÀ´µÄ¸ß¶ÈÐÅÏ¢Ïȱ£Áô²»¶¯
|
int annum, // »ùÕ¾ÊýÄ¿
|
int[] an_id, // »ùÕ¾id, Óëannum¶ÔÓ¦
|
int[] andis, // ²â¾à, Óëannum¶ÔÓ¦
|
int[] power, // ÐźÅÇ¿¶È, Óëannum¶ÔÓ¦
|
int[] powerd, // ÐźÅÇ¿¶È²î, Óëannum¶ÔÓ¦
|
int[] tag_pos_out // 4ά±äÁ¿Êä³ö, x,y,z,floor
|
);
|
|
//»ñȡƽ»¬µÄÂ˲¨Öµ
|
public int GetSmoothPosition(int tagid, int time_s, int[] pout);
|
|
// ÉèÖûùÕ¾×î´ó²â¾à·¶Î§, ³¬¹ýÔòÈÏΪ²â¾àʧ°Ü
|
public int SetParaAnchorDismax(int dis);
|
|
// ÉèÖÃÒ»½×µÍͨÂ˲¨²ÎÊý(0, 10],0²»¸üÐÂ, 10²»Â˲¨
|
public int SetParaFilter1dcurr(int curr);
|
|
// ÊÇ·ñ¿ªÆôλÖÃËæ¼Ó¼Æ¾²Ö¹¶ø·¶Î§²¨¶¯, 1¿ªÆô
|
public int SetParaFakePosEnable(int en);
|
|
// Ëæ¼Ó¼Æ²¨¶¯·¶Î§
|
public int SetParaFakePosRange(int range);
|
|
// Ò»¶þά½áºÏ, һά¿í¶ÈÓ°Ï췶Χ
|
public int SetParaSolver1dwidth(int width);
|
|
// ±êÇ©¸ú»ùÕ¾¼Ð½ÇСÓÚÕâ¸ö¼Ð½Ç²»½âËã, cos0¡ã¶ÔÓ¦1, ËùÓж¼½âËã
|
public int SetParaSolver2dcosthre(int cosa);
|
|
// ¶þάÁ½»ùÕ¾Ö®¼ä×îС°²×°¾àÀë
|
public int SetParaSolver2danchordismin(int dis);
|
|
// ÊÇ·ñ¿ªÆôlogÊä³ö
|
public int SetParaLogEnable(int en);
|
|
// Èç¹ûÊÇ֮ǰ¼¸¸ö°ü, ²»¸üÐÂ(°ü»ØËÝ)
|
public int SetParaBacktrackingNum(int num);
|
|
// ÊÇ·ñÖ»ÓÐÁÙ½ü»ùÕ¾²ÅÒ»Æð½âÎö, en=1ÊÇ=0·ñ
|
public int SetParaSolveOnlyNeighbor(int en);
|
|
// ʱ¼äƬ·ÖÅ䷽ʽ0=GAP1, 1=MIX
|
public int SetParaSlotMode(int mode);
|
|
// ½á¹ûÂ˲¨·½Ê½0=Ò»½×µÍͨ, 1=»¬¶¯Æ½¾ù
|
public int SetParaFilterType(int filter);
|
|
|
/**idÏàͬµ«ÊDz㲻ͬµÄ×éÁ¬½Ó³Éͬһ¸ö×é, µ±Ç°Ö»Ö§³Ö1ά×é
|
* @param int groupid×éid
|
* @param int floornum ²ãÊýÁ¿, µ±Ç°Ö»Ö§³Ö2²ã
|
* @param int[] floorids ÒªÁ¬½ÓµÄ²ãid**/
|
public int link_group(int groupid, int floornum, int[] floorids);
|
|
|
/**ÉèÖÃij¸ö¿ç²ã»ùÕ¾ÔÚ¶à²ã×éÄڵĸ߶È
|
*@param int anchorid»ùÕ¾id
|
*@param int groupid ×éid
|
*@param int heightеĸ߶È*/
|
public int set_height_in_group(int anchorid, int groupid,int height);
|
|
/**ÉèÖÃÄÄЩ×éÊÇÊÒÍâ×é
|
*floor_id ×éËùÔÚ²ãµÄÊý×é*/
|
public int SetOutdoorGroup(int num,int[] group_id,int[] floor_id);
|
|
|
// ÉèÖÃÄÄЩÊDZؾ×é
|
public int SetMustpassGroup(int num,int[] group_id,int[] floor_id);
|
|
// Ϊ»ùÕ¾µ¥¶ÀÉèÖñؾ¾àÀë(3D¾àÀë²»ÊÇÆ½Ãæ¾àÀë)
|
public int SetAnchorMustpassDis(int an_id,int andis);
|
|
// ±Ø¾×éÊÇ·ñδ¾¹ý»ùÕ¾, ¼´ÊÇ·ñÓдíÎó
|
public int isInMustpassGroupButNotPassAnchor();
|
|
// ÉèÖÃÄÄЩ×é½øÐпí¶ÈÔ¼Êø
|
public int SetGroupDisErrorRange(
|
int num, // ×é¸öÊý
|
int[] group_id, // ×éid
|
int[] floor_id, // ËùÔÚ²ãid
|
int[] edis); // Ô¼ÊøµÄ¿í¶È
|
|
//int32_t SetReferencePoint(int32_t px, int32_t py)
|
/**½ÃÕýµ±Ç°×ø±ê*/
|
public int SetSetReferencePoint(int px, int py);
|
|
/**ÉèÖÃÁ½¸ö±êÇ©µÄˮƽ¾àÀë*/
|
public int RelativeCaibration(int stamp, int distance);
|
|
/**ÖØÖÃ2±êÇ©µÄˮƽ¾àÀë*/
|
public int RelativeCaibrationReset();
|
|
/**»ñÈ¡±êÇ©ËÙ¶È*/
|
public int get_velocity(int tagid,int[] vel);
|
|
// ¸øÒ»Î¬×éÌí¼Ó½âÎöµÄ¶à¶ÎÏß
|
public int add_line(int id, // Ïßid
|
int flr, // ×éµÄ²ã
|
int grp, // ×éid
|
int vnum, // ¶¥µã¸öÊý
|
int[] px, // ¶¥µãµÄx×ø±ê
|
int[] py); // ¶¥µãµÄy×ø±ê
|
|
public int get_group_line(
|
int grp,// ×éid
|
int flr, // ×éµÄ²ã
|
int vnum, // ¶¥µã¸öÊý
|
int[] px, // ¶¥µãµÄx×ø±ê
|
int[] py); // ¶¥µãµÄy×ø±ê
|
|
/**½«fid²ãµÄgid×éÉèÖÃΪ±Ø¾×é, ±Ø¾¾àÀëdis, ·µ»ØÖµÎª¸º´ú±íÉèÖÃʧ°Ü*/
|
public int set_group_mustpuss(int gid, int fid, int dis);
|
|
/**ÉèÖûùÕ¾an_idµÄ±Ø¾¾àÀëΪandis, ·µ»ØÖµÎª¸º´ú±íÉèÖÃʧ°Ü*/
|
int set_anchor_mustpuss_distance(int an_id, int andis);
|
|
/**Ìí¼ÓΧÀ¸*/
|
int add_fence(
|
int id, // ΧÀ¸id
|
int vnum,//¶¥µãµÄ¸öÊý
|
int[] px,
|
int[] py); // µãµÄ×ø±ê
|
|
/**
|
* ÈÎÒâλÖøĵ½Î§À¸ÄÚ
|
* @param px
|
* @param py
|
* @param px_out
|
* @param py_out
|
* @return
|
*/
|
int get_position_in_fence(int px, int py,
|
int[] px_out, int[] py_out);
|
}
|
|
|
/**
|
* ×Ô¶¯Éú³ÉһάÏß
|
* @param grp
|
* @param flr
|
* @param vnum
|
* @param px
|
* @param py
|
* @return
|
*/
|
public static int get_group_line(int grp,int flr,int vnum,int[] px,int[] py){
|
return DLibrary.INSTANCE.get_group_line(grp,flr,vnum,px,py);
|
}
|
/**
|
* ÈÎÒâλÖøĵ½Î§À¸ÄÚ
|
* @param px
|
* @param py
|
* @param px_out
|
* @param py_out
|
* @return
|
*/
|
public static int get_position_in_fence(int px, int py,int[] px_out, int[] py_out){
|
return DLibrary.INSTANCE.get_position_in_fence(px,py,px_out,py_out);
|
}
|
|
/**
|
* Ìí¼ÓΧÀ¸
|
* @param id //ΧÀ¸Id
|
* @param vnum //ΧÀ¸¶¥µã¸öÊý
|
* @param px //¶¥µãX×ø±ê
|
* @param py //¶¥µãY×ø±ê
|
* @return
|
*/
|
public static int add_fence(int id,
|
int vnum,
|
int[] px,
|
int[] py){
|
return DLibrary.INSTANCE.add_fence(id,vnum,px,py);
|
}
|
|
/**
|
* ÉèÖûùÕ¾an_idµÄ±Ø¾¾àÀëΪandis, ·µ»ØÖµÎª¸º´ú±íÉèÖÃʧ°Ü
|
* @param an_id
|
* @param andis
|
* @return
|
*/
|
public static int set_anchor_mustpuss_distance(int an_id, int andis){
|
return DLibrary.INSTANCE.set_anchor_mustpuss_distance(an_id,andis);
|
}
|
|
/**
|
* ½«fid²ãµÄgid×éÉèÖÃΪ±Ø¾×é, ±Ø¾¾àÀëdis, ·µ»ØÖµÎª¸º´ú±íÉèÖÃʧ°Ü
|
* @param gid
|
* @param fid
|
* @param dis
|
* @return
|
*/
|
public static int set_group_mustpuss(int gid, int fid, int dis){
|
return DLibrary.INSTANCE.set_group_mustpuss(gid,fid,dis);
|
}
|
|
/**ɾ³ýʱ¼äƬº¯Êý*
|
* @param ²ÎÊýΪtagid(±êÇ©id)ºÍ
|
*@param tag_freq(±êǩƵÂÊ)*/
|
public static int delete_tag_from_slotted_aloha(String tag,int tagid, int tag_freq) {
|
int succ=DLibrary.INSTANCE.delete_tag_from_slotted_aloha(tagid, tag_freq);
|
return succ;
|
}
|
|
/**·µ»ØÊ±¼äƬº¯Êý
|
* @param timestampʱ¼ä´Á
|
* @param ±êÇ©id
|
* @param ±êÇ©µÄƵÂÊ*/
|
public static int get_slotted_aloha(int timestamp, int tagid, int tag_freq) {
|
int slotted_aloha=DLibrary.INSTANCE.slotted_aloha(timestamp, tagid, tag_freq);
|
return slotted_aloha;
|
}
|
|
/**¼ä¸ôÒ»¸ö·ÖÅäÒ»¸öʱ¼äƬ*/
|
public static int get_slotted_aloha_gap1(int stamp, int tagid, int taghz) {
|
int a=DLibrary.INSTANCE.slotted_aloha_gap1(stamp, tagid, taghz);
|
return a;
|
}
|
|
/**[0,199]ʱ¼äƬ»ìºÏ×î´ó»¯Ê¹ÓÃ, ÊÊÓÃÓÚ¶àÖÖÆµÂÊ»ìÓÃ, ½öÖ§³Ö[1,2,5,10,20]*/
|
public static int get_slotted_aloha_mix(int stamp, int tagid, int taghz) {
|
int a=DLibrary.INSTANCE.slotted_aloha_mix(stamp, tagid, taghz);
|
return a;
|
};
|
|
/**Ëã·¨¿â³õʼ»¯*/
|
public static void suanfa_chushi(int outjnalog) {
|
if(start) {
|
suanfaversion=DLibrary.INSTANCE.SuanFa_Init(outjnalog);
|
start=false;
|
}
|
}
|
|
|
/**¸æËßËã·¨¿â»ùÕ¾µÄÏà¹ØÐÅÏ¢
|
* @param an_id,
|
* @param int an_px,
|
* @paramint an_py,
|
* @param int an_pz,
|
* @param int floor,
|
* @param int config_num,//»ùÕ¾ÔÚ¼¸¸ö×éÄÚ
|
* @param int[] group, //»ùÕ¾ËùÊôµÄ×é
|
* @param int[] range, //»ùÕ¾µÄÁ¿³Ì
|
* @param int[] dimension,//»ùÕ¾µÄά¶È
|
* @param int nearby_anchor_number, // ÁÙ½ü»ùÕ¾idÊýÄ¿
|
* @param int[] nearby_anchor_id_list// ÁÙ½ü»ùÕ¾idÊý×é*/
|
public static int anchor_register(
|
int an_id,
|
int an_px,
|
int an_py,
|
int an_pz,
|
int floor,
|
int config_num,//»ùÕ¾ÔÚ¼¸¸ö×éÄÚ
|
int[] group, //»ùÕ¾ËùÊôµÄ×é
|
int[] range, //»ùÕ¾µÄÁ¿³Ì
|
int[] dimension,//»ùÕ¾µÄά¶È
|
int nearby_anchor_number, // ÁÙ½ü»ùÕ¾idÊýÄ¿
|
int[] nearby_anchor_id_list// ÁÙ½ü»ùÕ¾idÊý×é
|
){
|
|
int num=DLibrary.INSTANCE.anchor_register(
|
an_id,
|
an_px,
|
an_py,
|
an_pz,
|
floor,
|
config_num,//»ùÕ¾ÔÚ¼¸¸ö×éÄÚ
|
group, //int[]»ùÕ¾ËùÊôµÄ×é
|
range, //int[]»ùÕ¾µÄÁ¿³Ì
|
dimension,//int[]»ùÕ¾µÄά¶È
|
nearby_anchor_number, // ÁÙ½ü»ùÕ¾idÊýÄ¿
|
nearby_anchor_id_list//int[]idÊý×é
|
);
|
|
String acid=Long.toHexString(an_id).toUpperCase();
|
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("ANREG2,"
|
+acid+","
|
+an_px+","
|
+an_py+","
|
+an_pz+","
|
+floor+","
|
+config_num+",("
|
+int2str(group)+"),("
|
+int2str(range)+"),("
|
+int2str(dimension)+"),"
|
+nearby_anchor_number+",("
|
+int2hexstr(nearby_anchor_id_list)+"),result:"
|
+num+"\n");
|
}
|
|
return num;
|
}
|
|
|
/**Ìí¼ÓÇøÓò*/
|
public static int add_area(
|
int id, //ÇøÓò±àºÅ
|
int floor,//ËùÔÚ²ã
|
int group,//ËùÔÚ×é
|
int num, // ¶¥µãÊýÄ¿
|
int[] px, //x¶¥µã¼¯ºÏ
|
int[] py, //y¶¥µã¼¯ºÏ
|
int[] entrance, // ¿ÉÈë
|
int[] exit) {// ¿É³ö
|
int add_area=DLibrary.INSTANCE.add_area(id,floor,group,num, px, py, entrance, exit);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("AREA,"
|
+id+","
|
+floor+","
|
+group+","
|
+num+",("
|
+int2str(px)+"),("
|
+int2str(py)+"),("
|
+int2str(entrance)+"),("
|
+int2str(exit)+"),result:"
|
+add_area+"\n");}
|
return add_area;
|
}
|
|
/**
|
*
|
* @param id Ïßid
|
* @param floor ×éµÄ²ã
|
* @param group ×éid
|
* @param num ¶¥µã¸öÊý
|
* @param px ¶¥µãµÄx×ø±ê
|
* @param py ¶¥µãµÄy×ø±ê
|
* @return
|
*/
|
public static int add_line(
|
int id, //Ïßid
|
int floor,//×éµÄ²ã
|
int group,//×éid
|
int num, // ¶¥µã¸öÊý
|
int[] px, //¶¥µãµÄx×ø±ê
|
int[] py //¶¥µãµÄy×ø±ê
|
) {
|
return DLibrary.INSTANCE.add_line(id,floor,group,num,px,py);
|
|
}
|
|
/**ɾ³ýÇøÓò*/
|
public static int delete_area( // Èç¹û²»³É¹¦·µ»Ø-1
|
int id) {
|
int delete_area=DLibrary.INSTANCE.delete_area(id);
|
return delete_area;
|
}
|
|
/** ·µ»ØÇøÓòÄÚ»ùÕ¾*/
|
public int get_anchor_in_area( // ·µ»ØÇøÓòÄÚ»ùÕ¾ÊýÄ¿
|
int area_id, // ÊäÈëÇøÓòid
|
int[] an_id) {// ·µ»Ø»ùÕ¾id
|
int get_anchor_in_area=DLibrary.INSTANCE.get_anchor_in_area(area_id, an_id);
|
|
return get_anchor_in_area;
|
};
|
|
|
|
|
|
/**
|
* @param baoxu°üÐò
|
* @param timestampʱ¼ä´Á £¨Ð¡Ê±*3600+·ÖÖÓ*60£©*1000
|
* @param an_x[]»ùÕ¾X×ø±ê
|
* @param an_y[]»ùÕ¾y×ø±ê
|
* @param an_z[]»ùÕ¾z×ø±ê
|
* @param dis[] ±êÇ©µ½»ùÕ¾¾àÀë
|
* @param anchor_num »ùÕ¾ÊýÁ¿
|
* @param anchor_id»ùÕ¾id
|
* @param tag_id ±êÇ©id
|
* @param tag_heigt ±êÇ©¸ß¶È s
|
* @param tag_hz±êǩƵÂÊ
|
* @param tagspeed_limitËÙ¶ÈÏÞÖÆ
|
* @param anchour_distance[]»ùÕ¾µÄÁ¿³Ì
|
* @param dimension[] Ë㷨ѡÔñ1ÊÇ1ά2ÊǶþά
|
* @param stationary_flag¾²Ö¹×´Ì¬
|
* @param tag_pos ·µ»ØµÄ±êÇ©×ø±ê
|
* @param power[]µÚһ·¾¶ÐźÅÇ¿¶È¼¯ºÏ
|
* @param power_diff[]µÚ¶þ·ÐźÅÇ¿¶È¼¯ºÏ
|
* @param zu[]»ùÕ¾ËùÔÚµÄ×é
|
* @param foor[]»ùÕ¾ËùÔڵIJã
|
* @param qiya±êÇ©ÆøÑ¹¼ÆÖµ*/
|
public static int[] get_tag_pos(
|
int counter, // °üÐò
|
int stamp, // ʱ¼ä´Á
|
int tagid, // ±êÇ©id
|
int tagpz, // ±êÇ©¸ß¶È
|
int taghz, // ±êǩƵÂÊ
|
int speed, // ±êÇ©×î´óËÙ¶È
|
int nmove, // ±êÇ©¾²Ö¹×´Ì¬flag
|
int tbaro, // ÆøÑ¹¸ß¶È, ÔÀ´µÄ¸ß¶ÈÐÅÏ¢Ïȱ£Áô²»¶¯
|
int annum, // »ùÕ¾ÊýÄ¿
|
int[] an_id, // »ùÕ¾id, Óëannum¶ÔÓ¦
|
int[] andis, // ²â¾à, Óëannum¶ÔÓ¦
|
int[] power, // ÐźÅÇ¿¶È, Óëannum¶ÔÓ¦
|
int[] powerd // ÐźÅÇ¿¶È²î, Óëannum¶ÔÓ¦
|
) {
|
/**¾¹ýDNS¼ÆËãºóÊä³öµÄ½á¹û*/
|
int[] tag_pos_outs= {0,0,0,0};
|
youxiao=DLibrary.INSTANCE.get_position(
|
counter, // °üÐò
|
stamp, // ʱ¼ä´Á
|
tagid, // ±êÇ©id
|
tagpz, // ±êÇ©¸ß¶È
|
taghz, // ±êǩƵÂÊ
|
speed, // ±êÇ©×î´óËÙ¶È
|
nmove, // ±êÇ©¾²Ö¹×´Ì¬flag
|
tbaro, // ÆøÑ¹¸ß¶È, ÔÀ´µÄ¸ß¶ÈÐÅÏ¢Ïȱ£Áô²»¶¯
|
annum, // »ùÕ¾ÊýÄ¿
|
an_id, // int[]»ùÕ¾id, Óëannum¶ÔÓ¦
|
andis, // int[]²â¾à, Óëannum¶ÔÓ¦
|
power, // int[]ÐźÅÇ¿¶È, Óëannum¶ÔÓ¦
|
powerd, // int[]ÐźÅÇ¿¶È²î, Óëannum¶ÔÓ¦
|
tag_pos_outs
|
);
|
|
return tag_pos_outs;
|
}
|
|
/**»ñȡƽ»¬ºóµÄ×ø±êpout[x,y,z,²ã]*/
|
public static int[] GetSmoothPosition(
|
int tagid, //±êÇ©ID
|
int time_s) {
|
int[] tag_pos_outs= {0,0,0,0};
|
youxiao=DLibrary.INSTANCE.GetSmoothPosition(tagid, time_s, tag_pos_outs);
|
return tag_pos_outs;
|
}
|
|
|
public static int getYouxiao() {
|
return youxiao;
|
}
|
|
|
|
public static String getSuanfaversion() {
|
int ver=suanfaversion;
|
int a1=ver/10000;
|
int a2=(ver-a1*10000)/100;
|
int a3=(ver-a1*10000-a2*100);
|
String version="V"+a1+"."+a2+"."+a3;
|
DebugStarMessage.getDebug().append("JNA,"+version);
|
return version;
|
}
|
|
/**¸üлùÕ¾µÄÆøÑ¹Öµ*/
|
public static void qiya(int anchorid,int anchorqiya) {
|
|
DLibrary.INSTANCE.anchor_baro_update(anchorid,anchorqiya);
|
if(TcpIpManage.getStar() && TcpIpManage.getDatatypeis().equals("µ÷ÊÔÊý¾Ý")) {
|
StringBuffer text_str=new StringBuffer();
|
text_str.append("ANCB,"+anchorid+","+anchorqiya);
|
TcpIpManage.get_text_area().append(text_str+"\n");
|
text_str=null;
|
}
|
}
|
|
/**Ìí¼Ó»ùÕ¾µÄ²ã¸ß¶ÈÐÅÏ¢*/
|
public static void cenggao(int id,int bottom,int top) {
|
DLibrary.INSTANCE.add_floor(id,bottom,top);
|
DebugStarMessage.getDebug().append("FLOOR,"+id+","+bottom+","+top+"\n");
|
}
|
|
|
/**int[] תΪString*/
|
public static String int2str(int[] info) {
|
StringBuffer a=new StringBuffer();
|
int size=info.length;
|
String b=null;
|
if(size==1) {
|
b=String.valueOf(info[0]);
|
a.append(b);
|
}else {
|
for(int i=0;i<size;i++) {
|
b=String.valueOf(info[i]);
|
if(i !=(size-1)) {
|
a.append(b+",");
|
}else {
|
a.append(b);
|
}
|
|
}
|
}
|
return a.toString();
|
}
|
|
/**int[] תΪString*/
|
public static String int2hexstr(int[] info) {
|
StringBuffer a=new StringBuffer();
|
int size=info.length;
|
String b=null;
|
if(size==1) {
|
b=String.valueOf(Long.toHexString(info[0]).toUpperCase());
|
a.append(b);
|
}else {
|
for(int i=0;i<size;i++) {
|
b=String.valueOf(Long.toHexString(info[i]).toUpperCase());
|
if(i !=(size-1)) {
|
a.append(b+",");
|
}else {
|
a.append(b);
|
}
|
|
}
|
}
|
return a.toString();
|
}
|
|
// ÊÇ·ñ¿ªÆôλÖÃËæ¼ÓËٶȼƾ²Ö¹¶ø·¶Î§²¨¶¯, 1¿ªÆô
|
public static int SetParaFakePosEnable(int en) {
|
int a=DLibrary.INSTANCE.SetParaFakePosEnable(en);
|
DebugStarMessage.getDebug().append("SetParaFakePosEnable,"+a+"\n");
|
return a;
|
}
|
|
// Ëæ¼Ó¼Æ²¨¶¯·¶Î§
|
public static int SetParaFakePosRange(int range) {
|
int a=DLibrary.INSTANCE.SetParaFakePosRange(range);
|
DebugStarMessage.getDebug().append("SetParaFakePosRange,"+a+"\n");
|
return a;
|
}
|
|
// Ò»¶þά½áºÏ, һά¿í¶ÈÓ°Ï췶Χ
|
public static int SetParaSolver1dwidth(int width) {
|
int a=DLibrary.INSTANCE.SetParaSolver1dwidth(width);
|
DebugStarMessage.getDebug().append("SetParaSolver1dwidth,"+a+"\n");
|
return a;
|
}
|
|
// ʱ¼äƬ·ÖÅ䷽ʽ0=GAP1, 1=MIX
|
public static int SetParaSlotMode(int mode) {
|
int a=DLibrary.INSTANCE.SetParaSlotMode(mode);
|
DebugStarMessage.getDebug().append("SetParaSlotMode,"+a+"\n");
|
return a;
|
}
|
|
/**ÉèÖÃÂ˲¨·½Ê½½á¹ûÂ˲¨·½Ê½0=Ò»½×µÍͨ, 1=»¬¶¯Æ½¾ù*/
|
public static int SetParaFilterType(int filter) {
|
int a=DLibrary.INSTANCE.SetParaFilterType(filter);
|
DebugStarMessage.getDebug().append("SetParaFilterType,"+a+"\n");
|
return a;
|
}
|
|
/**idÏàͬµ«ÊDz㲻ͬµÄ×éÁ¬½Ó³Éͬһ¸ö×é, µ±Ç°Ö»Ö§³Ö1ά×é
|
* @param int groupid×éid
|
* @param int floornum ²ãÊýÁ¿, µ±Ç°Ö»Ö§³Ö2²ã
|
* @param int[] floorids ÒªÁ¬½ÓµÄ²ãid**/
|
public static int set_height_in_group(int anchorid, int groupid,int height){
|
int a=DLibrary.INSTANCE.set_height_in_group(anchorid,groupid, height);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("set_height_in_group,"
|
+anchorid+","
|
+groupid+","
|
+groupid+","
|
+height+",result:"+a
|
+"\n");
|
}
|
return a;
|
}
|
|
|
/**ÉèÖÃij¸ö¿ç²ã»ùÕ¾ÔÚ¶à²ã×éÄڵĸ߶È
|
*@param int anchorid»ùÕ¾id
|
*@param int groupid ×éid
|
*@param int[] heightеĸ߶È*/
|
public static int link_group(int groupid, int floornum, int[] floorids) {
|
int a=DLibrary.INSTANCE.link_group(groupid, floornum, floorids);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("link_group,"
|
+groupid+","
|
+floornum+","
|
+groupid+",("
|
+int2str(floorids)+")"+",result:"+a
|
+"\n");
|
}
|
return a;
|
|
}
|
|
/**ÉèÖÃÄÄЩ×éÊÇÊÒÍâ×é
|
* int num, // ÊýÄ¿
|
* int[] group_id, // ×éidÊý×é
|
* int[] floor_id // ×éËùÔÚ²ãµÄÊý×é*/
|
public static int SetOutdoorGroup(int num,int[] group_id,int[] floor_id) {
|
int a=DLibrary.INSTANCE.SetOutdoorGroup(num, group_id, floor_id);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("SetOutdoorGroup,"
|
+num+",("
|
+int2str(group_id)+"),("
|
+int2str(floor_id)+")"+",result:"+a
|
+"\n");
|
}
|
return a;
|
}
|
|
|
/**ÉèÖÃÄÄЩÊDZؾ×é*/
|
public static int SetMustpassGroup(int num,int[] group_id,int[] floor_id) {
|
int a=DLibrary.INSTANCE.SetMustpassGroup(num, group_id, floor_id);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("SetMustpassGroup,"
|
+num+",("
|
+int2str(group_id)+"),("
|
+int2str(floor_id)+")"+",result:"+a
|
+"\n");
|
}
|
return a;
|
}
|
|
/**Ϊ»ùÕ¾µ¥¶ÀÉèÖñؾ¾àÀë(3D¾àÀë²»ÊÇÆ½Ãæ¾àÀë)*/
|
public static int SetAnchorMustpassDis(int an_id,int andis) {
|
int a=DLibrary.INSTANCE.SetAnchorMustpassDis(an_id,andis);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("SetAnchorMustpassDis,"
|
+an_id+","
|
+andis+",result:"+a
|
+"\n");
|
}
|
return a;
|
}
|
|
/**Ôڱؾ»ùÕ¾×éÔÚÊÒÄÚ·µ»Ø0£¬ÓпÉÄܲ»ÔÚÊÒÄÚ·µ»Ø1*/
|
public static int isInMustpassGroupButNotPassAnchor() {
|
int a=DLibrary.INSTANCE.isInMustpassGroupButNotPassAnchor();
|
return a;
|
}
|
|
/**ÉèÖÃÄÄЩ×é½øÐпí¶ÈÔ¼Êø*/
|
public static int SetGroupDisErrorRange(
|
int num, // ×é¸öÊý
|
int[] group_id, // ×éid
|
int[] floor_id, // ËùÔÚ²ãid
|
int[] edis) {
|
int a=DLibrary.INSTANCE.SetGroupDisErrorRange(num, group_id, floor_id, edis);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("SetGroupDisErrorRange,"
|
+num+",("
|
+int2str(group_id)+"),("
|
+int2str(floor_id)+"),("
|
+int2str(edis)+"),"
|
+a
|
+"\n");
|
}
|
return a;
|
|
}
|
|
/**½ÃÕýµ±Ç°×ø±ê*/
|
public static int SetSetReferencePoint(int px, int py) {
|
int a=DLibrary.INSTANCE.SetSetReferencePoint(px, py);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("SetSetReferencePoint,"+px+","+py+",result:"+a+"\n");
|
}
|
return a;
|
}
|
|
/**ÉèÖÃÁ½¸ö±êÇ©µÄˮƽ¾àÀë*/
|
public static int RelativeCaibration(int stamp, int distance) {
|
int a=DLibrary.INSTANCE.RelativeCaibration(stamp, distance);
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("RelativeCaibration,"+stamp+","+distance+",result:"+a+"\n");
|
}
|
return a;
|
|
}
|
|
/**ÖØÖÃ2±êÇ©µÄˮƽ¾àÀë*/
|
public int RelativeCaibrationReset() {
|
int a=DLibrary.INSTANCE.RelativeCaibrationReset();
|
if(biaozhi) {
|
DebugStarMessage.getDebug().append("RelativeCaibrationReset,result:"+a+"\n");
|
}
|
return a;
|
}
|
|
/**»ñÈ¡±êÇ©ËÙ¶È
|
* ·µ»ØÖµ>=0˵Ã÷ÓÐËÙ¶È, <0ËÙ¶È»ñȡʧ°Ü*/
|
public static int get_velocity(int tagid) {
|
int[] vel=new int[3];
|
int a=DLibrary.INSTANCE.get_velocity(tagid, vel);
|
return a;
|
}
|
|
}
|