![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Fork to see if I can get working
Dependencies: BufferedSerial OneWire WinbondSPIFlash libxDot-dev-mbed5-deprecated
Fork of xDotBridge_update_test20180823 by
Diff: xDotBridge/src/BaseboardIO.cpp
- Revision:
- 53:a1563574a980
- Parent:
- 50:e89647e77fd5
- Child:
- 55:79ab0bbc5008
--- a/xDotBridge/src/BaseboardIO.cpp Tue Feb 21 15:33:57 2017 -0700 +++ b/xDotBridge/src/BaseboardIO.cpp Wed Feb 22 10:45:56 2017 -0700 @@ -102,13 +102,13 @@ else { mCCIn.rise(func); } - mPairBtn.mode(PullNone); + mCCIn.mode(PullNone); mCCIn.enable_irq(); } void BaseboardIO::regTamperInt(Callback<void()> func) { // Pulled high, switched low - mPairBtn.mode(PullNone); + mTamper.mode(PullNone); mTamper.rise(func); mTamper.fall(func); mTamper.enable_irq(); @@ -129,12 +129,12 @@ // Sample port expanders enableSwitchedIO(); wait(0.001); // Wait 1 ms - if (mPortEx0->pioLogicRead(mPortExpanderVal0) != cmdSuccess) { + if (mPortEx0->pioLogicReliableRead(mPortExpanderVal0) != cmdSuccess) { disableSwitchedIO(); logError("Error reading port expander 0."); return cmdError; } - if (mPortEx1->pioLogicRead(mPortExpanderVal1) != cmdSuccess) { + if (mPortEx1->pioLogicReliableRead(mPortExpanderVal1) != cmdSuccess) { disableSwitchedIO(); logError("Error reading port expander 1."); return cmdError; @@ -234,7 +234,7 @@ logError("Error enabling 232. Port expanders not initialized."); return cmdError; } - mPortEx0->pioLogicRead(val); + mPortEx0->pioLogicReliableRead(val); // Active low from port expander -> pmos -> 232 (active chip EN) if (enable) { @@ -244,7 +244,7 @@ val |= pEx0232En; } - if (mPortEx0->pioLogicWrite(val | ~pEx0OutMask) != cmdSuccess) { + if (mPortEx0->pioLogicReliableWrite(val | ~pEx0OutMask) != cmdSuccess) { logError("Error enabling 232"); return cmdError; } @@ -257,7 +257,7 @@ logError("Error enabling 232 TX. Port expanders not initialized."); return cmdError; } - mPortEx0->pioLogicRead(val); + mPortEx0->pioLogicReliableRead(val); // Active high tx disable therefore active low tx enable (note chip must also be enabled for TX) if (enable) { @@ -267,7 +267,7 @@ val |= pEx0232TxDis; } - if (mPortEx0->pioLogicWrite(val | ~pEx0OutMask) != cmdSuccess) { + if (mPortEx0->pioLogicReliableWrite(val | ~pEx0OutMask) != cmdSuccess) { logError("Error enabling 232 TX"); return cmdError; } @@ -336,14 +336,14 @@ enableSwitchedIO(); - if (mPortEx0->pioLogicRead(mPortExpanderVal0) != cmdSuccess) { + if (mPortEx0->pioLogicReliableRead(mPortExpanderVal0) != cmdSuccess) { logError("Error during port expander ID. Read failed."); disableSwitchedIO(); delete mPortEx0; delete mPortEx1; return cmdError; } - if (mPortEx1->pioLogicRead(mPortExpanderVal1) != cmdSuccess) { + if (mPortEx1->pioLogicReliableRead(mPortExpanderVal1) != cmdSuccess) { logError("Error during port expander ID. Read failed."); disableSwitchedIO(); delete mPortEx0; @@ -378,15 +378,15 @@ } CmdResult BaseboardIO::openRelay() { uint8_t val; - mPortEx1->pioLogicRead(val); + mPortEx1->pioLogicReliableRead(val); val |= pEx1RlyA; // Make sure Relay A is off val &= ~pEx1RlyB; // Turn on Relay B - if (mPortEx1->pioLogicWrite(val | ~pEx1OutMask) != cmdSuccess) { + if (mPortEx1->pioLogicReliableWrite(val | ~pEx1OutMask) != cmdSuccess) { val |= pEx1RlyA; // Turn Relay A off val |= pEx1RlyB; // Turn Relay B off - mPortEx1->pioLogicWrite(val | ~pEx1OutMask); // Write a non assert value just to try to overcome an error + mPortEx1->pioLogicReliableWrite(val | ~pEx1OutMask); // Write a non assert value just to try to overcome an error logError ("Error turning on coil. Turning both coils off."); return cmdError; } @@ -396,8 +396,8 @@ val |= pEx1RlyA; // Turn Relay A off val |= pEx1RlyB; // Turn Relay B off - if (mPortEx1->pioLogicWrite(val | ~pEx1OutMask) != cmdSuccess) { - mPortEx1->pioLogicWrite(val | ~pEx1OutMask); + if (mPortEx1->pioLogicReliableWrite(val | ~pEx1OutMask) != cmdSuccess) { + mPortEx1->pioLogicReliableWrite(val | ~pEx1OutMask); logError ("Error turning off coils. Trying again."); return cmdError; } @@ -406,15 +406,15 @@ } CmdResult BaseboardIO::closeRelay() { uint8_t val; - mPortEx1->pioLogicRead(val); + mPortEx1->pioLogicReliableRead(val); val &= ~pEx1RlyA; // Turn on Relay A val |= pEx1RlyB; // Make sure Relay B is off - if (mPortEx1->pioLogicWrite(val | ~pEx1OutMask) != cmdSuccess) { + if (mPortEx1->pioLogicReliableWrite(val | ~pEx1OutMask) != cmdSuccess) { val |= pEx1RlyA; // Turn Relay A off val |= pEx1RlyB; // Turn Relay B off - mPortEx1->pioLogicWrite(val | ~pEx1OutMask); // Write a non assert value just to try to overcome an error + mPortEx1->pioLogicReliableWrite(val | ~pEx1OutMask); // Write a non assert value just to try to overcome an error logError ("Error turning on coil. Turning both coils off."); return cmdError; } @@ -424,8 +424,8 @@ val |= pEx1RlyA; // Turn Relay A off val |= pEx1RlyB; // Turn Relay B off - if (mPortEx1->pioLogicWrite(val | ~pEx1OutMask) != cmdSuccess) { - mPortEx1->pioLogicWrite(val | ~pEx1OutMask); + if (mPortEx1->pioLogicReliableWrite(val | ~pEx1OutMask) != cmdSuccess) { + mPortEx1->pioLogicReliableWrite(val | ~pEx1OutMask); logError ("Error turning off coils. Trying again."); return cmdError; }