Measure the framerate of a data source.
Measure the framerate of a data source. This example was originally designed for images but should work with anything.
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
static int ct = 0;
ct++;
fprintf(stderr, "[try %d of %d] Asking to shut down smoothly\n",ct, 3);
if (iPort!=0)
if (ct>2)
{
fprintf(stderr, "[try %d of %d] OK asking to abort...\n", ct, 3);
exit(-1);
}
}
int main(
int argc,
char *argv[]) {
if (argc==1) {
printf("This program checks the framerate of an output port\n");
printf("Call as:\n");
printf(" framerate --remote /port_name --local /local_name --prot protocol\n");
printf("protocol can be for example tcp,udp,mcast\n");
exit(0);
}
iPort=&port;
std::string
local =
"/get_image";
if (opt.
check(
"local",val)) {
}
if (opt.
check(
"remote", val))
{
if (opt.
check(
"prot", prot))
else
}
double prev = 0;
int ct = 0;
bool spoke = false;
ct++;
double period = (
now-prev)/ct;
printf("Period is %g ms per message, freq is %g (%d mgs in %g secs)\n",
period*1000, 1/period, ct,
now-prev);
fflush(stdout);
ct = 0;
spoke = false;
}
if (bot!=NULL) {
if (!spoke) {
printf(
"Got something with %d top-level elements\n", bot->
size());
fflush(stdout);
spoke = true;
}
}
}
iPort=0;
return 0;
}
static void handler(int sig)
A simple collection of objects that can be described and transmitted in a portable way.
size_type size() const
Gets the number of elements in the bottle.
A mini-server for performing network communication in the background.
bool open(const std::string &name) override
Start port operation, with a specific name, with automatically-chosen network parameters.
void interrupt() override
Interrupt any current reads or writes attached to the port.
T * read(bool shouldWait=true) override
Read an available object from the port.
Utilities for manipulating the YARP network, including initialization and shutdown.
A class for storing options and configuration information.
bool check(const std::string &key) const override
Check if there exists a property of the given name.
void fromCommand(int argc, char *argv[], bool skipFirst=true, bool wipe=true)
Interprets a list of command arguments as a list of properties.
A single value (typically within a Bottle).
virtual std::string asString() const
Get string value.
double now()
Return the current time in seconds, relative to an arbitrary starting point.
An interface to the operating system, including Port based communication.
The main, catch-all namespace for YARP.
int main(int argc, char *argv[])