cloud test

This commit is contained in:
2020-08-26 17:28:56 +03:00
parent 3965e54e38
commit cfebf8cf23
11 changed files with 110 additions and 32 deletions

View File

@@ -18,11 +18,9 @@
*/
#include "picloudserver.h"
#include "piethernet.h"
PICloudServer::PICloudServer(const PIString & path, PIIODevice::DeviceMode mode) : PIIODevice(path, mode) {
eth = new PIEthernet(PIEthernet::TCP_Client);
PICloudServer::PICloudServer(const PIString & path, PIIODevice::DeviceMode mode) : PIIODevice(path, mode), eth(PIEthernet::TCP_Client) {
}
@@ -33,18 +31,28 @@ PICloudServer::~PICloudServer() {
bool PICloudServer::openDevice() {
piCout << "PICloudServer open device" << path();
bool op = eth->connect(path(), false);
bool op = eth.connect(path(), false);
if (op) {
CONNECTL(eth, disconnected, [this](bool){eth->connect(path());});
eth->startThreadedRead();
return true;
} else {
eth.close();
}
return false;
}
bool PICloudServer::closeDevice() {
eth->stopThreadedRead();
return eth->close();
return eth.close();
}
int PICloudServer::readDevice(void * read_to, int max_size) {
return eth.read(read_to, max_size);
}
int PICloudServer::writeDevice(const void * data, int max_size) {
return eth.write(data, max_size);
}

View File

@@ -24,7 +24,7 @@
#define PICLOUDSERVER_H
#include "pip_cloud_export.h"
#include "piiodevice.h"
#include "piethernet.h"
class PIEthernet;
@@ -40,9 +40,12 @@ public:
protected:
bool openDevice();
bool closeDevice();
int readDevice(void * read_to, int max_size);
int writeDevice(const void * data, int max_size);
private:
PIEthernet * eth;
PIEthernet eth;
};
#endif // PICLOUDSERVER_H

View File

@@ -564,8 +564,9 @@ bool PIEthernet::connect(bool threaded) {
PRIVATE->addr_.sin_len = sizeof(PRIVATE->addr_);
#endif
connected_ = (::connect(sock, (sockaddr * )&PRIVATE->addr_, sizeof(PRIVATE->addr_)) == 0);
if (!connected_)
if (!connected_) {
piCoutObj << "Can`t connect to" << addr_r << "," << ethErrorString();
}
opened_ = connected_;
if (connected_) {
connecting_ = false;