DIISWAG / Mbed 2 deprecated CAN_Database

Dependencies:   mbed mbed-rtos

Committer:
Taliarte
Date:
Sat Jun 03 14:37:34 2017 +0000
Revision:
5:e7fa92a21eff
Parent:
2:654aafc318bf
Child:
6:2c713a0187dd
BDD avec recherche;

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;
Taliarte 1:6f8bf5bdc70f 13
Taliarte 5:e7fa92a21eff 14 char * BDD[8];
Taliarte 5:e7fa92a21eff 15
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
Taliarte 1:6f8bf5bdc70f 38 void canReader(void)
Taliarte 1:6f8bf5bdc70f 39 {
Taliarte 1:6f8bf5bdc70f 40
Taliarte 1:6f8bf5bdc70f 41
Taliarte 1:6f8bf5bdc70f 42 if (CanPort.read(MessageRx))
Taliarte 1:6f8bf5bdc70f 43 {
Taliarte 1:6f8bf5bdc70f 44 led1 = !led1;
Taliarte 1:6f8bf5bdc70f 45 threadA.signal_set(SIG_RX_CAN);
Taliarte 1:6f8bf5bdc70f 46 }
Taliarte 1:6f8bf5bdc70f 47
Taliarte 1:6f8bf5bdc70f 48 }
Taliarte 1:6f8bf5bdc70f 49
Taliarte 1:6f8bf5bdc70f 50
Taliarte 1:6f8bf5bdc70f 51 void thA()
Taliarte 1:6f8bf5bdc70f 52 {
Taliarte 1:6f8bf5bdc70f 53 while(true)
Taliarte 1:6f8bf5bdc70f 54 {
Taliarte 1:6f8bf5bdc70f 55 Thread::signal_wait(SIG_RX_CAN);
Taliarte 1:6f8bf5bdc70f 56 led2 = !led2;
Taliarte 1:6f8bf5bdc70f 57 printf("RX FRAME ID = %X\n\r",MessageRx.id);
Taliarte 1:6f8bf5bdc70f 58
dedounet 0:bcbc14441ee8 59 }
dedounet 0:bcbc14441ee8 60 }
Taliarte 1:6f8bf5bdc70f 61
Taliarte 1:6f8bf5bdc70f 62 void thB()
Taliarte 1:6f8bf5bdc70f 63 {
Taliarte 2:654aafc318bf 64 while(true)
Taliarte 1:6f8bf5bdc70f 65 {
Taliarte 1:6f8bf5bdc70f 66 led1 = !led1;
Taliarte 1:6f8bf5bdc70f 67 printf("TIC3s\n\r");
Taliarte 2:654aafc318bf 68 MessageBuzzer.id=Id;
Taliarte 2:654aafc318bf 69 CanPort.write(MessageBuzzer);
Taliarte 2:654aafc318bf 70 /*if (Id < 0x3FF) Id++;
Taliarte 2:654aafc318bf 71 else Id = 0x000;*/
Taliarte 1:6f8bf5bdc70f 72
Taliarte 1:6f8bf5bdc70f 73 wait(3);
Taliarte 1:6f8bf5bdc70f 74 }
Taliarte 1:6f8bf5bdc70f 75 }
Taliarte 1:6f8bf5bdc70f 76
Taliarte 1:6f8bf5bdc70f 77 int main()
Taliarte 1:6f8bf5bdc70f 78 {
Taliarte 5:e7fa92a21eff 79 char c[8] ={0x00,0x00,0x00,0x00,0x3E,0xC1,0xF5,0x8A};
Taliarte 2:654aafc318bf 80
Taliarte 1:6f8bf5bdc70f 81 CanPort.frequency(20000);
Taliarte 1:6f8bf5bdc70f 82
Taliarte 2:654aafc318bf 83 Id = 0x222;
Taliarte 2:654aafc318bf 84 MessageBuzzer.len=1;
Taliarte 2:654aafc318bf 85 MessageBuzzer.data[0] = 0x01;
Taliarte 2:654aafc318bf 86 //MessageTx.data[1] = 0xAA;
Taliarte 1:6f8bf5bdc70f 87
Taliarte 1:6f8bf5bdc70f 88 MessageTx.format = CANStandard;
Taliarte 1:6f8bf5bdc70f 89 //MessageTx.format = CANExtended;
Taliarte 1:6f8bf5bdc70f 90
Taliarte 1:6f8bf5bdc70f 91 MessageTx.type = CANData;
Taliarte 1:6f8bf5bdc70f 92 //MessageTx.type = CANRemote;
Taliarte 1:6f8bf5bdc70f 93
Taliarte 1:6f8bf5bdc70f 94 CanPort.attach(canReader,CAN::RxIrq);
Taliarte 1:6f8bf5bdc70f 95
Taliarte 1:6f8bf5bdc70f 96 threadA.start(thA);
Taliarte 1:6f8bf5bdc70f 97 threadB.start(thB);
Taliarte 1:6f8bf5bdc70f 98
Taliarte 1:6f8bf5bdc70f 99 led1 = 0;
Taliarte 2:654aafc318bf 100
Taliarte 1:6f8bf5bdc70f 101 while (true)
Taliarte 1:6f8bf5bdc70f 102 {
Taliarte 1:6f8bf5bdc70f 103
Taliarte 1:6f8bf5bdc70f 104 }
Taliarte 1:6f8bf5bdc70f 105 }