summaryrefslogtreecommitdiffstats
path: root/src/knutvardata.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-19 18:17:02 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-19 18:17:02 +0000
commitf867212c1762e156553d039319b904a17f7b563d (patch)
tree461c1a743b3ff8291e03360742dbbfb4cc0087e4 /src/knutvardata.cpp
downloadknutclient-f867212c1762e156553d039319b904a17f7b563d.tar.gz
knutclient-f867212c1762e156553d039319b904a17f7b563d.zip
Added KDE3 version of knutclient
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/knutclient@1092914 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/knutvardata.cpp')
-rwxr-xr-xsrc/knutvardata.cpp242
1 files changed, 242 insertions, 0 deletions
diff --git a/src/knutvardata.cpp b/src/knutvardata.cpp
new file mode 100755
index 0000000..86650bd
--- /dev/null
+++ b/src/knutvardata.cpp
@@ -0,0 +1,242 @@
+/***************************************************************************
+ knutvardata.cpp - description
+ -------------------
+ begin : Tue Aug 21 2001
+ copyright : (C) 2001 by Daniel Prynych
+ email : Daniel.Prynych@alo.cz
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "knutvardata.h"
+#include "knutnet.h"
+
+#include <klocale.h>
+#include <kmessagebox.h>
+
+#include <qcolor.h>
+
+//#include <iostream>
+
+ const char *nameUpsVars1[] = {
+ "NONE", "UTILITY", "BATTPCT", "UPSTEMP", "ACFREQ", "LOADPCT", "AMBTEMP", "AMBHUMID","BATTVOLT","OUTVOLT","CURRENT","NONE","BATT_TEMP","BATT_CURRENT"};
+
+ const char *nameUpsVars2[] = {
+ "none", "input.voltage", "battery.charge", "ups.temperature", "input.frequency", "ups.load", "ambient.temperature", "ambient.humidity","battery.voltage","output.voltage","output.current","output.frequency","battery.temperature","battery.current"};
+
+/*
+ * Nic,Vstupni Napeti,Baterie,Teplota UPSky,
+ * Vstupni frekvence,Zatizeni,Vnejsi teplota,
+ * Vnejsi vlhkost,Napeti baterie, Vystupni napeti
+ * Vystupni proud, Teplota baterie, Proud baterie
+*/
+
+KNutVarData::KNutVarData(){
+
+ m_upsVarNameAnalog[0] = i18n("None");
+ m_upsVarNameAnalog[1] = i18n("Input Voltage");
+ m_upsVarNameAnalog[2] = i18n("Battery Charge");
+ m_upsVarNameAnalog[3] = i18n("UPS Temperature");
+ m_upsVarNameAnalog[4] = i18n("Input Frequency");
+ m_upsVarNameAnalog[5] = i18n("UPS Load");
+ m_upsVarNameAnalog[6] = i18n("Outside Temperature");
+ m_upsVarNameAnalog[7] = i18n("Outside Humidity");
+ m_upsVarNameAnalog[8] = i18n("Battery Voltage");
+ m_upsVarNameAnalog[9] = i18n("Output Voltage");
+ m_upsVarNameAnalog[10] = i18n("Output Current");
+ m_upsVarNameAnalog[11] = i18n("Output Frequency");
+ m_upsVarNameAnalog[12] = i18n("Battery Temperature");
+ m_upsVarNameAnalog[13] = i18n("Battery Current");
+
+ static const QString upsVarNameUnit[] = {"", "V", "%", "C", "Hz", "%", "C", "%", "V", "V", "A","Hz","C", "A"};
+ static const int upsVarType[] = {0,3,2,1,1,2,1,1,3,3,2,1,1,2}; //typ panelu
+ static const int upsVarItem[] = {5,4,5,5,6,6,5,5,5,4,5,6,5,5}; // pocet velkych policek na stupnici
+ static const int upsVarInItem[] = {0,3,0,0,4,0,0,0,0,3,5,4,0,5}; // pocet malych policek ve velkem policku na stupnici
+ static const int upsVarStart[] = {0,170,0,-10,20,0,-10,0,0,170,0,20,-10,-15};
+ static const int upsVarEnd[] = {0,290,100,90,80,120,70,100,10,290,5,80,90,10};
+ static const int upsVarScaleStart[ knc::NumberOfTypes ][5] = {{0,0,0,0,0},{0,210,0,0,0},{50,0,40,0,0},{-100,50,0,0,0},{0,40,45,0,0},{0,80,100,0,0},{-100,50,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{210,0,250,0,0},{0,0,0,0,0},{0,40,45,0,0},{-100,50,0,0,0},{0,0,0,0,0}};
+ static const int upsVarScaleEnd[ knc::NumberOfTypes ][5] = {{0,0,0,0,0},{400,250,0,0,0},{120,40,50,0,0},{50,100,0,0,0},{90,60,55,0,0},{80,100,120,0,0},{50,70,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{250,210,400,0,0},{0,0,0,0,0},{90,60,55,0,0},{50,100,0,0,0},{0,0,0,0,0}};
+
+
+
+ int upsVarScaleColor[ knc::NumberOfTypes ][5] = {{aRegWhite,aRegWhite,aRegWhite,aRegWhite,aRegWhite},
+ {aRegRed,aRegGreen,aRegWhite,aRegWhite,aRegWhite},
+ {aRegGreen,aRegRed,aRegYellow,aRegWhite,aRegWhite},
+ {aRegGreen,aRegRed,aRegWhite,aRegWhite,aRegWhite},
+ {aRegRed,aRegYellow,aRegGreen,aRegWhite,aRegWhite},
+ {aRegGreen,aRegYellow,aRegRed,aRegWhite,aRegWhite},
+ {aRegGreen,aRegRed,aRegWhite,aRegWhite,aRegWhite},
+ {aRegWhite,aRegWhite,aRegWhite,aRegWhite,aRegWhite},
+ {aRegGreen,aRegRed,aRegRed,aRegWhite,aRegWhite},
+ {aRegGreen,aRegRed,aRegRed,aRegWhite,aRegWhite},
+ {aRegWhite,aRegWhite,aRegWhite,aRegWhite,aRegWhite},
+ {aRegRed,aRegYellow,aRegGreen,aRegWhite,aRegWhite},
+ {aRegGreen,aRegRed,aRegWhite,aRegWhite,aRegWhite},
+ {aRegWhite,aRegWhite,aRegWhite,aRegWhite,aRegWhite}};
+
+
+ for (int i=0;i < knc::NumberOfTypes; i++) {
+ m_dataVar[i].nameAnalog = m_upsVarNameAnalog[i];
+ m_dataVar[i].nameUnit = upsVarNameUnit[i];
+ m_dataVar[i].typeAnalog = upsVarType[i];
+ m_dataVar[i].numberItem = upsVarItem[i];
+ m_dataVar[i].numberInItem = upsVarInItem[i];
+ m_dataVar[i].start = upsVarStart[i];
+ m_dataVar[i].end = upsVarEnd[i];
+ for (int j=0; j< 5; j++) {
+ m_dataVar[i].scaleStruct[j].start=upsVarScaleStart[i][j];
+ m_dataVar[i].scaleStruct[j].end=upsVarScaleEnd[i][j];
+ m_dataVar[i].scaleStruct[j].scaleColor=upsVarScaleColor[i][j];
+ }
+ }
+
+ m_dataVarVoltage[U230V]=m_dataVar[knc::VarUtility];
+ m_dataVarVoltage[U120V]=m_dataVar[knc::VarUtility];
+ m_dataVarVoltage[U120V].start=90;
+ m_dataVarVoltage[U120V].end=150;
+ m_dataVarVoltage[U120V].scaleStruct[0].start=0;
+ m_dataVarVoltage[U120V].scaleStruct[1].start=110;
+ m_dataVarVoltage[U120V].scaleStruct[0].end=200;
+ m_dataVarVoltage[U120V].scaleStruct[1].end=130;
+
+ m_dataVarFrequence[F50HZ]=m_dataVar[knc::VarAcfreq];
+ m_dataVarFrequence[F60HZ]=m_dataVar[knc::VarAcfreq];
+ m_dataVarFrequence[F60HZ].start=30;
+ m_dataVarFrequence[F60HZ].end=90;
+ m_dataVarFrequence[F60HZ].scaleStruct[0].start=0;
+ m_dataVarFrequence[F60HZ].scaleStruct[1].start=50;
+ m_dataVarFrequence[F60HZ].scaleStruct[2].start=55;
+ m_dataVarFrequence[F60HZ].scaleStruct[0].end=100;
+ m_dataVarFrequence[F60HZ].scaleStruct[1].end=70;
+ m_dataVarFrequence[F60HZ].scaleStruct[2].end=65;
+ }
+
+KNutVarData::~KNutVarData(){
+}
+
+
+KNutVarData::VarStrucDef KNutVarData::getData (const int seqNumber) const {
+ int i = seqNumber;
+
+ if (i < 1) i = 1;
+ else {if (i > (knc::NumberOfTypes-1)) i = knc::NumberOfTypes - 1;};
+ return m_dataVar[i];
+ }
+
+
+
+QString KNutVarData::getNameAnalogData (const int seqNumber) {
+ if ((seqNumber >= 0) && (seqNumber < knc::NumberOfTypes))
+ return m_upsVarNameAnalog[seqNumber];
+ else
+ return "";
+ }
+
+
+void KNutVarData::putData (const int seqNumber, VarStrucDef& varStruc) {
+ if (seqNumber > 0 && seqNumber < knc::NumberOfTypes) m_dataVar[seqNumber] = varStruc;
+ }
+
+void KNutVarData::setVoltage (const int typeVoltage) {
+ if (typeVoltage == 230) {
+ m_dataVar[knc::VarUtility] = m_dataVarVoltage[U230V];
+ m_dataVar[knc::VarOutVolt] = m_dataVarVoltage[U230V];
+// m_dataVar[knc::VarOutVolt].nameAnalog = upsVarNameAnalog[knc::VarOutVolt]; // je nutno nastavit nazev
+ }
+ if (typeVoltage == 120) {
+ m_dataVar[knc::VarUtility] = m_dataVarVoltage[U120V];
+ m_dataVar[knc::VarOutVolt] = m_dataVarVoltage[U120V];
+// dataVar[knc::VarOutVolt].nameAnalog = upsVarNameAnalog[knc::VarOutVolt]; // je nutno nastavit nazev
+ }
+ m_dataVar[knc::VarOutVolt].nameAnalog = m_upsVarNameAnalog[knc::VarOutVolt]; // je nutno nastavit nazev
+ }
+
+void KNutVarData::setFrequency (const int typeFrequence) {
+ if (typeFrequence == 50) {
+ m_dataVar[knc::VarAcfreq] = m_dataVarFrequence[F50HZ];
+ m_dataVar[knc::VarOutFreq] = m_dataVarFrequence[F50HZ];
+ }
+ if (typeFrequence == 60) {
+ m_dataVar[knc::VarAcfreq] = m_dataVarFrequence[F60HZ];
+ m_dataVar[knc::VarOutFreq] = m_dataVarFrequence[F60HZ];
+ }
+ m_dataVar[knc::VarOutFreq].nameAnalog = m_upsVarNameAnalog[knc::VarOutFreq]; // je nutno nastavit nazev
+ }
+
+void KNutVarData::setXfer (const float lowXfer, const float highXfer) {
+ m_dataVar[knc::VarUtility].scaleStruct[1].start=(int)lowXfer;
+ m_dataVar[knc::VarUtility].scaleStruct[1].end=(int)highXfer;
+ m_dataVar[knc::VarOutVolt].scaleStruct[1].start=(int)lowXfer;
+ m_dataVar[knc::VarOutVolt].scaleStruct[1].end=(int)highXfer;
+ }
+
+
+const QString KNutVarData::errorToText (const int error) {
+
+ switch (error) {
+
+ // knutclient error
+ case KNutNet::LowMem: return i18n("No memory.");
+ case KNutNet::NullAddress: return i18n("No address.");
+ case KNutNet::NoSuchHost: return i18n("Unknown address.");
+ case KNutNet::SocketReadErr: // socket
+ case KNutNet::ConnectErr: // connect
+ return i18n("Error of connection.");
+
+ case KNutNet::CantConnect:
+ return i18n("No connection with server.");
+
+ case KNutNet::NutProtocolVarErr: return i18n("Server-client protocol or variables of NUT are unknown.");
+ case KNutNet::NoUpsHere: return i18n("No UPS on this address.");
+ case KNutNet::ConnectionRefused: return i18n("Connection was refused by server.");
+
+ case KNutNet::SendErr: return i18n("Server doesn't receive data.");
+ case KNutNet::RecvErr: return i18n("Server doesn't send data.");
+ case KNutNet::NoServerData: return i18n("Server doesn't answer.");
+
+ case KNutNet::UnknownFormat: return i18n("Server returns data with unknown format.");
+ case KNutNet::UnknownAnswer: return i18n("Server returns unknown data.");
+ case KNutNet::UnknownFormatVer: return i18n("Command VER returns data with unknown format.");
+
+ case KNutNet::NoData: return i18n("No data.");
+ case KNutNet::NotConnection: return i18n("Connection doesn't exist.");
+
+// server error
+ case KNutNet::AccessDenied: return i18n("Access denied. Failed password ?");
+ case KNutNet::DataStale: return i18n("UPS doesn't sent data to server (Data Stale).");
+ case KNutNet::UnknownCommand: return i18n("Server doesn't know this command.");
+
+// driver error
+ case KNutNet::DriverNotConnected: return i18n("UPS's driver isn't connected.");
+
+ case KNutNet::PasswordRequired: return i18n("Server required password.");
+ case KNutNet::PasswordIncorrect: return i18n("Incorrect password.");
+ case KNutNet::NoResponse: return i18n("UPS doesn't response.");
+ case KNutNet::CommandFailed: return i18n("Command failed.");
+ case KNutNet::UnknownInstCmd: return i18n("UPS doesn't know this instant command.");
+ case KNutNet::CmdNotSupported: return i18n("UPS doesn't support this instant command.");
+ case KNutNet::VarUnknown: return i18n("UPS doesn't known this variable.");
+ case KNutNet::VarNotSupported: return i18n("UPS doesn't support this variable.");
+ case KNutNet::InvalidValue: return i18n("UPS doesn't support this value in this variable.");
+ case KNutNet::UnknownUps: return i18n("Name of UPS is unknown.");
+
+ case KNutNet::AlreadySetUsername: return i18n("Username has been already entered.");
+ case KNutNet::AlreadySetPassword: return i18n("Password has been already entered.");
+
+ case KNutNet::NoListVars: return i18n("Server doesn't send list of variables.");
+
+//default
+ default: return i18n("Unknown error.");
+ }
+ }
+
+void KNutVarData::showError (const int error) {
+ KMessageBox::sorry (0,errorToText(error));
+ }