Új hozzászólás Aktív témák
-
cigam
titán
A két ciklus közé kellett ez a pár sor, és most úgy működik, ahogy szeretném.
# Ha a ch1 piros, kikapcsolja a ch1 zöldet
if 14 in powered_pins and 16 in powered_pins:
powered_pins.remove(16)
# Ha a ch2 piros, kikapcsolja a ch2 zöldet
if 4 in powered_pins and 26 in powered_pins:
powered_pins.remove(26)
# Ha a ch3 piros, kikapcsolja a ch3 zöldet
if 3 in powered_pins and 20 in powered_pins:
powered_pins.remove(20)
# Ha a ch4 piros, kikapcsolja a ch4 zöldet
if 2 in powered_pins and 21 in powered_pins:
powered_pins.remove(21)
Köszönöm a segítséget, útba igazítást!
-
kovisoft
őstag
Az if-ben dupla == az egyenlőségvizsgálat.
A json konfig mintában azt látom, hogy csak deviceId-k és azon belül pinNumber-ök vannak definiálva, ezzel a konfiggal leginkább csak hardkódolni tudod. De ha kiegészítheted a konfigot, akkor felvehetsz plusz attribútumokat, amikkel megadhatod, hogy az adott device vagy az adott device adott pin-je milyen másik device milyen pin-jével nem működhet együtt. Pl. a "pinNumber" mellé felvehetsz egy "conflictingDeviceId" és egy "conflictingPinNumber" mezőt. Ide beírod, hogy mivel nem tud együtt működni. A kódban pedig gpo["conflictingPinNumber"]-ként tudsz rá hivatkozni.
-
kovisoft
őstag
Én sem vágom, hogy itt ki kinek mikor mit küld, mit hív, stb. De szerintem az első cikus végzi a device_state-ben megkapott device-ok megadott pin-jeinek a bekapcsolását. És a powered_pins-ben összegyűjti azokat a pin-eket, amiket bekapcsolt. Utána a második ciklus pedig azt csinálhatja, hogy végigmegy az összes device összes pin-jén, és azokat kikapcsolja, amiket az első ciklus nem kapcsolt be. Azaz a végére pontosan azok lesznek bekapcsolva, amiknek bekapcsolva kell lenniük, az összes többi pedig ki lesz kapcsolva.
Tehát ha jól gondolom, akkor az első ciklusba tudnál betenni valami feltételvizsgálatot, hogy ha be tudod azonosítani azt az eszközt és a pin-eket, amik a zöld és piros lámpákat jelentik, akkor a zöldet ne kapcsolja be, ha a pirosat be kellene kapcsolni.
Nem tudom, meg lehet-e oldani mondjuk, hogy a konfigban hamarabb szerepeljen a piros lámpa pin-je, mert akkor mire a zöldre kerül a ciklus, addigra már lehetne látni, hogy a pirost be kell-e kapcsolni.
Ha ez nem járható út, akkor esetleg csinálhatsz az egész elé egy harmadik ciklust, ami kb. ugyanazt csinálja, mint a mostani első ciklus, de ténylegesen nem kapcsol pin-t, csak megjegyzi egy változóban, hogy a pirosat be kellene-e kapcsolni. És ha ez a változó be van állítva, akkor a bekapcsoló ciklusban kihagyja a zöldet.
Persze ehhez tudni kellene, hogy tényleg a processTallyData az a függvény, ami a kapcsolgatást végzi. Ezt mondjuk ki tudod próbálni, ha kikommentezed benne a bekapcsolást, és attól elmúlik a lámpák bekapcsolása.
-
kovisoft
őstag
Szerintem nem a setStates függvény az, amit keresel. Ha megnézed, a setStates és a GPO_off gyakorlatilag pont ugyanazt csinálja: kikapcsolja az összes bekonfigurált pint. És a setStates csak induláskor van egyszer meghívva, miután a konfig be lett olvasva.
Nem értem, hogy pontosan hogyan működik maga a program, hogyan lehet neki utasításokat adni, de szerintem a GPIO.output hívásokat kellene végignézned, hogy melyik lehet az, amelyik neked a lámpákat vezérli, és oda lehetne betenni egy olyan feltételt, hogy a zöldet ne kapcsolja, ha egyúttal a pirosat is kellene kapcsolnia. Ez valószínűleg a processTallyData lehet, mert az on_flash ránézésre egyetlen pint villogtat.
-
sztanozs
veterán
python.org-rol telepitsd, a Store-os asszem ki van herelve.
3.10/3.11-et nyugodtan hasznalhatod, nem sok olyan csomag van, aminek regebbi verzio kellene.
3.12 meg erosen fejlesztes alatt van es a csomagok (foleg a nagyobbak) csak lassan lesznek tamogatottak az uj verziokon.fejlesztesre en a helyedben pycharm-ot hasznalnek, nem VS-t, de lehet, hogy ez csak preferencia kerdese...
Új hozzászólás Aktív témák
Hirdetés
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Autós topik látogatók beszélgetős, offolós topikja
- Ingatlanos topic!
- Gumi és felni topik
- Autós topik
- Milyen billentyűzetet vegyek?
- Kertészet, mezőgazdaság topik
- S.T.A.L.K.E.R. 2: Heart of Chornobyl
- Kerékpárosok, bringások ide!
- Filmvilág
- További aktív témák...
- GAMER PC : RYZEN 5 4500 / 16GB DDR4 / ASUS RX 480 8GB / WiFi / Bluetooth / 512GB M.2 SSD / 500GB HDD
- Dell Latitude 7390, 13,3" FHD IPS , I5-7300U CPU, 16GB DDR4, 512GB SSD, WIN 11, ( olvasd végig )
- Acer PREDATOR HELIOS NEO 16 / i9-14900HX / RTX 4070 (140W) / 1 TB SSD / 240HZ
- Topping A70 Pro fejhallgató erősítő
- Topping D70 Pro Octo DAC
- AKCIÓ! ASUS TUF GAMING X670E-PLUS WiFi alaplap garanciával hibátlan működéssel
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9700X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Bomba ár! HP Elitebook Folio 9470M - i5-3GEN I 8GB I 256GB SSD I 14" I DP I Cam I W10 I Garancia!
- ÁRGARANCIA! Épített KomPhone Intel i9 14900KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest