FT_Read Befehl

#295409
Lesenswert?

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);

}
#295411
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren