package frame;
public class Frame_802_15_4 {
public static void main(String [] args) {
String s = data16("Bonjour", "00", "01");
s = s.toUpperCase();
System.out.println(s);
}
public static String generateDataFrame(String data) {
String frame = data ;
return frame ;
}
public static String getDataFromFrame(String frame) {
String data = frame ;
return data ;
}
public static String generateAtFrame(String data) {
String frame = data ;
return frame ;
}
public static String readAtFrame(String frame) {
String data = frame ;
return data ;
}
public static String at(String ats) {
String code = "";
code += "7e";
code += "00;" + "\n";
int n = ats.length()-2;
String [] s = new String [n];
String szs = Integer.toHexString(4+(n/2));
if (szs.length()==1) szs = "0"+szs;
code += ""+szs;
code += "09";
code += "00";
int v1 = ats.charAt(0);
int v2 = ats.charAt(1);
code += ""+Integer.toHexString(v1)+"";
code += ""+Integer.toHexString(v2)+"";
int x = 0x09 + v1 + v2;
for (int i=0; i<(n/2); i++) {
s[i] = ats.substring(i+2, i+4);
code += ""+s[i]+"";
x = x + Integer.parseInt(s[i],16);
}
String ss = Integer.toHexString(x);
ss = ss.substring(ss.length()-2, ss.length());
x = Integer.parseInt(ss,16);
ss = Integer.toHexString(255-x);
code += ""+ss+"";
return code;
}
public static String data16(String data, String dl, String dh) {
if(dl.length()==1) dl = "0"+dl;
if(dh.length()==1) dh = "0"+dh;
String code = "";
code += "7e";
code += "00";
int n = data.length()+5;
String szs = Integer.toHexString(n);
if (szs.length()==1) szs = "0"+szs;
code += ""+szs+"";
code += "01";
code += "00";
code += ""+dl+"";
code += ""+dh+"";
code += "00";
int x = 0x01 + Integer.parseInt(dl,16) + Integer.parseInt(dh,16);
String s ="";
for (int i=0; i<data.length(); i++) {
s = Integer.toHexString(data.charAt(i));
if(s.length()==1) s="0"+s;
code += ""+s+"";
x = x + Integer.parseInt(s,16);
}
String ss = Integer.toHexString(x);
ss = ss.substring(ss.length()-2, ss.length());
x = Integer.parseInt(ss,16);
ss = Integer.toHexString(255-x);
code += ""+ss+"";
return code;
}
}