Új hozzászólás Aktív témák
-
sztanozs
veterán
Nem tudom miért, de az egyik megbújó lapon a böngészőben épp ez van nyitva (hetek óta):
https://wiki.python.org/moin/ParallelProcessing -
concret_hp
addikt
több mindent akarok indítani de különböző fileokat dolgoznak fel és az output is különböző fileokba megy, szóval nem akasztják egymást, alapvetően a std-re írogatott kiemenetek nem nagyon érdekelnek, bár némi hibatrackelés van belőve.
szóval a use case kb. az lenne, hogy elindítok egy keretet, van 5-6 gombom, mindegyik elindít egy feldolgozási folyamatot, úgy, hogy a folyamatok egymástól függetlenek, az utolsó lépésük az, hogy írnak egy fileba aminek mindig ugyanaz a neve az adott szálon. tehát tulképp azt is nézhetném, hogy mikor frissült legutóbb az adott file?
-
atesss
addikt
Ez a megoldás, ahol számol a feladat hosszával, azért elegánsabb.
Viszont van olyan funkcióm már most is, ahol megadott ideig kell csinálnia periodikusan a feladatot. Konkrétan megadott ideig (a script elején fixen megadom egy úgymond konstans-al, most egyelőre 10 másodperc) kell villogtatnia egy ledet, 300ms-onként. Onnantól kezdve, hogy egy bizonyos feltétel előfordult. Jelen esetben ha "hiba volt".
Ez erre akart lennie egy megoldási javaslatod ? :current_time = datetime.now() f() num_calls += 1 difference = current_time - first_called
Akkor már ezt is monotonic-al kellene, nem ?Asszem nekiállok akkor átírni mindenhol a programomban erre a Timer-es megoldásra.
Az új, Timer-es függvényeket akkor már mind a time.monotonic()-al csinálom.
És ha marad még azokon kívül bármi egyéb hely - bár nem nagyon fog valószínű - akkor ott is mind átalakítom a time.time()-ot time.monotonic()-ra. -
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)
-
atesss
addikt
Köszi a tippet, megnézem.
Viszont az jutott még eszembe, hogy ha az eszközöm egy Raspberry Pi, akkor a logolásnál az SD-kártya írási terhelésére azért lehet oda kellene figyelni.
Vagy lehet valami speciálisabb beállítás / másik modul, ami - ugyan adott esetben lassabb vagy más szempontból hátrányos - de cserébe jobban kíméli az SD-kártyát ?
Új hozzászólás Aktív témák
Hirdetés
- Hobby rádiós topik
- Luck Dragon: Asszociációs játék. :)
- Kompakt vízhűtés
- Vélemény: nem úgy tűnik, de Lip-Bu Tan most menti meg az Intelt
- Feketehalálra váltja a kékhalált a Microsoft
- Mobil flották
- sziku69: Fűzzük össze a szavakat :)
- Vicces képek
- Házimozi haladó szinten
- DOOM - The Dark Ages
- További aktív témák...
- Dell Latitude 5450 Intel Core Ultra 5 135U 4nm 32GB DDR5 érintőképernyős laptop Dell gari 2027.09.hó
- PlayStation 4/5 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- PlayStation 5/4 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX ONE/Series kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX Series S 512GB, 6 hó garanciával Bp-i üzletből eladó!
- Bomba ár! Dell Inspiron 5405 - Ryzen5 4500U I 8GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Garancia!
- Beszámítás! HP Z2 G4 Tower Workstation számítógép garanciával, hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32 RAM RTX 5060Ti 16GB GAMER PC termékbeszámítással
- Jogtiszta Microsoft Windows / Office / Stb.
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 4070Ti Super GAMER PC termékbeszámítás
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest