-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtestOpenCVServer.cpp
102 lines (73 loc) · 2.74 KB
/
testOpenCVServer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream>
#include <signal.h>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "Aria.h"
#include "ArVideo.h"
#include "ArVideoOpenCV.h"
#include "ArSystemStatus.h"
int main(int argc, char *argv[])
{
Aria::init();
ArVideo::init();
ArArgumentParser argParser(&argc, argv);
ArServerBase server;
ArServerSimpleOpener openServer(&argParser);
argParser.loadDefaultArguments();
if(!Aria::parseArgs() || !argParser.checkHelpAndWarnUnparsed()) {
Aria::logOptions();
Aria::exit(-1);
}
/* Set up ArNetworking services */
ArServerHandlerCommands commandsServer(&server);
#ifndef WIN32
ArServerFileLister fileLister(&server, ".");
ArServerFileToClient fileToClient(&server, ".");
ArServerDeleteFileOnServer deleteFileOnServer(&server, ".");
#endif
ArServerInfoStrings stringInfoServer(&server);
Aria::getInfoGroup()->addAddStringCallback(stringInfoServer.getAddStringFunctor());
ArSystemStatus::startPeriodicUpdate();
Aria::getInfoGroup()->addStringDouble(
"CPU Use", 10, ArSystemStatus::getCPUPercentFunctor(), "% 4.0f%%");
// Aria::getInfoGroup()->addStringUnsignedLong(
// "Computer Uptime", 14, ArSystemStatus::getUptimeFunctor());
// Aria::getInfoGroup()->addStringUnsignedLong(
// "Program Uptime", 14, ArSystemStatus::getProgramUptimeFunctor());
Aria::getInfoGroup()->addStringInt(
"Wireless Link Quality", 9, ArSystemStatus::getWirelessLinkQualityFunctor(), "%d");
Aria::getInfoGroup()->addStringInt(
"Wireless Noise", 10, ArSystemStatus::getWirelessLinkNoiseFunctor(), "%d");
Aria::getInfoGroup()->addStringInt(
"Wireless Signal", 10, ArSystemStatus::getWirelessLinkSignalFunctor(), "%d");
ArServerHandlerCommMonitor commMonitorServer(&server);
ArVideoOpenCV slideshow("OpenCV_Slideshow");
ArVideo::createVideoServer(&server, &slideshow, "OpenCV_Slideshow", "OpenCV_Slideshow");
if(!openServer.open(&server))
{
std::cout << "error opening ArNetworking server" << std::endl;
Aria::exit(5);
return 5;
}
server.runAsync();
std::cout << "ArNetworking server running on port " << server.getTcpPort() << std::endl;
/* Main loop, load image, copy to ArVideo source */
while(true)
{
for(int i = 1; i <= 10; ++i)
{
char filename[128];
snprintf(filename, 128, "image%d.jpg", i);
std::cout << "loading " << filename << std::endl;
cv::Mat img = cv::imread(filename);
printf("img size %dx%d\n", img.cols, img.rows);
// cv::imshow("rgb", img);
// cv::waitKey(100);
if(!slideshow.updateVideoDataCopy(img, 1, CV_BGR2RGB))
std::cout << "Warning error copying rgb data to ArVideo source" << std::endl;
ArUtil::sleep(5000);
}
}
Aria::exit(0);
return 0;
}