Многие начинающие программисты решают общие задачи взаимодействия с операционной системой: вывод в консоль, определение нажатия клавиш, работа с последовательными портами, сетью или файлами, и многое другое. Эти задачи решены в библиотеке, и код, основанный на PIP будет компилироваться и работать одинаково на многих системах: Windows, любой Linux, Red Hat, FreeBSD, MacOS X и QNX. Типовое приложение на PIP выглядит примерно так:
#include <pip.h>
void key_event(char key, void * );
PIConsole console(false, key_event);
int i = 2, j = 3;
void key_event(char key, void * ) {
switch (key) {
case '-':
i--;
break;
case '+':
i++;
break;
case '(':
j--;
break;
case ')':
j++;
break;
};
};
public:
MainClass() {}
protected:
void tick(
int delimiter) {
}
};
MainClass main_class;
int main(int argc, char * argv[]) {
console.enableExitCapture();
cli.addArgument("console");
cli.addArgument("debug");
piDebug = cli.hasArgument(
"debug");
console.addTab("first tab", '1');
console.addString("PIP console", 1, PIConsole::Bold);
console.addVariable("int var (i)", &i, 1);
console.addVariable("int green var (j)", &j, 1, PIConsole::Green);
console.addString("'-' - i--", 2);
console.addString("'+' - i++", 2);
console.addString("'(' - j--", 2);
console.addString("')' - j++", 2);
console.addTab("second tab", '2');
console.addString("col 1", 1);
console.addString("col 2", 2);
console.addString("col 3", 3);
console.setTab("first tab");
if (cli.hasArgument("console"))
console.start();
main_class.start(25.);
console.waitForFinish();
return 0;
};
Парсер командной строки.
Definition: picli.h:36
#define PIOBJECT(name)
Необходимо использовать этот макрос после объявления класса для использования событийной системы и ко...
Definition: piobject_macros.h:38
Таймер
Definition: pitimer.h:36
virtual void tick(int delimiter)
Timer execution function, similar to "slot" or event timeout(). By default does nothing.
Definition: pitimer.h:200
bool piDebug
Глобальная переменная, включающая вывод в piCout, при старте true.
Definition: piincludes.cpp:37
#define piCout
Макрос для условного (piDebug) вывода в PICout(StdOut)
Definition: picout.h:35
Этот код демонстрирует простую конфигурируемую программу, которая может быть запущена с This code demonstrates simple interactive configurable program, which can be started with console display or not, and with debug or not. MainClass is central class that also can be inherited from PIThread and reimplement run() function.
Many PIP classes has events and event handlers, which can be connected one to another. Details you can see at PIObject reference page (События и Обработчики событий).
To configure your program from file use PIConfig.