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.
 
 
 
 
 
 

97 lines
2.9 KiB

#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__