Új hozzászólás Aktív témák
-
asuspc96
senior tag
Helló,
Beszúrom ide is a kérdésem, hátha itt jobban járok vele: https://prohardver.hu/tema/raspberry_pi/hsz_38185-38185.html
-
asuspc96
senior tag
"En meg a harverhez ertek kevesbe, mennyi a relek kapcsolasi ideje?"
Konkrét kapcsolási időt nem tudok, de gondolom elég gyors, mert kattog mint az állat
Ezt vettem:
[4 csatornás optocsatolós relémodul Raspberry PI-hez]@kovisoft
"Így meg ha eltérő futásideje van az egyes threadeknek, akkor mindegyik meg fogja várni a leglassabbat, és csak azután fognak újraindulni."
Az egyáltalán nem gond, ez lenne a cél, h mindegyik megcsinálja a maga kis melóját, majd ha az összes végzett, és megkapták a vezérlő jelet, akkor újra kezdhetik
Fontos, hogy egyszerre kezdjék újra
Szóval ez a joinolós, meg listakitörlős megoldás nekem tetszik amit javasoltál a (#2773)-banMég egy kérdés ezzel kapcsolatban...ha listára hívunk
clear()-t, illetve ha újra inicializáljuk= [], akkor az ugyan az ?
Mármint arra gondolok, mint C++-ban, hogy ha újra assignolok valamit a változóhoz, és pl előtte nem toltam rá delete-t, akkor memóriaszivárgás lesz ? -
asuspc96
senior tag
"A kododbol kiindulva es legegyszerubben, berakod egy ciklusba
Mert ahogy latom, vegigfut a feladatokon aztan kilep a szalbol."
És a fentebb vázolt megoldásoddal, ugyan azok a szálak kezdenek újra munkába ?
Arra gondolok ugye, hogy a listában ugye azokra athread-ekre van meg a referencia...ebből indul ki az okfejtésem. Szóval arra akarok kilyukadni, hogy így nem fognak egy idő után elszaporodni a szálak ?
Ha jól értem a későbbi leírásod, ami nekem úgymond a szenzorból érkező jel, az lesz itt a kódodban a
Vezerlo ciklus-ban lévő feltétel, ha a szenzor igazat ad, indulhat újra a ciklus (?)"Bocs ha ezt mar tudtad, nem derult ki szamomra hogy mennyire vagy szakertoje a temanak."

Érdekel minden infó, szívom magamba mint a szivacs...amúgy csak ilyen hobbikódolós
"Mas: a print utasitas is lassit a fontos idoziteseket elronthatja. Ilyenkor szoktak kulon szalban/processzben futo naplozasba beletenni az esemenyeket..."
És akkor hogy szedem ki az infót az egyes szálakból, hogy éppen hol tart ?
Gondolom akkor kéne valami szinkronizációs lépés is. Arra gondolok, hogy egyik szálból a másikba csak úgy nem fogok tudni átdobni infót. -
asuspc96
senior tag
"Nalunk a vezerlo szoftvernel par ms a limit ami alatt reagalni kell az esemenyekre. Tehat meg nalunk sem kell egybol lekezelni, pedig GPS-t es hidraulikat kell kezelni."
Itt is konkrétan az utóbbira kellene. Lesz 4db hidrauliskus munkahenger, és azokat kell majd irányítani."Nem akartad elorol kezdeni ha vegigertel?"
Ez az egész végülis majd munkadarabokat fog csinálni, és az a terv, hogy amint végez majd, mozgásérzékelővel/lézerkapuval érzékelem, ha kiesett a szerszámból a termék, és egy amolyan "callback"-szerűen az fogja újra engedélyezni az új kört"Nem akartad elorol kezdeni ha vegigertel?"
Ezt hogyan lehetne megvalósítani amúgy ?
Úgyis kelleni fog majd
-
asuspc96
senior tag
Jelenleg most így valósítottam meg:
def work_cycle(self, up_times, sleep_times, gpio, id):for i in range(len(sleep_times)):down = float(sleep_times[i])print(id, '. sleeping to ', down, ' sec')gpio.off()sleep(down)if i < len(up_times):high = round(float(up_times[i][1]) - float(up_times[i][0]), 2)print(id, '. going high to ', high, ' sec')gpio.on()sleep(high)def start_work(self):for i in range(len(self.relay_sleep_times)):self.relay_threads.append(threading.Thread(target=self.work_cycle,args=(self.relay_up_times[i + 1], self.relay_sleep_times[i], self.relay_gpios[i], i)))for i in range(len(self.relay_threads)):self.relay_threads[i].start()Most az első teszteknek alávetettem tegnap, és egészen azt csinálja, amit szeretnék, úgyh nincs nagy para (egyenlőre)
-
asuspc96
senior tag
válasz
justmemory
#2760
üzenetére
igen, a
time.sleep()benne lesz a megoldásban, a fentebb írtsleep time-okkal, annyi biztos.
De akkor kipróbálom ezt a threading-et.
Erre tökéletes a beépítettthreadinglibrary, vagy ajánlatosabb valami mást nézni ?
(Nem vagyok nagy pythonos, azért érdeklődöm) -
asuspc96
senior tag
válasz
justmemory
#2758
üzenetére
A szálakkal az a baj, mint ahogy említettem fentebb is, hogy nem biztos, hogy az időbeni lefutása az úgy lesz garantálva, ahogy én szeretném.
Lehet, hogy az ütemező éppenséggel másképp fogja csinálni...de természetesen lehet, h igazad van
Mire gondolsz egész pontosan ?
-
asuspc96
senior tag
Helló,
Tudtok valami módszert arra, hogy hogyan lehet egyszerre párhuzamosan elindítani 4 munkafolyamatot ?
Hellyel közzel valamilyen szinten köze van a szálakhoz amire gondolok, de mégse teljesen.Leírom a konkrét problémám, h lássátok a kontextust:
Adva van egy raspberry, illetve egy relémodul amelyet az előbb említett eszközzel szeretnék vezérelni. A cél az lenne, hogy megadok intervallumokat, pl:1-3, 5-11, 14-28, 32-76, 81-90
0-2, 3-8, 9-14, 16-38
2-8, 9-16, 19-23, 24-45
10-12, 14-18, 21-24, 25-87Majd ezek alapján legenerálom a számomra hasznos infókat:
relay times: 1 : [['1', '3'], ['5', '11'], ['14', '28'], ['32', '76'], ['81', '90']]sleep times: 1 : ['1', 2, 3, 4, 5, 10]relay times: 2 : [['0', '2'], ['3', '8'], ['9', '14'], ['16', '38']]sleep times: 2 : ['0', 1, 1, 2, 62]relay times: 3 : [['2', '8'], ['9', '16'], ['19', '23'], ['24', '45']]sleep times: 3 : ['2', 1, 3, 1, 55]relay times: 4 : [['10', '12'], ['14', '18'], ['21', '24'], ['25', '87']]sleep times: 4 : ['10', 2, 3, 1, 13]total work cycle time: ['100']
A lényeg az lenne, h a 4db relét egyszerre elindítom, és az időzítéseknek megfelelően egy időben párhuzamosan működnek.Nézegettem egy megoldást erre, amivel szimpatizáltam, de nem vagyok benne biztos, h ezzel a megoldással garantálva lenne az időbeliség:
[https://github.com/celery/celery]Van erre valami megoldás ?
Új hozzászólás Aktív témák
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Casco és kötelező gépjármű felelősségbiztosítás
- Melyik tápegységet vegyem?
- Autós topik látogatók beszélgetős, offolós topikja
- Motorola Signature - mielőtt aláírnád...
- Futás, futópályák
- Meghozta az első, memórapánikból eredő áremelését az NVIDIA
- A fociról könnyedén, egy baráti társaságban
- Synology NAS
- PlayStation 5
- További aktív témák...
- Bomba ár! Lenovo ThinkPad X13 G1- i7-10610U I 16GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- Honor 200 / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- darkFlash ZR12 Darkstorm
- 214 - Lenovo LOQ (15ARP9) - AMD Ryzen 7 7435HS, RTX 4050 (ELKELT)
- SK Hynix 16GB és 32GB DDR4 so dimm 3200MHz modulok számlával, 6 hó garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



