tdGetNumberOfDevices now communicates as expected.
This commit is contained in:
parent
3890e491c2
commit
407cf1584a
4 changed files with 30 additions and 23 deletions
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "telldus-core.h"
|
||||
#include "common.h"
|
||||
#include "Message.h"
|
||||
#include "Socket.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
|
@ -186,12 +187,13 @@ char * WINAPI tdLastSentValue( int intDeviceId ) {
|
|||
* @returns an integer of the total number of devices configured
|
||||
*/
|
||||
int WINAPI tdGetNumberOfDevices(void){
|
||||
TelldusCore::Socket s(L"TelldusClient");
|
||||
TelldusCore::Socket s;
|
||||
s.connect(L"TelldusClient");
|
||||
std::wstring msg = L"20:tdGetNumberOfDevices";
|
||||
s.write(msg);
|
||||
|
||||
std::wstring response = s.read();
|
||||
return 1;
|
||||
return TelldusCore::Message::takeInt(&response);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -14,10 +14,11 @@ namespace TelldusCore {
|
|||
class Socket
|
||||
{
|
||||
public:
|
||||
Socket(const std::wstring &server);
|
||||
Socket();
|
||||
Socket(SOCKET_T hPipe);
|
||||
virtual ~Socket(void);
|
||||
|
||||
void connect(const std::wstring &server);
|
||||
std::wstring read();
|
||||
void write(const std::wstring &msg);
|
||||
|
||||
|
|
|
@ -14,10 +14,27 @@ public:
|
|||
bool connected;
|
||||
};
|
||||
|
||||
Socket::Socket(const std::wstring &server) {
|
||||
Socket::Socket() {
|
||||
d = new PrivateData;
|
||||
d->connected = false;
|
||||
}
|
||||
|
||||
Socket::Socket(SOCKET_T hPipe)
|
||||
{
|
||||
d = new PrivateData;
|
||||
d->hPipe = hPipe;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Socket::~Socket(void){
|
||||
if (d->hPipe != INVALID_HANDLE_VALUE) {
|
||||
CloseHandle(d->hPipe);
|
||||
}
|
||||
delete d;
|
||||
}
|
||||
|
||||
void Socket::connect(const std::wstring &server){
|
||||
bool fSuccess = false;
|
||||
|
||||
std::wstring name(L"\\\\.\\pipe\\" + server);
|
||||
|
@ -48,20 +65,6 @@ Socket::Socket(const std::wstring &server) {
|
|||
d->connected = true;
|
||||
}
|
||||
|
||||
Socket::Socket(SOCKET_T hPipe)
|
||||
{
|
||||
d = new PrivateData;
|
||||
d->hPipe = hPipe;
|
||||
|
||||
}
|
||||
|
||||
Socket::~Socket(void){
|
||||
if (d->hPipe != INVALID_HANDLE_VALUE) {
|
||||
CloseHandle(d->hPipe);
|
||||
}
|
||||
delete d;
|
||||
}
|
||||
|
||||
std::wstring Socket::read() {
|
||||
wchar_t buf[BUFSIZE];
|
||||
int result;
|
||||
|
|
|
@ -51,8 +51,9 @@ void ClientCommunicationHandler::run(){
|
|||
if(strReturn == L""){
|
||||
msg.addArgument(intTemp);
|
||||
}
|
||||
// msg.addArgument(temp); //temp.toString().toStdString());
|
||||
//}
|
||||
else{
|
||||
msg.addArgument(strReturn); //temp.toString().toStdString());
|
||||
}
|
||||
msg.append(L"\n");
|
||||
d->clientSocket->write(msg);
|
||||
|
||||
|
@ -76,8 +77,8 @@ void ClientCommunicationHandler::parseMessage(const std::wstring &clientMessage,
|
|||
//return L"12";
|
||||
intReturn = 12;
|
||||
}
|
||||
|
||||
intReturn = 5;
|
||||
|
||||
else{
|
||||
intReturn = 5;
|
||||
}
|
||||
//return L"5";
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue