Fork to see if I can get working
Dependencies: BufferedSerial OneWire WinbondSPIFlash libxDot-dev-mbed5-deprecated
Fork of xDotBridge_update_test20180823 by
SerialTermMgr.h
00001 /* 00002 * SerialTermMgr.h 00003 * 00004 * Created on: May 8, 2017 00005 * Author: mbriggs 00006 */ 00007 00008 #ifndef XDOTBRIDGE_INC_SERIALTERMMGR_H_ 00009 #define XDOTBRIDGE_INC_SERIALTERMMGR_H_ 00010 00011 #include "mbed.h" 00012 #include "BufferedSerial.h" 00013 #include "WinbondSPIFlash.h" 00014 #include "BaseboardIO.h" 00015 00016 const uint32_t TERM_BAUD = 115200; 00017 const uint8_t TERM_TIMEOUT = 30; // In seconds 00018 00019 const float XMODEM_TIMEOUT = 10.0; 00020 const unsigned char MAX_TIMEOUTS = 6; // multiple by TIMEOUT above. 60 total seconds 00021 const uint16_t FLASH_BIN_OFFSET = 256; // Skip first flash page 00022 const uint16_t XMODEM_PACKET_SIZE = 128; 00023 const char NEW_CODE [] = "NEWCODE0"; 00024 const char END0LINE [] = "END0LINE"; 00025 const char VORTEX_UPDATE_KEY [] = "V0RT3XUPDATE"; 00026 00027 enum ScreenId { 00028 mainScreenId, 00029 genInfoScreenId, 00030 settingsScreenId, 00031 statsScreenId, 00032 errorLogScreenId, 00033 liveLogScreenId, 00034 enterSerialBridgeScreenId, 00035 enterProgModeScreenId 00036 }; 00037 00038 00039 class SerialTermMgr 00040 { 00041 private: 00042 ScreenId mCurrScreen; // Current selection 00043 float mFwVersion; 00044 BaseboardIO *mBbio; // Handle for reading states 00045 BufferedSerial *mPc; 00046 WinbondSPIFlash *mFlash; 00047 00048 // Hold for seeding new values 00049 bool mSaveIsCCNO; 00050 bool mSaveIsTx; 00051 uint8_t mSaveRot1; 00052 00053 bool inputMainPage(char in); 00054 void printMainScreen(); 00055 void inputGenInfo (char in); 00056 void printGenInfo(); 00057 void inputSettings (char in); 00058 void printSettings(); 00059 void seedSaveSettings(); 00060 void applySaveSettings(); 00061 void inputEnterProgMode (char in); 00062 void printEnterProgMode(); 00063 bool xmodem2Flash(); 00064 void writeBootloaderCtrlPage(uint32_t nBytes); 00065 public: 00066 SerialTermMgr(BaseboardIO *bbio, WinbondSPIFlash *flash, float fwVersion); 00067 void regSerial (BufferedSerial *pc) { 00068 mPc = pc; 00069 } 00070 ScreenId getCurrentScreenId() { 00071 return mCurrScreen; 00072 } 00073 void printScreen(); 00074 bool input(); 00075 }; 00076 00077 #endif /* XDOTBRIDGE_INC_SERIALTERMMGR_H_ */
Generated on Fri Jul 15 2022 14:36:45 by 1.7.2