- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 43

Thema: rs232 abfragen

  1. #21
    Neuer Benutzer Öfters hier
    Registriert seit
    13.12.2005
    Beiträge
    21
    Anzeige

    LiFePo4 Akku selber bauen - Video
    danke , aber hier habe ich kein icq. leider.
    evtl. abends?

    mit dem hier kann ich nichts anfangen: IOCTL_SERIAL_CLR_RTS

    aber ich bin kräftig am googlen

  2. #22
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Ist eine Konstante

    Defined in ntddser.h. Include ntddser.h.

    http://www.sysinternals.com/Utilities/Portmon.html
    Hier mit kanst du mit hören was dein Comport so mach for allem was das Terminal prg so tut.

    Code:
    #define IOCTL_SERIAL_SET_BAUD_RATE      CTL_CODE(FILE_DEVICE_SERIAL_PORT, 1,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_QUEUE_SIZE     CTL_CODE(FILE_DEVICE_SERIAL_PORT, 2,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_LINE_CONTROL   CTL_CODE(FILE_DEVICE_SERIAL_PORT, 3,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_BREAK_ON       CTL_CODE(FILE_DEVICE_SERIAL_PORT, 4,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_BREAK_OFF      CTL_CODE(FILE_DEVICE_SERIAL_PORT, 5,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_IMMEDIATE_CHAR     CTL_CODE(FILE_DEVICE_SERIAL_PORT, 6,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_TIMEOUTS       CTL_CODE(FILE_DEVICE_SERIAL_PORT, 7,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_TIMEOUTS       CTL_CODE(FILE_DEVICE_SERIAL_PORT, 8,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_DTR            CTL_CODE(FILE_DEVICE_SERIAL_PORT, 9,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_CLR_DTR            CTL_CODE(FILE_DEVICE_SERIAL_PORT,10,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_RESET_DEVICE       CTL_CODE(FILE_DEVICE_SERIAL_PORT,11,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_RTS            CTL_CODE(FILE_DEVICE_SERIAL_PORT,12,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_CLR_RTS            CTL_CODE(FILE_DEVICE_SERIAL_PORT,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_XOFF           CTL_CODE(FILE_DEVICE_SERIAL_PORT,14,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_XON            CTL_CODE(FILE_DEVICE_SERIAL_PORT,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_WAIT_MASK      CTL_CODE(FILE_DEVICE_SERIAL_PORT,16,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_WAIT_MASK      CTL_CODE(FILE_DEVICE_SERIAL_PORT,17,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_WAIT_ON_MASK       CTL_CODE(FILE_DEVICE_SERIAL_PORT,18,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_PURGE              CTL_CODE(FILE_DEVICE_SERIAL_PORT,19,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_BAUD_RATE      CTL_CODE(FILE_DEVICE_SERIAL_PORT,20,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_LINE_CONTROL   CTL_CODE(FILE_DEVICE_SERIAL_PORT,21,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_CHARS          CTL_CODE(FILE_DEVICE_SERIAL_PORT,22,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_CHARS          CTL_CODE(FILE_DEVICE_SERIAL_PORT,23,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_HANDFLOW       CTL_CODE(FILE_DEVICE_SERIAL_PORT,24,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_SET_HANDFLOW       CTL_CODE(FILE_DEVICE_SERIAL_PORT,25,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_MODEMSTATUS    CTL_CODE(FILE_DEVICE_SERIAL_PORT,26,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_COMMSTATUS     CTL_CODE(FILE_DEVICE_SERIAL_PORT,27,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_XOFF_COUNTER       CTL_CODE(FILE_DEVICE_SERIAL_PORT,28,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_PROPERTIES     CTL_CODE(FILE_DEVICE_SERIAL_PORT,29,METHOD_BUFFERED,FILE_ANY_ACCESS)
    #define IOCTL_SERIAL_GET_DTRRTS         CTL_CODE(FILE_DEVICE_SERIAL_PORT,30,METHOD_BUFFERED,FILE_ANY_ACCESS)
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    13.12.2005
    Beiträge
    21
    hm, ich glaube die winioctl.h hat gefehlt.


    ich hab mal den port gesnifft, also das terminalprogramm pollt nur den comport und wenn ich dtr anhacke, wird dieser aktiviert.

  4. #24
    Neuer Benutzer Öfters hier
    Registriert seit
    13.12.2005
    Beiträge
    21
    nochmal kurz ne frage. cts muss ich auf high ziehen oder?
    ansonsten bei masse darf ja der pc senden, oder ist dies sosiso irrelevant?
    -------------------
    [edit]
    jipii, ich glaube ich habs jetzt. es läuft beim tastendruck weiter, aber gleich 2 mal, jetzt ist es aber nichtmehr weit bis zum ziel. den code poste ich in ein paar minuten.

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    13.12.2005
    Beiträge
    21
    wenn mir jetzt noch jemand sagen kann wiso das programm 2mal durchläuft, obwohl ich nur einmal gedrückt habe, dann mache ich luftsprünge

    komischerweisse ist das aber nur bei den ersten 2 mal der fall, dass "er" das programm 2 mal ausführt, danach klappt es wie es sollte - aber leider auchnicht immer.
    ..
    wenn ich wärend der sleeptime drücke, wird das programm nur einmal ausgeführt, dnach immer 2 mal



    Code:
    #include <iostream>
    #include <stdio.h>
    #include <windows.h>
    #include <conio.h>
    #include <winioctl.h>
    
    using namespace std;
    
    
    int main(void)
    {
    DWORD dwfreq=800, dwDuration=200;
    DWORD dwEvtMask;
    int anzahl=0;
    BOOL succ;
    ///////////////////////////////////////////////////
    DCB dcb;
    
    memset(&dcb, sizeof(dcb), 0);
    
    dcb.DCBlength = sizeof(dcb);
    dcb.BaudRate = CBR_600;
    dcb.fBinary = TRUE;
    dcb.fParity = TRUE;                     // enable parity checking 
    dcb.fOutxCtsFlow = FALSE;               // CTS output flow control 
    dcb.fOutxDsrFlow = FALSE;               // DSR output flow control 
    dcb.fDtrControl = DTR_CONTROL_ENABLE;   // DTR flow control type 
    dcb.fDsrSensitivity = FALSE;            // DSR sensitivity 
    dcb.fTXContinueOnXoff = FALSE;          // XOFF continues Tx 
    dcb.fOutX = FALSE;                      // XON/XOFF out flow control 
    dcb.fInX = FALSE;                       // XON/XOFF in flow control 
    dcb.fErrorChar = FALSE;                 // enable error replacement 
    dcb.fNull = 0;                          // enable null stripping 
    dcb.fRtsControl = RTS_CONTROL_ENABLE;   // RTS flow control 
    dcb.fAbortOnError = FALSE;              // abort on error 
    dcb.fDummy2 = 0;                        // reserved 
    dcb.wReserved = 0;                      // not currently used 
    dcb.XonLim = 0;                         // transmit XON threshold 
    dcb.XoffLim =0;                         // transmit XOFF threshold 
    dcb.ByteSize = 8;                       // number of bits/byte, 4-8 
    dcb.Parity = NOPARITY;                  // 0-4=no,odd,even,mark,space 
    dcb.StopBits = ONESTOPBIT;              // 0,1,2 = 1, 1.5, 2 
    dcb.XonChar = 0;                        // Tx and Rx XON character 
    dcb.XoffChar = 0;                       // Tx and Rx XOFF character 
    dcb.ErrorChar = 0;                      // error replacement character 
    dcb.EofChar = 0;                        // end of input character 
    dcb.EvtChar = 0;                        // received event character 
    dcb.wReserved1 =0;                      // reserved; do not use 
    ///////////////////////////////////////////////////
    
    HANDLE hCOM = CreateFile ("COM1",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
    
    //////////////////////////////
    start:
    //////////////////////////////
    //warteschelife - damit das signal nicht gleich 2 mal abgegriffen wird
    printf("Bitte warten!...");
    Sleep(2000);
    printf("...Weiter.");
    //warteschleife ende
    //////////////////////////////
    
    
    succ= SetCommState(hCOM, &dcb);
    
    
    //////////////////////////////
    cout << "" <<endl;
    cout <<"------------------------"<<endl;
    cout <<"Auf Signal warten."<<endl;
    
    
    SetCommMask(hCOM,EV_DSR);               // 
    WaitCommEvent(hCOM,&dwEvtMask,NULL);    // auf tastendruck warten
    
    
    printf("%d",dwEvtMask);
    cout <<"<--->"<<endl;
    printf("%d",EV_DSR);
    
    if(dwEvtMask & EV_DSR)
    {
      printf("....jjojojoojojojojoj....");  
      
    //noch ein peep ausgeben
    Beep (dwfreq,dwDuration);
    //cout<<'\a';
    //bepp ende
    
    }
    
    cout <<"Signal erhalten."<<endl;
    cout <<"------------------------"<<endl;
    cout << "" <<endl;
    //////////////////////////////
    
    
    //////////////////////////////
    //datei oeffnen
    
    //funktioniert
    cout <<"Increment wird geoeffnet."<<endl;
    cout <<"------------------------"<<endl;
    system("d:\\Dev-Cpp\\Examples\\inc.bat");
    cout <<"------------------------"<<endl;
    cout <<"Increment beendet."<<endl;
    //datei oeffnen ende
    //////////////////////////////
    
    //////////////////////////////
    ++anzahl;
    cout << "" <<endl;
    cout << "" <<endl;
    printf("Es wurde ");
    printf("%d",anzahl);
    printf(" mal Incrementiert.");
    cout << "" <<endl;
    cout << "" <<endl;
    //////////////////////////////
    
    cout << "****************************" <<endl;
    cout << "" <<endl;
    
    
    goto start;
    //////////////////////////////
    
    CloseHandle(hCOM);
    return 0;
    }

  6. #26
    Neuer Benutzer Öfters hier
    Registriert seit
    13.12.2005
    Beiträge
    21
    kommt mir so vor als ob der bei jeder flanke und nicht bei jeder 1 an dsr aus dem wait rausspringt.

  7. #27
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Das mit der Flake kann gut sein das es ja was mit dem Modem status zutun hat. da muß man immer reagieren wenn sich da was ändert. aber das solltest du doch program techisch abfangen können oder ?.

    Sorry ging nicht früher
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  8. #28
    Neuer Benutzer Öfters hier
    Registriert seit
    13.12.2005
    Beiträge
    21
    hi, naja, ich habs ja jetzt hinbekommen.
    evtl nehme ich nen schalter oder mach noch nen monoflop rein, wobei eine programmiertechnische lösung die bessere wäre. ich habs gerade so noch hingemurxt glaube ich, naja mal auf die testphase warten :P

    ich danke dir aufjedenfall vielmals für deine super hilfe!!!

  9. #29
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    schon wenn ich dir helfen konnte.
    kannst doch einfach fragen bevor du wieder ins Wait gehst op das signal wech ist. Oder machst zwei wait hinter ein ander bei ersten ON bei zweiten OFF dann erst sleep. wenn jetzt bei ein schalten den schalter fest hält klaps.

    Sag mal wie beendest du das Prg eingenlich ?

    Es ist Klein und fein aber bei mir hätte das ding mindestens ein thread damit ich die sache sauber beenden kann.

    Gruß
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  10. #30
    Neuer Benutzer Öfters hier
    Registriert seit
    13.12.2005
    Beiträge
    21
    das muss nicht beendet werden.
    es läuft meistens im 2schichtbetrieb und manchmal im 3schichtbetrieb, also denk ich mal reicht das so. ausserdem kann man das betriebssys ja runterfahren und dann gehts mit aus. der pc wird ja für NICHTS anderes verwendet ausser knopf und anzeige.

    problem ist sowiso mein mangeldes c++ verständniss/kenntniss.

    ich bin so ganz zufrieden weil es ja geht (mit 2 waits) und widme mich nun der dokumentation und der php-oberfläche.

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests