pointux

Hozzászólások

10 bejegyzés megtekintése - 371-380 / 17,342
  • Szerző
    Bejegyzés
  • Hozzászólás: LPT port kontrol C++ #2205327
    pointux
    Felhasználó

      Ha nem érthető, akkor itt vannak a releváns részletek, qt-ben és az lp c kódjával.

      QCheckBox *LP_PBUSY_CheckBox;...int portFD;...this->LP_PBUSY_CheckBox = new QCheckBox("Busy bit", this); // persze megcsinálható a dizájnerrel isthis->portFD = open("/dev/parport0", O_RDWR);...// pl. lp status megjelenítése (sys/ioctl.h, linux/lp.h)int status;if (ioctl(this->portFD, LPGETSTATUS, &status) == -1) {

      Hozzászólás: LPT port kontrol C++ #2205326
      pointux
      Felhasználó

        A ParallelPort.cpp egy sima cpp wrapper.Az ilyen egyszerű függvényeknél én mondjuk nem igazán látom értelmétnem tartom bonyolultabnak ezt:ioctl(fd, LPGETSTATUS, arg)erno (int)ettől:arg = ioctl_fd.Stat(void)ParallelPort_errors (kivétel)Tehát gyakorlatilag semmit nem nyersz vele. Annyi, hogy cpp függvényeid lesznek c helyett. Semmit nem fog neked lekezelni.A másik, glut diagnosztikai eszköz ágyúval verébre eset. Ha tényleg billentyűkkel kell kezelni, akkor nem tud többet egy konzolnál, max. kicsit csicsásabb.Amúgy jelen példa eseténioctl(fd, LPGETSTATUS, arg) hívása utánpl. egy foglalt jelzés (stringgel) ennyi:busy_string=(arg & LP_PBUSY)?"be":"ki";Ki lehet iratni, vagy valamilyen jelzést lehet küldeni:if (arg & LP_PBUSY){// pl. választógomb bekapcsolás szignál küldése; label megváltoztatása; átszínezés stb.} else {// pl. gomb kikapcsolás,...fordított esetben pl. a gombok állapotát 1/0 forgatod az előbb szemléltetett módon, majd | kapcsolat egy data változóban és ioctl(fd, PPWDATA, &data) függvény hívása.Ha csak itt váltasz cpp-re, sokkal praktikusabb lenne.}

        Hozzászólás: LPT port kontrol C++ #2205324
        pointux
        Felhasználó

          Mondjuk egy ilyen kód inkább praktikusabb:

          Code:
          fifo = open(FIFO_FILE, O_RDWR);...// olvasás (addig eldobás, amíg nulla hosszúságú a sztring)result = read(fifo,buf,MAX_SIZE);char c = EOF;if (result == 0) write(fifo,&c,sizeof(c));// sorvége cserélése sztringvégére, vagy sztringvége hozzáadás

          Fölösleges sztingvége karaktereket olvasgatni a pipeból, inkább blokkoljuk ideiglenesen a read-et egy fájl-vége karakterrel.

          Hozzászólás: LPT port kontrol C++ #2205323
          pointux
          Felhasználó

            Bocs, csak itt közbe jött valami.

            Code:
            #include #include #include #include #include #include #define MAX_SIZE 255#define FIFO_FILE "my_fifo"int main(){

            Hozzászólás: LPT port kontrol C++ #2205322
            pointux
            Felhasználó

              Látom a guival jól haladsz, majd mindjárt összedobok egy pipe példát és rögtön megérted, hogy miről beszélek. 🙂

              Hozzászólás: LPT port kontrol C++ #2205320
              pointux
              Felhasználó

                Most az értelem alatt nem értem, hogy mit értesz.Néhány dolognak teljesülnie kell ehhez.1) C++-ban íródott - bár ez a kérdés - (ha C "elég", akkor nincs értelme, ráadásul az objektum orientáltságnak sem, mivel itt egy portról van szó; több esetében esetleg elmegy)2) A biteket külön akarod kezelni. Ha tudod pl, hogy a 2. bit, az pl. decimális 4, akkor a bittenkénti meghatározásnak sincs értelme3) Ugye nincs befejezve, mert ez csak változóban tárol, nem ír ki. Tehát önmagában - természetesen - nincs értelme.Plusz van itt még egy dolog, hogy ez csak 8 bit. Az előző nem C++, hanem C programrészleted, ugye 2x8 bitet ír.No, meg amit a root hozzáférésről beszéltünk.Ha pl. a programot így futtatod:[bash]portwriter h 1|2|7[/bash], vagy[bash]portwriter l 134[/bash], vagycsak egy adott számot ír ki, akkor nincs értelme "felületet" csinálni és futhat root joggal.Ha csak kevés 1,2 módozat van, amit néha kell futtatni, akkor megtörténhet egy signál küldésével.Ha tetszőleges, akkor egy felhasználó által módosítható hagyományos, vagy (inkább) nem hagyományos (pipe/char device) file-ba érdemes beírni, amelyet a kizárólag rootként futó "drivered" olvas és hajt végre. Így bármilyen összetett program írhatja a köztes file-t, mely felhasználó szinten és nem rendszerszinten fut. (A hibás adatot meg dobja a "driver".)Az olvasás történhet szabályos időközönként, vagy egy szignál küldésekor. (Bár a szignált csak rootként lehet küldeni, ha minden igaz, úgyhogy praktikusabb at időközönkénti fájlvizsgálás.)És ekkor lehet mondjuk egy kis ábrát csinálni, amin a biteket egérrel ki lehet jelölni, vagy előre beállított protokolokat kiválasztani (mindezeket akár jelölődobozzal, vagy komolyabb bitképes ábrával), majd rákattintani a küldés gombra.Ilyesféle módszerrel szokták elválasztani azt, aminek feltétlen rendszer-szinten/root joggal kell futnia, attól, aminek jobb ha csak felhasználói szinten fut.

                pointux
                Felhasználó

                  Rövid reklamáció (az elmúlt öt percből) az "idézet" gomb most éppen nem műxik...

                  pointux
                  Felhasználó

                    Szerintem úgy kellene megoldani, hogy csak bizonyos számú hozzászólás után lehessen cikket írni, akinek még nincs annyi értelmes hozzászólása az kéréssel küldhessen csak be. A hozzászólások számánál természetesen figyelni kell arra, hogy ne aznap szülessen meg a legtöbb 🙂Ezzel a rendszerrel legalább a "Fórumbubus" rangomnak is lenne végre valami értelme végre... 😀

                    Hát ezt könnyebb mondani, mint megcsinálni... csak az smf-et és a wp kell "szétszedni" hozzá egyszerre. 🙂A törlés is egyszerűbb.Volt olyanunk, hogy a cikkekhez való hozzászólás wp hozzászólás számától függően kirakóst adott fel. Le is szokott mindenki a hozzászólásról. A cikkírás meg még szokásba sem jött. ;(

                    pointux
                    Felhasználó

                      (Jelentem, vagy 50-et kipucoltam.)És ez a mostani sistonno hogy a rákba került ki a spam cikkével a főlapra?

                      (Jól tetted. :))Mert mindenkinek joga van. cikket írni, ahogy témát nyitni, vagy hozzászólni is.Annó azt gondoltuk, hogy így hátha megszaporodnak a (persze értelmes) cikkek.Mivel sajnos nagyon kevés jelentkező van, aki írna valamit, ezért, ha elszaporodnának az ilyen spametek, akkor tényleg érdemes lesz visszaállítani kéréses rendszerre...

                      pointux
                      Felhasználó

                        Nem teljesen egyértelmű, ki a Vizsla.

                        Ezt vállalom.

                        Az a rengeteg, egy napon született 43 éves robot! Teli van velük jópár hónap.

                        Ha már felfedezted, tiéd a megtiszteltetés, hogy javítsd. 😉

                      10 bejegyzés megtekintése - 371-380 / 17,342