Project

General

Profile

Actions

Support Request #12409

closed

Read each sample from queue and transmit at once

Added by hidden over 3 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Customer:
CARIAD
Department:
D/CS-G33
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
Solved Issue
Product Issue Numbers:
Affected Products:
Platform:
Windows 10 64bit
Topic:
ADTF::FilterSDK
FAQ Links:

Description

Supportanfrage

Ich habe ein Plugin auf Basis cTriggerFunction, welches Rohdaten am Eingang in Ausgangs-Samples umsetzt. Die Eingangsdaten können gelegentlich genug Informationen enthalten, um mehrere Ausgangs-Samples zu generieren:

tResult PluginX::Process(tTimeStamp i_tmTimeOfTrigger)
{
    while(reason) {
       ...
       RETURN_IF_FAILED(TransmitData(nOutputTimeStamp));
    }
}

Hier kann man feststellen, daß die in einem Rutsch innerhalb der Schleife versendeten Daten im nachfolgenden Filter nicht allesamt ankommen, sondern nur das erste (?) versendete Sample.

Wie geht man in einem solchen Fall vor? Muß ich eine Queue anlegen, die mittels externem Trigger (z.B. Timer) Sample für Sample abgebaut wird?

Lösung

While-Schleife über GetNextSample() verwenden.
Es wurde nur ein einfaches GetNextSample aufgerufen. Die Samples werden also in diesem Fall nicht einzeln getriggert, sondern müssen aus der Queue allesamt rausgelesen werden. Das fiel bisher nicht auf, da zuvor nur ein Transmit getätigt wurde.

Actions #1

Updated by hidden over 3 years ago

  • Status changed from New to In Progress
  • Topic set to ADTF::FilterSDK
Actions #2

Updated by hidden over 3 years ago

Hi Patrick,

hmm, ich kann nicht ganz nachvollziehen was du meinst. Also wenn du 10 Samples schreibst sollten bei den nachfolgenden Filtern auch 10 Samples aus den Readern rauskommen.

Wie sieht denn das Auslesen bei Euch in den Filtern aus? Macht ihr da eine While-Schleife über GetNextSample()?

Grüße,

Martin

Actions #3

Updated by hidden over 3 years ago

Der Tip mit der while-Schleife trifft ins Schwarze: Es wurde nur ein einfaches GetNextSample aufgerufen. Die Samples werden also in diesem Fall nicht einzeln getriggert, sondern müssen aus der Queue allesamt rausgelesen werden. Das fiel bisher nicht auf, da zuvor nur ein Transmit getätigt wurde.

Das Ticket kann dann geschlossen werden. Danke.

Actions #4

Updated by hidden over 3 years ago

  • Status changed from In Progress to To Be Closed
  • Resolution set to Solved Issue

Wunderbar!

Actions #5

Updated by hidden over 3 years ago

  • Project changed from 11 to Public Support
  • Subject changed from Trasmit von mehreren Samples in einem Rutsch to Read each sample from queue and transmit at once
  • Description updated (diff)
  • Private changed from Yes to No
Actions #6

Updated by hidden over 2 years ago

  • Customer changed from Car.SW Org. to CARIAD
Actions #7

Updated by hidden over 2 years ago

  • Status changed from To Be Closed to Closed
Actions

Also available in: Atom PDF