telldus/telldus-core/service/TellStick.h

54 lines
1.4 KiB
C++

//
// Copyright (C) 2012 Telldus Technologies AB. All rights reserved.
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef TELLDUS_CORE_SERVICE_TELLSTICK_H_
#define TELLDUS_CORE_SERVICE_TELLSTICK_H_
#include <list>
#include <string>
#include "service/Controller.h"
#include "common/Thread.h"
class TellStickDescriptor {
public:
std::string serial;
int vid, pid;
};
class TellStick : public Controller, public TelldusCore::Thread {
public:
TellStick(int controllerId, TelldusCore::EventRef event, TelldusCore::EventRef updateEvent, const TellStickDescriptor &d);
virtual ~TellStick();
virtual int pid() const;
virtual int vid() const;
virtual std::string serial() const;
bool isOpen() const;
bool isSameAsDescriptor(const TellStickDescriptor &d) const;
virtual int reset();
virtual int send( const std::string &message );
bool stillConnected() const;
static std::list<TellStickDescriptor> findAll();
static std::string createTPacket( const std::string & );
static std::string convertSToT( unsigned char t0, unsigned char t1, unsigned char t2, unsigned char t3, const std::string &data );
protected:
void processData( const std::string &data );
void run();
void setBaud( int baud );
void stop();
private:
static std::list<TellStickDescriptor> findAllByVIDPID( int vid, int pid );
class PrivateData;
PrivateData *d;
};
#endif // TELLDUS_CORE_SERVICE_TELLSTICK_H_