RadioTestLibrary  1.32.0
rtl_device.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 /*
3  * File rtl_device.h
4  * Revision $Revision$
5  * Description Super class for Radio Test Library of device classes in DAL.
6  *
7 // ##### LICENSE HEADER #####
8  *
9  */
10  //-----------------------------------------------------------------------------
11 
12 
13 #ifndef RTLDEVICE_H
14 #define RTLDEVICE_H
15 
16 #include <QtCore>
17 
18 #include "rtl_flash_handler.h"
19 
20 #define DONT_CHANGE_TEST_STATE false
21 
22 class DALEbDevice;
23 class DALRfDevice;
24 class RTLFlashHandler;
25 
26 typedef void(*_STATUS_FUNC_PTR)(char *pText, bool error);
27 typedef void(*_PROGRESS_FUNC_PTR)(int percentage);
28 
29 class RTLDevice
30 {
31 
32 public:
33 
34  typedef enum
35  {
40  } TEST_MODE;
41 
42  typedef enum
43  {
49  } TEST_RESULT;
50 
51  typedef enum
52  {
55  } TEST_STATE;
56 
57  typedef struct
58  {
59  QString deviceId;
61  } DeviceInfo_t;
62 
63  typedef struct
64  {
65  TEST_MODE testMode;
66  QString qsCategory;
67  QString qsSetting;
68  QString qsTargetName;
69  } TestConfig_t;
70 
71  typedef struct
72  {
73  TEST_RESULT result;
74  double value;
75  int rssi;
76  double freqOff;
77  QString qsError;
78  } TestResult_t;
79 
80 
81  typedef struct
82  {
83  char* pData;
84  int maxLength;
85  int rssi;
86  bool crcOk;
87  } PacketData_t;
88 
89  RTLDevice(void);
90  virtual ~RTLDevice(void);
91 
92  virtual int addDynamicOverride(const QString &devId, const QString &type, const QString &value, const QString &id) = 0;
93  virtual int removeDynamicOverride(const QString &devId, const QString &id) = 0;
94  virtual void appendError(const QString &error);
95  virtual void clearAllErrors(void);
96  virtual int connect(const QString rfDevName, const QString &devId);
97  virtual int deleteFileObject(FPLFile *pFplFile);
98  virtual int disconnect(const QString &devId);
99  virtual int doLinkTest(const QString &txId, const QString &rxId, TestResult_t *pTestResult) = 0;
100  virtual QStringList enumerateEbs(bool enableXdsDev = false);
101  virtual QString getRfDevNameFromDevId(const QString devId);
102  virtual int eraseFlash(const QString &devName, const QString &devId, EraseInfo_t *pEraseInfo = NULL, FPLFile *pFile = NULL) = 0;
103  virtual int executeCmd(const QString &devId, const QString &cmdName);
104  virtual int getAverageRssi(void) { return m_averageRssi; };
105  virtual QString getLastError(void);
106  virtual QString getRfState(const QString &devId);
107  virtual int getRssi(const QString &devId, QString *pRssiInDbm, QString *pRssiRaw);
108  virtual int initPacketTx(const QString rfDevName, const QString &devId);
109  virtual bool isConnected(const QString &devId) { return m_mapConDevices.contains(devId); };
110  virtual int isPacketReceived(const QString rfDevName, const QString &devId);
111  virtual int programFlash(const QString &devName, const QString &devId, FPLFile *pFplFile, ProgramInfo_t *pProgInfo = NULL) = 0;
112  virtual int programFlash(const QString &devName, const QString &devId,
113  const quint32 &address, const quint32 &length, quint8 *pBuffer) = 0;
114  virtual int readCmdSettingsFromFile(const QString &devId, TestConfig_t &testConfig) = 0;
115  virtual FPLFile *readFile(const QString &devName, const QString &devId, const QString &fileName, const quint32 &startAddress = 0);
116  virtual int readFrequencyOffset(const QString &devId, TestResult_t *pTestResult) { pTestResult->qsError = QString("Function not supported. devId = %1").arg(devId); return 0; }
117  virtual int readFrequencyOffsetCW(const QString &devId, TestResult_t *pTestResult) { pTestResult->qsError = QString("Function not supported. devId = %1").arg(devId); return 0; };
118  virtual int readPacket(const QString rfDevName, const QString &devId, PacketData_t *pPacketData);
119  virtual int readMcuReg(const QString &devId, const quint32 &address, quint32 *pValue) = 0;
120  virtual int readMemory(const QString &devName, const QString &devId,
121  const quint32 &address, quint32 *pLength, quint8 *pBuffer) = 0;
122  virtual int readRfReg(const QString &devId, const quint32 &address, quint32 *pValue) = 0;
123  virtual int resetTarget(const QString rfDevName, const QString &devId, RESET_MODE mode);
124  virtual int sendPacket(const QString rfDevName, const QString &devId);
125  virtual int setParameter(const QString &devId, const QString &parName, const QString &parValue);
126  virtual void setPacketData(char *pPayload, int len);
127  virtual int setPacketInterval(const QString &devId, const int &interval);
128  virtual void setNbrOfPackets(int n) { m_nbrOfPackets = n; }
129  virtual int setIdle(const QString rfDevName, const QString &devId);
130  virtual int startContTx(const QString rfDevName, const QString &devId, TestResult_t *pTestResult);
131  virtual int startContRx(const QString rfDevName, const QString &devId, TestResult_t *pTestResult);
132  virtual int startPacketRx(const QString rfDevName, const QString &devId);
133  virtual int verifyFlash(const QString &devName, const QString &devId, FPLFile *pFplFile, ProgramInfo_t *pProgInfo = NULL) = 0;
134  virtual int writeMcuReg(const QString &devId, const quint32 &address, const quint32 &value) = 0;
135  virtual int writeMemory(const QString &devName, const QString &devId,
136  const quint32 &address, const quint32 &length, quint8 *pBuffer) = 0;
137  virtual int writeRfReg(const QString &devId, const quint32 &address, const quint32 &value) = 0;
138  virtual int runCpu(const QString &devName, const QString &devId, bool debugMode) = 0;
139  virtual int haltCpu(const QString &devName, const QString &devId) = 0;
140  virtual int writeCpuReg(const QString &devName, const QString &devId,
141  const CM3_CPU_REGISTERS &regNumber, const uint32_t &value) = 0;
142  virtual int readCpuReg(const QString &devName, const QString &devId,
143  const CM3_CPU_REGISTERS &regNumber, uint32_t *pValue) = 0;
144  virtual int setCapArrayDelta(const QString &devId, const qint16 &value) = 0;
145 
146  static void initEraseInfo(EraseInfo_t *pEraseInfo) { RTLFlashHandler::initEraseInfo(pEraseInfo); };
147  static void initProgramInfo(ProgramInfo_t *pProgInfo) { RTLFlashHandler::initProgramInfo(pProgInfo); };
149 
150 protected:
154  QByteArray m_packetData;
158  QList<DeviceInfo_t> m_ebList;
160  QMap<QString, DALEbDevice *> m_mapConDevices;
162  QMultiMap<char, int> m_mapFreqOffset;
166  QMap<QString, RTLFlashHandler *> m_mapFlashHandlers;
167 
169  QString normDeviceName(const QString &rfDevName);
171  virtual int initDALApi(const QString &devId) = 0;
173  RTLFlashHandler *getFlashHandler(const QString &devName, const QString &devId);
175  bool fwUpdateRequired(const QString &devId);
176 
177 private:
179  QString m_qsEmpty;
181  QStringList m_lstOfErrors;
182  //A map between device id and device RF name. This is useful for tests that connect with device RF name.
183  QMap<QString, QString> m_devIdToRfName;
184 };
185 
186 #endif
virtual int getAverageRssi(void)
Definition: rtl_device.h:104
QString qsCategory
Definition: rtl_device.h:66
virtual int getRssi(const QString &devId, QString *pRssiInDbm, QString *pRssiRaw)
Get RSSI.
Definition: rtl_device.cpp:774
RTLFlashHandler * getFlashHandler(const QString &devName, const QString &devId)
Get Flash Handler.
Definition: rtl_device.cpp:989
This structure is used as input to RTLDevice::programFlash() and RTLDevice::verifyFlash().
Definition: rtl_flash_handler.h:84
Definition: rtl_device.h:57
TEST_RESULT
Definition: rtl_device.h:42
double freqOff
Definition: rtl_device.h:76
virtual int removeDynamicOverride(const QString &devId, const QString &id)=0
Definition: rtl_device.h:47
virtual int executeCmd(const QString &devId, const QString &cmdName)
Execute command.
Definition: rtl_device.cpp:698
Definition: rtl_device.h:39
virtual int readMcuReg(const QString &devId, const quint32 &address, quint32 *pValue)=0
virtual int initDALApi(const QString &devId)=0
Function used to initiate DAL API. This is required after the FPL API has been used.
Definition: rtl_device.h:29
QString qsError
Definition: rtl_device.h:77
TEST_STATE
Definition: rtl_device.h:51
Definition: rtl_device.h:46
virtual int sendPacket(const QString rfDevName, const QString &devId)
Send Packet.
Definition: rtl_device.cpp:417
virtual int programFlash(const QString &devName, const QString &devId, FPLFile *pFplFile, ProgramInfo_t *pProgInfo=NULL)=0
Definition: rtl_device.h:37
Definition: rtl_device.h:63
virtual ~RTLDevice(void)
Definition: rtl_device.cpp:31
QMap< QString, DALEbDevice * > m_mapConDevices
Map of connected devices.
Definition: rtl_device.h:160
virtual int initPacketTx(const QString rfDevName, const QString &devId)
Initialize Packet TX.
Definition: rtl_device.cpp:383
This structure is used as input to RTLDevice::eraseFlash().
Definition: rtl_flash_handler.h:58
virtual int setParameter(const QString &devId, const QString &parName, const QString &parValue)
Set Parameter.
Definition: rtl_device.cpp:281
virtual int eraseFlash(const QString &devName, const QString &devId, EraseInfo_t *pEraseInfo=NULL, FPLFile *pFile=NULL)=0
void(* _PROGRESS_FUNC_PTR)(int percentage)
Definition: rtl_device.h:27
Definition: rtl_device.h:53
int rssi
Definition: rtl_device.h:75
virtual int verifyFlash(const QString &devName, const QString &devId, FPLFile *pFplFile, ProgramInfo_t *pProgInfo=NULL)=0
virtual void setPacketData(char *pPayload, int len)
Set packet Data.
Definition: rtl_device.cpp:362
Definition: rtl_device.h:54
Definition: rtl_device.h:44
static void initProgramInfo(ProgramInfo_t *pProgInfo)
Initialize program info. Default is to program all pages in the source file.
Definition: rtl_flash_handler.cpp:784
virtual QString getRfState(const QString &devId)
Get RF State.
Definition: rtl_device.cpp:732
int m_nbrOfPackets
Number of packets that will be sent during the link test.
Definition: rtl_device.h:156
virtual void clearAllErrors(void)
Clear errors.
Definition: rtl_device.cpp:972
virtual FPLFile * readFile(const QString &devName, const QString &devId, const QString &fileName, const quint32 &startAddress=0)
Read File.
Definition: rtl_device.cpp:897
CM3_CPU_REGISTERS
The XDS debug interface uses an offset of 512 to address the CPU registers.
Definition: rtl_flash_handler.h:90
static void initEraseInfo(EraseInfo_t *pEraseInfo)
Definition: rtl_device.h:146
static void initProgramInfo(ProgramInfo_t *pProgInfo)
Definition: rtl_device.h:147
TEST_MODE testMode
Definition: rtl_device.h:65
virtual int setCapArrayDelta(const QString &devId, const qint16 &value)=0
Definition: rtl_flash_handler.h:111
QByteArray m_packetData
Buffer used for packet data during link test.
Definition: rtl_device.h:154
static _PROGRESS_FUNC_PTR sm_pProgressFunction
Static function pointer used to give feedback on progress.
Definition: rtl_device.h:164
QString qsTargetName
Definition: rtl_device.h:68
Definition: rtl_device.h:45
virtual QString getRfDevNameFromDevId(const QString devId)
Get RF Device name from Device ID.
Definition: rtl_device.cpp:114
virtual int addDynamicOverride(const QString &devId, const QString &type, const QString &value, const QString &id)=0
QString qsSetting
Definition: rtl_device.h:67
double value
Definition: rtl_device.h:74
Definition: rtl_device.h:81
void(* _STATUS_FUNC_PTR)(char *pText, bool error)
Definition: rtl_device.h:26
int rssi
Definition: rtl_device.h:85
static void setCallBackProgressFunction(_PROGRESS_FUNC_PTR pPf)
Definition: rtl_device.h:148
Definition: rtl_device.h:48
virtual int writeCpuReg(const QString &devName, const QString &devId, const CM3_CPU_REGISTERS &regNumber, const uint32_t &value)=0
virtual bool isConnected(const QString &devId)
Definition: rtl_device.h:109
Definition: rtl_device.h:71
virtual int readRfReg(const QString &devId, const quint32 &address, quint32 *pValue)=0
virtual int doLinkTest(const QString &txId, const QString &rxId, TestResult_t *pTestResult)=0
virtual int writeRfReg(const QString &devId, const quint32 &address, const quint32 &value)=0
virtual int readCmdSettingsFromFile(const QString &devId, TestConfig_t &testConfig)=0
QMultiMap< char, int > m_mapFreqOffset
List used to average the frequency offset value. The offset value is used as key and the packet numbe...
Definition: rtl_device.h:162
virtual int runCpu(const QString &devName, const QString &devId, bool debugMode)=0
RTLDevice(void)
Definition: rtl_device.cpp:24
virtual int readFrequencyOffset(const QString &devId, TestResult_t *pTestResult)
Definition: rtl_device.h:116
virtual QStringList enumerateEbs(bool enableXdsDev=false)
Enumerate EB devices.
Definition: rtl_device.cpp:59
int fwUpdateReq
Definition: rtl_device.h:60
QMap< QString, RTLFlashHandler * > m_mapFlashHandlers
Mapped list of Flash handler objects.
Definition: rtl_device.h:166
virtual int resetTarget(const QString rfDevName, const QString &devId, RESET_MODE mode)
Reset Target device.
Definition: rtl_device.cpp:836
virtual int connect(const QString rfDevName, const QString &devId)
Connect to target device.
Definition: rtl_device.cpp:149
virtual int readCpuReg(const QString &devName, const QString &devId, const CM3_CPU_REGISTERS &regNumber, uint32_t *pValue)=0
QString deviceId
Definition: rtl_device.h:59
virtual QString getLastError(void)
Get last error.
Definition: rtl_device.cpp:954
virtual int readFrequencyOffsetCW(const QString &devId, TestResult_t *pTestResult)
Definition: rtl_device.h:117
TEST_RESULT result
Definition: rtl_device.h:73
virtual int readPacket(const QString rfDevName, const QString &devId, PacketData_t *pPacketData)
Read Packet.
Definition: rtl_device.cpp:536
virtual int startPacketRx(const QString rfDevName, const QString &devId)
Start Packet RX.
Definition: rtl_device.cpp:459
int maxLength
Definition: rtl_device.h:84
virtual int startContRx(const QString rfDevName, const QString &devId, TestResult_t *pTestResult)
Start continuous RX.
Definition: rtl_device.cpp:630
Definition: rtl_device.h:38
virtual int isPacketReceived(const QString rfDevName, const QString &devId)
Is Packet Received.
Definition: rtl_device.cpp:497
virtual int disconnect(const QString &devId)
Disconnect target device.
Definition: rtl_device.cpp:237
QList< DeviceInfo_t > m_ebList
List of connected EB devices (XDS serial number) returned from DALEbDevice::enumEB() ...
Definition: rtl_device.h:158
char * pData
Definition: rtl_device.h:83
virtual void setNbrOfPackets(int n)
Definition: rtl_device.h:128
QString normDeviceName(const QString &rfDevName)
Function to normalize the device name for use in DAL.
Definition: rtl_device.cpp:863
virtual int haltCpu(const QString &devName, const QString &devId)=0
Definition: rtl_device.h:36
static void initEraseInfo(EraseInfo_t *pEraseInfo)
Initialize erase info. Default is to erase all unprotected pages.
Definition: rtl_flash_handler.cpp:769
virtual int startContTx(const QString rfDevName, const QString &devId, TestResult_t *pTestResult)
Start continuous TX.
Definition: rtl_device.cpp:593
bool fwUpdateRequired(const QString &devId)
The function will return true if FW updated is required.
Definition: rtl_device.cpp:1043
virtual int setIdle(const QString rfDevName, const QString &devId)
Set device in Idle.
Definition: rtl_device.cpp:664
virtual int writeMemory(const QString &devName, const QString &devId, const quint32 &address, const quint32 &length, quint8 *pBuffer)=0
virtual int writeMcuReg(const QString &devId, const quint32 &address, const quint32 &value)=0
TEST_MODE
Definition: rtl_device.h:34
virtual int deleteFileObject(FPLFile *pFplFile)
Delete file Object.
Definition: rtl_device.cpp:923
bool crcOk
Definition: rtl_device.h:86
int m_averageRssi
Used to keep the average RSSI value calculated during a link test.
Definition: rtl_device.h:152
virtual void appendError(const QString &error)
Append error.
Definition: rtl_device.cpp:938
virtual int readMemory(const QString &devName, const QString &devId, const quint32 &address, quint32 *pLength, quint8 *pBuffer)=0
virtual int setPacketInterval(const QString &devId, const int &interval)
Set Packet interval.
Definition: rtl_device.cpp:327
© Copyright 1995-2023, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale