Hallo,
Ich habe das CDC beispiel aus dem USB Framework so umgestellt das man
jetzt mit den Terminal von pc aus genau das zurück bekommt was man
absendet!
1.)
Das Problem ist aber noch, dass ich immer eine feste länge von 10 bytes
zurückgebe, und ich einfach nicht weiß wie ich herausbekomme wie viele
zeichnen gesendet wurden (von terminal aus).
der main loop sieht jetzt so aus!
1 | // Main loop
|
2 | while (1) {
|
3 |
|
4 | bStatus = SER_Read(&sSer,pUsbBuffer,USB_BUFFER_SIZE,0,0);
|
5 |
|
6 | if ( pUsbBuffer[0] !=0x00 && bStatus != SER_STATUS_SUCCESS){
|
7 | bStatus = SER_Write(&sSer, pUsbBuffer, 10, 0, 0);
|
8 |
|
9 | //echo complete set buffer back to default state
|
10 | clearBuffer(pUsbBuffer,USB_BUFFER_SIZE);
|
11 | }
|
12 | }
|
2.)
des weiteren verstehe ich nicht wirklich was mir "bStatus" sagen soll.
Ich dachte das bei einem erfolgreichen Transfer (zb. es wurde etwas
gelesen) diese gleich "SER_STATUS_SUCCESS" =0x00 sein müsste??
dann wäre die if Bedingung aber falsch und müsste dann heißen
1 | if (bStatus == SER_STATUS_SUCCESS)
|
und man müsste den Buffer nicht löschen .
Es passiert aber Garnichts, wenn ich es ändere, ausserden kann ich auch
nicht verstehen warum das feld "pUsbBuffer" static sein muss!!
1 | static unsigned char pUsbBuffer[50];
|
vielleicht hat jemand sowas ähnliches schon mal gemacht und könne mir
sagen was ich ihr nicht verstehe???? wäre unheimlich nett