예제 #1
0
파일: Main.cpp 프로젝트: hcmlab/mobileSSI
bool ex_send_notifications(void *arg)
{
	ITheFramework *frame = Factory::GetFramework();
	
	Decorator *decorator = ssi_create(Decorator, 0, true);
	decorator->getOptions()->setOrigin(CONSOLE_WIDTH, 0);
	frame->AddDecorator(decorator);

	// start mouse

	Mouse *mouse = ssi_create(Mouse, 0, true);
	ITransformable *cursor_p = frame->AddProvider(mouse, SSI_MOUSE_CURSOR_PROVIDER_NAME);
	frame->AddSensor(mouse);

	// sender + receiver

	NotifySender *sender = ssi_create_id(NotifySender, 0, "sender");
	sender->setLogLevel(SSI_LOG_LEVEL_DEBUG);
	sender->getOptions()->setUrl("udp://localhost:1111");
	frame->AddRunnable(sender);	

	NotifyReceiver *receiver = ssi_create_id(NotifyReceiver, 0, "receiver");
	receiver->setLogLevel(SSI_LOG_LEVEL_DEBUG);
	receiver->getOptions()->setUrl("udp://localhost:1111");
	receiver->getOptions()->setId("plot");
	frame->AddRunnable((SSI_IRunnableObject*)receiver);

	// control (place after sender!)

	ControlCheckBox *checkbox = 0;

	checkbox = ssi_create_id(ControlCheckBox, 0, "checkbox");
	checkbox->getOptions()->setId("sender");
	checkbox->getOptions()->setTitle("VISUALIZATION");
	checkbox->getOptions()->setLabel("SHOW");
	checkbox->getOptions()->value = false;
	frame->AddRunnable(checkbox);

	// plot

	SignalPainter *plot;

	plot = ssi_create_id(SignalPainter, 0, "plot");
	plot->getOptions()->size = 10;
	plot->getOptions()->setTitle("cursor");
	frame->AddConsumer(cursor_p, plot, "0.2s");

	decorator->add("plot*", 0, 0, 400, CONSOLE_HEIGHT - 200);
	decorator->add("checkbox*", 0, CONSOLE_HEIGHT - 200, 400, 200);

	frame->Start();
	frame->Wait();
	frame->Stop();
	frame->Clear();

	return true;

}
예제 #2
0
파일: Main.cpp 프로젝트: hcmlab/mobileSSI
bool ex_sender_video(void *arg) {

#if _WIN32|_WIN64

	ITheFramework *frame = Factory::GetFramework();

	Decorator *decorator = ssi_create(Decorator, 0, true);
	decorator->getOptions()->setOrigin(CONSOLE_WIDTH, 0);
	frame->AddDecorator(decorator);

	FakeSignal *camera = ssi_create(FakeSignal, 0, true);
	camera->getOptions()->type = FakeSignal::SIGNAL::IMAGE_SSI;
	camera->getOptions()->sr = 1;
	ITransformable *camera_p = frame->AddProvider(camera, "fake");
	camera->setLogLevel(SSI_LOG_LEVEL_DEBUG);
	frame->AddSensor(camera);

	SocketWriter *socket_writer_img = ssi_create (SocketWriter, 0, true);
	socket_writer_img->getOptions()->port = 4444;
	socket_writer_img->getOptions()->setHost("localhost");
	socket_writer_img->getOptions()->type = Socket::TYPE::UDP;
	socket_writer_img->getOptions()->format = SocketWriter::Options::FORMAT::IMAGE;
	frame->AddConsumer(camera_p, socket_writer_img, "1");

	SocketReader *socket_reader_img = ssi_create (SocketReader, 0, true);
	socket_reader_img->getOptions()->port = 4444;
	socket_reader_img->getOptions()->type = Socket::TYPE::UDP;
	socket_reader_img->getOptions()->format = SocketReader::Options::FORMAT::IMAGE;
	socket_reader_img->getOptions()->setSampleInfo(camera->getFormat());
	ITransformable *socket_reader_img_p = frame->AddProvider(socket_reader_img, SSI_SOCKETREADER_PROVIDER_NAME);
	frame->AddSensor(socket_reader_img);

	VideoPainter *plot;

	plot = ssi_create_id(VideoPainter, 0, "plot");
	frame->AddConsumer(camera_p, plot, "1");

	plot = ssi_create_id(VideoPainter, 0, "plot");
	frame->AddConsumer(socket_reader_img_p, plot, "1");

	decorator->add("plot*", 1, 2, 0, 0, 320, 480);

    frame->Start();
	frame->Wait();
	frame->Stop();
    frame->Clear();

#endif

	return true;
}
예제 #3
0
파일: Main.cpp 프로젝트: hcmlab/mobileSSI
bool ex_sender(void *arg) {

	Socket::TYPE::List *type = ssi_pcast(Socket::TYPE::List, arg);

	ITheFramework *frame = Factory::GetFramework();

	Decorator *decorator = ssi_create(Decorator, 0, true);
	decorator->getOptions()->setOrigin(CONSOLE_WIDTH, 0);
	frame->AddDecorator(decorator);

	// start mouse

	Mouse *mouse = ssi_create (Mouse, "mouse", true);
	ITransformable *cursor_p = frame->AddProvider(mouse, SSI_MOUSE_CURSOR_PROVIDER_NAME);
	frame->AddSensor(mouse);

	// start sender and receiver
	
	SocketWriter *socket_writer_bin = ssi_create (SocketWriter, 0, true);	
	socket_writer_bin->getOptions()->setUrl(*type, "localhost", 1111);
	socket_writer_bin->getOptions()->format = SocketWriter::Options::FORMAT::BINARY;
	frame->AddConsumer(cursor_p, socket_writer_bin, "0.25s");

	SocketReader *socket_reader_bin = ssi_create (SocketReader, 0, true);
	socket_reader_bin->getOptions()->setUrl(*type, "localhost", 1111);
	socket_reader_bin->getOptions()->format = SocketReader::Options::FORMAT::BINARY;
	socket_reader_bin->getOptions()->setSampleInfo(cursor_p->getSampleRate(), cursor_p->getSampleDimension(), cursor_p->getSampleBytes(), cursor_p->getSampleType());
	ITransformable *socket_reader_bin_p = frame->AddProvider(socket_reader_bin, SSI_SOCKETREADER_PROVIDER_NAME);
	frame->AddSensor(socket_reader_bin);

	SocketWriter *socket_writer_asc = ssi_create (SocketWriter, 0, true);	
	socket_writer_asc->getOptions()->setUrl(*type, "localhost", 2222);
	socket_writer_asc->getOptions()->format = SocketWriter::Options::FORMAT::ASCII;
	frame->AddConsumer(cursor_p, socket_writer_asc, "0.25s");

	SocketReader *socket_reader_asc = ssi_create (SocketReader, 0, true);
	socket_reader_asc->getOptions()->setUrl(*type, "localhost", 2222);
	socket_reader_asc->getOptions()->format = SocketReader::Options::FORMAT::ASCII;
	socket_reader_asc->getOptions()->setSampleInfo(cursor_p->getSampleRate(), cursor_p->getSampleDimension(), cursor_p->getSampleBytes(), cursor_p->getSampleType());
	ITransformable *socket_reader_asc_p = frame->AddProvider(socket_reader_asc, SSI_SOCKETREADER_PROVIDER_NAME);
	frame->AddSensor(socket_reader_asc);

	SocketWriter *socket_writer_osc = ssi_create (SocketWriter, 0, true);
	socket_writer_osc->getOptions()->setUrl(*type, "localhost", 3333);
	socket_writer_osc->getOptions()->format = SocketWriter::Options::FORMAT::OSC;
	socket_writer_osc->getOptions()->setId("mouse");
	frame->AddConsumer(cursor_p, socket_writer_osc, "0.25s");

	SocketReader *socket_reader_osc = ssi_create (SocketReader, 0, true);
	socket_reader_osc->getOptions()->setUrl(*type, "localhost", 3333);
	socket_reader_osc->getOptions()->format = SocketReader::Options::FORMAT::OSC;
	socket_reader_osc->getOptions()->setSampleInfo(cursor_p->getSampleRate(), cursor_p->getSampleDimension(), cursor_p->getSampleBytes(), cursor_p->getSampleType());
	ITransformable *socket_reader_osc_p = frame->AddProvider(socket_reader_osc, SSI_SOCKETREADER_PROVIDER_NAME);
	frame->AddSensor(socket_reader_osc);

	SignalPainter *plot;

	plot =ssi_create_id(SignalPainter, 0, "plot");
	plot->getOptions()->size = 10;
	plot->getOptions()->setTitle("Local Sensor");
	frame->AddConsumer(cursor_p, plot, "5");

	plot =ssi_create_id(SignalPainter, 0, "plot");
	plot->getOptions()->size = 10;
	plot->getOptions()->setTitle("Socker Reader(Binary)");
	frame->AddConsumer(socket_reader_bin_p, plot, "5");

	plot =ssi_create_id(SignalPainter, 0, "plot");
	plot->getOptions()->size = 10;
	plot->getOptions()->setTitle("Socker Reader(ASCII)");
	frame->AddConsumer(socket_reader_asc_p, plot, "5");

	plot =ssi_create_id(SignalPainter, 0, "plot");
	plot->getOptions()->size = 10;
	plot->getOptions()->setTitle("Socker Reader(OSC)");
	frame->AddConsumer(socket_reader_osc_p, plot, "5");

	decorator->add("plot*", 0, 0, 400, CONSOLE_HEIGHT);

	frame->Start();
	frame->Wait();
	frame->Stop();
	frame->Clear();

	return true;
}