/*
 * Copyright (c) 2017 FH Dortmund and others
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Description:
 *    CPU Utilization Logger Task for Rover / Raspberry Pi - header file
 *
 * Authors:
 *    M. Ozcelikors,            R.Hottger
 *    <mozcelikors@gmail.com>   <robert.hoettger@fh-dortmund.de>
 *
 */

#ifndef TASKS_CPU_LOGGER_TASK_H_
#define TASKS_CPU_LOGGER_TASK_H_

#include <stdio.h>
#include <stdlib.h>

// Uncomment below compiler directive to see the output
//#define DEBUG_CPU_LOGGER 1

void *Cpu_Logger_Task (void * arg);



#endif /* TASKS_CPU_LOGGER_TASK_H_ */
