убрал лишнее в PICloudServer
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
PICloudBase::PICloudBase() : eth(PIEthernet::TCP_Client), streampacker(ð), tcp(&streampacker) {
|
PICloudBase::PICloudBase() : eth(PIEthernet::TCP_Client), streampacker(ð), tcp(&streampacker) {
|
||||||
eth.setDebug(false);
|
//eth.setDebug(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ PICloudServer::PICloudServer(const PIString & path, PIIODevice::DeviceMode mode)
|
|||||||
tcp.setRole(PICloud::TCP::Server);
|
tcp.setRole(PICloud::TCP::Server);
|
||||||
tcp.setServerName(server_name);
|
tcp.setServerName(server_name);
|
||||||
setName("cloud_server__" + server_name);
|
setName("cloud_server__" + server_name);
|
||||||
|
eth.setReopenEnabled(false);
|
||||||
CONNECT1(void, PIByteArray, &streampacker, packetReceiveEvent, this, _readed);
|
CONNECT1(void, PIByteArray, &streampacker, packetReceiveEvent, this, _readed);
|
||||||
CONNECTL(ð, connected, [this](){opened_ = true; piCoutObj << "connected" << ð tcp.sendStart();});
|
CONNECTL(ð, connected, [this](){opened_ = true; piCoutObj << "connected" << ð tcp.sendStart();});
|
||||||
CONNECTL(ð, disconnected, [this](bool){
|
CONNECTL(ð, disconnected, [this](bool){
|
||||||
@@ -44,8 +45,10 @@ PICloudServer::PICloudServer(const PIString & path, PIIODevice::DeviceMode mode)
|
|||||||
|
|
||||||
PICloudServer::~PICloudServer() {
|
PICloudServer::~PICloudServer() {
|
||||||
piCoutObj << "~PICloudServer ..." << this;
|
piCoutObj << "~PICloudServer ..." << this;
|
||||||
stopAndWait();
|
stop();
|
||||||
close();
|
close();
|
||||||
|
piCout << "wait";
|
||||||
|
waitThreadedReadFinished();
|
||||||
piCoutObj << "~PICloudServer done" << this;
|
piCoutObj << "~PICloudServer done" << this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,10 +72,11 @@ bool PICloudServer::openDevice() {
|
|||||||
eth.startThreadedRead();
|
eth.startThreadedRead();
|
||||||
ping_timer.start(5000);
|
ping_timer.start(5000);
|
||||||
return true;
|
return true;
|
||||||
|
} else {
|
||||||
|
ping_timer.stop(false);
|
||||||
|
eth.close();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
ping_timer.stop(false);
|
|
||||||
eth.close();
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -80,12 +84,6 @@ bool PICloudServer::closeDevice() {
|
|||||||
piCoutObj << "closeDevice" << this;
|
piCoutObj << "closeDevice" << this;
|
||||||
eth.stopAndWait();
|
eth.stopAndWait();
|
||||||
ping_timer.stop(false);
|
ping_timer.stop(false);
|
||||||
clients_mutex.lock();
|
|
||||||
for (auto c : clients_) {
|
|
||||||
c->stopAndWait();
|
|
||||||
c->close();
|
|
||||||
}
|
|
||||||
clients_mutex.unlock();
|
|
||||||
eth.close();
|
eth.close();
|
||||||
for (auto c : clients_) {
|
for (auto c : clients_) {
|
||||||
delete c;
|
delete c;
|
||||||
@@ -98,7 +96,7 @@ bool PICloudServer::closeDevice() {
|
|||||||
ssize_t PICloudServer::readDevice(void * read_to, ssize_t max_size) {
|
ssize_t PICloudServer::readDevice(void * read_to, ssize_t max_size) {
|
||||||
//piCoutObj << "readDevice";
|
//piCoutObj << "readDevice";
|
||||||
if (!opened_) openDevice();
|
if (!opened_) openDevice();
|
||||||
else piMSleep(eth.readTimeout());
|
//else piMSleep(eth.readTimeout());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ int main(int argc, char * argv[]) {
|
|||||||
}));
|
}));
|
||||||
CONNECTL(cl, closed, ([&clients, cl](){
|
CONNECTL(cl, closed, ([&clients, cl](){
|
||||||
piCout << "[Server] client closed ..." << cl;
|
piCout << "[Server] client closed ..." << cl;
|
||||||
cl->stopAndWait();
|
cl->stop();
|
||||||
clients.removeAll(cl);
|
clients.removeAll(cl);
|
||||||
piCout << "[Server] client closed ok" << cl;
|
piCout << "[Server] client closed ok" << cl;
|
||||||
}));
|
}));
|
||||||
|
|||||||
Reference in New Issue
Block a user