Strona 1 z 1
Przekazywanie danych pomiędzy pętlami
: 30 wrz 2020 21:36
autor: mnawotka
Cześć forumowicze.
Zagwostka taka nad rozwiązaniem optymalnym. Odczyt danych z 4 urządzęń (po rs232), rozbite na 4 pętle, obrótka danych w pętli nr 5. Nie są to pomiary dynamiczne, odczyt co 1-2 sekundy. Dane do 5 pętli przekazywać ?
- 4 kolejki do piątej pętli ?
- global variable ?
- channels ? (nie wykorzystywałem ich jeszcze)
- jakiś lepszy sposób ?
Re: Przekazywanie danych pomiędzy pętlami
: 30 wrz 2020 23:15
autor: matowc1991
Kolejki wydają się zasadniczo dobrym pomysłem, global variables odradzam, a channele w większości to też kolejki, tylko że w interesującym opakowaniu

Nie znam szczegółów aplikacji, ale skłaniałbym się ku channelom, choćby ze względu na to, że byłaby okazja je poznać.
Re: Przekazywanie danych pomiędzy pętlami
: 03 paź 2020 19:31
autor: Pieczywo
Ciężko bez wymagań wydajnościowych określić co będzie najlepszym rozwiązaniem. Jeśli interesuje nas ostatnia wartość bo odczyt jest dużo częstszy od wyniku przetwarzania to kierowałbym się w stronę zmiennych lokalnych/globalnych (globalnych używasz tylko w przypadku gdy to niezbędne tj z kilku plików vi bez opcji przekazania danych do nich w inny sposób. Jeśli odczyty są rzadkie, przetwarzanie szybkie i zależy nam na przetworzeniu wszystkich odczytanych wartości to kolejki.
Re: Przekazywanie danych pomiędzy pętlami
: 28 paź 2020 15:39
autor: szyms
A czemu nie jedna kolejka do piątej pętli?
Re: Przekazywanie danych pomiędzy pętlami
: 29 paź 2020 16:28
autor: pawhan11
Zależy od pętli analizującej dane.
- Jeżeli analiza dopuszcza zgubienie/zdublowanie jakiejś próbki może być global variable albo notifier
- Jeżeli zgubienie próbki nie wchodzi w grę to kolejki lub UE. Czy 4 kolejki/UE czy 1 kolejka/UE zależy od preferencji i logiki w pętli przetwarzającej dane. Przy odczycie rzędu 1-2 sek rozważania co będzie bardziej optymalne nie mają sensu.