mbed-os github
Dependencies: ADS1015 Faulhaber HTU21D_mod MS5837_potless Sensor_Head_RevB_3 USBDevice_dfu Utilsdfu beep
Fork of ARNSRS_testDFU by
main.cpp@6:ebed9093d661, 2017-07-23 (annotated)
- Committer:
- POTLESS_2
- Date:
- Sun Jul 23 18:46:22 2017 +0000
- Revision:
- 6:ebed9093d661
- Parent:
- 5:ff7aa975646c
- Child:
- 7:ad15c386e960
Reglage Cozir
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
potless | 1:bef7856b5c0a | 1 | #include "mbed.h" |
potless | 2:4a8bf1d53439 | 2 | #include <string> |
POTLESS_2 | 4:d84250f67dec | 3 | |
POTLESS_2 | 6:ebed9093d661 | 4 | Serial serialCozir (PC_12,PD_2,9600); |
potless | 1:bef7856b5c0a | 5 | |
potless | 1:bef7856b5c0a | 6 | Serial serialMonit (USBTX,USBRX,9600); |
POTLESS_2 | 4:d84250f67dec | 7 | |
POTLESS_2 | 6:ebed9093d661 | 8 | //pour Cozir |
POTLESS_2 | 6:ebed9093d661 | 9 | const int size = 8; |
POTLESS_2 | 6:ebed9093d661 | 10 | char reponse[size]; |
POTLESS_2 | 6:ebed9093d661 | 11 | string commande; |
POTLESS_2 | 6:ebed9093d661 | 12 | int reponseInt; |
potless | 5:ff7aa975646c | 13 | int indexCozir; |
POTLESS_2 | 6:ebed9093d661 | 14 | bool newMessageFlag = false; |
potless | 2:4a8bf1d53439 | 15 | |
POTLESS_2 | 6:ebed9093d661 | 16 | //pour Param Cozir |
POTLESS_2 | 6:ebed9093d661 | 17 | const int sizeParam = 6; |
POTLESS_2 | 6:ebed9093d661 | 18 | char param[sizeParam ]; |
POTLESS_2 | 6:ebed9093d661 | 19 | int indexParam; |
POTLESS_2 | 6:ebed9093d661 | 20 | bool newParamFlag = false; |
potless | 2:4a8bf1d53439 | 21 | |
POTLESS_2 | 6:ebed9093d661 | 22 | void cozirSend(char* commande) |
POTLESS_2 | 6:ebed9093d661 | 23 | { |
potless | 5:ff7aa975646c | 24 | if (serialCozir.writeable()) { |
POTLESS_2 | 6:ebed9093d661 | 25 | serialCozir.puts(commande); |
POTLESS_2 | 4:d84250f67dec | 26 | } |
potless | 2:4a8bf1d53439 | 27 | } |
POTLESS_2 | 4:d84250f67dec | 28 | |
POTLESS_2 | 6:ebed9093d661 | 29 | void callbackCozir() |
POTLESS_2 | 4:d84250f67dec | 30 | { |
POTLESS_2 | 6:ebed9093d661 | 31 | while(serialCozir.readable()) { |
POTLESS_2 | 6:ebed9093d661 | 32 | if ((indexCozir == size) || newMessageFlag) //éviter la saturation du buffer |
POTLESS_2 | 6:ebed9093d661 | 33 | serialCozir.getc(); |
POTLESS_2 | 6:ebed9093d661 | 34 | else |
POTLESS_2 | 6:ebed9093d661 | 35 | reponse [indexCozir++] = serialCozir.getc();//chargement du buffer dans le message |
POTLESS_2 | 6:ebed9093d661 | 36 | if ((indexCozir == size) || (reponse[indexCozir-1] == '\n')) {//le message est complet ou nouvelle ligne ou autre si on veut... |
POTLESS_2 | 6:ebed9093d661 | 37 | reponse[indexCozir] = 0; |
POTLESS_2 | 6:ebed9093d661 | 38 | newMessageFlag = true; |
POTLESS_2 | 6:ebed9093d661 | 39 | } |
POTLESS_2 | 6:ebed9093d661 | 40 | } |
POTLESS_2 | 4:d84250f67dec | 41 | } |
POTLESS_2 | 4:d84250f67dec | 42 | |
POTLESS_2 | 6:ebed9093d661 | 43 | void callbackParam() |
POTLESS_2 | 4:d84250f67dec | 44 | { |
POTLESS_2 | 6:ebed9093d661 | 45 | while(serialMonit.readable()) { |
POTLESS_2 | 6:ebed9093d661 | 46 | if (indexParam == sizeParam) //éviter la saturation du buffer |
POTLESS_2 | 6:ebed9093d661 | 47 | serialMonit.getc(); |
POTLESS_2 | 6:ebed9093d661 | 48 | else |
POTLESS_2 | 6:ebed9093d661 | 49 | param [indexParam++] = serialMonit.getc();//chargement du buffer dans le message |
POTLESS_2 | 6:ebed9093d661 | 50 | if ((indexParam == sizeParam) || (param[indexParam -1] == '\n')) {//le message est complet ou nouvelle ligne ou autre si on veut... |
POTLESS_2 | 6:ebed9093d661 | 51 | param[indexParam] = 0; |
POTLESS_2 | 6:ebed9093d661 | 52 | newParamFlag = true; |
POTLESS_2 | 6:ebed9093d661 | 53 | } |
POTLESS_2 | 4:d84250f67dec | 54 | } |
POTLESS_2 | 6:ebed9093d661 | 55 | } |
POTLESS_2 | 4:d84250f67dec | 56 | |
POTLESS_2 | 6:ebed9093d661 | 57 | void decode_message(char rep[]) |
POTLESS_2 | 6:ebed9093d661 | 58 | { |
POTLESS_2 | 4:d84250f67dec | 59 | |
POTLESS_2 | 6:ebed9093d661 | 60 | sscanf (rep,"%s %5d", commande, &reponseInt); |
POTLESS_2 | 6:ebed9093d661 | 61 | serialMonit.printf("Message complet = %s\r\n\n", rep); |
POTLESS_2 | 6:ebed9093d661 | 62 | serialMonit.printf("Commande = %s\r\n", commande); |
POTLESS_2 | 6:ebed9093d661 | 63 | serialMonit.printf("Reponse = %d\r\n\n", reponseInt); |
POTLESS_2 | 4:d84250f67dec | 64 | |
potless | 0:69d4b21d58e0 | 65 | } |
potless | 0:69d4b21d58e0 | 66 | |
POTLESS_2 | 4:d84250f67dec | 67 | int main() |
POTLESS_2 | 4:d84250f67dec | 68 | { |
POTLESS_2 | 6:ebed9093d661 | 69 | serialCozir.attach(&callbackCozir, Serial::RxIrq); |
POTLESS_2 | 6:ebed9093d661 | 70 | |
POTLESS_2 | 6:ebed9093d661 | 71 | serialMonit.attach(&callbackParam, Serial::RxIrq); |
POTLESS_2 | 6:ebed9093d661 | 72 | |
POTLESS_2 | 6:ebed9093d661 | 73 | serialMonit.printf(" Demarrage...Entrez les comandes COZIR\r\n"); |
POTLESS_2 | 6:ebed9093d661 | 74 | |
POTLESS_2 | 6:ebed9093d661 | 75 | //Voir Datasheet.. |
POTLESS_2 | 6:ebed9093d661 | 76 | //Ex : G |
POTLESS_2 | 6:ebed9093d661 | 77 | //Pas besoin d'écrire \r\n dans lemoniteur |
POTLESS_2 | 6:ebed9093d661 | 78 | //Passer en K 0 pour changer le A 32 ou A 16...sinon ça bloque... |
POTLESS_2 | 6:ebed9093d661 | 79 | //Ensuite re passer en K 1 ou K 2.... |
POTLESS_2 | 6:ebed9093d661 | 80 | //Le Cozir restera dans le dernier mode rentré... |
POTLESS_2 | 6:ebed9093d661 | 81 | |
POTLESS_2 | 4:d84250f67dec | 82 | while (1) { |
POTLESS_2 | 6:ebed9093d661 | 83 | |
POTLESS_2 | 6:ebed9093d661 | 84 | if (newMessageFlag) { |
POTLESS_2 | 6:ebed9093d661 | 85 | decode_message(reponse); |
POTLESS_2 | 6:ebed9093d661 | 86 | strcpy(reponse," "); |
POTLESS_2 | 6:ebed9093d661 | 87 | indexCozir = 0; |
POTLESS_2 | 6:ebed9093d661 | 88 | newMessageFlag = false; |
POTLESS_2 | 6:ebed9093d661 | 89 | } |
potless | 5:ff7aa975646c | 90 | |
POTLESS_2 | 6:ebed9093d661 | 91 | if (newParamFlag) { |
POTLESS_2 | 6:ebed9093d661 | 92 | wait_ms(500); |
POTLESS_2 | 6:ebed9093d661 | 93 | serialMonit.printf("Param = %s\r\n", param); |
POTLESS_2 | 6:ebed9093d661 | 94 | cozirSend(param); |
POTLESS_2 | 6:ebed9093d661 | 95 | wait_ms(500); |
POTLESS_2 | 6:ebed9093d661 | 96 | strcpy(param," "); |
POTLESS_2 | 6:ebed9093d661 | 97 | indexParam = 0; |
POTLESS_2 | 6:ebed9093d661 | 98 | newParamFlag = false; |
POTLESS_2 | 6:ebed9093d661 | 99 | } |
POTLESS_2 | 4:d84250f67dec | 100 | } |
POTLESS_2 | 4:d84250f67dec | 101 | } |