00001
00018 #include "vetNetServer.h"
00019
00020
00021
00022
00023
00024
00025
00026 vetNetServer::vetNetServer() : vetOutput()
00027 {
00028 reset();
00029 }
00030
00031
00032
00033
00034 vetNetServer::vetNetServer(unsigned int port) : vetNetServer()
00035 {
00036 setPort(port);
00037 accept();
00038 }
00039
00040
00041
00042 vetNetServer();
00043
00044 vetNetServer(unsigned int port);
00045
00046
00047
00048
00049
00050 #include "../vetUtility.h"
00051
00052
00053
00070 int vetNetServer::reset(bool startTimers)
00071 {
00072 lastFps = 0;
00073 mediumFps = 0;
00074 lastExTime = 0;
00075 mediumExTime = 0;
00076 v_sleeptime = 0;
00077
00078 if ( startTimers )
00079 {
00080 lastFrameTime = clock();
00081 frameCount = 1;
00082 }
00083 else
00084 {
00085 frameCount = 0;
00086 lastFrameTime = 0;
00087 }
00088 return VETRET_OK;
00089 }
00090
00091
00092
00101 int vetNetServer::setInputFrameRate(float fps)
00102 {
00103 if (fps < 0.)
00104 return VETRET_PARAM_ERR;
00105
00106 if ( fps == 0 )
00107 v_sleeptime = 0;
00108 else
00109 v_sleeptime = (long)( (float)1000 / fps );
00110
00111 return VETRET_OK;
00112 }
00113
00121 void vetNetServer::updateFps()
00122 {
00123 if ( frameCount == 0 || clock() - lastFrameTime == 0)
00124 {
00125 lastFrameTime = clock();
00126 frameCount++;
00127 return;
00128 }
00129
00130 lastFps = 1 / ( ( clock() - lastFrameTime ) / CLOCKS_PER_SEC );
00131 mediumFps = (mediumFps * (frameCount-1) + lastFps ) / frameCount;
00132
00133 lastFrameTime = clock();
00134 frameCount++;
00135 }
00136
00144 void vetNetServer::updateExtime()
00145 {
00146 if ( frameCount == 0 || clock() - lastFrameTime == 0 )
00147 {
00148 lastExTime = clock();
00149 return;
00150 }
00151
00152
00153 lastExTime = 1000 * ( clock() - lastFrameTime ) / CLOCKS_PER_SEC;
00154 mediumExTime = (mediumExTime * (frameCount-1) + lastExTime ) / frameCount;
00155 }
00156
00157
00158 long vetNetServer::getElapsedTime() const
00159 {
00160 return (long) ( 1000 * ( clock() - lastFrameTime ) / CLOCKS_PER_SEC);
00161 }
00162
00163
00164
00165
00166
00178 int vetNetServer::importFrom(vetFrameCache& img)
00179 {
00180 INFO("int vetNetServer::importFrom(vetFrameCache& img) [reading data]")
00181
00182 return VETRET_NOT_IMPLEMENTED;
00183 }
00184
00196 int vetNetServer::importFrom(vetFrameCache24& img)
00197 {
00198 INFO("int vetNetServer::importFrom(vetFrameCache24& img) [reading data]")
00199
00200 return VETRET_NOT_IMPLEMENTED;
00201 }
00202
00214 int vetNetServer::importFrom(vetFrameRGB& img)
00215 {
00216 INFO("int vetNetServer::importFrom(vetFrameRGB& img) [reading data]")
00217
00218 return VETRET_NOT_IMPLEMENTED;
00219 }
00220
00232 int vetNetServer::importFrom(vetFrameGrey& img)
00233 {
00234 INFO("int vetNetServer::importFrom(vetFrameGrey& img) [reading data]")
00235
00236 return VETRET_NOT_IMPLEMENTED;
00237 }
00238
00239
00249 void vetNetServer::operator << (vetFrameCache& img)
00250 {
00251 INFO("void vetNetServer::operator << (vetFrameCache& img) [importing data]")
00252
00253 updateFps();
00254
00255 if ( runmode )
00256 importFrom(img);
00257
00258 updateExtime();
00259
00260 if ( v_sleeptime )
00261 vetUtility::vetSleep(v_sleeptime);
00262 }
00263
00273 void vetNetServer::operator << (vetFrameCache24& img)
00274 {
00275 INFO("void vetNetServer::operator << (vetFrameCache24& img) [importing data]")
00276
00277 updateFps();
00278
00279 if ( runmode )
00280 importFrom(img);
00281
00282 updateExtime();
00283
00284 if ( v_sleeptime )
00285 vetUtility::vetSleep(v_sleeptime);
00286 }
00287
00297 void vetNetServer::operator << (vetFrameRGB& img)
00298 {
00299 INFO("void vetNetServer::operator << (vetFrameRGB& img) [importing data]")
00300
00301 updateFps();
00302
00303 if ( runmode )
00304 importFrom(img);
00305
00306 updateExtime();
00307
00308 if ( v_sleeptime )
00309 vetUtility::vetSleep(v_sleeptime);
00310 }
00311
00321 void vetNetServer::operator << (vetFrameGrey& img)
00322 {
00323 INFO("void vetNetServer::operator << (vetFrameGrey& img) [importing data]")
00324
00325 updateFps();
00326
00327 if ( runmode )
00328 importFrom(img);
00329
00330 updateExtime();
00331
00332 if ( v_sleeptime )
00333 vetUtility::vetSleep(v_sleeptime);
00334 }
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354