Új hozzászólás Aktív témák
-
atesss
addikt
válasz
cousin333
#2829
üzenetére
No akkor most ismét nekiállok megírni a hsz-t. Tegnap du. emiatt a warning miatt elveszett amit írtam...
Köszi az ötletet, nekiálltam a NamedTuple-t használni. Egyelőre a következő két függvényemben:def i2c_io_namer(i2c_io_readed_array_reversed):global MICROSWITCH_COUNTMICROSWITCH_COUNT = 4global MICROBUTTON_COUNTMICROBUTTON_COUNT = 2global NC_COUNTNC_COUNT = 2i2c_io_pinout = namedtuple('I2C_IO_PortA', ['Switch1', 'Switch2', 'Switch3', 'Switch4','Button1', 'Button2', 'NC7', 'NC8'])# sample: i2c_io_readed_array: [True, True, True, True, False, True, False, False]i2c_io_state = i2c_io_pinout(*i2c_io_readed_array_reversed)return i2c_io_statedef i2c_io_printer(i2c_io_readed_array_reversed, i2c_io_state):global i2c_io_readed_array_reversed_previousprint("----")print("I2C_IO portA állapot:", i2c_io_readed_array_reversed)# for y in range(len(i2c_io_readed_array_reversed)):# print ("I2C_IO_PortA: pin", y+1, "actual value: ", i2c_io_readed_array_reversed[y])print("Port állapot tuple adattípussal: ")print(i2c_io_state)print("Kapcsolók állapota: ", i2c_io_state[0:MICROSWITCH_COUNT])print("Nyomógombok állapota: ", i2c_io_state[MICROSWITCH_COUNT:(MICROSWITCH_COUNT+MICROBUTTON_COUNT)])print("Nem használt pinek állapota: ", i2c_io_state[(MICROSWITCH_COUNT+MICROBUTTON_COUNT):(MICROSWITCH_COUNT+MICROBUTTON_COUNT+NC_COUNT)])for i in range(len(i2c_io_readed_array_reversed)):if (i2c_io_readed_array_reversed[i] != i2c_io_readed_array_reversed_previous[i]):print("--")print("Változás az IO bemeneteken: I2C_IO Pin number", i, ": from", i2c_io_readed_array_reversed_previous[i], "to", i2c_io_readed_array_reversed[i])i2c_io_readed_array_reversed_previous = i2c_io_readed_array_reversedAmi plusz, hogy ennek az I2C-s IO modulnak (PCF8574) van egy Interrupt kimenete is. És ezt most bekötöttem a Raspberry Pi egyik GPIO bemenetére, és szeretném használni.
Ez az Interrupt Pin akkor változik meg (1-ről 0-ba megy), ha változás történt a PCF8574 bármelyik bemenetén.
A Raspberry-n csak ezt az egy GPIO pint-t figyelném pollingolással, és csak akkor állnék neki I2C-n keresztül kiolvasni az aktuális értékeket, ha bármelyikben egy változás volt.
Maga a funkció működik (bár valamiért kicsit "lassan" áll vissza miután csináltam egy kiolvasást, de a célnak most ez mégis megfelel, a gyakorlatban úgy néz ki). De ez az átalakítás még folyamatban van a programkódomban.De sajnos a korábbi értékkel való összehasonlítást sem tudtam még megoldani a tuple-ön keresztül.
Van amit nem értek még teljesen róla.Az i2c_io_pinout = namedtuple ... utasítással jól gondolom, hogy én egy "i2c_io_pinout" típust hozok létre ?
És utána a i2c_io_state = i2c_io_pinout(*i2c_io_readed_array_reversed) pedig létrehoz egy i2c_io_pinout típusú "változóból"(mi itt erre a helyes szó?) egy konkrét példányt ?Hogy tudnék elérni egy adott számú "kulcsnevet" ?
Tehát nem hogy mi az értéke, hanem hogy mi a neve az i -edik elemnek. ("Switch2" vagy "Button1" , stb.)
Az i2c_io_state[i] az értéket adja meg csak sajnos.
A i2c_io_pinout[i] pedig hibát dob, hogy ez egy nem iterálható típus. -
atesss
addikt
válasz
cousin333
#2829
üzenetére
Köszi a sok infót. Átrágom majd magam a témán részletesen, de csak holnap (esetleg este).
Most a legfrissebb Pythont használom. És az biztos hogy most már csak 3-asat szeretnék mindenhol. De azért ami még a 3-ason belül is ennyire új, azt egyelőre nem preferálnám annyira.
Viszont ezzel kapcsolatosan még egy dologra rákérdeznék:
Python programozással akarok majd foglalkozni - a PC/Raspberry mellett - nemsokára ESP8266-n illetve ESP32-n is.
Vagyis ez így már MicroPython lenne.
Így - ha amúgy nem jelentősebb a hátránya - akkor lehet inkább az olyan adatszerkezeteket, metódusokat részesíteném előnyben, amit fogok tudni majd MicroPython alatt is használni.Egyrészt így tanulási szempontból is részben arra fókuszálnék.
Másrészt most konkrétan ezeket a HW-kezelő függvényeket ha jól megírom, akkor akár tudnám használni a Raspberry Pi helyett/mellett az ESP-ken is majd kapásból.
Ez tudom hogy kicsit már így OFF lehet itt, de sajnos nem nagyon találtam a PH-n MicroPython-al is foglalkozó topicot. Az Arduino-s topic elég jól pörög, nagyon sok hasznos dolog van, de ott MicroPython-ban valahogy nem nagyon láttam senkit se programozni (amúgy nem is értem miért, a C/C++ -hoz képest azért én elég sok előnyét látom így már kezdetnek is).Néztem annó a hivatalos oldalon a különbségeket/limitációkat. De azért az eléggé száraz infónak tűnt. Nem tudsz esetleg valami jó összefoglalót a különbségekről ?
Vagy akár ajánlásokkal együtt (mi az amit ugyan használhatnánk Micropython/ESP alatt, de nem annyira ajánlott a viszonylag nagyobb memória vagy cpu igénye miatt).
Új hozzászólás Aktív témák
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- One otthoni szolgáltatások (TV, internet, telefon)
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- SSD kibeszélő
- Építő/felújító topik
- Assetto Corsa EVO
- Garancia kérdés, fogyasztóvédelem
- Milyen belső merevlemezt vegyek?
- További aktív témák...
- ELADÓ Gamer Konfig
- EIZO FlexScan EV2495 Made in Japan! 1920x1200 IPS USB-c állítható magasság, PIVOT 2024-04 gyártás!
- 10 DB Lenovo ThinkPad Laptop X13 G2 G3, T14 G3 G5, T14s G4 G6, P15 G1 G2
- RAM memória Crucial Pro OC Gaming 16GB DDR5 6400MHz CL32 Black - bontatlan, új
- Dell Latitude 7420, 14" FHD IPS kijelző, i7-1185G7 CPU, 16GB DDR4, 256GB SSD, W11, Számla, 1 év ga
- GYÖNYÖRŰ iPhone 14 128GB Red -1 ÉV GARANCIA -Kártyafüggetlen, MS3678
- BESZÁMÍTÁS! ASROCK B650M R7 8700F 32GB DDR4 512GB SSD RX 6800XT 16GB Zalman Z1 PLUS 750W
- ÁRCSÖKKENTÉS Intel Core i5 3470 confidential Ivy bridge Quad Core
- Samsung Galaxy S24 128GB,Átlagos,Adatkabel,12 hónap garanciával
- Dell XPS 13 9380 FHD, 16GB RAM, 256-512GB SSD, szép állapot, számla, garancia . Utolsó db.
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest

