! * \brief Returns the statistical data that is needed by the topic for its MQTTClient's will message * \param topic */
| 821 | * \param topic |
| 822 | */ |
| 823 | QString MQTTClient::statistics(const MQTTTopic* topic) const { |
| 824 | const auto* col = topic->child<Column>(topic->childCount<Column>() - 1); |
| 825 | QString statistics; |
| 826 | |
| 827 | QVector<bool> willStatistics = topic->mqttClient()->willStatistics(); |
| 828 | // Add every statistical data to the string, the flag of which is set true |
| 829 | for (int i = 0; i <= willStatistics.size(); i++) { |
| 830 | if (willStatistics[i]) { |
| 831 | switch (static_cast<MQTTClient::WillStatisticsType>(i)) { |
| 832 | case MQTTClient::WillStatisticsType::ArithmeticMean: |
| 833 | statistics += QStringLiteral("Arithmetic mean: ") + QString::number(col->statistics().arithmeticMean) + QStringLiteral("\n"); |
| 834 | break; |
| 835 | case MQTTClient::WillStatisticsType::ContraharmonicMean: |
| 836 | statistics += QStringLiteral("Contraharmonic mean: ") + QString::number(col->statistics().contraharmonicMean) + QStringLiteral("\n"); |
| 837 | break; |
| 838 | case MQTTClient::WillStatisticsType::Entropy: |
| 839 | statistics += QStringLiteral("Entropy: ") + QString::number(col->statistics().entropy) + QStringLiteral("\n"); |
| 840 | break; |
| 841 | case MQTTClient::WillStatisticsType::GeometricMean: |
| 842 | statistics += QStringLiteral("Geometric mean: ") + QString::number(col->statistics().geometricMean) + QStringLiteral("\n"); |
| 843 | break; |
| 844 | case MQTTClient::WillStatisticsType::HarmonicMean: |
| 845 | statistics += QStringLiteral("Harmonic mean: ") + QString::number(col->statistics().harmonicMean) + QStringLiteral("\n"); |
| 846 | break; |
| 847 | case MQTTClient::WillStatisticsType::Kurtosis: |
| 848 | statistics += QStringLiteral("Kurtosis: ") + QString::number(col->statistics().kurtosis) + QStringLiteral("\n"); |
| 849 | break; |
| 850 | case MQTTClient::WillStatisticsType::Maximum: |
| 851 | statistics += QStringLiteral("Maximum: ") + QString::number(col->statistics().maximum) + QStringLiteral("\n"); |
| 852 | break; |
| 853 | case MQTTClient::WillStatisticsType::MeanDeviation: |
| 854 | statistics += QStringLiteral("Mean deviation: ") + QString::number(col->statistics().meanDeviation) + QStringLiteral("\n"); |
| 855 | break; |
| 856 | case MQTTClient::WillStatisticsType::MeanDeviationAroundMedian: |
| 857 | statistics += |
| 858 | QStringLiteral("Mean deviation around median: ") + QString::number(col->statistics().meanDeviationAroundMedian) + QStringLiteral("\n"); |
| 859 | break; |
| 860 | case MQTTClient::WillStatisticsType::Median: |
| 861 | statistics += QStringLiteral("Median: ") + QString::number(col->statistics().median) + QStringLiteral("\n"); |
| 862 | break; |
| 863 | case MQTTClient::WillStatisticsType::MedianDeviation: |
| 864 | statistics += QStringLiteral("Median deviation: ") + QString::number(col->statistics().medianDeviation) + QStringLiteral("\n"); |
| 865 | break; |
| 866 | case MQTTClient::WillStatisticsType::Minimum: |
| 867 | statistics += QStringLiteral("Minimum: ") + QString::number(col->statistics().minimum) + QStringLiteral("\n"); |
| 868 | break; |
| 869 | case MQTTClient::WillStatisticsType::Skewness: |
| 870 | statistics += QStringLiteral("Skewness: ") + QString::number(col->statistics().skewness) + QStringLiteral("\n"); |
| 871 | break; |
| 872 | case MQTTClient::WillStatisticsType::StandardDeviation: |
| 873 | statistics += QStringLiteral("Standard deviation: ") + QString::number(col->statistics().standardDeviation) + QStringLiteral("\n"); |
| 874 | break; |
| 875 | case MQTTClient::WillStatisticsType::Variance: |
| 876 | statistics += QStringLiteral("Variance: ") + QString::number(col->statistics().variance) + QStringLiteral("\n"); |
| 877 | break; |
| 878 | case MQTTClient::WillStatisticsType::NoStatistics: |
| 879 | default: |
| 880 | break; |