Zum Inhalt springen

Phade

Mitglieder
  • Gesamte Inhalte

    324
  • Benutzer seit

  • Letzter Besuch

Beiträge von Phade

  1. ...

    3.) Ich sehe das jetzt nur noch als "Hoppla, da will mir jemand einen Baeren aufbinden"

    ...

    :confused: Verstehe ich gerade nicht.... :confused:

    Das heißt also, wenn ich nun noch ein, zwei Variablen einbaue, die den Port z.B. liest, würde das Funktionieren?!!

    _________________________________________________________________ Ich weiß, dass man einen Port wie eine Datei ansprechen, öffnen, schreiben, lesen und schliessen kann.

    Das tue ich aber doch schon in der open_port Variablen, oder ???


    ...

    fd = open("/dev/ttyS0", O_RDRW | O_NOCTTY | O_NDELAY);

    ...
    [/PHP]

    Aber wie sage ich ihm das in der main ?

  2. Also, ich habe mal den letzten vorschlag übernommen und siehe da, der Compiler Compiliert!!!!! :mod:

    Nur, wenn ich nun die Compilierte Datei dann Ausführen möchte, passiert entweder nüschts, oder das Terminal sagt mir keine Berechtigung..... Siehe Codes....

    Hier der Code:

    #include <stdio.h>   // Standard input/output definitions
    #include <string.h> // String function definitions
    #include <unistd.h> // UNIX standard functiondefinations
    #include <fcntl.h> // File controll definations
    #include <errno.h> // Error number definations
    #include <termios.h> // POSIX terminal controll definations

    /*
    * 'open_port()' - Open serial port 1.
    *
    * Returns the file descriptor on success or -1 on error.
    */

    int open_port()
    {
    int fd; // File discriptor for the Port

    fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
    if (fd == -1)
    {
    /*
    * Could not open Port.
    */

    perror("open_port: Unable to open /dev/ttyS0 - ");
    }

    else
    fcntl(fd, F_SETFL, FNDELAY);

    return (fd);
    }

    int main(int argc, char* argv[])
    {
    int fd = open_port();
    //tue irgendwas mit fd (was weiss ich, lesen, schreiben etc.)
    return 0;
    }[/PHP]

    Hier das Terminal:

    [code]Phade@isesrv101:~/C-Programme> ./port Phade@isesrv101:~/C-Programme> ./port.cpp bash: ./port.cpp: Keine Berechtigung Phade@isesrv101:~/C-Programme> su Password: isesrv101:/home/Phade/C-Programme # ./port.cpp bash: ./port.cpp: Keine Berechtigung isesrv101:/home/Phade/C-Programme # ./port[/code]

    Wie zu sehen, habe ich es auch als Root versucht. Hier habe ich laut Terminal ja keine Berechtigung......

    Weiß da jemand weiter ????

    Thanx,

  3. Ok, habe nun folgenden Code und Fehlermeldung:

    #include <stdio.h>   // Standard input/output definitions
    
    #include <string.h>  // String function definitions
    
    #include <unistd.h>  // UNIX standard functiondefinations
    
    #include <fcntl.h>   // File controll definations
    
    #include <errno.h>   // Error number definations
    
    #include <termios.h> // POSIX terminal controll definations
    
    
    /*
    
     * 'open_port()' - Open serial port 1.
    
     *
    
     * Returns the file descriptor on success or -1 on error.
    
     */
    
    
    main open_port()
    
    {
    
        int fd; // File discriptor for the Port
    
    
        fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
    
        if (fd == -1)
    
        {
    
    	/*
    
    	 * Could not open Port.
    
    	 */
    
    
    	perror("open_port: Unable to open /dev/ttyS0 - ");
    
        }
    
    
        else
    
    	fcntl(fd, F_SETFL, FNDELAY);
    
    
        return (fd);
    
    }
    Fehlermeldung:
    Phade@isesrv101:~/C-Programme> g++ port.cpp
    
    port.cpp:14: error: syntax error before `)' token
    
    port.cpp:18: error: ISO C++ forbids declaration of `fd' with no type
    
    port.cpp:19: error: syntax error before `if'
    
    Phade@isesrv101:~/C-Programme>

  4. Ja, das ist auch das Hauptproblem.

    gcc durch g++ ersetzen. Oder du musst explizit libstdc++ mitlinken.

    :confused: :confused: :confused:

    Sorry, aber ich bekomme trotzdem die selbe Meldung.... :confused: :confused: :confused:

    (So langsam komme ich mir verars..ht vor...vom Compiler)

    thanx,

  5. ich weiß jetzt nicht ob das stimmt was ich sage :D:D aber ich hätts so versucht:

    int open_port()

    und nicht so (ich weiß natürlich nicht ob das unter linux mit void als parameter aufgerufen werden muss)...

    int open_port(void)

    Also ich muss leider sagen, das dann die gleiche Meldung vom Compiler kommt wie bei der unveränderten....

    Ich weiß momentan auch nicht, was der Compiler von mir will !!!

    Ich meine das diese Meldung nüschts mit dem eigentlichen Code zu tun hat....

    Aber wie gesagt, isch weiß et net....

    thanx,

  6. Malzeit,

    ich habe gestern und heute vormittag mal folgenden Code zusammengesucht/-geschrieben, um anders an den COM1 zu gelangen. Vielleicht schaffen "wir" es mit diesem Code "zusammen" etwas zu erreichen... :rolleyes:

    #include <stdio.h>   // Standard input/output definitions
    #include <string.h> // String function definitions
    #include <unistd.h> // UNIX standard functiondefinations
    #include <fcntl.h> // File controll definations
    #include <errno.h> // Error number definations
    #include <termios.h> // POSIX terminal controll definations

    /*
    * 'open_port()' - Open serial port 1.
    *
    * Returns the file descriptor on success or -1 on error.
    */

    int
    open_port(void)
    {
    int fd; // File discriptor for the Port

    fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
    if (fd == -1)
    {
    /*
    * Could not open Port.
    */

    perror("open_port: Unable to open /dev/ttyS0 - ");
    }

    else
    fcntl(fd, F_SETFL, FNDELAY);

    return (fd);
    }[/PHP]

    Wenn ich diesen nun Kompilieren möchte bekomme ich folgende Meldung:

    [code]Phade@isesrv101:~/C-Programme> gcc port.cpp /usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../crt1.o(.text+0x18): In function `_start': ../sysdeps/i386/elf/start.S:98: undefined reference to `main' /tmp/ccGWuVPS.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status Phade@isesrv101:~/C-Programme>[/code]

    Weiß eventuell jemand was ich da falsch gemacht habe :confused:

    Ich finde einfach keinen Anfangspunkt.

    (Zur Verteidigung, den Anfang habe 1:1 übernommen)

    Thanx,

  7. Du tippst Code ab? :eek

    Ja, da die Lieferfirma mir diese Codefragmente zur Verfügung gestellt hat.

    Das liegt nicht an den Tags im Forum, sondern daran, dass du zum Einrücken Tabs und Leerzeichen gemischt benutzt.

    Ok, auch dass ein Fehler von mir.... :(

    Was genau wurde denn da geliefert? Soweit ich das als Linux-Laie erkennen kann, kommt da gar keine Drittanbieterbibliothek zum Einsatz.

    Also es wurde ein Thermometer geliefer, mit dem ich die Temperatur in einem Serverraum z.B. messen kann. Auf diesem Server ist nun Suse Linux 9.1 installiert und der Thermostat an der seriellen Schnittstelle angeschlossen. Der COM1 ist auch im BIOS aktiviert.

    Zu diesem Thermostat gib es eine eigene Software, die aber mein Betrieb nicht haben wollte, sonder ich solte ein "kleines" C++-Programm schreiben, mit dem ich die Temperatur am Seriellen Port auslesen kann.

    Das dumme ist nur, ich müsste die Codefragmente des Lieferanten nutzen, da das Thermometer nur mit Pulsweitenmodulation arbeitet und nicht mit alphanumerischen Signalen....

    Die...

     
    #include <....h>
    .
    .
    .
    .
    [/PHP]

    ...habe ich mir im Internet und in Linux zusammengesucht... :mod:

    Ich weiß selbst das das kein Super Projekt ist für ein Programmieranfänger ist, wie ich einer bin, nur ich möchte halt diese Aufgabe bestreiten, da ich auch ja etwas lernen möchte :cool:

    (ich habe ja auch schon was gelernt!!! "Nimm niemals solche Aufgaben an!! :P;) :floet: )

  8. Da fehlen jede Menge Deklarationen. Wir können dir da auch nicht mehr sagen als der Compiler, weil die fehlenden Deklarationen nicht Bestandteil des Standards sind. Du wirst das nicht lösen können, indem du die beanstandeten Bezeichner einfach irgendwie deklarierst. Dann ist zwar der Compiler zufrieden, aber das Programm wird mit hoher Wahrscheinlichkeit nicht funktionieren.

    Wenn der Code nicht von dir ist, hast du wohl beim Übernehmen etwas Entscheidendes weggelassen oder gelöscht. Die überzählige geschweifte Klammer am Ende ist ein Indiz dafür. Wenn das Programm sich schon mal kompilieren ließ: Was hast du denn zuletzt geändert?

    Also, ich habe den Code von der Lieferantenfirma als Codebeispiel bekommen. So habe ich nichts mit dem Quelltext weltbewegendes gemacht, außer, dass ich jetzt halt proben als int deklariert habe. Die Klammern am Schluss passen genau. Da ist keine zu viel oder zu wenig....das sagt mir mein Editor....

    Ach ja, vielleicht is das ja etwas praktisch zu wissen, ich arbeite unter Linux.....

  9. auf die schnelle hab ich nicht gesehen wo proben deklariert ist... und außerdem hat Klotzkopp das schon angemerkt...

    Ok, habe proben jetzt als int am anfang deklariert. Ich kann jetzt aber nicht genau sagen, ob das so richtig ist....jetzt bekomme ich noch folgendes:

    term.cpp: In function `void seriellenport_auslesen(char*)':
    term.cpp:16: error: `TIOCMGET' undeclared (first use this function)
    term.cpp:16: error: (Each undeclared identifier is reported only once for each
    function it appears in.)
    term.cpp:16: error: `temp' undeclared (first use this function)
    term.cpp:16: error: `ioctl' undeclared (first use this function)
    term.cpp:17: error: `loops' undeclared (first use this function)
    term.cpp:20: error: `close' undeclared (first use this function)
    term.cpp: In function `void ergebnis_auswerten(int, int, int)':
    term.cpp:31: error: `proben' undeclared (first use this function)
    term.cpp:47: error: `counter' undeclared (first use this function)
    term.cpp: In function `void sensoren_abfragen(int)':
    term.cpp:62: error: `flag' undeclared (first use this function)
    term.cpp:72: error: `TIOCM_CD' undeclared (first use this function)
    term.cpp:73: error: `TIOCM_CTS' undeclared (first use this function)
    term.cpp:74: error: `TIOCM_DSR' undeclared (first use this function)
    term.cpp:75: error: `TIOCM_RI' undeclared (first use this function)
    term.cpp:80: error: `sensorcodes' undeclared (first use this function)
    term.cpp:80: error: `strncmp' undeclared (first use this function)
    term.cpp:80: error: syntax error before numeric constant
    term.cpp:86: error: `errechnete_werte' undeclared (first use this function)
    term.cpp:59: warning: unused variable `char*pos2'
    term.cpp:58: warning: unused variable `char*pos1'
    term.cpp:57: warning: unused variable `char teilstr1[30]'
    term.cpp:56: warning: unused variable `FILE*results'
    term.cpp:55: warning: unused variable `long int l'
    term.cpp: At global scope:
    term.cpp:89: error: syntax error before `}' token[/PHP]

    Ist das nicht der gleiche fehler ???

  10. :floet:

    Kann ja mal passieren.....sorry.....

    #include <sys/types.h>
    #include <sys/stat.h>
    #include <termios.h>
    #include <fcntl.h>
    #include <stdio.h>

    void seriellenport_auslesen(char* port)
    {
    int fd, i, x;

    fd = open (port, O_RDWR | O_NOCTTY | O_NDELAY); // Schnittstelle oeffnen

    for (i=0;i<proben;i++)
    {
    ioctl (fd, TIOCMGET, &temp[i]); // Proben * Werte einlesen
    for (x=0;x<loops;x++);
    }

    close (fd); // Schnittstelle schliessen
    }

    void ergebnis_auswerten(int index, int bit, int invers)
    {
    float hi, low;
    int i;
    hi=0; // Zaehler zuruecksetzen

    if (invers == 0)
    {
    for (i=0;i<proben;i++)
    if (temp[i] & bit)
    hi++; // Anzahl gesetzter Bits ermitteln

    hi = proben-hi;
    } // Low ist die Differenz

    if (invers == 1)
    {
    for (i=0;i<proben;i++)
    if (temp[i] & bit)
    low++; // Anzahl gesetzter Bits ermitteln

    hi = proben-low;
    }

    counter[index][4]=counter[index][2];counter[index][5]=counter[index][3];
    counter[index][2]=counter[index][0];counter[index][3]=counter[index][1];
    counter[index][0]=hi; counter[index][1]=low;
    }

    void sensoren_abfragen(int s) // wird zeitgesteuert aufgerufen
    {
    int i;
    long l;
    FILE *results;
    char teilstr1 [30];
    char *pos1;
    char *pos2;
    float c0, c1;

    if (flag[1] == 1)
    {
    ergebnis_auswerten(1,0x80,1);
    ergebnis_auswerten(2,0x40,0);
    ergebnis_auswerten(3,0x20,0);
    ergebnis_auswerten(4,0x10,0);
    }
    if (flag[4] == 1)
    {
    seriellenport_auslesen("/dev/ttyS0");
    ergebnis_auswerten(13,TIOCM_CD,0);
    ergebnis_auswerten(14,TIOCM_CTS,0);
    ergebnis_auswerten(15,TIOCM_DSR,0);
    ergebnis_auswerten(16,TIOCM_RI,0);
    }

    for (i=1;i<29;i++)
    {
    if (strncmp("01",sensorcodes[i],2) 00 =) // Temperatur auslesen
    {
    if (valid[i] == 1)
    {
    c0 = counter[i][0] + counter[i][2] + counter[i][4];
    c1 = counter[i][1] + counter[i][3] + counter[i][5];
    errechnete_werte[i] = 212.766 * (c0/(c0+c1+1)-0.32);
    }
    }
    }
    }[/PHP]

    Der Quelltext......

  11. Hallöchen zusammen,

    ich habe mir da ein Programm zusammengeschustert und schon mehrmals verbessert. Momentan stehe ich vor einer Mauer und weiß nicht mehr weiter. Ich kann diese Errors nicht zuordnen....

    Wiß jemand zu welchen Headerdateien diese Deklarationen gehören???

    term.cpp: In function `void seriellenport_auslesen(char*)':
    term.cpp:13: error: `proben' undeclared (first use this function)
    term.cpp:13: error: (Each undeclared identifier is reported only once for each
    function it appears in.)
    term.cpp:15: error: `TIOCMGET' undeclared (first use this function)
    term.cpp:15: error: `temp' undeclared (first use this function)
    term.cpp:15: error: `ioctl' undeclared (first use this function)
    term.cpp:16: error: `loops' undeclared (first use this function)
    term.cpp:19: error: `close' undeclared (first use this function)
    term.cpp: In function `void ergebnis_auswerten(int, int, int)':
    term.cpp:46: error: `counter' undeclared (first use this function)
    term.cpp: In function `void sensoren_abfragen(int)':
    term.cpp:61: error: `flag' undeclared (first use this function)
    term.cpp:71: error: `TIOCM_CD' undeclared (first use this function)
    term.cpp:72: error: `TIOCM_CTS' undeclared (first use this function)
    term.cpp:73: error: `TIOCM_DSR' undeclared (first use this function)
    term.cpp:74: error: `TIOCM_RI' undeclared (first use this function)
    term.cpp:79: error: `sensorcodes' undeclared (first use this function)
    term.cpp:79: error: `strncmp' undeclared (first use this function)
    term.cpp:79: error: syntax error before numeric constant
    term.cpp:85: error: `errechnete_werte' undeclared (first use this function)
    term.cpp:58: warning: unused variable `char*pos2'
    term.cpp:57: warning: unused variable `char*pos1'
    term.cpp:56: warning: unused variable `char teilstr1[30]'
    term.cpp:55: warning: unused variable `FILE*results'
    term.cpp:54: warning: unused variable `long int l'
    term.cpp: At global scope:
    term.cpp:88: error: syntax error before `}' token[/PHP]

    Wäre toll wenn ihr mir da weiterhelfen könntet....

    Thanx,

  12. bei win xp: desktop sperren ist windows-taste und "L".

    s'Amstel

    Ja, das weiß ich ja, deshalb möchte ich ja mein Arbeitsplatzrechner ebenso konfigurieren. Nur, wenn ich dann die Verknüpfung auf dem Desktop habe und in den Eigenschaften bin kann ich ja eine Tastenkombination einstellen.

    Wenn ich dann nun auf die Windowstaste + l drücke, gibt 2000 mir strg-alt-l als Tastenkombination an. :confused: :confused:

    Kann es sein das 2000 die Windowstaste nicht als "Funktionstast" in Tastenkombinationen annimmt?????

    thanx

  13. Also ich wollte zum eine Tastenkombi "erzeugen" die den Desktop sperrt (siehe WinXP)

    und so weiter... das mit den Verknüpfungen hatte ich schon probiert und für bestimmte Progs oder Dateien ist das vollkommen ok.... aber mir geht es eher darum den Desktop zu sperren und solche sachen...das strg+alt+entf ist mir, sag ich mal, zu umständlich....

    thanx

  14. Hallöchen zusammen,

    ich versuche zur Zeit meinen Arbeitsplatzrechner (Win2000) mit Tastenkombinationen auzustatten. Nur finde ich nicht den richtigen Ansatz. Also die Stelle im System wo ich mir meine eigenen Tastenkombis einstellen kann.....

    Eigentlich habe ich schon überall gesucht....

    Hat da jemand eine Idee wo ich das realisieren kann????

    Thanx im voraus,

  15. Jesterday:

    Sorry stimmt ja :hells:

    Also, nochmal vielleicht zum abtippen der Formel:

    1. Du markierst die Zelle, in die Dein Ergebnis rein soll.

    2. Dann schreibst du oben in die Eingabezeile von Excel folgende Formel:

    =ABS((A9-A10))

    Dabei sind jetzt die Zellen A9 und A10 beispielhaft 2 Zellen, deren Werte von einander abgezogen werden. Das Ganze als Absolutwert ausgeben und fertig :)

    Super!!!

    Danke und sorry, dass ich etwas länger gebraucht habe das ganze zu begreifen!!!

    Jetzt Funktioniert es einwandfrei!!!!

    Thanx @ all...

  16. Klick doch einfach mal auf das Feld wo das ergebnis steht und formatier die Zahlenwerte um!!! nciht immer auf Formln gehen. Das mit dem Absolutwert geht auch aber über die Formatierung geh tes einfacher und dann gibst du an das du nur positivezahlen hbaen willst und ie Farbe normal schwarz grün oder sonst wie und fertig ist der Zauber1

    Das Funktioniert ja schon ganz gut, nur bekomme ich dieses blöde minus vor den negativen Zahlen weg..... hat da einer ne Idee???

  17. Ich denke nicht, dass er den ABS-Wert haben möchte.

    Sondern eher, wenn Zahl A < Zahl B ist, dass er quasi Zahl B - Zahl A rechnet.

    Nur obs dafür jetzt einfach ne eingebaute Funktion gibt weiß ich nicht...

    Versuchs mal mit der "WENN()"-Funktion, ob sich da was drehen lässt.

    Hmmm....hatte ich schon mal anders versucht, habe deine Idee versucht und die wollte auch nicht wirklich funzen.....

  18. Ja ne....ähm....das habe ich ja auch schon diverse mal versucht....hat nüscht geklappt....bzw, ich habe ja so gesehen ja keine negativen Zhalen in der Tabelle, in Feld B10 steht z.b. 45,65€ und in Feld D10 steht 56,45€ z.B. und von diesen beiden Zahlen möchte ich die Differenz haben.....

    das Problem ist, wenn die Zahlen jetzt so in der Tabelle stehen, kommt ja laut Adam Riese ein negativer Wert heraus.

    Dieses möchte ich ja auch, nur das Vorzeichen sowie die Färbung soll nicht sein und es (muss!) die Differenz sein......

    das ist eine ganz schon schwere Geburt......

  19. Um mal vorab die Frage des Topics zu beantworten (nach meiner Meinung) Angemessen ist soviel Unterricht wie im Lehrplan festgeschrieben (wenn es sowas nicht gibt, dann sollte die Schule das aber schnellstens aendern).

    Hmmmm....ok, fage ich mal so, warum brauche ich als FISI so viel Anwendungsentwicklung?

    Wenn ich in meiner Firma bin, Habe ich so gut wie nüschts mit Anwendungsentwicklung zu tun....deshalb hatte ich eigentlich gefragt....

    Dann habe ich wohl die Äußerungen fallsch interpretiert. Ich muss aber nochmal sagen, das ich ja auch nicht über die Lehrer sondern nur über den einen Lehrer und die Schule gemäckert habe....

    Sonst läuft da ja alles super, man kommt mit allen klar und die Lehrer bringen auch was rüber....

  20. Hallöchen zusammen,

    ich schäme mich ein wenig für diese frage, aber ich weiß einfach nicht mehr weiter.

    Ich habe eine Excelltabelle und die Felder z.B. B10 u. D10 und möchte jetzt von diesen beiden die Differenz herraus bekommen nur wie :confused:

    Wie machen ich dass???

    Mal ein Beispiel:

    B10 = 46,67€

    D10 = 40,95€

    Das ist irgentwo noch verständlich, aber was ist wenn das ganze so aussieht???:

    B10 = 46,67€

    D10 = 58,88€

    Ich möchte das die Differenz "normal" dargestellt wird, also nicht mit Minus (-) und auch nicht Rot für eine negative Zahl.....

    Thanx im voraus

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...