Autor Thema: DeviceLink und OpenCockipts  (Gelesen 1401 mal)

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Offline Deichwart

  • Global Moderator
  • Flieger
  • *****
  • Beiträge: 598
Re: DeviceLink und OpenCockipts
« Antwort #20 am: 27.Dezember.2011, 18:58 »
Wäre es ein großer Aufwand, die UDP-Daten so über die serielle Schnittstelle zur Verfügung zu stellen, damit ich sie wie hier vearbeiten kann? http://www.rowalt.de/mc/avr/avrboard/04/avrb04.htm

Ich brauche also nur einen String (ich denke mal, dass kann die komplette Antwort des UDPs sein), denn ich dann entsprechend auswerte. Ok, wahrscheinlich müsste ich dann dennoch eine Frage an den UDP-Server stellen, damit er weiß, was ich haben möchte, oder?

Offline Deichwart

  • Global Moderator
  • Flieger
  • *****
  • Beiträge: 598
Re: DeviceLink und OpenCockipts
« Antwort #21 am: 28.Dezember.2011, 13:48 »
Ich habe heute vormittag mal versucht ein UDP-Client in C zu finden und am laufen zu bringen...

Diesen (und andere) bekomme ich nicht kompiliert: http://www.c-worker.ch/tuts/udp.php

Ich gebs für heut auf :(


Edit:
Zumindest in PHP bekomme ich es hin:
<?php
// Verbindung zum IL-2 UDP aufbauen
$connection fsockopen("udp://192.168.1.4:21100");

// Verbindung wird gepürft
if (!$connection)
{
echo 
"Keine Verbindung zum IL-2 UDP-Server<br>\n";
}
else
{
echo 
"Verbindung zum IL-2 UDP-Server hergestellt<br>\n";
}
echo 
"Anfrage senden<br>";
$text "R/32/";
$send fwrite($connection,$text);
echo 
"Anfrage empfangen<br>";
$send=fread($connection10);
echo 
"$send";
?>
« Letzte Änderung: 28.Dezember.2011, 14:41 von Deichwart »

Offline Artist

  • il2bugtracker.com
  • Flieger
  • ****
  • Beiträge: 336
Re: DeviceLink und OpenCockipts
« Antwort #22 am: 28.Dezember.2011, 17:11 »
Hallo Deichwart,
Zitat
Wäre es ein großer Aufwand, die UDP-Daten so über die serielle Schnittstelle zur Verfügung zu stellen, damit ich sie wie hier vearbeiten kann? http://www.rowalt.de/mc/avr/avrboard/04/avrb04.htm
Ich brauche also nur einen String (ich denke mal, dass kann die komplette Antwort des UDPs sein), denn ich dann entsprechend auswerte.
Nein, vermutlich kein Aufwand - aber ob es Sinn macht, ist die andere Frage:
Zitat
Ok, wahrscheinlich müsste ich dann dennoch eine Frage an den UDP-Server stellen, damit er weiß, was ich haben möchte, oder?

Dies hiesse, dass ein auf dem PC laufendes Programm vom Microcontroller über die UART Befehle entgegen nehmen können soll, die an IL-2 weitergibt und die Antworten dann wieder via UART an den Microcontroller zurück gibt. Das ist unnötig kompliziert, fehleranfällig und schwer zu debuggen  ;)

Ich sehe zwei mögliche Architekturen:

1. Alles auf dem Microcontroller. Mit dem ENC28J60 kannst Du offenbar ohne größere Probleme IL-2 direkt ansprechen und die Antworten auswerten (Ich weiss das natürlich nur google-theoretisch). Das hat die Vorteile, dass Du alles in Bascom machen kannst und keine weiteren (Vermittlungs-)Programme benötigst. Der Nachteil ist, dass Du alle Konfigurationsänderungen auch auf dem Microcontroller vornehmen musst.

2. Der Microcontroller beschränkt sich auschliesslich auf die (An)Steuerung der Instrumente und bietet eine Schnittstelle der Art "Lass Instrument A den Wert X anzeigen" (entweder UART oder Ethernet). Auf dem PC läuft dann ein Programm, das IL-2 abfragt und die eben genannte Schnittstelle füttert. Der Vorteil ist, dass es schön modular ist und schnell (im laufenden) auf dem PC konfigurierbar ist. Der Nachteil ist, dass Du zwei Module und zwei Programmiersprachen hast.

Zitat
Ich habe heute vormittag mal versucht ein UDP-Client in C zu finden und am laufen zu bringen...
Diesen (und andere) bekomme ich nicht kompiliert: http://www.c-worker.ch/tuts/udp.php
Hast Du eine MinGW-Installation? Dann schneide ich Dir aus YaDeLi einen (einfachen) funktionierenden IL2-Communicator (C++) heraus.

Artist

Offline Deichwart

  • Global Moderator
  • Flieger
  • *****
  • Beiträge: 598
Re: DeviceLink und OpenCockipts
« Antwort #23 am: 28.Dezember.2011, 17:25 »
Ja, MinGW hab ich installiert.

Ich schick dir per PN mal meine E-Mail-Adresse!

Offline Deichwart

  • Global Moderator
  • Flieger
  • *****
  • Beiträge: 598
Re: DeviceLink und OpenCockipts
« Antwort #24 am: 28.Dezember.2011, 18:05 »
Zu deinen Vorschlägen:
Ich hätte gedacht, dass der "Umsetzer" UART - IL-2 die einfachste Möglichkeit ist. Aber ich glaube dir, also werde ich dieses nicht weiter verfolgen.

zum 1.)
Ich hatte im Vorfeld schon gehofft, dass es mit dem ENC28J60 recht einfach geht. In anderen Foren wurde mir aber gesagt, dass es doch recht aufwendig sei, diesen einzurichten und dann mit Bascom Daten senden u empfangen. Daher habe ich das erstmal nach hinten geschoben.

zum 2.)
Die wohl zur Zeit eleganteste Lösung, denke ich. Nachteil gegen 1.) wäre der, dass man einen zusätzlichen PC benötigt, aber da tuts wohl ein alter XP-Rechner.
So wie ich dich verstehe, würde das Programm im PC regelmässig "alle" Daten abfragen und an den uC schicken, der dann für sich auswertet, wohin diese sollen. Ich denke mal, das wäre machbar.

Wäre es für dich ein großer (Zeit-)aufwand, ein solches Programm zu schreiben?

Offline Artist

  • il2bugtracker.com
  • Flieger
  • ****
  • Beiträge: 336
Re: DeviceLink und OpenCockipts
« Antwort #25 am: 28.Dezember.2011, 18:29 »
Die wohl zur Zeit eleganteste Lösung, denke ich. Nachteil gegen 1.) wäre der, dass man einen zusätzlichen PC benötigt, aber da tuts wohl ein alter XP-Rechner.
Wieso denn das? Mein YaDeLi läuft ja auch auf dem gleichen Rechner wie IL-2 (und das muss ja auch noch die angeschlossen USB-Game-Controller pollen...).

Zitat
So wie ich dich verstehe, würde das Programm im PC regelmässig "alle" Daten abfragen und an den uC schicken, der dann für sich auswertet, wohin diese sollen. Ich denke mal, das wäre machbar.
Nicht alle! Nur die konfigurierten. Ich dachte das so: Man konfiguriert im PC-Programm, welche Daten an den uC gesendet werden sollen. Z.B. "IAS an Instrument A": Das Programm fragt dann alle 20 ms IAS bei IL-2 an und sendet den erhalten Wert an die Schnittstelle des uC ("Setze Instrument A auf den Wert 320"). Das macht es für alle konfigurierten Werte. Die Kür wäre dann, wenn der uC Auskunft über seine verfügbaren Instrumente (und deren Wertebereich) geben könnte  :D

Zitat
Wäre es für dich ein großer (Zeit-)aufwand, ein solches Programm zu schreiben?
Kommt drauf an. Heute verweigere ich dazu die Aussage ;)

Offline Deichwart

  • Global Moderator
  • Flieger
  • *****
  • Beiträge: 598
Re: DeviceLink und OpenCockipts
« Antwort #26 am: 28.Dezember.2011, 19:22 »
Ja, so meinte ich das mit "alle" (deswegen die " ")

Mir viel gerade aber noch was ein: wieviele Servos kann ein uC steuern, bzw. wieviele uC kann ich an den seriellen Port hängen?

Da wäre die Lösung mit dem ENC28J60 natürlich eleganter und flexibler...

Offline Artist

  • il2bugtracker.com
  • Flieger
  • ****
  • Beiträge: 336
Re: DeviceLink und OpenCockipts
« Antwort #27 am: 28.Dezember.2011, 20:27 »
Ja, so meinte ich das mit "alle" (deswegen die " ")
Ah! :) Gut!

Zitat
Mir viel gerade aber noch was ein: wieviele Servos kann ein uC steuern, bzw. wieviele uC kann ich an den seriellen Port hängen?
Keine Ahnung...
Zitat
Da wäre die Lösung mit dem ENC28J60 natürlich eleganter und flexibler...
Auf jeden Fall - schon alleine deshalb, weil aktuellere Boards sowas wie serielle Ports gar nicht mehr haben...

Artist.

PS: IL-2 Communicator nicht mehr heute...

Offline Deichwart

  • Global Moderator
  • Flieger
  • *****
  • Beiträge: 598
Re: DeviceLink und OpenCockipts
« Antwort #28 am: 28.Dezember.2011, 21:14 »
Seufz.... also erstmal wieder in Richtung ENC googeln... vielleicht denke ich auch nur zu kompliziert und es ist doch ganz einfach.

Offline Artist

  • il2bugtracker.com
  • Flieger
  • ****
  • Beiträge: 336
Re: DeviceLink und OpenCockipts
« Antwort #29 am: 29.Dezember.2011, 16:37 »
Deichwart,

Zitat
Hast Du eine MinGW-Installation? Dann schneide ich Dir aus YaDeLi einen (einfachen) funktionierenden IL2-Communicator (C++) heraus.
Ist eben an Dich abgegangen.

Seufz.... also erstmal wieder in Richtung ENC googeln... vielleicht denke ich auch nur zu kompliziert und es ist doch ganz einfach.
Ist es auch: Am Ende sind es meist nur mehr oder minder geschickte Aufrufe einiger Bibliotheksfunktionen  :D Das komplizierteste daran wird wohl sein, dass Dein uC-Programm ereignisgetrieben wird arbeiten müssen: Die Daten kommen ja nicht auf Abruf, sondern so wie das PC-Programm sie 'wirft'...

Artist