#ifndef __PRESSURE_SENSOR_THREAD_H__
#define __PRESSURE_SENSOR_THREAD_H__

#include <stdint.h>
#include "threads.h"
#include "socket.h"
#include "control_thread.h"

class PressureSensorThread : public Thread {

public:

	PressureSensorThread(ControlThread& controller)
		: m_Controller(controller){}

	~PressureSensorThread(void) {
		delete m_PressureSensorSocket;
	}

	void Connect(string& ipAddress, uint16_t portNumber);

	// sampleRate range: 1..120 samples per second
	void Configure(uint32_t sampleRate);

protected:
	virtual void* Run(void* parameter);

private:
	void			collectPressure(void);
	void 		processResponse(const uint8_t *buffer);
	void 			command(const char * request);

	ControlThread&	m_Controller;
	tcp_socket*		m_PressureSensorSocket;
	uint16_t		m_PressureSensorPortNumber;
};

#endif // __PRESSURE_SENSOR_THREAD_H__
