package radio_module;
public class XBeeToArduinoFrameGenerator {
public static String at(String ats) {
String code = "";
code += "\t" + "Serial.write(0x7E);" + "\n";
code += "\t" + "Serial.write(0x00);" + "\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 += "\t" + "Serial.write(0x"+szs+");" + "\n";
code += "\t" + "Serial.write(0x09);" + "\n";
code += "\t" + "Serial.write(0x00);" + "\n";
int v1 = ats.charAt(0);
int v2 = ats.charAt(1);
code += "\t" + "Serial.write(0x"+Integer.toHexString(v1)+");" + "\n";
code += "\t" + "Serial.write(0x"+Integer.toHexString(v2)+");" + "\n";
int x = 0x09 + v1 + v2;
for (int i=0; i<(n/2); i++) {
s[i] = ats.substring(i+2, i+4);
code += "\t" + "Serial.write(0x"+s[i]+");" + "\n";
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 += "\t" + "Serial.write(0x"+ss+");" + "\n";
code += "\tdelay(10);" + "\n";
return code;
}
public static String nd() {
String code = "";
code += "\t" + "Serial.write(0x7E);" + "\n";
code += "\t" + "Serial.write(0x00);" + "\n";
code += "\t" + "Serial.write(0x04);" + "\n";
code += "\t" + "Serial.write(0x09);" + "\n";
code += "\t" + "Serial.write(0x00);" + "\n";
code += "\t" + "Serial.write(0x4E);" + "\n";
code += "\t" + "Serial.write(0x44);" + "\n";
code += "\t" + "Serial.write(0x64);" + "\n";
return code;
}
public static void atc(String ats) {
System.out.println("\t" + "Serial.write(0x7E);");
System.out.println("\t" + "Serial.write(0x00);");
int n = ats.length()-2;
String [] s = new String [n];
String szs = Integer.toHexString(4+(n/2));
if (szs.length()==1) szs = "0"+szs;
System.out.println("\t" + "Serial.write(0x"+szs+");");
System.out.println("\t" + "Serial.write(0x09);");
System.out.println("\t" + "Serial.write(0x00);");
int v1 = ats.charAt(0);
int v2 = ats.charAt(1);
System.out.println("\t" + "Serial.write(0x"+Integer.toHexString(v1)+");");
System.out.println("\t" + "Serial.write(0x"+Integer.toHexString(v2)+");");
int x = 0x09 + v1 + v2;
for (int i=0; i<(n/2); i++) {
s[i] = ats.substring(i+2, i+4);
System.out.println("\t" + "Serial.write(0x"+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);
System.out.println("\t" + "Serial.write(0x"+ss+");");
System.out.println("\tdelay(10);");
System.out.println();
}
public static void at2(String ats) {
System.out.print("7E 00");
int n = ats.length()-2;
String [] s = new String [n];
String szs = Integer.toHexString(4+(n/2));
if (szs.length()==1) szs = "0"+szs;
System.out.print(" "+szs);
System.out.print(" 09 00");
int v1 = ats.charAt(0);
int v2 = ats.charAt(1);
System.out.print(" "+Integer.toHexString(v1));
System.out.print(" "+Integer.toHexString(v2));
int x = 0x09 + v1 + v2;
for (int i=0; i<(n/2); i++) {
s[i] = ats.substring(i+2, i+4);
System.out.print(" "+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);
System.out.print(" "+ss);
System.out.println();
}
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 += "\t" + "Serial.write(0x7E);" + "\n";
code += "\t" + "Serial.write(0x00);" + "\n";
int n = data.length()+5;
String szs = Integer.toHexString(n);
if (szs.length()==1) szs = "0"+szs;
code += "\t" + "Serial.write(0x"+szs+");" + "\n";
code += "\t" + "Serial.write(0x01);" + "\n";
code += "\t" + "Serial.write(0x00);" + "\n";
code += "\t" + "Serial.write(0x"+dl+");" + "\n";
code += "\t" + "Serial.write(0x"+dh+");" + "\n";
code += "\t" + "Serial.write(0x00);" + "\n";
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 += "\t" + "Serial.write(0x"+s+");" + "\n";
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 += "\t" + "Serial.write(0x"+ss+");" + "\n";
code += "\tdelay(10);" + "\n";
return code;
}
}