package tbDataModel_Dell;
|
|
import java.util.Vector;
|
public class Read_Write_Anchor_Message {
|
|
/**¶ÁÈ¡»ùÕ¾ÐÅÏ¢
|
* @param ref ÆðʼµØÖ·
|
* @param lenth ¶ÁÈ¡³¤¶È*/
|
public static byte[] ReadData(byte ref ,byte lenth) {
|
byte[] buf =new byte[10];
|
byte[] buf1 =new byte[6];
|
//°üÍ·
|
buf[0]=(byte) 0x55;
|
//°üÍ·
|
buf[1]=(byte) 0xAA;
|
|
//Ö¸ÁîÀàÐÍ(²ÎÊý¶Áдģʽ)
|
buf1[0]=(byte) 0x03;
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte) 0x06;
|
|
//¶Áģʽ(¶Áģʽ)
|
buf1[2]=(byte) 0x01;
|
//ÆðʼµØÖ·
|
buf1[3]=ref;
|
//Êý¾Ý³¤¶È
|
buf1[4]=lenth;
|
|
//¹Ì¶¨Öµ(¶ÁģʽÏÂΪ0x00)
|
buf1[5]=(byte) 0x00;
|
for(int i=0;i<buf1.length;i++) {
|
buf[i+2]=buf1[i];
|
}
|
|
//УÑéÂë
|
buf[8]=Jiaoyan.check(buf1)[1];
|
buf[9]=Jiaoyan.check(buf1)[0];;
|
return buf;
|
}
|
|
|
|
/**ÐÞ¸Äijһ¸ö±êÇ©µÄÏà¹Ø
|
* @param int hzÐèÒªÐ޸ĵIJÎÊý
|
* @param tagid ÐèÒªÐ޸ĵıêÇ©ID
|
* @param bytÐìÐ޸ĵĵØÖ·*/
|
public static byte[] write_one_taghz(int hz,String tagid,byte byt) {
|
byte[] buf =new byte[14];
|
byte[] buf1 =new byte[10];
|
//°üÍ·
|
buf[0]=(byte) 0x55;
|
//°üÍ·
|
buf[1]=(byte) 0xAA;
|
//Ö¸ÁîÀàÐÍ
|
buf1[0]=(byte) 0x08;
|
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte) 0x0A;
|
|
//ID×éÊý×î´óΪ20×é
|
buf1[2]=(byte) 0x01;
|
//²ÎÊýµØÖ·
|
buf1[3]=byt;
|
|
buf1[4]=toByteArray(tagid)[1];
|
buf1[5]=toByteArray(tagid)[0];
|
buf1[6]=toByteArray(tagid)[1];
|
buf1[7]=toByteArray(tagid)[0];
|
buf1[8]=intToRegisters(hz)[3];
|
buf1[9]=intToRegisters(hz)[2];
|
for(int z=0;z<buf1.length;z++) {
|
buf[z+2]=buf1[z];
|
}
|
|
//УÑéÂë
|
buf[12]=Jiaoyan.check(buf1)[1];
|
buf[13]=Jiaoyan.check(buf1)[0];
|
|
|
return buf;
|
|
}
|
|
|
|
|
public static byte[] write_one_up(String tagid) {
|
byte[] buf =new byte[14];
|
byte[] buf1 =new byte[10];
|
//°üÍ·
|
buf[0]=(byte) 0x55;
|
//°üÍ·
|
buf[1]=(byte) 0xAA;
|
//Ö¸ÁîÀàÐÍ
|
buf1[0]=(byte) 0x08;
|
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte) 0x0A;
|
|
//ID×éÊý×î´óΪ20×é
|
buf1[2]=(byte) 0x01;
|
//²ÎÊýµØÖ·
|
buf1[3]=(byte) 0x32;
|
|
buf1[4]=toByteArray(tagid)[1];
|
buf1[5]=toByteArray(tagid)[0];
|
buf1[6]=toByteArray(tagid)[1];
|
buf1[7]=toByteArray(tagid)[0];
|
buf1[8]=(byte) 0x02;
|
buf1[9]=(byte) 0x00;
|
|
for(int z=0;z<buf1.length;z++) {
|
buf[z+2]=buf1[z];
|
}
|
//УÑéÂë
|
buf[12]=Jiaoyan.check(buf1)[1];
|
buf[13]=Jiaoyan.check(buf1)[0];
|
|
return buf;
|
|
}
|
|
/**Ïò»ùվϷ¢Ê±¼äƬÅäÖÃÐÅÏ¢*/
|
public static byte[] write_timestamp(String tagid,int hz,int timestamp) {
|
byte[] buf =new byte[16];
|
byte[] buf1 =new byte[12];
|
//°üÍ·
|
buf[0]=(byte)0x55;
|
//°üÍ·
|
buf[1]=(byte)0xAA;
|
//Ö¸ÁîÀàÐÍ
|
buf1[0]=(byte)0x0b;
|
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte)0x0C;
|
|
//±êÇ©id
|
buf1[2]=toByteArray(tagid)[1];
|
buf1[3]=toByteArray(tagid)[0];
|
|
//±êǩƵÂÊ
|
buf1[4]=intToRegisters(hz)[3];
|
buf1[5]=intToRegisters(hz)[2];
|
|
//ʱ¼äƬ
|
buf1[6]=intToRegisters(timestamp)[3];
|
buf1[7]=intToRegisters(timestamp)[2];
|
|
//±£Áô
|
buf1[8]=(byte)0x00;
|
buf1[9]=(byte)0x00;
|
buf1[10]=(byte)0x00;
|
buf1[11]=(byte)0x00;
|
|
for(int z=0;z<buf1.length;z++) {
|
buf[z+2]=buf1[z];
|
}
|
|
//УÑéÂë
|
buf[14]=Jiaoyan.check(buf1)[1];
|
buf[15]=Jiaoyan.check(buf1)[0];
|
|
return buf;
|
|
}
|
|
/**Ð޸ıêÇ©µÄƵÂÊ
|
* @param hzÐèÒªÐ޸ĵÄÄÚÈÝ
|
* @param byt²ÎÊýµØÖ·
|
* @param lenthÊý¾Ý¶Î³¤¶È*/
|
public static byte[] write_taghz(int hz,Vector<String> vec,byte adress) {
|
byte[] buf =null;
|
//×ܹ²ÓжàÉÙ×é±êÇ©
|
int zu=vec.size()/2;
|
if(zu<10) {
|
|
int lenth=zu*6;
|
String hexzu=Integer.toHexString(zu);
|
if(zu<17) {
|
hexzu="0"+Integer.toHexString(zu);
|
}
|
|
buf =new byte[8+lenth];
|
byte[] buf1 =new byte[4+lenth];
|
//°üÍ·
|
buf[0]=(byte) 0x55;
|
//°üÍ·
|
buf[1]=(byte) 0xAA;
|
//Ö¸ÁîÀàÐÍ
|
buf1[0]=(byte) 0x08;
|
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte) ((byte)4+zu*6);
|
|
//ID×éÊý×î´óΪ20×é
|
buf1[2]=toByteArray(hexzu)[0];
|
//²ÎÊýµØÖ·
|
buf1[3]=adress;
|
|
|
|
for(int i=0;i<zu;i++) {
|
buf1[4+6*i]=toByteArray(vec.get(i*2+1))[1];
|
buf1[5+6*i]=toByteArray(vec.get(i*2+1))[0];
|
buf1[6+6*i]=toByteArray(vec.get(i*2))[1];
|
buf1[7+6*i]=toByteArray(vec.get(i*2))[0];
|
buf1[8+6*i]=intToRegisters(hz)[3];
|
buf1[9+6*i]=intToRegisters(hz)[2];
|
}
|
|
for(int z=0;z<buf1.length;z++) {
|
buf[z+2]=buf1[z];
|
}
|
//УÑéÂë
|
buf[6+lenth]=Jiaoyan.check(buf1)[1];
|
buf[7+lenth]=Jiaoyan.check(buf1)[0];
|
|
}
|
return buf;
|
}
|
|
public static byte[] intToRegisters(int v) {
|
byte[] registers = new byte[4];
|
registers[0] = (byte) (0xff & (v >> 24));
|
registers[1] = (byte) (0xff & (v >> 16));
|
registers[2] = (byte) (0xff & (v >> 8));
|
registers[3] = (byte) (0xff & v);
|
return registers;
|
}
|
|
/**
|
* 16½øÖƵÄ×Ö·û´®±íʾת³É×Ö½ÚÊý×é
|
*
|
* @param hexString 16½øÖƸñʽµÄ×Ö·û´®
|
* @return ת»»ºóµÄ×Ö½ÚÊý×é
|
**/
|
public static byte[] toByteArray(String hexString) {
|
byte[] byteArray=null;
|
if(hexString !=null || hexString !="") {
|
hexString = hexString.replaceAll(" ", "");
|
byteArray = new byte[hexString.length() / 2];
|
int k = 0;
|
for (int i = 0; i < byteArray.length; i++) {//ÒòΪÊÇ16½øÖÆ£¬×î¶àÖ»»áÕ¼ÓÃ4λ£¬×ª»»³É×Ö½ÚÐèÒªÁ½¸ö16½øÖƵÄ×Ö·û£¬¸ßλÔÚÏÈ
|
byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff);
|
byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff);
|
byteArray[i] = (byte) (high << 4 | low);
|
k += 2;
|
}
|
}
|
return byteArray;
|
}
|
|
|
|
/**д´®¿ÚÊý¾Ý°ü
|
* @param ref ÆðʼµØÖ·
|
* @param lenth Êý¾Ý³¤¶È
|
* @param value дÈëÖµ*/
|
public static byte[] WriteData(byte ref ,byte lenth,int value) {
|
byte[] buf =new byte[9+lenth];
|
byte[] buf1 =new byte[5+lenth];
|
//°üÍ·
|
buf[0]=(byte) 0x55;
|
//°üÍ·
|
buf[1]=(byte) 0xAA;
|
//Ö¸ÁîÀàÐÍ
|
buf1[0]=(byte) 0x03;
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte) ((byte) 5+lenth);
|
//¶Áģʽ
|
buf1[2]=(byte) 0x02;
|
//ÆðʼµØÖ·
|
buf1[3]=(byte) ref;
|
//Êý¾Ý³¤¶È
|
buf1[4]=(byte) lenth;
|
|
//дÈëÖµ
|
if(lenth==2) {
|
buf1[5]=ModbusUtil.intToRegisters(value)[3];
|
buf1[6]=ModbusUtil.intToRegisters(value)[2];
|
}
|
|
|
for(int i=0;i<buf1.length;i++) {
|
buf[i+2]=buf1[i];
|
}
|
//УÑéÂë
|
buf[buf.length-2]=Jiaoyan.check(buf1)[1];
|
buf[buf.length-1]=Jiaoyan.check(buf1)[0];
|
return buf;
|
}
|
|
/**
|
* ÐÂÖ¸Áî
|
* @param code
|
* @return
|
*/
|
public static byte[] toAnchor(byte code) {
|
byte[] buf =new byte[10];
|
byte[] buf1 =new byte[6];
|
//°üÍ·
|
buf[0]=(byte) 0x55;
|
//°üÍ·
|
buf[1]=(byte) 0xAA;
|
|
//Ö¸ÁîÀàÐÍ(²ÎÊý¶Áдģʽ)
|
buf1[0]=(byte) 0x03;
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte) 0x06;
|
|
//дģʽ
|
buf1[2]=(byte) 0x02;
|
//ÆðʼµØÖ·
|
buf1[3]=(byte) 0x64;
|
//Êý¾Ý³¤¶È
|
buf1[4]=(byte) 0x01;
|
|
buf1[5]= code;
|
for(int i=0;i<buf1.length;i++) {
|
buf[i+2]=buf1[i];
|
}
|
|
//УÑéÂë
|
buf[8]=Jiaoyan.check(buf1)[1];
|
buf[9]=Jiaoyan.check(buf1)[0];;
|
return buf;
|
}
|
|
|
/**×Ô½âËãģʽ½«×ø±ê·¢»ùÕ¾*/
|
public static byte[] send_anc_xy(
|
String tagid,
|
int baoxu,
|
int x,
|
int y,
|
int h,
|
String jd,
|
String wd,
|
String gc) {
|
byte[] buf =new byte[22];
|
byte[] buf1 =new byte[18];
|
//°üÍ·
|
buf[0]=(byte)0x55;
|
//°üÍ·
|
buf[1]=(byte)0xAA;
|
//Ö¸ÁîÀàÐÍ
|
buf1[0]=(byte)0x0d;
|
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte)0x12;
|
|
//±êÇ©id 2Byte
|
buf1[2]=toByteArray(tagid)[1];
|
buf1[3]=toByteArray(tagid)[0];
|
|
//±êÇ©°üÐò2Byte
|
buf1[4]=intToRegisters(baoxu)[3];
|
buf1[5]=intToRegisters(baoxu)[2];
|
|
//±êÇ©X×ø±ê4Byte int32 ÀåÃ×
|
buf1[6]=intToRegisters(x)[3];
|
buf1[7]=intToRegisters(x)[2];
|
buf1[8]=intToRegisters(x)[1];
|
buf1[9]=intToRegisters(x)[0];
|
|
//±êÇ©Y×ø±ê4Byte int32 ÀåÃ×
|
buf1[10]=intToRegisters(y)[3];
|
buf1[11]=intToRegisters(y)[2];
|
buf1[12]=intToRegisters(y)[1];
|
buf1[13]=intToRegisters(y)[0];
|
|
//±êÇ©z×ø±ê4Byte int32 ÀåÃ×
|
buf1[14]=intToRegisters(h)[3];
|
buf1[15]=intToRegisters(h)[2];
|
buf1[16]=intToRegisters(h)[1];
|
buf1[17]=intToRegisters(h)[0];
|
|
for(int z=0;z<buf1.length;z++) {
|
buf[z+2]=buf1[z];
|
}
|
|
//УÑéÂë
|
buf[20]=Jiaoyan.check(buf1)[1];
|
buf[21]=Jiaoyan.check(buf1)[0];
|
return buf;
|
}
|
|
|
/**×Ô½âËãģʽ½«×ø±ê·¢»ùÕ¾*/
|
public static byte[] send_anc_xyold(String tagid,int baoxu,int x,int y,int h) {
|
byte[] buf =new byte[22];
|
byte[] buf1 =new byte[18];
|
//°üÍ·
|
buf[0]=(byte)0x55;
|
//°üÍ·
|
buf[1]=(byte)0xAA;
|
//Ö¸ÁîÀàÐÍ
|
buf1[0]=(byte)0x0d;
|
|
//Êý¾Ý³¤¶È
|
buf1[1]=(byte)0x12;
|
|
//±êÇ©id 2Byte
|
buf1[2]=toByteArray(tagid)[1];
|
buf1[3]=toByteArray(tagid)[0];
|
|
//±êÇ©°üÐò2Byte
|
buf1[4]=intToRegisters(baoxu)[3];
|
buf1[5]=intToRegisters(baoxu)[2];
|
|
//±êÇ©X×ø±ê4Byte int32 ÀåÃ×
|
buf1[6]=intToRegisters(x)[3];
|
buf1[7]=intToRegisters(x)[2];
|
buf1[8]=intToRegisters(x)[1];
|
buf1[9]=intToRegisters(x)[0];
|
|
//±êÇ©Y×ø±ê4Byte int32 ÀåÃ×
|
buf1[10]=intToRegisters(y)[3];
|
buf1[11]=intToRegisters(y)[2];
|
buf1[12]=intToRegisters(y)[1];
|
buf1[13]=intToRegisters(y)[0];
|
|
//±êÇ©z×ø±ê4Byte int32 ÀåÃ×
|
buf1[14]=intToRegisters(h)[3];
|
buf1[15]=intToRegisters(h)[2];
|
buf1[16]=intToRegisters(h)[1];
|
buf1[17]=intToRegisters(h)[0];
|
|
for(int z=0;z<buf1.length;z++) {
|
buf[z+2]=buf1[z];
|
}
|
|
//УÑéÂë
|
buf[20]=Jiaoyan.check(buf1)[1];
|
buf[21]=Jiaoyan.check(buf1)[0];
|
return buf;
|
}
|
|
}
|