
updated version with parameters loaded from sdcard
Dependencies: F7_Ethernet mbed MbedJSONValue LCD_DISCO_F746NG mbed-rtos BSP_DISCO_F746NG CANMsg NetworkAPI SDFileSystem_Warning_Fixed GroveStreamsmodified LcdDiscoF746NgTracer JSON
Revision 8:275ae4382788, committed 2020-09-08
- Comitter:
- jeanpierreaulas
- Date:
- Tue Sep 08 15:00:05 2020 +0000
- Branch:
- jpa
- Parent:
- 7:6ec7a4b94d0b
- Child:
- 9:332bd237b98f
- Commit message:
- add buffer trame user
Changed in this revision
ManageBufferJPA.cpp | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/ManageBufferJPA.cpp Fri Sep 04 09:48:07 2020 +0000 +++ b/ManageBufferJPA.cpp Tue Sep 08 15:00:05 2020 +0000 @@ -6,22 +6,30 @@ volatile int idxSerialIntUSB = 0; int idxSerialUserUSB = 0; volatile int msgSerialUSB = 0; +char stringSerialUSB[kMaxBufferSize+3]; +int stringSerialUSBok = 0; // si ==1 alors trame dispo (fin de trame == LF ou 10 +int idxSerialStringUSB = 0; volatile char bufferSerial2[kMaxBufferSize+3]; volatile int idxSerialInt2 = 0; int idxSerialUser2 = 0; volatile int msgSerial2 = 0; +char stringSerial2[kMaxBufferSize+3]; +int stringSerial2ok = 0; // si ==1 alors trame dispo (fin de trame == LF ou 10 +int idxSerialString2 = 0; volatile char bufferSerial7[kMaxBufferSize+3]; volatile int idxSerialInt7 = 0; int idxSerialUser7 = 0; volatile int msgSerial7 = 0; +char stringSerial7[kMaxBufferSize+3]; +int stringSerial7ok = 0; // si ==1 alors trame dispo (fin de trame == LF ou 10 +int idxSerialString7 = 0; //RawSerial RawSerial serialUSB(USBTX, USBRX); // serial PC RawSerial serial2(PC_6, PC_7); // TX, RX for udp bridge RawSerial serial7(PF_7, PF_6); // TX, RX for extension -volatile char x; // --------------------------------------------------- void serialUSB_int_recv() { @@ -84,14 +92,24 @@ } void receiveSerialUSB() { - while(idxSerialIntUSB != idxSerialUserUSB) + char x; + if (stringSerialUSBok == 0) // string user dispo flag a mettre a 0 par user a chaque lecture de string { - x=bufferSerialUSB[idxSerialUserUSB]; - printf("%c",x); - idxSerialUserUSB = idxSerialUserUSB + 1; - if (idxSerialUserUSB >= kMaxBufferSize) {idxSerialUserUSB = 0;} + while(idxSerialIntUSB != idxSerialUserUSB) + { + x=bufferSerialUSB[idxSerialUserUSB]; + //printf("%c",x); + idxSerialUserUSB = idxSerialUserUSB + 1; + if (idxSerialUserUSB >= kMaxBufferSize) {idxSerialUserUSB = 0;} + + stringSerialUSB[idxSerialStringUSB] = x; + idxSerialStringUSB = idxSerialStringUSB + 1;stringSerialUSB[idxSerialStringUSB] = 0; + if (idxSerialStringUSB >= kMaxBufferSize) + {stringSerialUSB[idxSerialStringUSB-1] = 10;idxSerialStringUSB = 0;stringSerialUSBok = 1;} + if (x == 10) {idxSerialStringUSB = 0;stringSerialUSBok = 1;} + } + msgSerialUSB = 0; } - msgSerialUSB = 0; } void sendSerial2(char * str) @@ -100,14 +118,24 @@ } void receiveSerial2() { - while(idxSerialInt2 != idxSerialUser2) + char x; + if (stringSerial2ok == 0) // string user dispo flag a mettre a 0 par user a chaque lecture de string { - x=bufferSerial2[idxSerialUser2]; - printf("%c",x); - idxSerialUser2 = idxSerialUser2 + 1; - if (idxSerialUser2 >= kMaxBufferSize) {idxSerialUser2 = 0;} + while(idxSerialInt2 != idxSerialUser2) + { + x=bufferSerial2[idxSerialUser2]; + //printf("%c",x); + idxSerialUser2 = idxSerialUser2 + 1; + if (idxSerialUser2 >= kMaxBufferSize) {idxSerialUser2 = 0;} + + stringSerial2[idxSerialString2] = x; + idxSerialString2 = idxSerialString2 + 1;stringSerial2[idxSerialString2] = 0; + if (idxSerialString2 >= kMaxBufferSize) + {stringSerial2[idxSerialString2-1] = 10;idxSerialString2 = 0;stringSerial2ok = 1;} + if (x == 10) {idxSerialString2 = 0;stringSerial2ok = 1;} + } + msgSerial2 = 0; } - msgSerial2 = 0; } void sendSerial7(char * str) @@ -116,12 +144,22 @@ } void receiveSerial7() { - while(idxSerialInt7 != idxSerialUser7) + char x; + if (stringSerial7 == 0) // string user dispo flag a mettre a 0 par user a chaque lecture de string { - x=bufferSerial7[idxSerialUser7]; - printf("%c",x); - idxSerialUser7 = idxSerialUser7 + 1; - if (idxSerialUser7 >= kMaxBufferSize) {idxSerialUser7 = 0;} + while(idxSerialInt7 != idxSerialUser7) + { + x=bufferSerial7[idxSerialUser7]; + printf("%c",x); + idxSerialUser7 = idxSerialUser7 + 1; + if (idxSerialUser7 >= kMaxBufferSize) {idxSerialUser7 = 0;} + + stringSerial7[idxSerialString7] = x; + idxSerialString7 = idxSerialString7 + 1;stringSerial2[idxSerialString7] = 0; + if (idxSerialString7 >= kMaxBufferSize) + {stringSerial7[idxSerialString7-1] = 10;idxSerialString7 = 0;stringSerial7ok = 1;} + if (x == 10) {idxSerialString7 = 0;stringSerial7ok = 1;} + } + msgSerial2 = 0; } - msgSerial2 = 0; } \ No newline at end of file
--- a/main.cpp Fri Sep 04 09:48:07 2020 +0000 +++ b/main.cpp Tue Sep 08 15:00:05 2020 +0000 @@ -116,8 +116,16 @@ //extern volatile char bufferSerialUSB[]; extern volatile int msgSerialUSB; +extern char stringSerialUSB[]; // trame from serialUSB +extern int stringSerialUSBok; // si ==1 alors trame dispo (fin de trame == LF ou 10 + extern volatile int msgSerial2; +extern char stringSerial2[]; // trame from serialUSB +extern int stringSerial2ok; // si ==1 alors trame dispo (fin de trame == LF ou 10 + extern volatile int msgSerial7; +extern char stringSerial7[]; // trame from serialUSB +extern int stringSerial7ok; // si ==1 alors trame dispo (fin de trame == LF ou 10 //extern Serial serialUSB(USBTX, USBRX); // serial PC //extern Serial serial2(PC_6, PC_7); // TX, RX for udp bridge @@ -234,8 +242,13 @@ } if (msgSerialUSB > 0) {receiveSerialUSB();} + if (stringSerialUSBok == 1) {stringSerialUSBok=0;printf("Trame SerialUSB : %s",stringSerialUSB);} + if (msgSerial2 > 0) {receiveSerial2();} + if (stringSerial2ok == 1) {stringSerial2ok=0;printf("Trame Serial2 : %s",stringSerial2);} + if (msgSerial7 > 0) {receiveSerial7();} + if (stringSerial7ok == 1) {stringSerial7ok=0;printf("Trame Serial7 : %s",stringSerial7);} // timer send can if(timer.read_ms() >= 10000) // check for timeout