예제 #1
0
파일: logger.cpp 프로젝트: dulton/llp2p
void logger::timerGet(struct timerStruct *timmer)
{
	if (getTickTime(&(timmer->tickTime)) == 0) {
		timmer->initTickFlag = NONINIT ;
		//debug_printf("initTickFlag timmer->initTickFlag =NONINIT\n");
		//PAUSE
	}
	else {
		timmer->initTickFlag=INITED;
	}
	timmer->clockTime = gettimeofday_ms();
	timmer->initClockFlag = INITED;
}
예제 #2
0
	void addImage(uint8_t* buf, uint32_t size, uint32_t timestamp)
	{

		uint64_t t = gettimeofday_ms();
		if(((t - mLastUpdate) * .001) > (float)(1.0/mFPS))
		{
			mLastUpdate = t;
		}
		else
		{
			return;
		}
		printf("Adding!\n");
		CameraImage ci;
		ci.type = 1;
		ci.camera_timestamp = timestamp;
		ci.raw.size = size;
		ci.raw.buffer = boost::shared_array<uint8_t>(new uint8_t[size]);
		memcpy((void*)ci.raw.buffer.get(), buf, size);
		p->addImage(ci);
	}
예제 #3
0
파일: logger.cpp 프로젝트: dulton/llp2p
void logger::timerGet(struct timerStruct *timmer)
{
	timmer->clockTime = gettimeofday_ms();
	timmer->initClockFlag = INITED;
}
예제 #4
0
int main(int argc, char **argv)
{
	unsigned long num_msgs, num_sends;
	unsigned long tnow, treport, tstop;
	int fd, i, val;

	parse_opts(argc, argv);

	if (cfg_cpu > 0)
		set_cpu(cfg_cpu);

	for (i = 0; i < sizeof(buf[0]); i++)
		buf[0][i] = 'a' + (i % 26);
	for (i = 1; i < NUM_PKT; i++)
		memcpy(buf[i], buf[0], sizeof(buf[0]));

	signal(SIGINT, sigint_handler);

	fd = socket(cfg_family, cfg_tcp ? SOCK_STREAM : SOCK_DGRAM, 0);
	if (fd == -1)
		error(1, errno, "socket");

	if (cfg_zerocopy) {
		val = 1;
		if (setsockopt(fd, SOL_SOCKET, SO_ZEROCOPY, &val, sizeof(val)))
			error(1, errno, "setsockopt zerocopy");
	}

	if (cfg_connected &&
	    connect(fd, (void *)&cfg_dst_addr, cfg_alen))
		error(1, errno, "connect");

	if (cfg_segment)
		set_pmtu_discover(fd, cfg_family == PF_INET);

	num_msgs = num_sends = 0;
	tnow = gettimeofday_ms();
	tstop = tnow + cfg_runtime_ms;
	treport = tnow + 1000;

	i = 0;
	do {
		if (cfg_tcp)
			num_sends += send_tcp(fd, buf[i]);
		else if (cfg_segment)
			num_sends += send_udp_segment(fd, buf[i]);
		else if (cfg_sendmmsg)
			num_sends += send_udp_sendmmsg(fd, buf[i]);
		else
			num_sends += send_udp(fd, buf[i]);
		num_msgs++;
		if (cfg_zerocopy && ((num_msgs & 0xF) == 0))
			flush_zerocopy(fd);

		if (cfg_msg_nr && num_msgs >= cfg_msg_nr)
			break;

		tnow = gettimeofday_ms();
		if (tnow > treport) {
			fprintf(stderr,
				"%s tx: %6lu MB/s %8lu calls/s %6lu msg/s\n",
				cfg_tcp ? "tcp" : "udp",
				(num_msgs * cfg_payload_len) >> 20,
				num_sends, num_msgs);
			num_msgs = num_sends = 0;
			treport = tnow + 1000;
		}

		/* cold cache when writing buffer */
		if (cfg_cache_trash)
			i = ++i < NUM_PKT ? i : 0;

	} while (!interrupted && (cfg_runtime_ms == -1 || tnow < tstop));
예제 #5
0
	Camera()
	{
		mLastUpdate = gettimeofday_ms();
		mFPS = 1000;
	}