Fork to see if I can get working

Dependencies:   BufferedSerial OneWire WinbondSPIFlash libxDot-dev-mbed5-deprecated

Fork of xDotBridge_update_test20180823 by Matt Briggs

Revision:
55:79ab0bbc5008
Parent:
50:e89647e77fd5
Child:
56:40b454c952cc
--- a/xDotBridge/inc/BaseboardIO.h	Wed Feb 22 15:39:40 2017 -0700
+++ b/xDotBridge/inc/BaseboardIO.h	Mon Feb 27 08:06:36 2017 -0700
@@ -9,6 +9,42 @@
 #ifndef BASEBOARDIO_H_
 #define BASEBOARDIO_H_
 
+const uint16_t BASEBOARDIO_NVM_START_ADDR = 0x1000;
+const uint16_t BASEBOARDIO_NVM_SIZE = 32; // Bytes
+const uint16_t BASEBOARDIO_FLAG = 0x5A00;
+const uint16_t BASEBOARDIO_REV = 0x0000;
+
+class NvmBBIOObj {
+public:
+    NvmBBIOObj();
+    void setDefaults();
+    CmdResult fromBytes(uint8_t *data, uint8_t size);
+    CmdResult toBytes(uint8_t *data, uint8_t &size);
+
+    uint16_t getBaseboardIOFlag();
+    bool validBaseboardIOFlag();
+    uint16_t getBaseboardIORev();
+    bool validBaseboardIORev();
+
+    uint16_t getSerialNum();
+    void setSerialNum(uint16_t in);
+    uint32_t getBaseboardIOConfig();
+    void setBaseboardIOConfig(uint32_t in);
+    void getPortExpanderROM0(uint8_t *addr);
+    void setPortExpanderROM0(const uint8_t *addr);
+    void getPortExpanderROM1(uint8_t *addr);
+    void setPortExpanderROM1(const uint8_t *addr);
+    // Make public to save memory
+    uint8_t mPortExpanderROM0[8];
+    uint8_t mPortExpanderROM1[8];
+
+private:
+    uint16_t mBaseboardIOFlag;
+    uint16_t mBaseboardIORev;
+    uint16_t mSerialNum;
+    uint16_t mBaseboardIOConfig;
+};
+
 /**
  *  @class BaseboardIO
  *  @brief This class abstracts utilizing the IO mostly found on the baseboard
@@ -318,6 +354,7 @@
 
 private:
     // Initialized during constructor
+    NvmBBIOObj mNvmObj;
     OneWire mOWMaster;
     InterruptIn mCCIn;
     InterruptIn mTamper;
@@ -325,14 +362,9 @@
     DigitalOut mLed;
     DigitalOut mSwitchedIOCtrl;
 
-    // Initialized during init()
-//    void (*mCCInIntCallback) (void);
-//    void (*mTamperIntCallback) (void);
-//    void (*mPairBtnIntCallback) (void);
-
-    uint8_t mPortExpanderROM0[8];
+//    uint8_t mPortExpanderROM0[8]; // FIXME could probably get rid of
     uint8_t mPortExpanderVal0;
-    uint8_t mPortExpanderROM1[8];
+//    uint8_t mPortExpanderROM1[8];
     uint8_t mPortExpanderVal1;
 
     DS2408 *mPortEx0;
@@ -343,7 +375,6 @@
     }
     void disableSwitchedIO () {
         mSwitchedIOCtrl = 1; // deassertted since PMOS
-//        mSwitchedIOCtrl = 0; // FIXME
     }
 
     /**
@@ -405,4 +436,5 @@
     CmdResult openRelay();
 };
 
+
 #endif /* BASEBOARDIO_BASEBOARDIO_H_ */