hallo,
ihr kennt doch bestimmt alle die AR-Drone, welches mit einem iphone bzw.
android gesteuert wird. In welcher Programmiersprache ist denn die
AR-Drone programmiert bzw. die Software vom Smartphone? In welcher
Sprache verständigen sie sich denn? gibt es irgendwo eine ausführliche
erklärung zum durchlesen?
gruß
jo
Wieso interessiert dich das? Die "Verständigungssprache" nennt sich
übrigens Protokoll.
Und eine Programmiersprache ist nur ein Mittel um Funktionalität
erzeugen und darstellen zu können. Ob es jetzt ASM, C (wahrscheinlich in
der Drohne) oder irgendwas anderes ist, ist doch eher egal.
jo schrieb:> In welcher Programmiersprache ist denn die> AR-Drone programmiert bzw. die Software vom Smartphone?
Die Software fürs Smartphone ist auf dem iPhone in Objective-C und auf
Android-Phones in Jva programmiert.
Naja, weil, wenn ich mal so überlege, die Ar-drone ist in C programmiert
und die software dazu in Java , wie ist es denn möglich das sie trotzdem
miteinander kommunizieren können.
Gruß
Jo
wie ist es möglich, dass du dich mit einem franzosen auf englisch
unterhältst? (ok, franzose und englisch ist ein schlechte beispiel)
ihr seid ja auch in verschiedenen sprachen "programmiert"...
ernsthaft:
ein protokoll kann man sich wie eine genau definierte sprache
vorstellen. solange beide gesprächsteilnehmer genau wissen was die
einzelnen "worte" bedeuten können sie die sprache verstehen, auch wenn
der gesprächspartner in einer vollständig anderen programmiersprache
geschrieben ist.
jo schrieb:> Naja, weil, wenn ich mal so überlege, die Ar-drone ist in C programmiert> und die software dazu in Java , wie ist es denn möglich das sie trotzdem> miteinander kommunizieren können.
Auf genau die gleiche Art, auf die auch ein Kisuaheli sprechender
Schachspieler mit einem Aborigine Schachspieler eine Partie Schach
spielen kann: sie haben sich auf einen Satz Symbole geeinigt, die von
beiden in der gleichen Art und Weise interpretiert werden.
Wie kannst du in Neapel auf einer Kreuzung wissen, was der Polizist in
Kruezungsmitte anordent? Du kannst ja gar kein Italienisch?
Ganz einfach: Du weisst, wenn er den Arm hebt, dann bedeutet das
'Achtung'. Siehst du seine ausgebreiteten Arme quer (und du den Mann
frontal), dann darfst du nicht fahren. Siehst du ihn von der Seite, dann
darfst du fahren.
Und das alles ohne dass du Italienisch kannst. Woher wißt du das? Das
hast du in deiner Sprache in der Fahrschule gelernt. Und der Polizist
hat das eben in seiner Sprache gelernt. Und da diese Symbole überall
gleich sind, versteht ihr euch.
Daniel F. schrieb:> wie ist es möglich, dass du dich mit einem franzosen auf englisch> unterhältst? (ok, franzose und englisch ist ein schlechte beispiel)
Aber wie kann sich eine Schwede mit einem Portugiesen unterhalten?
Auf Englisch. Das ist das Protokoll.
mfg.
jo schrieb:> Naja, weil, wenn ich mal so überlege, die Ar-drone ist in C programmiert> und die software dazu in Java , wie ist es denn möglich das sie trotzdem> miteinander kommunizieren können.
Die Kommunikation geht über Funk per WIFI/WLAN!
Den Funkwellen zwischen der Fernsteuerung und dem gesteuerten Gerät ist
es vollkommen schnurz, womit die ausgetauschten Funkbefehle für das WLAN
programmiert worden sind.
jo schrieb:> wie ist es denn möglich das sie trotzdem> miteinander kommunizieren können.
Wie ist es möglich, dass dich ein Kutschenpferd 'versteht' was du
willst?
Du sitzt auf der Kutsche und machst "Brrrrrr" und das Pferd bleibt
stehen.
Bedeutet "Brrrrrr" für dich in deiner Sprache irgendwas besonderes?
Nein.
Bedeutet "Brrrrrr" für das Pferd in seiner Sprache irgendwas besonders?
Nein.
Und trotzdem funktioniert es. Das Pferd hat gelernt, stehen zu bleiben,
wenn es "Brrrrrr" hört und du hast gelernt, "Brrrrrr" zu sagen, wenn du
willst das das Pferd stehen bleibt.
Was also hindert das iPhone, sagen wir mal den Zahlencode 42 zu
schicken, wenn die Anweisung "steigen" lauten soll, oder 89, wenn die
Drohne sinken soll?
Richtig. Nichts.
Man hätte auch Singalflaggen benutzen können und eine Webcam auf der
Drohne, die die Flaggen erkennt. Aber so ist es einfacher, wenn das
iPhone einfach nur verabredete Codes über die Funkstrecke schickt :-)
Karl Heinz Buchegger schrieb:> Wie kannst du in Neapel auf einer Kreuzung wissen, was der Polizist in> Kruezungsmitte anordent?
OT: Ist aber gut, daß Du hier drauf verzichtet hast, das naheliegende
Beispiel einer Verkehrsampel zu verwenden -- die nämlich hat in Neapel
eine ganz andere Bedeutung. Sobald auch nur ein bisschen Verkehr ist,
wird sie ignoriert, beachtet wird sie nur, wenn dabei kein anderer
(hinter einem fahrender) gestört werden könnte ...
alles klar. also ist es gar nicht so wichtig, dass die beiden nicht in
der selben Programmiersprache programmiert sind. sie verstehen sich ja
irgendwie :)
danke für die antworten.
gruß
jo
jo schrieb:> alles klar. also ist es gar nicht so wichtig, dass die beiden nicht in> der selben Programmiersprache programmiert sind. sie verstehen sich ja> irgendwie :)
Ich kenne die AR-Drohne nicht.
Aber: Versuch doch mal, sie in Pferdesprache zu steuern: Hüüüüaah,
brrrrr. ;-)
Eumel schrieb:> Die Programme auf deinem Pc sind doch auch in unterschiedlichen Sprachen> geschrieben :)
stimmt. habe ich gar nicht so drauf geachtet :)
In der Tat ist die Programmiersprache egal, in der die Firmware der
ARdrone und die zugehörige App geschrieben sind.
Es gibt jedoch auch spezielle Beschreibungssprachen für die
Datenkommunikation, z.B. ASN.1, aus denen auf der einen Seite Funktionen
in "normalen" Programmiersprachen wie C, C++, Pascal, Java o.ä.
generiert werden, und auf der anderen Seite auch Anforderungen an die
Kommunikationsschnittstelle definiert werden.
Dies sollte man jedoch nicht mit Beschreibungssprachen wie z.B. XML
verwechseln, die direkt als Datenformat bei der Kommunikation geeignet
sind. Jedoch gibt es gerade auch für XML Funktionsbibliotheken und
Programmgeneratoren, um die Erzeugung und Auswertung in
Programmiersprachen zu ermöglichen.
Ist aber alles völlig egal, die Prozessoren und Controller arbeiten ja
nicht mit der jeweils verwendeten Programmiersprache, sondern mit ihrem
eigenen Maschinencode, den außer ihnen selbst und den
Compilern/Assemblern nur Wenige verstehen... ;-))
...
jo schrieb:> Eumel schrieb:>> Die Programme auf deinem Pc sind doch auch in unterschiedlichen Sprachen>> geschrieben :)>> stimmt. habe ich gar nicht so drauf geachtet :)
Oder auch, um die Kommunikation zwischen verschiedenen Systemen
einzubinden:
Web-Dienste sind z.B. oft in PHP programmiert. Trotzdem kann man die
Webseiten auch auf einem Browser anschauen, der nicht in PHP
programmiert ist.
Und die Textausgaben, die ein in BASIC programmierter µC an die serielle
Schnittstelle schickt, können auch dann auf dem PC dargestellt werden,
wenn das Terminalprogramm in C++ geschrieben ist.