Project

General

Profile

Actions

Support Request #7654

closed

Problem manipulating and trasmitting data

Added by hidden almost 5 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Normal
Customer:
PORSCHE
Department:
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
Solved Issue
Product Issue Numbers:
Affected Products:
Platform:
Topic:
DeviceTB::Flexray
FAQ Links:

Description

Supportanfrage

Ich arbeite gerade daran ihren Flexray Signal Decoder in ADTF 2.14.1 für unsere Bedürfnisse anzupassen.

Nun habe ich folgendes Problem:
Ich habe eine Vielzahl von Signalen und möchte diese zum Teil 1 zu 1 übertragen und zum anderen durch konstante Werte überschreiben.
Ich habe hierfür eine while-Schleife geschrieben, aber leider wird die Simulation dadurch extrem langsam.
Durch den Befehl "m_pCoder->TransmitData(pData, &nDataSize);" werden nur modifizierte Werte überschrieben. Werte die aber konstant bleiben sollen, werden leider nicht übertragen.
Als Lösung habe ich mir folgende Möglichkeiten überlegt:

1.) Wir benötigen einen Befehl, der alle Werte künstlich auf modified setzt. Also eine Art: //m_pCoder->SetModifiedFlag(); // sets all modified flags

2.) Wir benötigen einen Befehl, der alle Werte ausgibt, egal ob überarbeitet oder nicht.

Wir können gerne am Donnerstagmittag ab 13:30 Uhr Skypen, dabei kann ich die die offenen Punkte aus der Mail #7646 erklären.

Nachfrage

ganz verstehe ich den Use Case noch nicht. Ein paar Dinge sind von den Begrifflichkeiten her unklar:
Was bedeutet bei euch
"Werte werden nicht übertragen": Wohin übertragen? Übertragen ist bei uns immer mit IPC/Netzwerk konotiert, aber darum gehts hier glaub ich nicht.
"Wir benötigen einen Befehl, der alle Werte ausgibt, egal ob überarbeitet oder nicht." Was heißt hier ausgeben? In ein Log schreiben, oder irgendwo ablegen? Ich vermute hier im ADTF Sample zu aktualisieren?
Wohin sollen die Flexray-Frames denn geschrieben/übertragen werden? Im Moment kenne ich folgende Kette:

ADTF DAT File -> Player -> Flexray Signal Filter (von Euch, mit Flexray Media Coder) -> ???

Soweit ich das erkenne wollt ihr an eurem Flexray Signal Filter wieder ADTF Samples mit Flexray Frames rausschreiben. Sollen die wieder auf einen "echten" Flexray geschrieben werden?

Mein naiver Ansatz wäre man legt sich in einer Hashmap Cycle und Slot IDs der zu modifizierenden Frames ab und leitet alle anderen Samples/Frames 1:1 am Ausgangspin wieder weiter.
Bei den zu modifizierenen Frames kopiert man die Samples in neue Samples und iteriert dann mit dem Coder über alle zu veränderten Signale und setzt die wie gewünscht um.

Bitte noch eine Erläuterung warum ihr bei den nicht modifizierten Signalen auch ein gesetzes Modified Bit haben wollt? Braucht ihr das im Fall auch für Frames in denen gar keine Signale verändert wurden?

Lösung

Ich habe einen eigenen Filter geschrieben, welcher im Low-Level die ganzen PDU´s überschreibt und weitergibt.
Durch das Low-Level ist die Performance deutlich verbessert als beim High-Level.

Actions

Also available in: Atom PDF