view projects/d-box/StatusLED.h @ 287:4815ed0f21de prerelease

Makefile refactoring: - avoids recursive call to build with/without main - takes EXAMPLE parameter. Copies the examples/$(EXAMPLE) folder to projects/$(PROJECT) and $PROJECT defaults to exampleTestProject - you can now `make run` (TODO: currently re-links, should instead run without linking)
author Giulio Moro <giuliomoro@yahoo.it>
date Wed, 18 May 2016 01:46:32 +0100
parents 8a575ba3ab52
children
line wrap: on
line source
/*
 * StatusLED.h
 *
 *
 */

#ifndef STATUSLED_H_
#define STATUSLED_H_

#include <pthread.h>

class StatusLED
{
public:
	StatusLED();
	~StatusLED();

	bool init(int gpio_pin);

	void on();
	void off();
	void blink(int ms_on, int ms_off);

	static void *static_blink_loop(void *data) {
		((StatusLED*)data)->blink_loop(NULL);
		return 0;
	}

	void* blink_loop(void *);

private:
	int gpio_number;
	int milliseconds_on, milliseconds_off;
	bool this_should_stop;
	pthread_t blink_thread;
};

#endif // STATUSLED_H_