1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
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?
|