git-svn-id: svn://db.shs.com.ru/libs@491 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-02-19 09:10:03 +00:00
parent b89221a061
commit a02507dd34
3 changed files with 37 additions and 130 deletions

View File

@@ -36,22 +36,27 @@ const uchar header_transfer = 0x81;
__Core_Initializer__::__Core_Initializer__() {
count_++;
//piCout << "try create Core" << count_;
piCout << "try create Core" << count_;
if (count_ > 1) return;
//piCout << "create Core";
piCout << "create Core";
__instance__ = new CDCore();
}
__Core_Initializer__::~__Core_Initializer__() {
count_--;
//piCout << "try delete Core" << count_;
piCout << "try delete Core" << count_;
if (count_ < 0) {
count_ = 0;
return;
}
if (count_ > 0) return;
//piCout << "delete Core";
if (__instance__ != 0) {
piCout << "delete Core ...";
if (__instance__) {
delete __instance__;
__instance__ = 0;
}
piCout << "delete Core ok";
}
@@ -59,9 +64,7 @@ __Core_Initializer__::~__Core_Initializer__() {
CDCore::CDCore() {
setName("CDCore");
sendt.setName("CDCore_send_thread");
datatr.setName("CDCore_datatransfer");
x_timer.setName("CDCore_X_timer");
x_timer.setName("__S__.CDCore.x_timer");
datatr.setPacketSize(960);
CONNECTU(&connection, dataReceivedEvent, this, dataReceived);
CONNECTU(PICout::Notifier::object(), finished, this, piCoutFinished);
@@ -78,9 +81,9 @@ CDCore::CDCore() {
initRoot(&c_);
initRoot(&m_);
CONNECTU(&sendt, started, this, sendThread)
CONNECTU(&datatr, sendRequest, this, dtSendRequest)
CONNECTU(&datatr, receiveFinished, this, dtReceiveFinished)
CONNECTU(&sendt, started, this, sendThread)
CONNECTU(&x_timer, tickEvent, this, xTimerTick)
/*k_[1] = KType(1, "123", "120+3", "comment");
@@ -96,16 +99,17 @@ CDCore::CDCore() {
CDCore::~CDCore() {
piCout << "~CDCore";
piCout << "~CDCore ...";
x_timer.stop(false);
piCout << "~CDCore 1";
datatr.stop();
piCout << "~datatr.stop()";
x_timer.stop();
piCout << "~x_timer.stop()";
sendt.stop(true);
piCout << "~sendt.stop()";
// sendt.waitForFinish(10);
piCout << "~CDCore 2";
sendt.stop();
piCout << "~CDCore 3";
sendt.waitForFinish(10);
piCout << "~CDCore 4";
connection.stop();
piCout << "~connection.stop()";
piCout << "~CDCore ok";
}
@@ -305,6 +309,17 @@ CDCore * CDCore::instance() {
}
bool CDCore::destroy() {
if (!__Core_Initializer__::__instance__) return false;
piCout << "delete Core ...";
delete __Core_Initializer__::__instance__;
piCout << "delete Core ok";
__Core_Initializer__::__instance__ = 0;
__Core_Initializer__::count_ = 0;
return true;
}
void CDUtils::CDCore::K_DirectChange(PIDeque<int> path, PIString value) {
piCoutObj << "K_DirectChange";
PacketKDirectChange p;

View File

@@ -30,6 +30,7 @@ class CDCore: public PIObject
friend class XInterface;
public:
static CDCore * instance();
static bool destroy();
EVENT(K_Sended)
EVENT(K_SendFail)

View File

@@ -87,120 +87,11 @@ private:
};
#include "piscreen.h"
#include "piscreentiles.h"
PIScreen screen(false);
int main(int argc, char *argv[]) {
// PIString s;
// s = "df a)))(a(ttt){a(b(c)})d)e( d dws ) sds(()fads(fdas()))fda))))fdasf((((jhvw";
// piCout << s;
// piCout << s.inBrackets('(', ')');
// piCout << s.cutLeft(s.find('(')).takeRange('(', ')');
// piCout << s;
// piCout << "exit";
// s = "test";
// PIByteArray ba = s.toByteArray();
// piCout << PIString(ba);
// piCout << PIString(ba.toHex());
// piCout << PIString(ba.fromHex(PIString(ba.toHex())));
// PIByteArray ba = s.toByteArray();
// piCout << PIString(ba);
// piCout << PIString(ba.convertToBase64());
// piCout << PIString(ba.convertFromBase64());
// s = "dGVzdA==";
// ba = s.toByteArray();
// piCout << PIString(ba);
// piCout << PIString(ba.convertFromBase64());
// return 0;
// int i = 0;
// piCout << i++ << "!" << s << "!";
// piCout << i << "!" << s.trimmed() << "!";
// piCout << i << "!" << s.trim() << "!";
// s = "";
// piCout << i++ << "!" << s << "!";
// piCout << i << "!" << s.trimmed() << "!";
// piCout << i << "!" << s.trim() << "!";
// s = " ";
// piCout << i++ << "!" << s << "!";
// piCout << i << "!" << s.trimmed() << "!";
// piCout << i << "!" << s.trim() << "!";
// s = " ";
// piCout << i++ << "!" << s << "!";
// piCout << i << "!" << s.trimmed() << "!";
// piCout << i << "!" << s.trim() << "!";
// s = " s ";
// piCout << i++ << "!" << s << "!";
// piCout << i << "!" << s.trimmed() << "!";
// piCout << i << "!" << s.trim() << "!";
// s = "f s ";
// piCout << i++ << "!" << s << "!";
// piCout << i << "!" << s.trimmed() << "!";
// piCout << i << "!" << s.trim() << "!";
// s = " kjdfsnfv;kjsfd ";
// piCout << i++ << "!" << s << "!";
// piCout << i << "!" << s.trimmed() << "!";
// piCout << i << "!" << s.trim() << "!";
// return 0;
// PIEthernet eth;
// eth.send("127.0.0.1:16102", PIByteArray("data\n", 5));
// eth.send("127.0.0.1:26102", PIByteArray("data\n", 5));
// eth.send("127.0.0.1:36102", PIByteArray("data\n", 5));
/*PIString s; = "[k]\n\
1.f = 120+3 #s comment\n\
1.v = 123\n\
2.f = 2 #s comm\n\
2.v = 1\n\
4.f = -6/10 #s mment\n\
4.v = -0.6\n\
[s.10.k]\n\
5.f = 2*2*2\n\
5.v = 8 #s 88\n\
[s.10.s.50.k]\n\
100.f = 2*2*2\n\
100.v = 8 #s 88\n\
[s.11.k]\n\
3.f = 1\n\
3.v = 1 #s 88 \n\
4.f = 0\n\
4.v = 0 #s 88 \n\
6.f = 0\n\
6.v = 0 #s 881 \n\
[]\n";
PIIOString ios(&s);
CDUtils::K.read(&ios);
s.clear();
PIIOString iosw(&s);
CDUtils::K.write(&iosw);
piCout << s;*/
// piCout << K.count();
// PIFile rf("1.txt", PIIODevice::ReadWrite);
// K.read(&rf);
// PIFile f;
// f.open("SH_base.h", PIIODevice::ReadOnly);
// CDUtils::K.update(&f);
// PIFile wf("2.txt", PIIODevice::ReadWrite);
// CDUtils::K.write(&wf);
//PIIOString iosw(&s);
//piCout << s;
//piMSleep(1000);
//CDUtils::Core::instance()->test();
//return 0;
// piCout << "init";
screen.rootTile()->addTile(new TilePICout());
screen.enableExitCapture('q');
// piMSleep(3000);
screen.start();
piCout << "start";
Core core;
core.load();
// core.save();
// K.send();
screen.waitForFinish();
X.start();
piSleep(1);
//CDCore::instance()->destroy();
piCout << "DELETED";
return 0;
}