You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
knutclient/src/knutclient.h

212 lines
5.1 KiB

/***************************************************************************
knutclient.h - description
-------------------
begin : Út srp 21 19:12:20 CEST 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. *
* *
***************************************************************************/
#ifndef KNUTCLIENT_H
#define KNUTCLIENT_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "knutmainwindow.h"
#include "knutvardata.h"
#include "knutupsdata.h"
#include "knutnet.h"
#include "knutdock.h"
#include "knutprefdlg.h"
#include "knutmessagemanager.h"
#include <tdeapplication.h>
#include <tqwidget.h>
#include <tqtimer.h>
#include <tqstringlist.h>
#include <tqmutex.h>
const int countNextConnDelay = 10;
const int nextConnDelay[] = {
5, 5, 20, 30, 60, 60, 120, 300, 600, 900 };
class KNutClient : public TQObject, public KSessionManaged {
TQ_OBJECT
public:
KNutClient(bool noDock = false, TQObject* parent=0,const char* name=0);
~KNutClient();
private slots:
void slotTimeout (void);
void slotReconnectTimeout (void);
void slotSetNewUPS (TQString name);
void slotPreferenceUps(void);
void slotSetConfig (unsigned int changeSetting);
void slotPrintUPSVars(void);
void slotInstComms(void);
void slotRWVars(void);
void slotChangeRWVars( TQString );
void slotSaveConf (void);
void slotExitApplication(void);
/**
*
* Calls function for repainting of icon in dock.
* Vola funkci pro prekresleni icony v doku.
*
* @since 0.1
**/
void slotTryFirstConnection (int maxCount);
/**
* This function is called when program repeats other connection;
* Calls function for repainting of icon in dock.
* Tata funkce je volana, kdyz program opakuje pokus o pripojeni.
* Vola funkci pro prekresleni icony v doku.
*
* @since 0.1
**/
void slotTryReepatFirstConnection (int number );
/**
* Nastavi hodnoty po prvem pripojeni na UPS, zavola prekresleni docku a nastartuje timer
* Sets values after the first conection to UPS ,calls to repaint of dock and starts timer
*
* @since 0.2
**/
void slotFirstConnection (void);
/**
* Zpracuje chybu spojeni
* Executes error of connection
*
* @since 0.1
**/
void slotErrorConnection (int error);
/**
* Zpracuje ukonceni spojeni, pokud spojeni bylo ukonceno druhou stranou.
* Executes end of connection, when connection was closed by the second side.
*
* @since 0.1
**/
void slotConnectionClosed(void);
/**
*
*
* @since 0.1
**/
void slotRefreshConnection(void);
void closeMainWindow (void);
void exitMainWindow (void);
void slotActiveMainWindow (void);
virtual bool commitData (TQSessionManager&);
virtual bool saveState (TQSessionManager&);
private:
/**
* Prepares and show main window.
* Pripravi a zobrazi hlavni okno.
*
* @since 0.1
**/
void makeMainWindow (void);
/**
* Sets all variables to initial values.
* Nastavi vsechny vsechny promenne na pocatecni hodnoty.
*
* @since 0.1
**/
void initVars (void);
void loadConfiguration ( void );
void saveConfiguration ( bool all = true );
void upsActivate (void);
void upsDeactivate (void);
void setActiveUpsVars (bool mWindow = true);
void setActiveXFerVars (bool activate);
void getUpsData (void);
void setActiveUpsInfo (TQString name);
void addEventString (const TQString text, const TQString UPSAddress = TQString());
void showStatusEvent(void);
/********* PRIVATE VARS****************/
// hlavni informace o upsce
// main informacion about UPS
KNutVarData::upsInfoDef m_mainUpsInfo;
// v teto strukture jsou ulozeny promene ktere nastavuji konfiguraci
// in this structure are saveing values, which setting configuration
KNutVarData::SettingDataDef settingData;
KNutDock* m_myDock;
KNutMainWindow* mainWindow;
KNutUpsData* upsRecords;
KNutVarData* analogRecords;
TQTimer* m_upsTimer;
TQTimer* m_reconnectTimer;
TQStringList* m_listKNutEvent;
bool m_panelsAreZeroing; // indikuje zda je panel nulovany // use if analog panels is setting to zero
// kod posledni chyby spojeni zjistene v timeoutu
// nebere ohled zda byla chyba pri inicializaci
int m_lastError;
KNutMessageManager* m_myMessMan;
// mutex for reconnect, only one reconnect at a time
TQMutex m_reconnectMutex;
TQMutex m_upsDeactivateMutex;
};
#endif