#include "VDeviceInformation.h" // Qt #include // Project #include "Logger.h" using namespace View; using namespace Gui; using namespace Storage; VIEW_DEF_CLASS(VDeviceInformation) /*! * \brief VDeviceInformation::initConnections * Makes the necessary connections. Called inside VIEW_DEF_CLASS */ void VDeviceInformation::initConnections() { // requests ADJUST_VIEW_CONNECTION(AdjustVersionsRequestData); ADJUST_VIEW_CONNECTION(AdjustServiceRequestData); // responses ACTION_VIEW_CONNECTION(AdjustHDVersionsResponseData); ACTION_VIEW_CONNECTION(AdjustDGVersionsResponseData); ACTION_VIEW_CONNECTION(HDSerialNumberResponseData); ACTION_VIEW_CONNECTION(DGSerialNumberResponseData); ACTION_VIEW_CONNECTION(AdjustHDServiceResponseData); ACTION_VIEW_CONNECTION(AdjustDGServiceResponseData); init(); } /*! * \brief VDeviceInformation::setup * Request information needed to populate the device information page */ void VDeviceInformation::init() { doRequestHDDGVersions(); doRequestServiceData(); _uiVersion = qApp->applicationVersion(); } /*! * \brief VDeviceInformation::doGetVersionKeys * Gets the version key names * \return (QStringList) the version key names */ QStringList VDeviceInformation::doGetVersionKeys() { return QStringList() << tr("UI Version") << tr("HD Version") << tr("HD FPGA Version") << tr("HD Serial Number") << tr("DG Version") << tr("DG FPGA Version") << tr("DG Serial Number"); } /*! * \brief VDeviceInformation::doGetVersionValues * Gets the version / serial number values * \return (QStringList) the values for each version / serial number */ QStringList VDeviceInformation::doGetVersionValues() { return QStringList() << _uiVersion << _hdVersion << _hdFPGAVersion << _hdSerialNumber << _dgVersion << _dgFPGAVersion << _dgSerialNumber; } /*! * \brief VDeviceInformation::doGetSystemUsageKeys * Gets the system usage key names * \return (QStringList) the system usage key names */ QStringList VDeviceInformation::doGetSystemUsageKeys() { return QStringList() << tr("HD Last Service Date") << tr("HD Next Service Date") << tr("DG Last Service Date") << tr("DG Next Service Date"); } /*! * \brief VDeviceInformation::doGetSystemUsageValues * Gets the system usage values * \return (QStringList) the system usage values */ QStringList VDeviceInformation::doGetSystemUsageValues() { return QStringList() << _hdLastServiceDate << _hdNextServiceDate << _dgLastServiceDate << _dgNextServiceDate; } /*! * \brief VDeviceInformation::onActionReceive * Called when the HD version response is received * \param vData - (AdjustHDVersionsResponseData) the version response */ void VDeviceInformation::onActionReceive(const AdjustHDVersionsResponseData &vData) { _hdVersion = QString("v%1.%2.%3-%4") .arg(vData.mMajor ) .arg(vData.mMinor ) .arg(vData.mMicro ) .arg(vData.mBuild ); _hdFPGAVersion = QString("%1 v%2.%3 %4") .arg(vData.mFPGAId ) .arg(vData.mFPGAMajor) .arg(vData.mFPGAMinor) .arg(vData.mFPGALab ); } /*! * \brief VDeviceInformation::onActionReceive * When the DG Version response is received * \param vData - (AdjustDGVersionsResponseData) the version response */ void VDeviceInformation::onActionReceive(const AdjustDGVersionsResponseData &vData) { _dgVersion = QString("v%1.%2.%3-%4") .arg(vData.mMajor ) .arg(vData.mMinor ) .arg(vData.mMicro ) .arg(vData.mBuild ); _dgFPGAVersion = QString("%1 v%2.%3 %4") .arg(vData.mFPGAId ) .arg(vData.mFPGAMajor) .arg(vData.mFPGAMinor) .arg(vData.mFPGALab ); } /*! * \brief VDeviceInformation::onActionReceive * When the HD Serial number response is received * \param vData - (HDSerialNumberResponseData) the version response */ void VDeviceInformation::onActionReceive(const HDSerialNumberResponseData &vData) { _hdSerialNumber = vData.serialNumber; } /*! * \brief VDeviceInformation::onActionReceive * When the DG serial number response is received * \param vData - (DGSerialNumberResponseData) the version response */ void VDeviceInformation::onActionReceive(const DGSerialNumberResponseData &vData) { _dgSerialNumber = vData.serialNumber; } /*! * \brief VDeviceInformation::onActionReceive * When the HD service response is received * \param vData - (AdjustHDServiceResponseData) the version response */ void VDeviceInformation::onActionReceive(const AdjustHDServiceResponseData &vData) { quint32 lastService = vData.mLastServiceDateEpoch; quint32 nextService = vData.mLastServiceDateEpoch + vData.mServiceIntervalSeconds; _hdLastServiceDate = epochToString(lastService); _hdNextServiceDate = epochToString(nextService); } /*! * \brief VDeviceInformation::onActionReceive * When the DG service response is received * \param vData - (AdjustDGServiceResponseData) the version response */ void VDeviceInformation::onActionReceive(const AdjustDGServiceResponseData &vData) { quint32 lastService = vData.mLastServiceDateEpoch; quint32 nextService = vData.mLastServiceDateEpoch + vData.mServiceIntervalSeconds; _dgLastServiceDate = epochToString(lastService); _dgNextServiceDate = epochToString(nextService); } /*! * \brief VDeviceInformation::epochToString * Converts an epoch to a formatted date and time * \param vEpoch (quint32) the epoch * \return (QString) the formatted date and time */ QString VDeviceInformation::epochToString(const quint32 &vEpoch) { // This will have to be updated in Phase 2 when user can set the date and time format // For now, default is (MM/DD/YYYY) QDateTime dt = QDateTime::fromSecsSinceEpoch(vEpoch); return dt.toString(QString("%1/%2/%3").arg(dt.date().month()).arg(dt.date().day()).arg(dt.date().year())); }