git-svn-id: svn://db.shs.com.ru/pip@255 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
77
main.cpp
77
main.cpp
@@ -20,11 +20,24 @@ const char conn_config[] =
|
||||
device.test.disconnectTimeout = 3.00000000 #f\n\
|
||||
[]\n";
|
||||
|
||||
class Obj : public PIObject {
|
||||
PIOBJECT(Obj)
|
||||
public:
|
||||
Obj() {
|
||||
CONNECTU(&conn, dataReceivedEvent, this, recv);
|
||||
private:
|
||||
void drawEvent(PIScreenDrawer * d) {
|
||||
//piCout << "draw" << visible;
|
||||
if (!term) return;
|
||||
PIVector<PIVector<PIScreenTypes::Cell> > c = term->content();
|
||||
d->fillRect(x_, y_, x_ + width_, y_ + height_, c);
|
||||
}
|
||||
bool keyEvent(PIKbdListener::KeyEvent key) {
|
||||
//piCout << "key";
|
||||
//return false;
|
||||
if (!term) return false;
|
||||
if (PITerminal::isSpecialKey(key.key)) term->write((PIKbdListener::SpecialKey)key.key, key.modifiers);
|
||||
else {
|
||||
PIByteArray ba;
|
||||
//ba << PIChar(key.key).toConcole1Byte();
|
||||
//piCout << key.key;
|
||||
ba = PIString(PIChar(key.key)).toUTF8();
|
||||
term->write(ba);
|
||||
}
|
||||
EVENT_HANDLER1(void, keyEv, PIKbdListener::KeyEvent, k) {
|
||||
piCoutObj << k.key;
|
||||
@@ -49,20 +62,48 @@ const char conn_config[] =
|
||||
};
|
||||
|
||||
int main (int argc, char * argv[]) {
|
||||
screen.rootTile()->addTile(new TilePICout());
|
||||
screen.enableExitCapture();
|
||||
screen.rootTile()->children().front()->setFocus();
|
||||
Obj * o = new Obj();
|
||||
CONNECTU(&screen, keyPressed, o, keyEv)
|
||||
PIString s = conn_config;
|
||||
conn.configureFromString(&s);
|
||||
PISerial * ser = (PISerial *)conn.deviceByName("test");
|
||||
if (ser) {
|
||||
piCout << ser->constructFullPath() << ser->isOpened();
|
||||
ser->startThreadedWrite();
|
||||
/*const char cs[] = "this is text\e";
|
||||
PIByteArray ba(cs, sizeof(cs) - 1);
|
||||
PIString s(ba);
|
||||
piCout << ba;
|
||||
piCout << s;
|
||||
piCout << s.toByteArray();
|
||||
return 0;*/
|
||||
PIScreen * screen = 0;
|
||||
if (argc > 1) screen = new PIScreen();
|
||||
PITerminal term;
|
||||
TileTerminal tt(&term);
|
||||
if (screen) {
|
||||
screen->rootTile()->addTile(&tt);
|
||||
screen->rootTile()->addTile(new TilePICout());
|
||||
screen->enableExitCapture();
|
||||
}
|
||||
tt.setFocus();
|
||||
term.initialize();
|
||||
piMSleep(100);
|
||||
//term.write(PIString("ls -l /etc/\n").toByteArray());
|
||||
//term.write(PIString("mc\n").toByteArray());
|
||||
//term.write(PIString("aptitude\n").toByteArray());
|
||||
if (screen) {
|
||||
screen->start();
|
||||
piMSleep(100);
|
||||
//piCout << tt.width() << tt.height();
|
||||
term.resize(tt.width(), tt.height());
|
||||
screen->waitForFinish();
|
||||
} else {
|
||||
piMSleep(4000);
|
||||
term.write(PIKbdListener::KeyEvent(PIKbdListener::Tab));
|
||||
piMSleep(1000);
|
||||
term.write(PIKbdListener::KeyEvent(PIKbdListener::Tab));
|
||||
//term.write(PIKbdListener::KeyEvent(PIKbdListener::Space));
|
||||
//term.write(PIString("exit\n").toByteArray());
|
||||
term.write(PIString("Q\n").toByteArray());
|
||||
piMSleep(1000);
|
||||
}
|
||||
if (screen) {
|
||||
screen->rootTile()->takeTile(&tt);
|
||||
delete screen;
|
||||
}
|
||||
conn.start();
|
||||
screen.waitForFinish();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user