Zitat von
Manado:
Also, ist eine Komponente dasselbe wie eine Klasse, die ich dann irgendwie einbinde, ( oben unter uses ...)
Die Frage was eine Komponente ist müsste ich jetzt schon etwas ausführlicher beantworten. Meine Warnung vorab, lass Dich nicht davon verwirren. Bei TComPort handelt es sich um eine Bibliothek. Es gibt eine Klasse (die für Dich wichtig ist), aber auch mehr. So findest Du in einer
Unit eine imperative Prozedur (die dann das auflisten aller Ports ermöglicht). Zudem gibt es noch andere Klassen (die Du aber nicht für die Kommunikation benötigst). Am einfachsten ist es, wenn Du die Klasse installierst (in die Entwicklungsumgebung integrierst). Dann hast Du ein eigenes Tab in der Komponenten-Palette (da wo Du Dinge wie Buttons und Labels findest).
Der Begriff der Komponente hingegen müsste allgemein etwas anders verstanden werden. Im Sinne der Informatik würdest Du Komponente immer mit dem Begriff Komponentenmodell verbinden. Eine Komponente ist einfach ein Stück Software, dass einem Komponentenmodell genügt. Das eigentlich wichtige ist, dass eine Komponente sich mit anderen Komponenten verbinden lässt (der Begriff leitet sich aus dem lat. Zusammensetzen ab). Die Idee hinter Komponenten ist, dass Du fertige Bausteine erstellen kannst und diese wie Lego zu einem Programm zusammensetzt. Damit das ganze klappt, musst Du natürlich wissen wie man zwei Komponenten zu einer neuen zusammensetzt. Dazu müssen die irgendwie kombiniert werden, was wiederum eine gewisse Kompatiblität erfordert. Der eigentliche Sinn eines Komponentenmodells besteht darin, dass hier Schnittstellen festgelegt werden. Eine Schnittstelle ist das, was nach außen sichtbar ist. Eine Komponente hat ein geheimes Innenleben und eben eine solche Schnittstelle. Die Schnittstelle beinhaltet dann einfach die Beschreibung dessen, was die Komponente leistet (was für Funktionen gibt es, was leisten die Funktionen, was für Parameter, was für Rückgabewerte).
Der Vorteil besteht dann darin, dass Du einfach Komponenten zu neuen Komponenten (/Programmen) zusammensetzen kannst. Dazu musst Du natürlich noch Code schreiben, der die Komponenten verbindet (aber das ist nebensächlich). Wichtig ist, dass eben das Innenleben uninteressant/geheim ist. Solange Du die Schnittstelle kennst, weißt Du alles was Du wissen musst (was kann die Komponente und wie verwendet man das was sie kann). Die eigentliche Implementierung kannst Du hingegen austauschen, von außen wird das keiner merken. Damit kannst Du dann auch einfach fremde Komponenten zukaufen und profitierst dann vom know-how anderer. Über die Schnittstellen kannst Du solche Komponenten einfach in dein Programm integrieren.
Ja, in Delphi wird der Begriff der Komponente häufig auch im Zusammenhang mit Klassen gebraucht, die Nachfahren von TComponent sind. Zudem gibt es eben noch solche Klassen, die in der Komponenten-Palette (glaube die heißt so) registriert werden können (wie Buttons oder Label halt). An sich ist das aber etwas abweichend vom allgemeinen Begriff einer Komponente. So sind Klassen eigentlich immer Komponenten, da nur der Zugriff auf öffentliche Elemente möglich ist und auch die Interaktion (wie wird eine Methode aufgerufen, welche Parameter hat sie, ...) ist für jede Programmiersprache festgelegt (es gibt aber auch Programmiersprachen übergreifende Komponentenmodelle).
Ist wie gesagt auch nicht weiter wichtig. Hab den Begriff etwas unglücklich gewählt. Es handelt sich zwar auch bei TComport um eine Komponente, Du kannst es aber auch einfach mit einer
Unit gleichsetzen (CPort), die dir Funktionen und Klassen zur Verfügung stellt, die Du verwenden kannst.
Zitat von
Manado:
Und ist das dann im UART-Protokoll? oder gibt es für RS232 sowieso nur eines, was der µC halt UART nennt, und das universal von RS232 zu RS232 erkennt ,egal ob PC oder µC dahinter hängt!
Hier musst Du etwas unterscheiden. Eine UART ist ein Baustein, der für die Universelle Asychrone Kommunikation (Receiver/Tranceiver) zuständig ist. Kann jetzt sein, dass ich mich irre und UART für etwas anderes stand, aber es geht wirklich allgemein um die Asynchrone Kommunikation.
RS-232 hingegen ist eine sehr spezielle Form der Asynchronen Kommunikation. Hier ist das verwendete Protokoll festgelegt. Was letztlich dahinter steckt (ob PC oder µC) kann nicht festgestellt werden (selbst im PC kannst Du ja einen speziellen µC verwenden). Bei RS-232 werden also Daten (Bytes) auf eine bestimmte Art und Weise übertragen. Das wie wird dabei durch die Kommunikationsparameter (Stopbits, Baudrate, Flusskontrolle,..) bestimmt. Werden hier auf beiden Seiten die gleichen Parameter verwendet, so kannst Du Dir die Kommunikationspartner als Komponenten vorstellen
Du hast nach außen nur eine Schnittstelle (RS-232), was dahinter passiert (wo die Daten landen, wie sie interpretiert werden) ist völlig verborgen. RS-232 legt nur fest wie die Daten übertragen werden.
Hoffe es hat etwas geholfen.