diff --git a/sufst-controller/daq.cpp b/sufst-controller/daq.cpp index b60c7f1e46f9df8152a4e4d1f2f63d8edc941fa4..a2bff6b74b4df1e682bf1f29831bb6f30ce781c8 100644 --- a/sufst-controller/daq.cpp +++ b/sufst-controller/daq.cpp @@ -10,7 +10,7 @@ * e.g 1 is rpm and 2 is tps... etc */ -void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index) +void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index, DaqWriteSpace daqWriteSpace) { static DaqEcuFormat daqEcuFormat; @@ -24,6 +24,20 @@ void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index) daqEcuFormat.endTag = ecuParamterTag; - sdWrite(&daqEcuFormat, sizeof(DaqEcuFormat)); + switch(daqWriteSpace) { + case SD: + sdWrite(&daqEcuFormat, sizeof(DaqEcuFormat)); + break; + case WIRELESS: + wirelessWrite(&daqEcuFormat, sizeof(DaqEcuFormat)); + + break; + + case SD_AND_WIRELESS: + sdWrite(&daqEcuFormat, sizeof(DaqEcuFormat)); + wirelessWrite(&daqEcuFormat, sizeof(DaqEcuFormat)); + + break; + } } \ No newline at end of file diff --git a/sufst-controller/daq.h b/sufst-controller/daq.h index c59439c1d5cb1af9f87b657def47ba56cd1b592d..adf529aa6e165ad42a7470196919e5ddfa1c5659 100644 --- a/sufst-controller/daq.h +++ b/sufst-controller/daq.h @@ -34,8 +34,14 @@ static const uint8_t daqEcuDataToTag[8][4] = { {28, 29, 30, 31}, }; +typedef enum DaqWriteSpace +{ + SD, + WIRELESS, + SD_AND_WIRELESS +}; static const uint8_t daqEvoScannPressSensToTag[8] = {32, 33, 34, 35, 36, 37, 38, 39}; -void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index); +void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index, DaqWriteSpace daqWriteSpace); #endif //DAQ_H diff --git a/sufst-controller/ecuCan.cpp b/sufst-controller/ecuCan.cpp index 7ce5c44855ae0f75f433f2424f4707bece95f00a..6d8934a4b0e10180dadb66e776060608998e2396 100644 --- a/sufst-controller/ecuCan.cpp +++ b/sufst-controller/ecuCan.cpp @@ -26,9 +26,9 @@ void ecuCanMsg0x2000(CanMsgTemplate *canMsg) uint16_t waterTempC = canMsg->data16[2]; uint16_t airTempC = canMsg->data16[3]; - daqEcuWrite(canMsg, 0); - daqEcuWrite(canMsg, 1); - daqEcuWrite(canMsg, 2); + daqEcuWrite(canMsg, 0, SD_AND_WIRELESS); + daqEcuWrite(canMsg, 1, SD); + daqEcuWrite(canMsg, 2, SD_AND_WIRELESS); dashEcuSetRpm(rpm); dashEcuSetWaterTemp(waterTempC); @@ -54,8 +54,8 @@ void ecuCanMsg0x2001(CanMsgTemplate *canMsg) uint16_t speedKphx10 = canMsg->data16[2]; uint16_t oilPressKpa = canMsg->data16[3]; - daqEcuWrite(canMsg, 1); - daqEcuWrite(canMsg, 2); + daqEcuWrite(canMsg, 1, SD); + daqEcuWrite(canMsg, 2, SD); } void ecuCanMsg0x2002(CanMsgTemplate *canMsg) @@ -78,7 +78,7 @@ void ecuCanMsg0x2002(CanMsgTemplate *canMsg) uint16_t batteryVx10 = canMsg->data16[2]; uint16_t fuelComsumLpHrx10 = canMsg->data16[3]; - daqEcuWrite(canMsg, 2); + daqEcuWrite(canMsg, 2, SD); // Serial.println((float)(batteryVx10 / 10.0)); } @@ -103,8 +103,8 @@ void ecuCanMsg0x2003(CanMsgTemplate *canMsg) uint16_t injectionTimeMsx100 = canMsg->data16[2]; uint16_t fuelComsumLp100kMx10 = canMsg->data16[3]; - daqEcuWrite(canMsg, 1); - daqEcuWrite(canMsg, 2); + daqEcuWrite(canMsg, 1, SD); + daqEcuWrite(canMsg, 2, SD); } void ecuCanMsg0x2004(CanMsgTemplate *canMsg) @@ -127,7 +127,7 @@ void ecuCanMsg0x2004(CanMsgTemplate *canMsg) uint16_t ana3mV = canMsg->data16[2]; uint16_t camAdvanceDegx10 = canMsg->data16[3]; - daqEcuWrite(canMsg, 3); + daqEcuWrite(canMsg, 3, SD); } void ecuCanMsg0x2005(CanMsgTemplate *canMsg) @@ -150,10 +150,10 @@ void ecuCanMsg0x2005(CanMsgTemplate *canMsg) uint16_t crankErrorsNr = canMsg->data16[2]; uint16_t camErrorsNr = canMsg->data16[3]; - daqEcuWrite(canMsg, 0); - daqEcuWrite(canMsg, 1); - daqEcuWrite(canMsg, 2); - daqEcuWrite(canMsg, 3); + daqEcuWrite(canMsg, 0, SD); + daqEcuWrite(canMsg, 1, SD); + daqEcuWrite(canMsg, 2, SD); + daqEcuWrite(canMsg, 3, SD); } void ecuCanMsg0x2006(CanMsgTemplate *canMsg) @@ -197,9 +197,9 @@ void ecuCanMsg0x2007(CanMsgTemplate *canMsg) uint16_t lambdaPidAdjPercx10 = canMsg->data16[2]; uint16_t ecuSwitchesBitField = canMsg->data16[3]; - daqEcuWrite(canMsg, 0); - daqEcuWrite(canMsg, 1); - daqEcuWrite(canMsg, 2); + daqEcuWrite(canMsg, 0, SD); + daqEcuWrite(canMsg, 1, SD); + daqEcuWrite(canMsg, 2, SD); } void ecuCanMsg0x2008(CanMsgTemplate *canMsg) diff --git a/sufst-controller/sufst-controller.ino b/sufst-controller/sufst-controller.ino index fe7b2e6215ba039b87497ce8933d910c64482b9f..b79683133e29865d7be3563c984c9d7f4b59987f 100644 --- a/sufst-controller/sufst-controller.ino +++ b/sufst-controller/sufst-controller.ino @@ -19,6 +19,7 @@ void setup() sdBegin(); canBegin(); lapTimerBegin(); + wirelessBegin(); } void loop() @@ -33,4 +34,5 @@ void loop() dashControllerProcess(); sdProcess(); canProcessTx(); + wirelessProcess(); } \ No newline at end of file diff --git a/sufst-controller/wireless.cpp b/sufst-controller/wireless.cpp index 12a29f822592cc7bf5bacdbf4787ca7d30ebe178..d41d4e4239a0e36c25c525e0b370343b240127af 100644 --- a/sufst-controller/wireless.cpp +++ b/sufst-controller/wireless.cpp @@ -23,11 +23,6 @@ uint8_t wirelessBegin() xbee.setSerial(XBEE_SERIAL); - pinMode(XBEE_CTS_PIN, INPUT); - - pinMode(XBEE_RTS_PIN, OUTPUT); - digitalWrite(XBEE_RTS_PIN, LOW); - return cirBufferBegin(&wirelessTxCirBuffer, wirelessTxBuffer, WIRELESS_TX_BUFFER_LEN, sizeof(uint8_t)); } @@ -39,7 +34,6 @@ void wirelessWrite(void *data, uint8_t len) void wirelessProcess() { if (cirBufferAvailable(&wirelessTxCirBuffer) >= WIRELESS_PAYLOAD_LEN) { -// if (!digitalRead(XBEE_RTS_PIN)) { if (XBEE_SERIAL.availableForWrite() >= WIRELESS_PAYLOAD_LEN) { static uint8_t payload[WIRELESS_PAYLOAD_LEN]; @@ -50,6 +44,5 @@ void wirelessProcess() xbee.send(tx64Request); } -// } } } \ No newline at end of file diff --git a/sufst-controller/wireless.h b/sufst-controller/wireless.h index 2c0f43306177251cd72adfee4585f971e70eed1f..27c8fbe43612b3e8597305566d4ff5cbd188453f 100644 --- a/sufst-controller/wireless.h +++ b/sufst-controller/wireless.h @@ -10,9 +10,6 @@ #define XBEE_ADDRESS_UPPER 0x0013A200 #define XBEE_ADDRESS_LOWER 0x410AC922 -#define XBEE_CTS_PIN 6 -#define XBEE_RTS_PIN 7 - #define XBEE_SERIAL_BAUD_RATE 115200 #define XBEE_SERIAL Serial