Penn Electric Racing / Mbed 2 deprecated SystemManagement

Dependencies:   mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP

Fork of SystemManagement by Martin Deng

Committer:
pspatel321
Date:
Wed Jan 07 03:25:50 2015 +0000
Revision:
34:18bcf276d3bf
Parent:
33:6bc82b6b62e5
Child:
38:8efacce315ae
Added serial input.  Updated glvBat coulomb counter to match AMS, brought in changes to outDiag and inCommands from AMS.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pspatel321 33:6bc82b6b62e5 1 #include "XbeeManager.h"
pspatel321 33:6bc82b6b62e5 2
pspatel321 34:18bcf276d3bf 3 XbeeManager::XbeeManager(PinName tx1, PinName rx1, PinName tx2, PinName rx2, int baud, int txSize, int rxSize) :
pspatel321 34:18bcf276d3bf 4 x1(tx1, rx1, baud, txSize, rxSize), x2(tx2, rx2, baud, txSize, rxSize)
pspatel321 33:6bc82b6b62e5 5 {
pspatel321 34:18bcf276d3bf 6
pspatel321 33:6bc82b6b62e5 7 alternate = false;
pspatel321 33:6bc82b6b62e5 8 extraAvail = false;
pspatel321 33:6bc82b6b62e5 9 counterX1in = 0;
pspatel321 33:6bc82b6b62e5 10 counterX2in = 0;
pspatel321 33:6bc82b6b62e5 11 counterX1out = 0;
pspatel321 33:6bc82b6b62e5 12 counterX2out = 0;
pspatel321 33:6bc82b6b62e5 13 }
pspatel321 33:6bc82b6b62e5 14
pspatel321 33:6bc82b6b62e5 15 bool XbeeManager::send(CANMessage &msg)
pspatel321 33:6bc82b6b62e5 16 {
pspatel321 33:6bc82b6b62e5 17 alternate = !alternate;
pspatel321 33:6bc82b6b62e5 18 if (alternate) {
pspatel321 34:18bcf276d3bf 19 if (x1.send(msg)) {
pspatel321 33:6bc82b6b62e5 20 counterX1out++;
pspatel321 33:6bc82b6b62e5 21 return true;
pspatel321 33:6bc82b6b62e5 22 }
pspatel321 33:6bc82b6b62e5 23 } else {
pspatel321 34:18bcf276d3bf 24 if (x2.send(msg)) {
pspatel321 33:6bc82b6b62e5 25 counterX2out++;
pspatel321 33:6bc82b6b62e5 26 return true;
pspatel321 33:6bc82b6b62e5 27 }
pspatel321 33:6bc82b6b62e5 28 }
pspatel321 33:6bc82b6b62e5 29 return false;
pspatel321 33:6bc82b6b62e5 30 }
pspatel321 33:6bc82b6b62e5 31
pspatel321 33:6bc82b6b62e5 32 bool XbeeManager::receive(CANMessage &msg)
pspatel321 33:6bc82b6b62e5 33 {
pspatel321 33:6bc82b6b62e5 34 if (extraAvail) {
pspatel321 33:6bc82b6b62e5 35 extraAvail = false;
pspatel321 33:6bc82b6b62e5 36 memcpy((void*)&msg, (void*)&extra, sizeof(CANMessage));
pspatel321 33:6bc82b6b62e5 37 counterX2in++;
pspatel321 33:6bc82b6b62e5 38 return true;
pspatel321 33:6bc82b6b62e5 39 }
pspatel321 34:18bcf276d3bf 40 if (x1.receive(msg)) {
pspatel321 34:18bcf276d3bf 41 if (x2.receive(extra)) {
pspatel321 33:6bc82b6b62e5 42 extraAvail = true;
pspatel321 33:6bc82b6b62e5 43 }
pspatel321 33:6bc82b6b62e5 44 counterX1in++;
pspatel321 33:6bc82b6b62e5 45 return true;
pspatel321 33:6bc82b6b62e5 46 } else {
pspatel321 34:18bcf276d3bf 47 if (x2.receive(msg)) {
pspatel321 33:6bc82b6b62e5 48 counterX2in++;
pspatel321 33:6bc82b6b62e5 49 return true;
pspatel321 33:6bc82b6b62e5 50 }
pspatel321 33:6bc82b6b62e5 51 }
pspatel321 33:6bc82b6b62e5 52 return false;
pspatel321 33:6bc82b6b62e5 53 }