FT_Read Befehl

OP #295409
Hi,

ich versuche gerade mit dem FT_Read befehl das Byte was ich geschickt
habe wieder zu empfangen und auszulesen (Tx von Bus1 mit Rx von Bus2
verbunden --> das haut hin.
Schreiben haut auch hin (mit HTerm lese ich das was ich geschickt hab
aus)

Aber irgendwie werd ich aus dem FT_Read Befhel nicht schlau, bzw. mir
ist nicht ganz klar was ich da zurückgeben kann...
Laut Beschreibung die gibt IpdwBytesReturned die anzahl der empfangenen
Bytes zurück...aber komischerweise will er mir diese nicht in einem
"Eingabefeld" ausgeben.

der Code für den Button:

void CUSB08_WriteDlg::OnWrite()
{

  UpdateData(TRUE);
  // ÖFFNEN DES GERÄTES!!!
  FT_HANDLE ftHandle;
  FT_STATUS ftStatus;



  ftStatus = FT_Open(1,&ftHandle);
  if(ftStatus == FT_OK) {
    // FT_OPEN OK, use ftHandle to access device
    m_ausgabe1 = "OK";

  }
  else {
    //FT_OPEN failed
    m_ausgabe1 = "NICHT OK";
  }

  //DATEN SENDEN mit FT_WRITE und EINLESEN mit FT_READ

  DWORD written;
  int i;
  int max;




  //FT_SetLatencyTimer(ftHandle,1); //1ms Latency Timer
    //FT_SetBaudRate(ftHandle,19200); //ByteTime 38400 * 16 = 1.6us

  char txbuf[256],rxbuf[256];
  CString output;
  DWORD BytesReceived;
  strcpy(txbuf,m_ein);
  max = strlen(txbuf);

         //buf[0]='A';
         //buf[1]='B';

     for(i=0; i<max; i++)
       {
      ftStatus=FT_Write(ftHandle,&txbuf[i],1,&written); //Write Buffer
      ftStatus=FT_Read(ftHandle,&rxbuf[i],1,&BytesReceived);

m_aus2.Format("%d",BytesReceived);




       }



  FT_Close(ftHandle);
  UpdateData(FALSE);

}
Gast
keiner ne Ahnung oder ne Idee an wen ich mich da wenden könnte?
Glaub nämlich, dass das für einen der damit öfters zu tun hat kein
Problem darstellt.

mfg
Was bitte ist unter

> Laut Beschreibung die gibt IpdwBytesReturned die anzahl der
> empfangenen Bytes zurück...aber komischerweise will er mir diese
> nicht in einem "Eingabefeld" ausgeben.

zu verstehen?

Dein Code sieht stark nach MFC aus. In Zukunft wuerde ich Dir empfehlen
eine MFC Newsgroup zu besuchen. Richte deinen Newsreader auf den Server
news.microsoft.com. Dort gibt es Gruppen dazu.

Zum Problem.

Ein "Eingabefeld" zeigt immer etwas an, das mag vielleicht nacht das
sein was Du erwartest, aber irgendetwas wird angezeigt.

Da Dein Code

m_aus2.Format("%d",BytesReceived);

enthaelt, vermute ich mal, das m_aus2 mit dem 'Eingabefeld' verbunden
ist, und Du dort immer 0 siehst.

Nun. Welcher Datentyp ist 'BytesReceived'?

DWORD BytesReceived;

Aha. Was erwartet %d in der Format? Einen int.
Ein DWORD ist aber ein unsigned long.
Das Formatierflag fuer unsigned long ist aber nicht "%d"
sondern "%lu"

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.