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
| import java.net.InetAddress;
public class MainClass {
public static void main(String[] args) throws Exception {
// String hostname = "localhost";
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,10,0,2,1,10,0,2,1,10,0,2,1,10,0,2,1,10,0,2,1,10,0,2,1,10,0,2,1,10,0,2,1,10,0,2,1,10,0,2,1};
String ip = "192.168.0.36"; // adresse d'envoie à modifier en fonction du macintosh ou du drone
//////////////////////////////////////////////////////////////////////////////
// Codage adresse //
////////////////////////////////////////////////////////////////////////////
InetAddress ia = InetAddress.getByName(ip);
//////////////////////////////////////////////////////////////////////////////
// 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();
//
// Definir un objet à mettre dans new ReceiverThread() et dans new SenderThread()
// definition de Monobjet
Monobjet obj = new Monobjet(buf,ia,5556,true);
Monobjet obj1 = new Monobjet(buf,ia,5554,false);
// Gestion de mes Thread
Thread recois = new ReceiverThread(obj1);
Thread envoi = new SenderThread(obj);
envoi.start();
Thread.sleep(500);
recois.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