1 #include <gtest/gtest.h> 36 unsigned int count = 0;
41 struct timeval timeout = { 10, 0 };
42 int ret = select(
master_fd+1, &fds, NULL, NULL, &timeout);
45 ASSERT_NE(-1, ioctl(
master_fd, TIOCINQ, &count));
51 unsigned int count_out = 8;
52 while (count_out > 0) {
53 ASSERT_NE(-1, ioctl(
master_fd, TIOCOUTQ, &count_out));
55 EXPECT_EQ(0, count_out);
76 ASSERT_NE(-1, ioctl(
master_fd, FIONREAD, &aval));
77 ASSERT_EQ(out.size(), aval);
78 ASSERT_EQ(out.size(), read(
master_fd, out.c_array(), out.size()));
97 ASSERT_NE(-1, ioctl(
master_fd, FIONREAD, &aval));
98 ASSERT_EQ(out.size(), aval);
99 ASSERT_EQ(out.size(), read(
master_fd, out.c_array(), out.size()));
104 int16_t left = (mm.
getData() >> 16) & 0xffff;
105 int16_t right = mm.
getData() & 0xffff;
117 mm.
setData((50 << 16) | (-50 & 0x0000ffff));
120 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
133 mm.
setData((0 << 16) | (0 & 0x0000ffff));
135 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
144 mm.
setData((50 << 16) | (-50 & 0x0000ffff));
146 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
155 mm.
setData((-50 << 16) | (50 & 0x0000ffff));
157 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
170 mm.
setData((std::numeric_limits<int16_t>::max() << 16) |
171 (std::numeric_limits<int16_t>::min() & 0x0000ffff));
174 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
187 mm.
setData((0 << 16) | (0 & 0x0000ffff));
189 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
198 mm.
setData((std::numeric_limits<int16_t>::max() << 16) |
199 (std::numeric_limits<int16_t>::min() & 0x0000ffff));
201 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
210 mm.
setData((std::numeric_limits<int16_t>::min() << 16) |
211 (std::numeric_limits<int16_t>::max() & 0x0000ffff));
213 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
224 robot->requestVersion();
231 ASSERT_NE(-1, ioctl(
master_fd, FIONREAD, &aval));
232 ASSERT_EQ(out.size(), aval);
233 ASSERT_EQ(out.size(), read(
master_fd, out.c_array(), out.size()));
248 ASSERT_EQ(out.size(), write(
master_fd, out.c_array(), out.size()));
261 ASSERT_NE(-1, ioctl(
master_fd, FIONREAD, &aval));
262 ASSERT_EQ(out.size(), aval);
263 ASSERT_EQ(out.size(), read(
master_fd, out.c_array(), out.size()));
284 for (
int i; i < 5; ++i) {
288 ASSERT_NE(-1, ioctl(
master_fd, FIONREAD, &aval));
289 ASSERT_EQ(out.size(), aval);
290 ASSERT_EQ(out.size(), read(
master_fd, out.c_array(), out.size()));
297 ASSERT_EQ(10, data.data);
302 ASSERT_EQ(-10, data.data);
350 int main(
int argc,
char **argv) {
351 testing::InitGoogleTest(&argc, argv);
353 return RUN_ALL_TESTS();
void setData(int32_t data)
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
boost::array< uint8_t, 8 > RawMotorMessage
void callbackS(const std_msgs::Int32 &data)
int32_t pid_moving_buffer_size
struct MotorHardware::Joint joints_[2]
void setDeadmanTimer(int32_t deadman)
void setParams(FirmwareParams firmware_params)
MotorMessage::ErrorCodes deserialize(const RawMotorMessage &serialized)
void setRegister(MotorMessage::Registers reg)
int main(int argc, char **argv)
TEST_F(MotorHardwareTests, writeSpeedsOutputs)
RawMotorMessage serialize() const
void setType(MotorMessage::MessageTypes type)
void callbackU(const std_msgs::UInt32 &data)
TFSIMD_FORCE_INLINE tfScalar length(const Quaternion &q)
MotorMessage::Registers getRegister() const