3333#include < gtest/gtest.h>
3434#include " ur_client_library/control/script_reader.h"
3535#include " ur_client_library/ur/version_information.h"
36+ #include " ur_client_library/control/reverse_interface.h"
37+ #include " ur_client_library/control/trajectory_point_interface.h"
3638
3739#include < fstream>
3840
@@ -446,4 +448,45 @@ TEST_F(ScriptReaderTest, Example)
446448 processed_script = reader.readScriptFile (existing_script_file, data);
447449 expected_script = " textmsg(\" torque control is a very cool feature!\" )" ;
448450 EXPECT_EQ (processed_script, expected_script);
449- }
451+ }
452+
453+ TEST_F (ScriptReaderTest, TestParsingExternalControl)
454+ {
455+ std::string existing_script_file = " ../resources/external_control.urscript" ;
456+
457+ ScriptReader reader;
458+ ScriptReader::DataDict data;
459+ data[" BEGIN_REPLACE" ] = " " ;
460+ data[" JOINT_STATE_REPLACE" ] = std::to_string (urcl::control::ReverseInterface::MULT_JOINTSTATE);
461+ data[" TIME_REPLACE" ] = std::to_string (urcl::control::TrajectoryPointInterface::MULT_TIME);
462+ data[" SERVO_J_REPLACE" ] = " lookahead_time=0.03, gain=2000" ;
463+ data[" SERVER_IP_REPLACE" ] = " 1.2.3.4" ;
464+ data[" SERVER_PORT_REPLACE" ] = " 50001" ;
465+ data[" TRAJECTORY_SERVER_PORT_REPLACE" ] = " 50003" ;
466+ data[" SCRIPT_COMMAND_SERVER_PORT_REPLACE" ] = " 50004" ;
467+
468+ data[" ROBOT_SOFTWARE_VERSION" ] = urcl::VersionInformation::fromString (" 3.12.1" );
469+ std::string processed_script = reader.readScriptFile (existing_script_file, data);
470+ std::string expected_pattern = " enable_external_ft_sensor(enabled, sensor_mass, sensor_offset, sensor_cog)" ;
471+ EXPECT_NE (processed_script.find (expected_pattern), std::string::npos);
472+
473+ data[" ROBOT_SOFTWARE_VERSION" ] = urcl::VersionInformation::fromString (" 5.8.0" );
474+ processed_script = reader.readScriptFile (existing_script_file, data);
475+ expected_pattern = " enable_external_ft_sensor(enabled, sensor_mass, sensor_offset, sensor_cog)" ;
476+ EXPECT_NE (processed_script.find (expected_pattern), std::string::npos);
477+
478+ data[" ROBOT_SOFTWARE_VERSION" ] = urcl::VersionInformation::fromString (" 3.14.1" );
479+ processed_script = reader.readScriptFile (existing_script_file, data);
480+ expected_pattern = " ft_rtde_input_enable(enabled, sensor_mass, sensor_offset, sensor_cog)" ;
481+ EXPECT_NE (processed_script.find (expected_pattern), std::string::npos);
482+
483+ data[" ROBOT_SOFTWARE_VERSION" ] = urcl::VersionInformation::fromString (" 5.9.1" );
484+ processed_script = reader.readScriptFile (existing_script_file, data);
485+ expected_pattern = " ft_rtde_input_enable(enabled, sensor_mass, sensor_offset, sensor_cog)" ;
486+ EXPECT_NE (processed_script.find (expected_pattern), std::string::npos);
487+
488+ data[" ROBOT_SOFTWARE_VERSION" ] = urcl::VersionInformation::fromString (" 10.7.0" );
489+ processed_script = reader.readScriptFile (existing_script_file, data);
490+ expected_pattern = " ft_rtde_input_enable(enabled, sensor_mass, sensor_offset, sensor_cog)" ;
491+ EXPECT_NE (processed_script.find (expected_pattern), std::string::npos);
492+ }
0 commit comments