DIISWAG / Mbed 2 deprecated CAN_Database

Dependencies:   mbed mbed-rtos

Committer:
dedounet
Date:
Sat Jun 03 14:46:42 2017 +0000
Revision:
6:2c713a0187dd
Parent:
5:e7fa92a21eff
Parent:
4:4051a72a22f7
Child:
7:5ad5ce91831f
merged ok;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dedounet 0:bcbc14441ee8 1 #include "mbed.h"
Taliarte 1:6f8bf5bdc70f 2 #include "rtos.h"
Taliarte 5:e7fa92a21eff 3 #include <vector>
Taliarte 1:6f8bf5bdc70f 4 #define SIG_RX_CAN 0x01
Taliarte 1:6f8bf5bdc70f 5
Taliarte 5:e7fa92a21eff 6 using namespace std;
Taliarte 1:6f8bf5bdc70f 7
Taliarte 1:6f8bf5bdc70f 8 DigitalOut led1(LED1);
Taliarte 1:6f8bf5bdc70f 9 DigitalOut led2(LED2);
dedounet 0:bcbc14441ee8 10
Taliarte 1:6f8bf5bdc70f 11 Thread threadA;
Taliarte 1:6f8bf5bdc70f 12 Thread threadB;
dedounet 3:35151308f847 13 Thread threadC;
Taliarte 1:6f8bf5bdc70f 14
dedounet 6:2c713a0187dd 15 char * BDD[8];
Taliarte 1:6f8bf5bdc70f 16
Taliarte 1:6f8bf5bdc70f 17 CAN CanPort(p30, p29);
Taliarte 1:6f8bf5bdc70f 18 CANMessage MessageRx;
Taliarte 1:6f8bf5bdc70f 19 CANMessage MessageTx;
Taliarte 1:6f8bf5bdc70f 20
Taliarte 2:654aafc318bf 21 CANMessage MessageBuzzer;
Taliarte 2:654aafc318bf 22
Taliarte 2:654aafc318bf 23 bool Send_Buzz=false; // Envoyer tramme au buzzer
Taliarte 2:654aafc318bf 24
Taliarte 1:6f8bf5bdc70f 25 unsigned int Id;
dedounet 0:bcbc14441ee8 26
Taliarte 5:e7fa92a21eff 27 bool rechercheID(char * ID) // recherche d'un ID dans la base de données
Taliarte 5:e7fa92a21eff 28 {
Taliarte 5:e7fa92a21eff 29 bool retour = false;
Taliarte 5:e7fa92a21eff 30 for( int i= 0; i< sizeof(BDD); i++)
Taliarte 5:e7fa92a21eff 31 {
Taliarte 5:e7fa92a21eff 32 if (BDD[i]==ID) retour= true ;
Taliarte 5:e7fa92a21eff 33 }
Taliarte 5:e7fa92a21eff 34 return retour;
Taliarte 5:e7fa92a21eff 35 }
Taliarte 5:e7fa92a21eff 36
Taliarte 1:6f8bf5bdc70f 37 void canReader(void)
Taliarte 1:6f8bf5bdc70f 38 {
Taliarte 1:6f8bf5bdc70f 39
Taliarte 1:6f8bf5bdc70f 40
Taliarte 1:6f8bf5bdc70f 41 if (CanPort.read(MessageRx))
Taliarte 1:6f8bf5bdc70f 42 {
Taliarte 1:6f8bf5bdc70f 43 led1 = !led1;
dedounet 3:35151308f847 44 switch(MessageRx.id){
dedounet 3:35151308f847 45 case 0x111 :
dedounet 3:35151308f847 46 threadA.signal_set(SIG_RX_CAN);
dedounet 3:35151308f847 47 break;
dedounet 3:35151308f847 48
dedounet 3:35151308f847 49 case 0x221 :
dedounet 3:35151308f847 50 threadC.signal_set(SIG_RX_CAN);
dedounet 3:35151308f847 51 break;
dedounet 3:35151308f847 52
dedounet 3:35151308f847 53 case 0x222 :
dedounet 3:35151308f847 54 threadC.signal_set(SIG_RX_CAN);
dedounet 3:35151308f847 55 break;
dedounet 3:35151308f847 56
dedounet 3:35151308f847 57 case 0x333 :
dedounet 3:35151308f847 58
dedounet 3:35151308f847 59 break;
dedounet 3:35151308f847 60 default:
dedounet 3:35151308f847 61 printf("Id error = %X\n\r",MessageRx.id) ;
dedounet 3:35151308f847 62 }
dedounet 3:35151308f847 63
Taliarte 1:6f8bf5bdc70f 64 }
Taliarte 1:6f8bf5bdc70f 65
Taliarte 1:6f8bf5bdc70f 66 }
Taliarte 1:6f8bf5bdc70f 67
dedounet 3:35151308f847 68 void traitRFID()
Taliarte 1:6f8bf5bdc70f 69 {
dedounet 3:35151308f847 70 int i=0;
dedounet 3:35151308f847 71
Taliarte 1:6f8bf5bdc70f 72 while(true)
Taliarte 1:6f8bf5bdc70f 73 {
Taliarte 1:6f8bf5bdc70f 74 Thread::signal_wait(SIG_RX_CAN);
Taliarte 1:6f8bf5bdc70f 75 led2 = !led2;
dedounet 3:35151308f847 76 for(i=0; i<8;i++){
dedounet 3:35151308f847 77 printf("Numero de carte = %X\n\r",MessageRx.data[i]);
dedounet 3:35151308f847 78 }
Taliarte 1:6f8bf5bdc70f 79
dedounet 0:bcbc14441ee8 80 }
dedounet 0:bcbc14441ee8 81 }
dedounet 3:35151308f847 82
dedounet 3:35151308f847 83 void thA()
dedounet 3:35151308f847 84 {
dedounet 3:35151308f847 85 int i=0;
dedounet 3:35151308f847 86 while(true)
dedounet 3:35151308f847 87 {
dedounet 3:35151308f847 88 Thread::signal_wait(SIG_RX_CAN);
dedounet 3:35151308f847 89 led2 = !led2;
dedounet 3:35151308f847 90 if(MessageRx.data[0]==0x01){
dedounet 3:35151308f847 91 printf("RX ID = %X \t\n\r",MessageRx.id);
dedounet 3:35151308f847 92 for (i=0;i<8;i++){
dedounet 3:35151308f847 93 printf(" DATA = %X \n\r",MessageRx.data[i]);
dedounet 3:35151308f847 94 }
dedounet 3:35151308f847 95 }
dedounet 3:35151308f847 96 }
dedounet 3:35151308f847 97 }
Taliarte 1:6f8bf5bdc70f 98
Taliarte 1:6f8bf5bdc70f 99 void thB()
Taliarte 1:6f8bf5bdc70f 100 {
Taliarte 2:654aafc318bf 101 while(true)
Taliarte 1:6f8bf5bdc70f 102 {
Taliarte 1:6f8bf5bdc70f 103 led1 = !led1;
Taliarte 1:6f8bf5bdc70f 104 printf("TIC3s\n\r");
Taliarte 2:654aafc318bf 105 MessageBuzzer.id=Id;
Taliarte 2:654aafc318bf 106 CanPort.write(MessageBuzzer);
Taliarte 2:654aafc318bf 107 /*if (Id < 0x3FF) Id++;
Taliarte 2:654aafc318bf 108 else Id = 0x000;*/
Taliarte 1:6f8bf5bdc70f 109
Taliarte 1:6f8bf5bdc70f 110 wait(3);
Taliarte 1:6f8bf5bdc70f 111 }
Taliarte 1:6f8bf5bdc70f 112 }
Taliarte 1:6f8bf5bdc70f 113
Taliarte 1:6f8bf5bdc70f 114 int main()
Taliarte 1:6f8bf5bdc70f 115 {
Taliarte 5:e7fa92a21eff 116 char c[8] ={0x00,0x00,0x00,0x00,0x3E,0xC1,0xF5,0x8A};
Taliarte 2:654aafc318bf 117
Taliarte 1:6f8bf5bdc70f 118 CanPort.frequency(20000);
Taliarte 1:6f8bf5bdc70f 119
Taliarte 2:654aafc318bf 120 Id = 0x222;
Taliarte 2:654aafc318bf 121 MessageBuzzer.len=1;
Taliarte 2:654aafc318bf 122 MessageBuzzer.data[0] = 0x01;
Taliarte 2:654aafc318bf 123 //MessageTx.data[1] = 0xAA;
Taliarte 1:6f8bf5bdc70f 124
Taliarte 1:6f8bf5bdc70f 125 MessageTx.format = CANStandard;
Taliarte 1:6f8bf5bdc70f 126 //MessageTx.format = CANExtended;
Taliarte 1:6f8bf5bdc70f 127
Taliarte 1:6f8bf5bdc70f 128 MessageTx.type = CANData;
Taliarte 1:6f8bf5bdc70f 129 //MessageTx.type = CANRemote;
Taliarte 1:6f8bf5bdc70f 130
Taliarte 1:6f8bf5bdc70f 131 CanPort.attach(canReader,CAN::RxIrq);
Taliarte 1:6f8bf5bdc70f 132
Taliarte 1:6f8bf5bdc70f 133 threadA.start(thA);
Taliarte 1:6f8bf5bdc70f 134 threadB.start(thB);
dedounet 3:35151308f847 135 threadC.start(traitRFID);
Taliarte 1:6f8bf5bdc70f 136
Taliarte 1:6f8bf5bdc70f 137 led1 = 0;
dedounet 3:35151308f847 138 led2 =0 ;
Taliarte 1:6f8bf5bdc70f 139 printf("Start OK\n\r");
dedounet 4:4051a72a22f7 140
Taliarte 1:6f8bf5bdc70f 141
dedounet 4:4051a72a22f7 142
Taliarte 1:6f8bf5bdc70f 143 while (true)
Taliarte 1:6f8bf5bdc70f 144 {
Taliarte 1:6f8bf5bdc70f 145
Taliarte 1:6f8bf5bdc70f 146 }
Taliarte 1:6f8bf5bdc70f 147 }