Artefakte der Masterarbeit: =========================== + Netzwerk-Protokoll: - Übertragung eines Xoraya-Plugins auf die Xoraya-Hardware. - Steuerung der Plugins auf der Xoraya-Hardware von CanEasy aus: - Start - Stop - Status - Übertragung von Bus-Aufzeichnungen von der Xoraya-Hardware an CanEasy - Übermittlung geänderter Sende-Signale von CanEasy aus an das entsprechende Xoraya-Plugin - Aktivierung und Deaktivierung von Sende-Nachrichten - Manuelles Senden von Nachrichten + Xoraya Plugin Generator: - CanEasy Plugin - Generiert C/C++ Quellcode aus der CanEasy-Datenbasis, d. h. der Bus-Definition mit Steuergeräten und Messages - Übersetzt den Quellcode in ein Shared Object für das Zielsystem (cross-compile) - Übergibt shared object an Adaptor + Xoraya Adaptor: - CanEasy Plugin - Übernimmt Datenaustausch zwischen CanEasy und Xoraya-Hardware - Implementiert Protokoll - TCP-IP-Socket-Kommunikation über Ethernet - Sendet Plugins, Steuernachrichten, Signaländerungen und Aufzeichnungsanfragen an den Connector - Empfängt Status-Meldungen und Aufzeichnungen vom Connector und leitet diese an CanEasy weiter - Leitet manuelle Sende-Anforderungen an den Connector weiter + CanEasy Connector: - Läuft auf Xoraya-Hardware - Übernimmt Datenaustausch zwischen Xoraya-Hardware und CanEasy - Implementiert Protokoll - TCP-IP-Socket-Kommunikation über Ethernet - Nutzt X2E embedded SDK - Empfängt Plugins, Steuernachrichten, Signaländerungen und Aufzeichnungsanfragen vom Adaptor - Sendet Status-Meldungen und Aufzeichnungen an den Adaptor - Empfängt manuelle Sende-Anforderungen vom Adaptor + Executor - Läuft auf Xoraya-Hardware - Instanziiert, startet und stopt Xoraya-Plugins - Übergibt geänderte Sende-Signale an das entsprechende Plugin - Aktiviert oder deaktiviert Steuergeräte und Sende-Nachrichten in Plugins - Empfängt Aufzeichnunsanfragen vom Connector - Liest angefragte Bus-Aufzeichnungen vom Recorder und übermittelt diese an den Connector - Nutzt X2E embedded SDK - Leitet manuelle Sende-Anforderungen an das entsprechende Plugin weiter + Xoraya-Plugins - Zeichnen auf dem empfangene Nachrichten für Steueregeräte, die in der CanEasy-Datenbasis als "real" definiert wurden, auf. - Leiten aufgezeichnete Nachrichten an den Recorder weiter - Senden zyklische Nachrichten auf den Bus für Steueregräte, die in der CanEasy-Datenbasis als "simuliert" definiert wurden. - Aktivieren oder Deaktivieren Steuergeräte oder Sende-Nachrichten - Versenden azyklisch Nachrichten auf Anforderung - Nutzen X2E embedded SDK + Recorder - Speichert aufgezeichnete Nachrichten dauerhaft - Liefert Aufzeichnungen an den Executor - Nutzt X2E embedded SDK - evtl. sqlite + Driver Interface - evtl. - Läuft auf Xoraya-Hardware - Nutzt X2E embedded SDK - Einfacher Wrapper für Plugins, entkoppelt Plugins von X2E-embedded-API + Timer Service - Läuft auf Xoraya-Hardware - Nutzt X2E embedded SDK - Zyklische Ausführung (jede Millisekunde), erhöht alle registrierten Zähler - Registrierung eines Zählers für eine Nachricht + API - Definiert Schnittstelle für Xoraya-Plugins - start - stop - setSendSignal - getStatus - activeMessage / deactivateMessage - activeECU / deactivateECU - Definiert Schnittstelle für Recorder - saveRecord - getRecords - Definiert Schnittstelle für Executor - createPlugin - startPlugin - stopPlugin - getStatus - Definiert Schnittstelle für Connector - sendStatus - sendRecords Offene Fragen: ============== + Scheduling für Sende-Nachrichten - Ein Millisekundenzähler pro Sende-Nachricht - Zentraler Timer erhöht pro Millisekunde den Zähler aller zyklischen Sende-Nachrichten - Plugins überprüfen jede Millisekunde den Zähler jeder Sende-Nachricht. Sende-Nachrichten mit vollem Zähler werden gesendet und der Zähler auf Null gesetzt Fragen an X2E: ============== - Wie sind zyklische Tasks (Timer, Nachrichtenversand) am besten zu realisieren? (Standard-Signal? setitimer, timer_create ) - Aufteilung in Threads sinnvoll? Pro Bus, pro ECU?