aboutsummaryrefslogtreecommitdiff
path: root/src/modules/segway/BlockSegwayController.hpp
blob: 4a01f785c52c5338dd24518f038af8de26fd8e6b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

#include <controllib/uorb/blocks.hpp>

using namespace control;

class BlockSegwayController : public control::BlockUorbEnabledAutopilot {
public:
	BlockSegwayController() :
		BlockUorbEnabledAutopilot(NULL,"SEG"),
		th2v(this, "TH2V"),
		q2v(this, "Q2V"),
		_attPoll(),
		_timeStamp(0)
	{
		_attPoll.fd = _att.getHandle();
		_attPoll.events = POLLIN;
	}
	void update();
private:
	enum {CH_LEFT, CH_RIGHT};
	BlockPI th2v;
	BlockP q2v;
	struct pollfd _attPoll;
	uint64_t _timeStamp;
};