#ifndef __ELMO_H_INCLUDED__
#define __ELMO_H_INCLUDED__

#include <stdint.h>
#include <string>
#include <iostream>
#include "socket.h"
#include "mutex.h"

using namespace std;

class Elmo
{
public:
	Elmo(bool isWinch) : m_IsWinch(isWinch) {}
	~Elmo();
	void 	Connect(string& ipAddress, uint16_t portNumber);
	void 	Command(string& request, string& response);
	void 	Disconnect(void);
	void	Start(void);
	void	Stop(void);
	void	JogVelocity(uint32_t countsPerSecond);
	void 	LostCommunication(void);

private:
	Mutex				m_ExclusiveAccess;
	tcp_client_socket*	m_Socket;
	bool				m_IsWinch;
};


#endif // __ELMO_H_INCLUDED__
