Module HTTP

Jakopter peut s’interfacer avec un serveur HTTP pour communiquer les coordonnées du drone et recevoir des données (typiquement des positions à rejoindre).

Pré-requis

  • Avoir Curl sur sa machine
  • Pouvoir communiquer avec un serveur HTTP qui répond aux spécifications du paragraphe suivant

Utilisation

Jakopter va envoyer à l’adresse précisée son id, l’ordre qu’il accomplit(takeoff ou land), ses coordonnées (translations, angles d’Euler xyz, quaternion)  sous forme de requête POST. Jakopter va également récupérer les données à une adresse fournie et les mettre à disposition sous forme de chaîne de caractères, via des requêtes GET (avec l’id du drone en paramètre si vous communiquez avec plusieurs drones). Il est conseillé de mettre ces données sous format JSON, pour faciliter l’exploitation de ces données avec Lua grâce à Lua-json.

d.connect_network("http://192.168.1.42/donnees.html","http://192.168.1.42/reception.php")

chaine = d.read_string(chan_net_in, 0)

d.write_int(chan_net_out, 0, id)

d.write_string(chan_net_out, 4, "takeoff")

d.write_float(chan_net_out, 8+256, t_x)

d.write_float(chan_net_out, 8+256+4, t_y)

d.write_float(chan_net_out, 8+256+8, t_z)
d.write_float(chan_net_out, 8+256+12, r_x)
d.write_float(chan_net_out, 8+256+16, r_y)
d.write_float(chan_net_out, 8+256+20, r_z)
d.write_float(chan_net_out, 8+256+24, q_w)
d.write_float(chan_net_out, 8+256+28, q_x)
d.write_float(chan_net_out, 8+256+32, q_y)
d.write_float(chan_net_out, 8+256+36, q_z)