@@ -136,6 +136,16 @@ class ReverseIntefaceTest : public ::testing::Test
136
136
return pos[1 ];
137
137
}
138
138
139
+ int32_t getFreedriveControlMode ()
140
+ {
141
+ // received_pos[0]=control::FreedriveControlMessage, when writing a trajectory control message
142
+ int32_t keep_alive_signal;
143
+ int32_t control_mode;
144
+ vector6int32_t pos;
145
+ readMessage (keep_alive_signal, pos, control_mode);
146
+ return pos[0 ];
147
+ }
148
+
139
149
protected:
140
150
virtual bool open (int socket_fd, struct sockaddr * address, size_t address_len)
141
151
{
@@ -360,6 +370,30 @@ TEST_F(ReverseIntefaceTest, write_control_mode)
360
370
EXPECT_EQ (toUnderlying (expected_control_mode), received_control_mode);
361
371
}
362
372
373
+ TEST_F (ReverseIntefaceTest, write_freedrive_control_message)
374
+ {
375
+ // Wait for the client to connect to the server
376
+ EXPECT_TRUE (waitForProgramState (1000 , true ));
377
+
378
+ control::FreedriveControlMessage written_freedrive_message = control::FreedriveControlMessage::FREEDRIVE_STOP;
379
+ reverse_interface_->writeFreedriveControlMessage (written_freedrive_message);
380
+ int32_t received_freedrive_message = client_->getFreedriveControlMode ();
381
+
382
+ EXPECT_EQ (toUnderlying (written_freedrive_message), received_freedrive_message);
383
+
384
+ written_freedrive_message = control::FreedriveControlMessage::FREEDRIVE_NOOP;
385
+ reverse_interface_->writeFreedriveControlMessage (written_freedrive_message);
386
+ received_freedrive_message = client_->getFreedriveControlMode ();
387
+
388
+ EXPECT_EQ (toUnderlying (written_freedrive_message), received_freedrive_message);
389
+
390
+ written_freedrive_message = control::FreedriveControlMessage::FREEDRIVE_START;
391
+ reverse_interface_->writeFreedriveControlMessage (written_freedrive_message);
392
+ received_freedrive_message = client_->getFreedriveControlMode ();
393
+
394
+ EXPECT_EQ (toUnderlying (written_freedrive_message), received_freedrive_message);
395
+ }
396
+
363
397
int main (int argc, char * argv[])
364
398
{
365
399
::testing::InitGoogleTest (&argc, argv);
0 commit comments