|
|
|
/***************************************************************************
|
|
|
|
knutmainwindow.cpp - description
|
|
|
|
-------------------
|
|
|
|
begin : Po cen 16 2003
|
|
|
|
copyright : (C) 2003 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 "knutmainwindow.h"
|
|
|
|
#include "knutvardata.h"
|
|
|
|
|
|
|
|
#include <kmessagebox.h>
|
|
|
|
#include <kstdaction.h>
|
|
|
|
#include <kconfig.h>
|
|
|
|
#include <ksimpleconfig.h>
|
|
|
|
#include <kstatusbar.h>
|
|
|
|
#include <kkeydialog.h>
|
|
|
|
#include <kprogress.h>
|
|
|
|
|
|
|
|
|
|
|
|
#include <tqfont.h>
|
|
|
|
#include <tqpalette.h>
|
|
|
|
#include <tqbrush.h>
|
|
|
|
#include <tqcolor.h>
|
|
|
|
#include <tqstring.h>
|
|
|
|
#include <tqscrollview.h>
|
|
|
|
#include <tqlayout.h>
|
|
|
|
#include <tqiconset.h>
|
|
|
|
#include <tqstring.h>
|
|
|
|
#include <tqstringlist.h>
|
|
|
|
#include <tqlabel.h>
|
|
|
|
#include <tqsplitter.h>
|
|
|
|
//#include <tqprogressbar.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include <math.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern const char *nameUpsVars1[];
|
|
|
|
extern const char *nameUpsVars2[];
|
|
|
|
|
|
|
|
const char *descrOfConnection = I18N_NOOP("test of conection from 5");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KNutMainWindow::KNutMainWindow(TQStringList *tListKNutEvent, KNutVarData::upsInfoDef* tActiveUpsInfo, KNutVarData::SettingDataDef* tSettingData, KNutUpsData* tUpsRecords, KNutVarData* tAnalogRecords, TQWidget* parent, const char *name) : KMainWindow(parent, name),
|
|
|
|
m_listKNutEvent(tListKNutEvent), m_activeUpsInfo(tActiveUpsInfo),m_settingData (tSettingData),
|
|
|
|
m_upsRecords(tUpsRecords), m_analogRecords (tAnalogRecords) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_settingData->activatedMainWindow=true; //information about state of mainWindow
|
|
|
|
|
|
|
|
initVars();
|
|
|
|
initStatusBar();
|
|
|
|
initAction();
|
|
|
|
// createGUI ("/home/dan/Projekty/knutclient/src/knutclientui.rc"); // pred distribuci nezapomenout odstranit retezec
|
|
|
|
// createGUI vytvori zakladni strukturu podle souboru knutclientui.rc
|
|
|
|
createGUI ();
|
|
|
|
initToolBar ();
|
|
|
|
|
|
|
|
|
|
|
|
m_descriptionAction->setChecked(m_settingData->useDescription);
|
|
|
|
|
|
|
|
//sets input frequency and input voltage
|
|
|
|
//nastavime vstupni frekvenci a vstupni napeti
|
|
|
|
m_analogRecords->setFrequency(m_settingData->inputFrequency);
|
|
|
|
m_analogRecords->setVoltage(m_settingData->inputVoltage);
|
|
|
|
|
|
|
|
//sets palette for analog panels
|
|
|
|
// nastavime paletu pro analogove panely
|
|
|
|
if (m_settingData->customBAnalogColor) {
|
|
|
|
m_aPanelPalette.setColor(TQPalette::Active,TQColorGroup::Background,m_settingData->aPanelBackgroundColor);
|
|
|
|
m_aPanelPalette.setColor(TQPalette::Inactive,TQColorGroup::Background,m_settingData->aPanelBackgroundColor);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (m_settingData->customBColor) {
|
|
|
|
m_areaPalette.setColor(TQPalette::Active,TQColorGroup::Background,m_settingData->mainBackgroundColor);
|
|
|
|
m_areaPalette.setColor(TQPalette::Inactive,TQColorGroup::Background,m_settingData->mainBackgroundColor);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// makes main area // Vytvorime hlavni plochu
|
|
|
|
m_area = new TQLabel (this);
|
|
|
|
setCentralWidget (m_area);
|
|
|
|
|
|
|
|
TQHBoxLayout* mainLayout = new TQHBoxLayout(m_area);
|
|
|
|
m_mainSplit = new TQSplitter(Qt::Horizontal,m_area);
|
|
|
|
m_mainSplit->setOpaqueResize(true);
|
|
|
|
|
|
|
|
mainLayout->addWidget(m_mainSplit);
|
|
|
|
if (m_settingData->customBPanelColor) {
|
|
|
|
m_mPanelPalette.setColor(TQPalette::Active,TQColorGroup::Background,m_settingData->mPanelBackgroundColor);
|
|
|
|
m_mPanelPalette.setColor(TQPalette::Inactive,TQColorGroup::Background,m_settingData->mPanelBackgroundColor);
|
|
|
|
}
|
|
|
|
|
|
|
|
TQScrollView* panelSV = new TQScrollView(m_mainSplit,"panelSV");
|
|
|
|
if (m_settingData->customFont)
|
|
|
|
m_frontPanel = new KNutFrontPanel (&m_mPanelPalette,m_mainSplit,m_settingData->panelFlags,&(m_settingData->mPanelFont),"FrontPanel");
|
|
|
|
else
|
|
|
|
m_frontPanel = new KNutFrontPanel (&m_mPanelPalette,m_mainSplit,m_settingData->panelFlags,&(m_settingData->systemFont),"FrontPanel");
|
|
|
|
panelSV->addChild(m_frontPanel);
|
|
|
|
panelSV->setResizePolicy ( TQScrollView::AutoOneFit ) ;
|
|
|
|
m_mainSplit->setResizeMode (panelSV,TQSplitter::FollowSizeHint);
|
|
|
|
|
|
|
|
m_panelMeter = new KNutPanelMeter(m_aPanelPalette,m_activeUpsInfo,m_settingData,m_analogRecords,m_mainSplit);
|
|
|
|
m_mainSplit->setResizeMode (m_panelMeter,TQSplitter::Stretch );
|
|
|
|
|
|
|
|
m_area->setPalette(m_areaPalette);
|
|
|
|
m_panelMeter->setPalette(m_areaPalette);
|
|
|
|
|
|
|
|
// sets Combo a actives connections to meter panels
|
|
|
|
// Nastavime COMBO a pripadne aktivujeme spojeni na merici panely
|
|
|
|
int activeUpsNameIndex = activeMainCombo ();
|
|
|
|
if (activeUpsNameIndex != -1) toolBar(0)->getCombo(1)->setCurrentItem( activeUpsNameIndex );
|
|
|
|
|
|
|
|
showUpsData();
|
|
|
|
setGeometry (m_settingData->x,m_settingData->y,m_settingData->width,m_settingData->height);
|
|
|
|
show();
|
|
|
|
|
|
|
|
|
|
|
|
//message has to include into status bar after showing window,
|
|
|
|
// only for KDE relase < 3.0.0
|
|
|
|
|
|
|
|
// jinak se nastavi minimalni velikost ne mensi nez delka aktivni zpravy.
|
|
|
|
|
|
|
|
initStatusBarMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::addComboStatusItem (const TQString text, const TQString name) {
|
|
|
|
if (m_infoCombo->count() >= (int)knc::maxCountKNutEvent) m_infoCombo->removeItem(0);
|
|
|
|
if (m_listKNutEvent->count() > knc::maxCountKNutEvent) m_listKNutEvent->remove(m_listKNutEvent->begin());
|
|
|
|
|
|
|
|
TQString dateTime(TQDate::currentDate().toString());
|
|
|
|
dateTime +=" " + TQTime::currentTime().toString();
|
|
|
|
if (name.isEmpty()) {
|
|
|
|
m_infoCombo->insertItem(dateTime+" "+text);
|
|
|
|
m_listKNutEvent->append(dateTime+" "+text);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_infoCombo->insertItem(dateTime+" "+name+" : "+text);
|
|
|
|
m_listKNutEvent->append(dateTime+" "+name+" : "+text);
|
|
|
|
}
|
|
|
|
m_infoCombo->setCurrentItem(m_infoCombo->count()-1);
|
|
|
|
if (m_listKNutEvent->count() > knc::maxCountKNutEvent) m_listKNutEvent->remove(m_listKNutEvent->begin());
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
KNutMainWindow::~KNutMainWindow(void) {
|
|
|
|
|
|
|
|
m_settingData->height = height();
|
|
|
|
m_settingData->width = width();
|
|
|
|
m_settingData->y = y();
|
|
|
|
m_settingData->x = x();
|
|
|
|
|
|
|
|
delete m_frontPanel;
|
|
|
|
delete m_panelMeter;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::setConfig (unsigned int changeSetting) {
|
|
|
|
|
|
|
|
|
|
|
|
//tqDebug ("KNutMainWindow::setConfig");
|
|
|
|
KNutVarData::VarStrucDef analogMemberData;
|
|
|
|
bool repaintVoltagePanels = false;
|
|
|
|
bool repaintFrequencyPanels = false;
|
|
|
|
bool repaintAllPanels = false;
|
|
|
|
bool repaintOAPanels = false;
|
|
|
|
|
|
|
|
// Main Setting
|
|
|
|
|
|
|
|
// Nastavime zmenu barvy pozadi
|
|
|
|
// sets background color
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeCustomBColor) {
|
|
|
|
if (!m_settingData->customBColor) { // nastavime barvu pozadi podle systemu
|
|
|
|
m_area->setPalette (m_mainPalette); // we set background color based on system
|
|
|
|
m_panelMeter->setPalette (m_mainPalette);
|
|
|
|
repaint();
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_areaPalette.setColor(TQPalette::Active,TQColorGroup::Background,m_settingData->mainBackgroundColor);
|
|
|
|
m_areaPalette.setColor(TQPalette::Inactive,TQColorGroup::Background,m_settingData->mainBackgroundColor);
|
|
|
|
m_area->setPalette (m_areaPalette);
|
|
|
|
m_panelMeter->setPalette (m_areaPalette);
|
|
|
|
repaint();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeMBColor ) {
|
|
|
|
m_areaPalette.setColor(TQPalette::Active,TQColorGroup::Background,m_settingData->mainBackgroundColor);
|
|
|
|
m_areaPalette.setColor(TQPalette::Inactive,TQColorGroup::Background,m_settingData->mainBackgroundColor);
|
|
|
|
m_area->setPalette (m_areaPalette);
|
|
|
|
m_panelMeter->setPalette (m_areaPalette);
|
|
|
|
repaint();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Sets background for panels
|
|
|
|
// sets frequence
|
|
|
|
// sets voltage
|
|
|
|
// XFer is switch-on and one exist for this UPS
|
|
|
|
|
|
|
|
|
|
|
|
if ((changeSetting & KNutPrefDlg::ChangeXFer) || // je provedena nejaka zmena na napeti nebo frekvence
|
|
|
|
(changeSetting & KNutPrefDlg::ChangeVoltage) || (changeSetting & KNutPrefDlg::ChangeFrequency)) {
|
|
|
|
|
|
|
|
if ((changeSetting & KNutPrefDlg::ChangeXFer) && (m_settingData->lowHighXfer) && (m_existLowHighXfer)) {
|
|
|
|
// xfer was activated
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeXFer) {
|
|
|
|
if (abs((int)(230 - (m_lowXfer + (m_highXfer - m_lowXfer) /2))) > abs((int)(120 - (m_lowXfer + (m_highXfer - m_lowXfer) /2)))) {
|
|
|
|
m_analogRecords->setVoltage(120);
|
|
|
|
m_analogRecords->setFrequency(60);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_analogRecords->setVoltage(230);
|
|
|
|
m_analogRecords->setFrequency(50);
|
|
|
|
}
|
|
|
|
m_analogRecords->setXfer(m_lowXfer,m_highXfer);
|
|
|
|
repaintVoltagePanels = true;
|
|
|
|
repaintFrequencyPanels = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
// XFER neni aktivovano nebo je nepodporuje UPS
|
|
|
|
// XFER isn;t activated or XFER isn't supported by UPS
|
|
|
|
if ((changeSetting & KNutPrefDlg::ChangeVoltage) || ((changeSetting & KNutPrefDlg::ChangeXFer))) {
|
|
|
|
// byla aktivovana zmena napeti nebo zmena xfer a zaroven ho ups podporuje
|
|
|
|
m_analogRecords->setVoltage(m_settingData->inputVoltage);
|
|
|
|
repaintVoltagePanels=true;
|
|
|
|
}
|
|
|
|
if ((changeSetting & KNutPrefDlg::ChangeFrequency) || ((changeSetting & KNutPrefDlg::ChangeXFer))) {
|
|
|
|
// byla aktivovana zmena napeti nebo zmena xfer a zaroven ho ups podporuje
|
|
|
|
m_analogRecords->setFrequency(m_settingData->inputFrequency);
|
|
|
|
repaintFrequencyPanels=true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Analog setting
|
|
|
|
// now DigitalProcesing of pointer
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeTypeOfDigProcessing) { //type of digital processing was changed
|
|
|
|
m_panelMeter->changeAnalogPanelsDigProcessing(); //paint pointers with new digotal processing
|
|
|
|
}
|
|
|
|
|
|
|
|
if ((changeSetting & KNutPrefDlg::ChangeCustomAPanelBColor) || // barva panelu je zmenena, panel color is changed
|
|
|
|
(changeSetting & KNutPrefDlg::ChangeAPBColor)) {
|
|
|
|
if (m_settingData->customBAnalogColor) {
|
|
|
|
m_aPanelPalette.setColor(TQPalette::Active,TQColorGroup::Background,m_settingData->aPanelBackgroundColor);
|
|
|
|
m_aPanelPalette.setColor(TQPalette::Inactive,TQColorGroup::Background,m_settingData->aPanelBackgroundColor);
|
|
|
|
repaintAllPanels=true;
|
|
|
|
m_panelMeter->setAnalogBG(m_aPanelPalette);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_aPanelPalette = m_mainPalette;
|
|
|
|
repaintAllPanels=true;
|
|
|
|
m_panelMeter->setAnalogBG(m_aPanelPalette);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ((changeSetting & KNutPrefDlg::ChangeCustomAPanelOColor) || // je provedena zmena barvy panelu
|
|
|
|
(changeSetting & KNutPrefDlg::ChangeAPOColor)) {
|
|
|
|
if (m_settingData->customOAnalogColor) {
|
|
|
|
repaintAllPanels=true;
|
|
|
|
repaintOAPanels=true;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
repaintAllPanels=true;
|
|
|
|
repaintOAPanels=true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// regeneration of panel uses for setting Main and setting Analog
|
|
|
|
// pregenerovani panelu slozi pro setting Main a setting Analog
|
|
|
|
m_panelMeter->repaintAnalogPanels (repaintFrequencyPanels, repaintVoltagePanels, repaintAllPanels);
|
|
|
|
|
|
|
|
if (m_activeUpsInfo->record.name != "") {
|
|
|
|
m_panelMeter->setSize();
|
|
|
|
m_mainSplit->refresh();
|
|
|
|
}
|
|
|
|
|
|
|
|
// UPS Setting
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeUpsSetting ) activeMainCombo();
|
|
|
|
else {
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeUpsCount) activeMainCombo();
|
|
|
|
}
|
|
|
|
|
|
|
|
// Main Panel Setting
|
|
|
|
// change of background color
|
|
|
|
// zmena barvy pozadi;
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeCustomMPanelBColor) {
|
|
|
|
if (!m_settingData->customBPanelColor) { // nastavime barvu pozadi podle systemu
|
|
|
|
m_frontPanel->setPalette (m_mainPalette);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_mPanelPalette.setColor(TQPalette::Active,TQColorGroup::Background,m_settingData->mPanelBackgroundColor);
|
|
|
|
m_mPanelPalette.setColor(TQPalette::Inactive,TQColorGroup::Background,m_settingData->mPanelBackgroundColor);
|
|
|
|
m_frontPanel->setPalette (m_mPanelPalette);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeMPBColor ) {
|
|
|
|
m_mPanelPalette.setColor(TQPalette::Active,TQColorGroup::Background,m_settingData->mPanelBackgroundColor);
|
|
|
|
m_mPanelPalette.setColor(TQPalette::Inactive,TQColorGroup::Background,m_settingData->mPanelBackgroundColor);
|
|
|
|
m_frontPanel->setPalette (m_mPanelPalette);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeMainPanelSetting ) {
|
|
|
|
if (m_settingData->panelFlags != m_frontPanel->getPanelFlags()) {
|
|
|
|
m_frontPanel->setPanelFlags(m_settingData->panelFlags);
|
|
|
|
//aktivujema a presuneme prvky panelu
|
|
|
|
// activates and moves items of panel
|
|
|
|
m_frontPanel->paintPanel();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Font panel setting
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangeAnalogFont ) {
|
|
|
|
TQFont newAnalogFont;
|
|
|
|
if (m_settingData->customFont) {
|
|
|
|
newAnalogFont=m_settingData->aPanelFont;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
newAnalogFont=m_settingData->systemFont;
|
|
|
|
}
|
|
|
|
|
|
|
|
m_panelMeter->slotSetPanelsFont(newAnalogFont);
|
|
|
|
}
|
|
|
|
if (changeSetting & KNutPrefDlg::ChangePanelFont ) {
|
|
|
|
TQFont newPanelFont;
|
|
|
|
if (m_settingData->customFont) {
|
|
|
|
m_frontPanel->slotSetPanelFont(m_settingData->mPanelFont);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_frontPanel->slotSetPanelFont(m_settingData->systemFont);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::showUpsData (void) {
|
|
|
|
|
|
|
|
//tqDebug ("KNutMainWindow::showUpsData start");
|
|
|
|
|
|
|
|
|
|
|
|
if ((m_activeUpsInfo->upsNet != 0L) && (!m_activeUpsInfo->netError) &&
|
|
|
|
(m_activeUpsInfo->upsDriverState == knc::connected)) {
|
|
|
|
int runtimeVal;
|
|
|
|
TQString nutStringVar;
|
|
|
|
bool okFloat;
|
|
|
|
// activeUpsInfo->oldStatus=KNutNet::initStatus;
|
|
|
|
|
|
|
|
// Nastaveni nemenych dat jsou precteny pouze jednou, predpoklada se jejich nemenost
|
|
|
|
// setting of unchange data, ones are reading only one.
|
|
|
|
nutStringVar = m_activeUpsInfo->upsNet->readStringVar(m_activeUpsInfo->lowxferVar);
|
|
|
|
switch (m_activeUpsInfo->nutVariables) {
|
|
|
|
case 1:
|
|
|
|
m_manufacturer = m_activeUpsInfo->upsNet->readStringVar("MFR");
|
|
|
|
m_upsModel = m_activeUpsInfo->upsNet->readStringVar("MODEL");
|
|
|
|
m_serial = m_activeUpsInfo->upsNet->readStringVar("SERIAL");
|
|
|
|
m_firmrev = m_activeUpsInfo->upsNet->readStringVar("FIRMREV");
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
m_manufacturer = m_activeUpsInfo->upsNet->readStringVar("ups.mfr");
|
|
|
|
m_upsModel = m_activeUpsInfo->upsNet->readStringVar("ups.model");
|
|
|
|
m_serial = m_activeUpsInfo->upsNet->readStringVar("ups.serial");
|
|
|
|
m_firmrev = m_activeUpsInfo->upsNet->readStringVar("ups.firmware");
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
TQString allUpsName = m_manufacturer + " " + m_upsModel;
|
|
|
|
m_frontPanel->setAllNameUps (allUpsName);
|
|
|
|
m_frontPanel->setMFRUps (m_manufacturer);
|
|
|
|
m_frontPanel->setNameUps (m_upsModel);
|
|
|
|
m_frontPanel->setSerialUps (m_serial);
|
|
|
|
m_frontPanel->setFirmRevUps (m_firmrev);
|
|
|
|
// try if LOWXFER and HIGHXFER or our values are existed
|
|
|
|
//Zjistime zda existuji LOWXFER a HIGHXFER pripadne jeji hodnoty
|
|
|
|
|
|
|
|
if (nutStringVar.isNull()) {
|
|
|
|
m_lowXfer =-1;
|
|
|
|
m_highXfer=-1;
|
|
|
|
m_existLowHighXfer = false;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_lowXfer = atof(nutStringVar);
|
|
|
|
nutStringVar = m_activeUpsInfo->upsNet->readStringVar(m_activeUpsInfo->highxferVar);
|
|
|
|
if (nutStringVar.isEmpty()) {
|
|
|
|
m_highXfer = -1;
|
|
|
|
m_existLowHighXfer = false;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_highXfer = atof(nutStringVar);
|
|
|
|
m_existLowHighXfer = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
int upsStatus=0;
|
|
|
|
if ((upsStatus = m_activeUpsInfo->upsNet->readStatus ()) != -1)
|
|
|
|
m_frontPanel->setPanel(upsStatus);
|
|
|
|
|
|
|
|
if ( !m_activeUpsInfo->upsNet->existName(m_activeUpsInfo->runtimeVar)) {
|
|
|
|
nutStringVar = m_activeUpsInfo->upsNet->readStringVar(m_activeUpsInfo->runtimeVar);
|
|
|
|
if (nutStringVar.isEmpty()) runtimeVal=knc::numberVarError;
|
|
|
|
else {
|
|
|
|
runtimeVal=(int)nutStringVar.toFloat(&okFloat);
|
|
|
|
if (!okFloat) runtimeVal = knc::numberVarError;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else runtimeVal=knc::numberVarError;
|
|
|
|
m_frontPanel->setRuntime(runtimeVal);
|
|
|
|
|
|
|
|
m_panelMeter->deActivateAnalogs();
|
|
|
|
|
|
|
|
// pokud je pouzito XFER nastavime hodnoty
|
|
|
|
// when XFER is used we set values
|
|
|
|
if (m_settingData->lowHighXfer) {
|
|
|
|
// xfer je nastaveno
|
|
|
|
// xfer is seted
|
|
|
|
if (m_existLowHighXfer) {
|
|
|
|
if (abs((int)(230 - (m_lowXfer + (m_highXfer - m_lowXfer) /2))) > abs((int)(120 - (m_lowXfer + (m_highXfer - m_lowXfer) /2)))) {
|
|
|
|
m_analogRecords->setVoltage(120);
|
|
|
|
m_analogRecords->setFrequency(60);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
m_analogRecords->setVoltage(230);
|
|
|
|
m_analogRecords->setFrequency(50);
|
|
|
|
}
|
|
|
|
m_analogRecords->setXfer(m_lowXfer,m_highXfer);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//tqDebug ("KNutMainWindow::showUpsData 1");
|
|
|
|
m_panelMeter->activateAnalogs(); // makes panel and makes background of panel
|
|
|
|
repaintAnalogs(false);
|
|
|
|
//tqDebug ("KNutMainWindow::showUpsData 2");
|
|
|
|
m_panelMeter->setSize(true);
|
|
|
|
//tqDebug ("KNutMainWindow::showUpsData 3");
|
|
|
|
m_mainSplit->refresh();
|
|
|
|
// doesn't repaint analog pointers, because pointers will be repainted twice
|
|
|
|
//tqDebug ("KNutMainWindow::showUpsData 4");
|
|
|
|
// repaintAnalogs(false); // don't make this
|
|
|
|
//tqDebug ("KNutMainWindow::showUpsData 5");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
cleanPanels();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::zeroingPanels (void) {
|
|
|
|
|
|
|
|
m_panelMeter->zeroingPanels();
|
|
|
|
m_frontPanel->setRuntime(knc::numberVarError);
|
|
|
|
m_frontPanel->setPanel(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::hideUpsData (void) {
|
|
|
|
m_frontPanel->cleanPanel();
|
|
|
|
}
|
|
|
|
|
|
|
|
void KNutMainWindow::setCombo (TQString name) {
|
|
|
|
if (toolBar(0)->getCombo(1)->currentText() != name) toolBar(0)->getCombo(1)->setCurrentText(name);
|
|
|
|
}
|
|
|
|
|
|
|
|
void KNutMainWindow::repaintPanel (void) {
|
|
|
|
TQString nutStringVar;
|
|
|
|
|
|
|
|
if (m_activeUpsInfo->upsNet == 0) return;
|
|
|
|
if (!m_activeUpsInfo->upsNet->existName(m_activeUpsInfo->runtimeVar)) {
|
|
|
|
nutStringVar = m_activeUpsInfo->upsNet->readStringVar(m_activeUpsInfo->runtimeVar);
|
|
|
|
if (nutStringVar.isEmpty()) m_frontPanel->setRuntime(0);
|
|
|
|
else m_frontPanel->setRuntime( nutStringVar.toInt());
|
|
|
|
}
|
|
|
|
else m_frontPanel->setRuntime(knc::numberVarError);
|
|
|
|
// precteme status a nastavime zarovky panelu
|
|
|
|
int status = m_activeUpsInfo->upsNet->readStatus();
|
|
|
|
m_frontPanel->setPanel(status);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// je volan vzdy po timeoutu
|
|
|
|
/// this function is called after timeout always
|
|
|
|
void KNutMainWindow::repaintAnalogs ( bool run ) {
|
|
|
|
//tqDebug ("KNutMainWindow::repaintAnalogs");
|
|
|
|
|
|
|
|
|
|
|
|
TQString nutStringVar;
|
|
|
|
float numVar;
|
|
|
|
bool newRange = false;
|
|
|
|
|
|
|
|
if ((m_settingData->lowHighXfer) && (m_existLowHighXfer)) {
|
|
|
|
TQString nutStringVar;
|
|
|
|
|
|
|
|
nutStringVar = m_activeUpsInfo->upsNet->readStringVar(m_activeUpsInfo->lowxferVar);
|
|
|
|
if (! nutStringVar.isEmpty()) {
|
|
|
|
float helpLowXfer = nutStringVar.toFloat();
|
|
|
|
nutStringVar = m_activeUpsInfo->upsNet->readStringVar(m_activeUpsInfo->highxferVar);
|
|
|
|
if (! nutStringVar.isEmpty()) {
|
|
|
|
float helpHighXfer = nutStringVar.toFloat();
|
|
|
|
if ((helpLowXfer != m_lowXfer) || (helpHighXfer != m_highXfer)) {
|
|
|
|
m_lowXfer=helpLowXfer;
|
|
|
|
m_highXfer=helpHighXfer;
|
|
|
|
m_analogRecords->setXfer(m_lowXfer,m_highXfer);
|
|
|
|
newRange = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//tqDebug ("KNutMainWindow::repaintAnalogs 1");
|
|
|
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
if (m_activeUpsInfo->record.upsVarCode[i] != 0) { // jistota pokud by nam to nekde propadlo
|
|
|
|
switch (m_activeUpsInfo->nutVariables) {
|
|
|
|
case 1:
|
|
|
|
nutStringVar = m_activeUpsInfo->upsNet->readStringVar ((char *)nameUpsVars1[m_activeUpsInfo->record.upsVarCode[i]]);
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
nutStringVar = m_activeUpsInfo->upsNet->readStringVar ((char *)nameUpsVars2[m_activeUpsInfo->record.upsVarCode[i]]);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
//tqDebug ("KNutMainWindow::repaintAnalogs 2 ");
|
|
|
|
|
|
|
|
if (nutStringVar.isEmpty()) numVar=0;
|
|
|
|
else numVar = nutStringVar.toFloat();
|
|
|
|
|
|
|
|
m_panelMeter->repaintScaleAnalogPanel (i, numVar);
|
|
|
|
if (newRange) m_panelMeter->repaintAnalogPanels (true, true, false); //freq volt
|
|
|
|
m_panelMeter->repaintAnalogPointer(i,numVar,run);
|
|
|
|
}
|
|
|
|
} // end for
|
|
|
|
//tqDebug ("KNutMainWindow::repaintAnalogs 3 ");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::cleanPanels (void) {
|
|
|
|
|
|
|
|
m_frontPanel->cleanPanel();
|
|
|
|
m_panelMeter->deActivateAnalogs();
|
|
|
|
m_panelMeter->setSize(false);
|
|
|
|
m_mainSplit->refresh();
|
|
|
|
}
|
|
|
|
|
|
|
|
void KNutMainWindow::startConnectPB ( const int count ) {
|
|
|
|
m_connectProggresBar->setTotalSteps(count);
|
|
|
|
m_connectProggresBar->setProgress(1);
|
|
|
|
m_connectProggresBar->show();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::setProgressConnectPB ( const int progress ) {
|
|
|
|
m_connectProggresBar->setProgress(progress);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::hideConnectPB ( void ) {
|
|
|
|
m_connectProggresBar->setProgress(0);
|
|
|
|
m_connectProggresBar->hide();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*********************************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* PRIVATE SLOTS */
|
|
|
|
/* */
|
|
|
|
/*********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
//this TQT_SLOT is for older KDE only
|
|
|
|
void KNutMainWindow::slotShowToolBar(void) {
|
|
|
|
|
|
|
|
if(toolBar("mainToolBar")->isVisible()) toolBar("mainToolBar")->hide();
|
|
|
|
else toolBar("mainToolBar")->show();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::slotShowStatusBar(void) {
|
|
|
|
|
|
|
|
if(statusBar()->isVisible()) {
|
|
|
|
statusBar()->hide();
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
statusBar()->show();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void KNutMainWindow::slotDescription(void) {
|
|
|
|
|
|
|
|
if (m_descriptionAction->isChecked()) {
|
|
|
|
if (!m_activeUpsInfo->upsNet->isDescription()) m_activeUpsInfo->upsNet->getDescription();
|
|
|
|
m_settingData->useDescription=true;
|
|
|
|
}
|
|
|
|
else m_settingData->useDescription=false;
|
|
|
|
emit saveConf();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::slotPrintUPSVars(void) {
|
|
|
|
|
|
|
|
emit showUPSVars();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::slotInstComms(void) {
|
|
|
|
|
|
|
|
emit makeInstComms();
|
|
|
|
}
|
|
|
|
|
|
|
|
void KNutMainWindow::slotRWVars(void) {
|
|
|
|
|
|
|
|
emit makeRWVars();
|
|
|
|
}
|
|
|
|
|
|
|
|
void KNutMainWindow::slotRefreshConnection(void) {
|
|
|
|
|
|
|
|
emit makeRefreshConnection();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::slotChangeRWVars ( TQString ) {
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::closeEvent( TQCloseEvent *e ){
|
|
|
|
|
|
|
|
m_settingData->activatedMainWindow=false; //information about state of mainWindow
|
|
|
|
e->accept();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::slotConfigureKeys() {
|
|
|
|
|
|
|
|
KKeyDialog::configure( actionCollection(), this );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::slotCloseKnutClient (void) {
|
|
|
|
if (m_settingData->areYouSure) {
|
|
|
|
if (KMessageBox::warningYesNo (0,i18n("Are you sure ?")) == 3)
|
|
|
|
emit endApplication();
|
|
|
|
}
|
|
|
|
else emit endApplication();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::slotChangeUPS (const TQString &name) {
|
|
|
|
emit UPSChanged (name);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::slotPreferencesUps() {
|
|
|
|
emit preferenceUps();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*********************************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* PRIVATE FUNCTIONS */
|
|
|
|
/* */
|
|
|
|
/*********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::initStatusBar ( void ) {
|
|
|
|
// sets main message if statusbar
|
|
|
|
// nastavime hlavni hlaseni v statusbaru
|
|
|
|
|
|
|
|
// TQString progressString("%v ");// += descrOfConnection;
|
|
|
|
// progressString.append(descrOfConnection);
|
|
|
|
|
|
|
|
m_progressFormatString.append("%v ");
|
|
|
|
m_progressFormatString.append(descrOfConnection);
|
|
|
|
m_infoCombo = new KComboBox (statusBar(),"infoCombo");
|
|
|
|
m_infoCombo->setMaxCount(knc::maxCountKNutEvent+1); // nastavime maximalni pocet polozek v Combu
|
|
|
|
// pro rezervu pridame jeste jednu
|
|
|
|
//sets maximal if items in Combo
|
|
|
|
statusBar()->addWidget(m_infoCombo,10,false);
|
|
|
|
|
|
|
|
m_connectProggresBar = new KProgress(statusBar(),"connectProgressBar");
|
|
|
|
statusBar()->addWidget(m_connectProggresBar,5,false);
|
|
|
|
m_connectProggresBar->setProgress(0);
|
|
|
|
// m_connectProggresBar->setFormat("%v test of conection from 5");
|
|
|
|
m_connectProggresBar->setFormat(m_progressFormatString);
|
|
|
|
m_connectProggresBar->hide();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::initStatusBarMessage ( void ) {
|
|
|
|
// loads data into comboBox
|
|
|
|
TQStringList::iterator it;
|
|
|
|
|
|
|
|
for ( it = m_listKNutEvent->begin(); it != m_listKNutEvent->end(); ++it ) {
|
|
|
|
m_infoCombo->insertItem((*it));
|
|
|
|
}
|
|
|
|
statusBar()-> setItemAlignment(0,TQt::AlignHCenter|TQt::AlignVCenter);
|
|
|
|
m_infoCombo->setCurrentItem(m_infoCombo->count()-1);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::initToolBar ( void ) {
|
|
|
|
|
|
|
|
TQLabel *upsNazev = new TQLabel ("UPS : ",toolBar("mainToolBar"));
|
|
|
|
// upsNazev is connected on toolBaar, dosn't need to call desctructor
|
|
|
|
toolBar ("mainToolBar")->insertWidget (0,upsNazev->sizeHint().width(),upsNazev);
|
|
|
|
toolBar ("mainToolBar")->insertCombo("",1,false, TQT_SIGNAL (activated (const TQString &)),TQT_TQOBJECT(this), TQT_SLOT (slotChangeUPS (const TQString &)));
|
|
|
|
// bude se pouze vybirat-------------------^^^
|
|
|
|
KComboBox *combo = toolBar("mainToolBar")->getCombo(1);
|
|
|
|
combo->clear();
|
|
|
|
toolBar("mainToolBar")->setBarPos (KToolBar::Top);
|
|
|
|
//sets toolbarr no movable / nastavime toolBar nepresouvatelny
|
|
|
|
setToolBarsMovable(false);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutMainWindow::initAction ( void ) {
|
|
|
|
|
|
|
|
// KAction and KStdAction must be to make before command createGUI, function initToolBar is runed after create GUI
|
|
|
|
m_quit = KStdAction::quit (TQT_TQOBJECT(this), TQT_SLOT (slotCloseKnutClient()), actionCollection());
|
|
|
|
m_quit->setStatusText(i18n("Quits the application"));
|
|
|
|
|
|
|
|
m_preferencesUps = KStdAction::preferences (TQT_TQOBJECT(this), TQT_SLOT (slotPreferencesUps()), actionCollection(),"options_configure");
|
|
|
|
new KAction(i18n("&Showing UPS variables and commands"),0,TQT_TQOBJECT(this), TQT_SLOT(slotPrintUPSVars()),actionCollection(),"printupsvars");
|
|
|
|
new KAction(i18n("&Running instant commands"),0,TQT_TQOBJECT(this), TQT_SLOT(slotInstComms()),actionCollection(),"instcomms");
|
|
|
|
new KAction(i18n("Setting R&W variables"),0,TQT_TQOBJECT(this), TQT_SLOT(slotRWVars()),actionCollection(),"rwvars");
|
|
|
|
|
|
|
|
///////////////////
|
|
|
|
// KStdAction::showToolbar (TQT_TQOBJECT(this), TQT_SLOT (slotShowToolBar()), actionCollection());
|
|
|
|
// setStandardToolBarMenuEnabled(true); since KDE version 3.1
|
|
|
|
|
|
|
|
// since version 3.1
|
|
|
|
#if defined (TDE_VERSION_MAJOR)
|
|
|
|
#if TDE_VERSION_MAJOR >= 3
|
|
|
|
#if defined (TDE_VERSION_MINOR)
|
|
|
|
#if TDE_VERSION_MINOR >= 1
|
|
|
|
setStandardToolBarMenuEnabled(true);
|
|
|
|
#else
|
|
|
|
KStdAction::showToolbar (TQT_TQOBJECT(this), TQT_SLOT (slotShowToolBar()), actionCollection());
|
|
|
|
#endif
|
|
|
|
#else
|
|
|
|
KStdAction::showToolbar (TQT_TQOBJECT(this), TQT_SLOT (slotShowToolBar()), actionCollection());
|
|
|
|
#endif
|
|
|
|
#else
|
|
|
|
KStdAction::showToolbar (TQT_TQOBJECT(this), TQT_SLOT (slotShowToolBar()), actionCollection());
|
|
|
|
#endif
|
|
|
|
#else
|
|
|
|
KStdAction::showToolbar (TQT_TQOBJECT(this), TQT_SLOT (slotShowToolBar()), actionCollection());
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
KStdAction::showStatusbar (TQT_TQOBJECT(this), TQT_SLOT (slotShowStatusBar()), actionCollection());
|
|
|
|
|
|
|
|
m_descriptionAction = new KToggleAction(i18n("&Using descriptions"),0,TQT_TQOBJECT(this), TQT_SLOT(slotDescription()),actionCollection(),"use_description");
|
|
|
|
|
|
|
|
KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT(slotConfigureKeys()),actionCollection());
|
|
|
|
new KAction (i18n("Reconnect"),"reload",Key_F5,TQT_TQOBJECT(this), TQT_SLOT(slotRefreshConnection()),actionCollection(),"reconnect");
|
|
|
|
}
|
|
|
|
|
|
|
|
void KNutMainWindow::initVars ( void ) {
|
|
|
|
|
|
|
|
//m_activeUpsIndex = -1;
|
|
|
|
|
|
|
|
//nastavime fonty
|
|
|
|
// sets fonts
|
|
|
|
m_mainPalette= kapp->palette();
|
|
|
|
m_areaPalette=m_mainPalette;
|
|
|
|
m_mPanelPalette=m_mainPalette;
|
|
|
|
m_aPanelPalette=m_mainPalette;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int KNutMainWindow::activeMainCombo (void) {
|
|
|
|
int activeUpsNameIndex = -1; // zadne upsName neni aktivni , any upsName is not active
|
|
|
|
KComboBox *combo = toolBar(0)->getCombo(1);
|
|
|
|
|
|
|
|
//naplnime comboBox
|
|
|
|
//loads comboBox
|
|
|
|
combo->clear();
|
|
|
|
for (int i=0; i < m_upsRecords->getCount (); i++) {
|
|
|
|
combo->insertItem (m_upsRecords->getName(i));
|
|
|
|
// ulozime si poradove cislo jmena aktivniho ups
|
|
|
|
// save serial number of active usp name
|
|
|
|
if ((m_upsRecords->getName(i)) == m_activeUpsInfo->record.name) activeUpsNameIndex = i;
|
|
|
|
}
|
|
|
|
return activeUpsNameIndex;
|
|
|
|
}
|
|
|
|
|
|
|
|
#include "knutmainwindow.moc"
|