Bus CAN intégré au lecteur RFID

Dependencies:   RTOS-Serial mbed-rtos mbed

main.cpp

Committer:
ValentinB
Date:
2017-06-03
Revision:
1:b28e3aa83d61
Parent:
0:d2c9340b481b

File content as of revision 1:b28e3aa83d61:

#include "mbed.h"
#include "rtos.h"
#include "rtos_serial.h"
#include "tRDM880.h"

#define TXD     p28
#define RXD     p27

#define ID 0x222

CAN CanPort(p30, p29);
CANMessage  MessageTx;

int main() 
{
    unsigned char Data[100];
    int Res;
    tCSN    CardNumber;
    unsigned char Status;
    
    RTOS_Serial Uart(TXD, RXD);
    tRdm880 Reader(&Uart);
    
    while(1){
        
        Reader.SendGetID();
        Res = Reader.GetResponse(Data);
        
        Status = Reader.getStatus(Data);
        
        if (Status == CMD_OK){
            
            Res = Reader.getCardSerialNumber(Data,&CardNumber);
            
            if (Res == 0){      
                    printf("CARD ID = %04X %08X %08X\n",CardNumber.VeryHigh16b,CardNumber.High32b,CardNumber.Low32b);  
                    
                    MessageTx.data[0] = CardNumber.High32b >> 24;
                    MessageTx.data[1] = CardNumber.High32b >> 16;
                    MessageTx.data[2] = CardNumber.High32b >> 8;
                    MessageTx.data[3] = CardNumber.High32b;
                    
                    MessageTx.data[4] = CardNumber.Low32b >> 24;
                    MessageTx.data[5] = CardNumber.Low32b >> 16;
                    MessageTx.data[6] = CardNumber.Low32b >> 8;
                    MessageTx.data[7] = CardNumber.Low32b;
                     
                    MessageTx.id=ID;
                    CanPort.write(MessageTx);//on envoi 8 octets
                    
            } else {
                printf("ID ERROR\n");
            }
                
        }else {
                printf("NO CARD\n");
        }
        
        
        
        
        wait(0.5);
    }
}