Új hozzászólás Aktív témák
-
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
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- HP EliteBook 855 G7 15,6" Ryzen 5 PRO 4650U, 16GB RAM, 256GB SSD, jó akku, számla, 6 hó gar
- Használt 1TB NVME SSD-k.
- HIBÁTLAN iPhone 14 Pro Max 128GB Deep Purple-1 ÉV GARANCIA - Kártyafüggetlen, MS4682
- NEC MultiSync V422 42" Monitor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


