1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| import java.net.InetAddress;
import java.util.StringTokenizer;
public class MainClass {
public static void main(String[] args) throws Exception {
CommandeAT [] Item;
Item = new CommandeAT[11];
Item[0] = new CommandeAT ("Decollage","AT*REF=",100,290718208);// Faire une incremenatation des N° de sequence et ... recup etat de la batterie
Item[1] = new CommandeAT ("Atterrissage","AT*REF=",100,290717696);
Item[2] = new CommandeAT ("Stationnaire","AT*PCMD=",100,1,0,0,0,0);
Item[3] = new CommandeAT ("plusdegaz","AT*PCMD=",100,1,0,0,1036831949,0);
Item[4] = new CommandeAT ("moinsdegaz","AT*PCMD=",100,1,0,0,-1110651699,0);
Item[5] = new CommandeAT ("plusdeTangage","AT*PCMD=",100,1,1036831949,0,0,0);
Item[6] = new CommandeAT ("moinsdeTangage","AT*PCMD=",100,1,-1110651699,0,0,0);
Item[7] = new CommandeAT ("plusMvtLacet","AT*PCMD=",100,1,0,0,0,1036831949);
Item[8] = new CommandeAT ("moinsMvtLacet","AT*PCMD=",100,1,0,0,0,-1110651699);
Item[9] = new CommandeAT ("plusderoulis","AT*PCMD=",100,1,0,1036831949,0,0);
Item[10] = new CommandeAT ("Init","AT*CONFIG=1,\"control:altitude_max\",\"2000\"");
Instruction AT = new Instruction("","");
int sequence=0;
int ordre[] = {10,0,2,1};
String ip = "192.168.0.16";
//////////////////////////////////////////////////////////////////////////////
// Codage adresse //
////////////////////////////////////////////////////////////////////////////
StringTokenizer st = new StringTokenizer(ip, ".");
byte[] ip_bytes = new byte[4];// on traduit l'adresse ensuite en 4 octets
if (st.countTokens() == 4)
{
for (int i = 0; i < 4; i++)
{
ip_bytes[i] = (byte)Integer.parseInt(st.nextToken());
}
}
InetAddress ia = InetAddress.getByAddress(ip_bytes);
System.out.println("Inet "+ia);
//////////////////////////////////////////////////////////////////////////////
// Envoie de la sequence et de la reception //
//////////////////////////////////////////////////////////////////////////////
for (int j=0 ;j< ordre.length; j++)
{
if (Item[ordre[j]].Codage=="AT*REF=") {AT = somme (Item[ordre[j]],sequence);} else
if (Item[ordre[j]].Codage=="AT*CONFIG=1,\"control:altitude_max\",\"2000\"") {AT = somme2 (Item[10]);} else// voir instruction a envoyer;
if (Item[ordre[j]].Codage=="AT*PCMD="){AT = somme1 (Item[ordre[j]],sequence);}
String a = AT.CodageI;
byte[] buf = (a + "\r").getBytes();
SenderThread sender = new SenderThread(buf, ia , 5556);
SenderThread sender1 = new SenderThread(buf, ia , 5554);
sender.start();
Thread.sleep(500);
Thread receiver = new ReceiverThread(sender1.getSocket(),ia);
receiver.start();
}
}
static Instruction somme (CommandeAT Item1,int compteur)
{
Instruction CodeI = new Instruction("","");
CodeI.CodageI = Item1.Codage+String.valueOf(Item1.param1+compteur)+","+String.valueOf(Item1.param2);
CodeI.InstructionI = Item1.Instruction;
return CodeI;
}
static Instruction somme1 (CommandeAT Item1,int compteur)//Surdefinition de methode
{
Instruction CodeI = new Instruction("","");
CodeI.CodageI = Item1.Codage+ String.valueOf(Item1.param1 +compteur)+"," +String.valueOf(Item1.param2)+","+String.valueOf(Item1.param3)+","+String.valueOf(Item1.param4)+","+String.valueOf(Item1.param5)+","+String.valueOf(Item1.param6);
CodeI.InstructionI = Item1.Instruction;
return CodeI;
}
static Instruction somme2 (CommandeAT Item1)//Surdefinition de methode
{
Instruction CodeI = new Instruction("","");
CodeI.CodageI = Item1.Codage;
CodeI.InstructionI = Item1.Instruction;
return CodeI;
}
} |
Partager