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.
98 lines
2.9 KiB
98 lines
2.9 KiB
8 years ago
|
|
||
|
#ifndef __connect_h__
|
||
|
#define __connect_h__
|
||
|
|
||
|
#ifdef HAVE_CONFIG_H
|
||
|
#include <config.h>
|
||
|
#endif
|
||
|
|
||
|
using namespace std;
|
||
|
|
||
|
class CConnect
|
||
|
{
|
||
|
public:
|
||
|
CConnect();
|
||
|
~CConnect();
|
||
|
static CConnect* getInstance();
|
||
|
|
||
|
struct device {
|
||
|
string identifier;
|
||
|
string productname;
|
||
|
string name;
|
||
|
string mode;
|
||
|
int present;
|
||
|
int state;
|
||
|
int lock;
|
||
|
int power;
|
||
|
int energy;
|
||
|
int celsius;
|
||
|
int offset;
|
||
|
int tist;
|
||
|
int tsoll;
|
||
|
int absenk;
|
||
|
int komfort;
|
||
|
};
|
||
|
|
||
|
vector<device> devices;
|
||
|
|
||
|
int connect2Host(const char *adr, int port);
|
||
|
int get2box(const char* host, int port, const char* msg, const char* upwd, const char* msgtype, int msgtimeout);
|
||
|
int get_login(const char* fritzPW);
|
||
|
int send_refresh(const char *sid);
|
||
|
int get_callerlist(const char *sid, const char *file);
|
||
|
int send_logout(const char *sid);
|
||
|
int send_TAMquery(const char* flag, const char *sid, const char *searchstr);
|
||
|
int my_atoi(const std::string text);
|
||
|
string itoString (int& i);
|
||
|
int smartHome(const char *sid, const char *command, const std::string ain = "");
|
||
|
void get_time(int *wday,int *hour,int *min);
|
||
|
void parseXML(const string text);
|
||
|
void StringReplace(string &str, const string search, const string rstr);
|
||
|
int inTime(int index, vector<vector<string> >& week, vector<vector<string> >& day);
|
||
|
// this is the "old" way for FRITZ!DECT
|
||
|
void checkdevice(vector<string>& dectid, vector<int>& temp, vector< vector<string> >& week, vector< vector<string> >& day);
|
||
|
// check Comet DECT device
|
||
|
int checkdevice(map<string, vector<string> >& w, map<string, vector<string> >& t);
|
||
|
virtual void cleardevice(){ devices.clear(); };
|
||
|
|
||
|
string timestamp();
|
||
|
string query2fritz(const char* command);
|
||
|
string parseString(const char* var, string& string_to_serarch);
|
||
|
string parseString(string search1, string search2, string str);
|
||
|
string post2fritz(const char* url, int port = 80, const string data = "", const string curlOutFile = "");
|
||
|
|
||
|
virtual void setDebug(const int Debug){debug = Debug;};
|
||
|
virtual const char* getSid(){return sid;};
|
||
|
virtual void setFritzAdr(const char* Adr){FritzAdr = Adr;};
|
||
|
virtual void setFritzPort(const int Port){FritzWebPort = Port;};
|
||
|
|
||
|
private:
|
||
|
FILE *r_fritz;
|
||
|
FILE *w_fritz;
|
||
|
//int sockfb;
|
||
|
int debug;
|
||
|
char challenge[20];
|
||
|
char sid[20];
|
||
|
int FritzWebPort;
|
||
|
const char* FritzAdr;
|
||
|
|
||
|
unsigned char digest[16];
|
||
|
unsigned char md5sum[33];
|
||
|
|
||
|
int get_challenge();
|
||
|
int get_md5(const char *challenge, char *FritzPW);
|
||
|
int get_sid(const char *challenge, const unsigned char *md5);
|
||
|
int get_sid_LUA(const char *challenge, const unsigned char *md5);
|
||
|
int get_challenge(const char* host, int port,const char* fritzPW);
|
||
|
void setFlag(const char *flag, const int& i);
|
||
|
// send command to DECT actor
|
||
|
void send2actor(const unsigned int& inx, int& t_soll);
|
||
|
|
||
|
char *trim(char *txt);
|
||
|
char *UTF8toISO(char *txt);
|
||
|
int ExistFile(const char *fname);
|
||
|
int TouchFile(const char *fname);
|
||
|
};
|
||
|
|
||
|
#endif //__connect_h__
|