#ifndef TRXBOARD_H #define TRXBOARD_H #include #include #include #include #include "model/hardware/core/register/clockDistributer/ClockDistributer.h" #include "model/hardware/core/register/boardsCtrlMngt/BoardsCtrlMngt.h" #include "model/hardware/core/register/fpgaProgram/FpgaProgram.h" #include "model/hardware/core/register/builtInTest/BuiltInTest.h" #include "model/hardware/core/register/beamFormer/BeamFormer.h" #include "model/hardware/core/register/scenPlayer/ScenPlayer.h" #include "model/hardware/core/register/bpiFlash/BpiFlash.h" #include "model/hardware/core/register/dsp/Dsp.h" #include "model/hardware/core/dmaCtrl/DmaCtrl.h" #include "model/hardware/device/SonoDevice.h" #define SLAVE_ELEMENT_SEGMENT 64U #define TOTAL_SCEN_LUT_SRAM 5U //without sram #define SLAVE_FPGA_NUMBER 3U #define CLOCK_DIVISION 0x55 #define EEPROM_ID_BYTE_BEGIN 0U #define EEPROM_ID_BYTE_NUMBER 4U #define EEPROM_INFO_BYTE_BEGIN 0U #define EEPROM_INFO_BYTE_NUMBER 30U struct ProbeElementPosition { QList xPosition; QList yPosition; QList zPosition; }; struct HealthStatus { float systemTemperature; float criticalComponentTemperature; AdcVoltages* adcMon; VoltagesPg* voltsPg; }; enum eSelectProbe : quint8 { prbA = 1, prbB, prbC, prbD, }; struct ConnectedPrbId { quint32 prbA; quint32 prbB; quint32 prbC; quint32 prbD; }; struct ConnectedPrbInfo { QByteArray prbA; QByteArray prbB; QByteArray prbC; QByteArray prbD; }; class TrxBoard { private: QVector _swapVec; QList* _mcsList; const quint32 _offsetSlave0; const quint32 _offsetSlave1; const quint32 _offsetSlave2; bool _allow; SonoDevice _device; AdcVoltages* _adc; VoltagesPg* _pg; ClockDistributer* _clkDistributer; BoardsCtrlMngt* _bCtrlMngt; FpgaProgram* _fpgaProgram; BeamFormer* _beamFormerSlave0; BeamFormer* _beamFormerSlave1; BeamFormer* _beamFormerSlave2; ScenPalyer* _scenPlayer; BpiFlash* _bpiFlash; DmaCtrl* _dmaCtrl; Dsp* _dsp; enum eScenParams : quint8 { clear, set }; void scenParamsFilling(eScenParams cmd); void setSwapVector (void); /////////////////////////// Old TRX /////////////////////////// QString _name; QString _version; int _swCounter; int _hwCounter; bool _run; public: TrxBoard(); ~TrxBoard(); ///////////////////////////////// BeamFormer API /////////////////////////////// void scenRxBeamformerProperties (RxBeamformerProperties* rxBeamformer); void scenProbeElementPosition (ProbeElementPosition* element); void scenApodizationLut (QList>& apodization); void scenPulseProperties (PulseProperties* pulse); void scenAfeLut (AfeProperties* afe); //////////////////////////////////// DSP API /////////////////////////////////// void scenReceiverConfigurationLut (ReceiverConfiguration* configLut) const; void scenLineFilterCoefficient (QList& lineFilterLut) const; void scenBlendWeight (QList>& blendWeight) const; void scenAtgcLut (QList>& atgcLut) const; void scenStbCoefficient (QList& stbLut) const; void setAtgcMode (eAtgcMode mode, quint16 value) const; void scenFrequencyLut (QList& freqLut) const; void scenLpfLut (QList>& lpfLut) const; void scenDtgcLut (QList& dtgcLut) const; ////////////////////////////// Slave Programming API /////////////////////////// void slaveFpgaProgram (QString path); /////////////////////////////// BeamFormer Mode API //////////////////////////// void setBeamFormerMode (eClkMode mode) const; /////////////////////////////// Scenario Player API //////////////////////////// void setScenPlayerIndex (quint32 startIdx, quint32 endIdx) const; void scenPlayerStart (void) const; //void scenPlayerPause (bool pause) const; void scenPlayerStop (void) const; ///////////////////////////////// Sram Fill API //////////////////////////////// void sramWrite(QList& data, quint32 offsetAddr); ///////////////////////////////// Emulator API ///////////////////////////////// void emulatorInit(EmulatorProperties* config) const; void emulatorStart(bool start) const; void emulatorStop(bool stop) const; ////////////////////////////// BoardCtrlMngt API /////////////////////////////// quint32 deviceId (void) const; quint32 vendorId (void) const; quint32 trxId (void) const; quint32 mpsId (void) const; quint32 prbCtrlId (void) const; quint32 prbId (quint8 prbSel) const; void getConnectedPrbId (ConnectedPrbId* prbId) const; QString trxInfo (void) const; QString mpsInfo (void) const; QString prbCtrlInfo (void) const; QByteArray prbInfo (quint8 prbSel) const; void getConnectedPrbInfo (ConnectedPrbInfo* prbInfo) const; void supervisorRbValue(SupervisorRbValue* sValue) const; void mpsFaultStatus (MpsFaultStatus* faultStatus) const; void mpsReset (void) const; void mpsSetAo (float voltA, float voltB) const; void selectProbe (eSelectProbe prbSel) const; void getHealthStatus (HealthStatus* healStat) const; void init (void) const; //////////////////////////////// BPI Flash API ///////////////////////////////// void mcsProgram (QString path); void mcsVerify (QString path) const; ///////////////////////////////// Old TRX ////////////////////////////////////// //HardwarePacketEngine packetEngine; QString getName(); QString getVersion(); bool selfTest(); bool updateInfo(); bool updateStatus(); void readData(); void start(); void stop(); }; //bool TrxBoard::_allow = false; #endif // TRXBOARD_H