TEST

Dependencies:   max32630fthr Adafruit_FeatherOLED USBDevice

Utilities/EventStats.h

Committer:
gmehmet
Date:
2019-04-10
Revision:
1:f60eafbf009a

File content as of revision 1:f60eafbf009a:

/*******************************************************************************
 * Author: Shaun Kelsey, shaun.kelsey@maximintegrated.com

 * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 *
 * Except as contained in this notice, the name of Maxim Integrated
 * Products, Inc. shall not be used except as stated in the Maxim Integrated
 * Products, Inc. Branding Policy.
 *
 * The mere transfer of this software does not imply any licenses
 * of trade secrets, proprietary technology, copyrights, patents,
 * trademarks, maskwork rights, or any other form of intellectual
 * property whatsoever. Maxim Integrated Products, Inc. retains all
 * ownership rights.
 *
 ******************************************************************************/
#ifdef ENABLE_EVENTSTATS
#ifndef _PLATFORM_EVENT_H
#define _PLATFORM_EVENT_H


#include "mbed.h"

class EventStats
{
	public:
		EventStats();
		EventStats(int report_period, const char* name);

		//Start an event
		void start();

		//Stop an event. If report_period time has passed, prints stats
		void stop();

		//Print out stats. Set report_period to < 0 if you want to call this manually
		void print_events(bool reset);

	private:

		const char* name;
		int report_period;
		int num_evts;
		int total_evt_time;

		bool evt_in_prog;
		Timer single_evt;
		Timer all_evts;
};


#endif
#endif //ENABLE_EVENTSTATS