Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.76 KB | None | 0 0
  1.  
  2. #include <QStringList>
  3. #include "utils/text_formatter.hpp"
  4. #include "avm_slave_infos.hpp"
  5.  
  6. namespace aep { namespace addon {
  7.  
  8. const char*  AvmSlaveInfos::SLAVE_INFO_DATA                    = "550";
  9.  
  10. const char*  AvmSlaveInfos::SLAVE_INFO_SLAVE_QUANTITY          = "580";
  11. const char*  AvmSlaveInfos::SLAVE_INFO_EXPECTED_SLAVE_QUANTITY = "581";
  12.  
  13. const char*  AvmSlaveInfos::SLAVE_INFO_ENABLED                 = "551";
  14. const char*  AvmSlaveInfos::SLAVE_INFO_ERORS                   = "552";
  15. const char*  AvmSlaveInfos::SLAVE_INFO_POLE                    = "553";
  16.  
  17. const char*  AvmSlaveInfos::SLAVE_INFO_ERORS_NUM               = "554";
  18. const char*  AvmSlaveInfos::SLAVE_INFO_DEVICE_NAME             = "555";  // Tic name
  19. const char*  AvmSlaveInfos::SLAVE_INFO_DEVICE_TYPE             = "556";  // Tipo di dispositivo (letto da TICParam)
  20. const char*  AvmSlaveInfos::SLAVE_INFO_DEVICE_SN               = "557";  // Numero di serie del dispositivo slave
  21. const char*  AvmSlaveInfos::SLAVE_INFO_PRODUCT_RELEASE         = "558";  // Numero di rilascio del prodotto
  22. const char*  AvmSlaveInfos::SLAVE_INFO_SW_MAJVER               = "559";  // versione software major
  23. const char*  AvmSlaveInfos::SLAVE_INFO_SW_MINVER               = "560";  // versione software minor
  24. const char*  AvmSlaveInfos::SLAVE_INFO_POWERUP_TIMESTAMP       = "561";  // Time stamp del power up del client
  25. const char*  AvmSlaveInfos::SLAVE_INFO_COACH_ID                = "562";  // indirizzo di protocollo
  26. const char*  AvmSlaveInfos::SLAVE_INFO_ACTIVITY_TIMESTAMP      = "563";  // Ultima volta che il dispositivo e` stato visto
  27. const char*  AvmSlaveInfos::SLAVE_INFO_SYNCHRONIZED            = "564";
  28.  
  29. AvmSlaveInfos::AvmSlaveInfos(const ETList<ETSlaveInfo>& slavesInfo, uint16 slaveQuantity, uint16 expectedSlaveQuantity):
  30.   m_slavesInfo(slavesInfo),
  31.   m_slaveQuantity(slaveQuantity),
  32.   m_expectedSlaveQuantity(expectedSlaveQuantity)
  33. {
  34.  
  35. }
  36.  
  37. void AvmSlaveInfos::toMap(QVariantMap& map) const
  38. {
  39.   map.clear();
  40.   map[AvmSlaveInfos::SLAVE_INFO_SLAVE_QUANTITY]          = m_slaveQuantity;
  41.   map[AvmSlaveInfos::SLAVE_INFO_EXPECTED_SLAVE_QUANTITY] = m_expectedSlaveQuantity;
  42.  
  43.   QVariantList slavesMap;
  44.   ETDataList::POSITION slaveInfoPos = m_slavesInfo.GetHeadPosition();
  45.   while(slaveInfoPos)
  46.   {
  47.     const ETSlaveInfo* itm = m_slavesInfo.GetNext(slaveInfoPos);
  48.     Q_ASSERT(itm != NULL);
  49.  
  50.     const QVariantMap& slaveMap = this->slaveToMap(*itm);
  51.     slavesMap.append(slaveMap);
  52.   }
  53.  
  54.   if(slavesMap.size() > 0)
  55.     map[AvmSlaveInfos::SLAVE_INFO_DATA] = slavesMap;
  56. }
  57.  
  58. void AvmSlaveInfos::fromMap(const QVariantMap& map)
  59. {
  60.   Q_UNUSED(map);
  61. }
  62.  
  63. QVariantMap AvmSlaveInfos::slaveToMap(const ETSlaveInfo& slaveInfo) const
  64. {
  65.   QVariantMap slaveMap;
  66.  
  67.   slaveMap[AvmSlaveInfos::SLAVE_INFO_ENABLED]             = slaveInfo.deviceInfo.enabled ? 1 : 0;
  68.   slaveMap[AvmSlaveInfos::SLAVE_INFO_POLE]                = slaveInfo.poleID;
  69.   slaveMap[AvmSlaveInfos::SLAVE_INFO_DEVICE_NAME]         = QString::fromUtf8(slaveInfo.deviceInfo.deviceName.GetString());  // Tic name
  70.   slaveMap[AvmSlaveInfos::SLAVE_INFO_DEVICE_TYPE]         = slaveInfo.deviceInfo.deviceType;              // Tipo di dispositivo (letto da TICParam)
  71.   slaveMap[AvmSlaveInfos::SLAVE_INFO_DEVICE_SN]           = uint(slaveInfo.deviceInfo.deviceSN);          // Numero di serie del dispositivo slave
  72.   slaveMap[AvmSlaveInfos::SLAVE_INFO_PRODUCT_RELEASE]     = QString::fromUtf8(slaveInfo.deviceInfo.productRelease.GetString());  // Numero di rilascio del prodotto
  73.   slaveMap[AvmSlaveInfos::SLAVE_INFO_SW_MAJVER]           = slaveInfo.deviceInfo.swMajVer;                // versione software major
  74.   slaveMap[AvmSlaveInfos::SLAVE_INFO_SW_MINVER]           = slaveInfo.deviceInfo.swMinVer;                // versione software minor
  75.   slaveMap[AvmSlaveInfos::SLAVE_INFO_POWERUP_TIMESTAMP]   = uint(slaveInfo.deviceInfo.powerUpTimeStamp);  // Time stamp del power up del client
  76.   slaveMap[AvmSlaveInfos::SLAVE_INFO_COACH_ID]            = slaveInfo.coachID;                            // indirizzo di protocollo
  77.   slaveMap[AvmSlaveInfos::SLAVE_INFO_ACTIVITY_TIMESTAMP]  = uint(slaveInfo.activityTimestamp);            // Ultima volta che il dispositivo e` stato visto
  78.   slaveMap[AvmSlaveInfos::SLAVE_INFO_SYNCHRONIZED]        = TextFormatter::toString(slaveInfo.synchronized);
  79.  
  80.   QStringList errorList;
  81.  
  82.   uint16_t* errIdx;
  83.   ETString* errDesc;
  84.   const ETKeyValueList<uint16,ETString>& errors = slaveInfo.deviceInfo.activeErrors;
  85.   ETDataList::POSITION  errorPos = errors.GetHeadPosition();
  86.   while(errors.GetNext(errorPos, &errIdx, &errDesc))
  87.     errorList.append(QString::number(*errIdx));
  88.  
  89.   if(errorList.size() > 0)
  90.     slaveMap[AvmSlaveInfos::SLAVE_INFO_ERORS]    = errorList;
  91.  
  92.   slaveMap[AvmSlaveInfos::SLAVE_INFO_ERORS_NUM]  = errorList.size();
  93.  
  94.   return slaveMap;
  95. }
  96.  
  97. }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement