@@ -13,6 +13,9 @@ TEST(App_RobotStateJointTest, ConstructorDefault)
1313 EXPECT_DOUBLE_EQ (0 , joint.targetPosition );
1414 EXPECT_EQ (App::DataTypes::RobotState::HardwareState::OKAY , joint.hardwareState );
1515 EXPECT_EQ (App::DataTypes::RobotState::ReferencingState::NOT_REFERENCED , joint.referencingState );
16+ EXPECT_EQ (0 , joint.hardwareStateCode );
17+ EXPECT_FALSE (joint.isEnabled );
18+ EXPECT_FALSE (joint.isError );
1619 EXPECT_FLOAT_EQ (0 , joint.temperatureBoard );
1720 EXPECT_FLOAT_EQ (0 , joint.temperatureMotor );
1821 EXPECT_FLOAT_EQ (0 , joint.current );
@@ -28,6 +31,9 @@ TEST(App_RobotStateJointTest, ConstructorGRPC)
2831 jointGrpc.mutable_position ()->set_position (123.4 );
2932 jointGrpc.mutable_position ()->set_target_position (234.5 );
3033 jointGrpc.set_state (robotcontrolapp::HardwareState::ERROR_ESTOP_LOW_VOLTAGE );
34+ jointGrpc.set_state_code (1234 );
35+ jointGrpc.set_is_enabled (true );
36+ jointGrpc.set_is_error (false );
3137 jointGrpc.set_referencing_state (robotcontrolapp::ReferencingState::IS_REFERENCING );
3238 jointGrpc.set_temperature_board (45 .6f );
3339 jointGrpc.set_temperature_motor (56 .7f );
@@ -41,6 +47,9 @@ TEST(App_RobotStateJointTest, ConstructorGRPC)
4147 EXPECT_DOUBLE_EQ (123.4 , joint.actualPosition );
4248 EXPECT_DOUBLE_EQ (234.5 , joint.targetPosition );
4349 EXPECT_EQ (App::DataTypes::RobotState::HardwareState::ERROR_ESTOP_LOW_VOLTAGE , joint.hardwareState );
50+ EXPECT_EQ (1234 , joint.hardwareStateCode );
51+ EXPECT_TRUE (joint.isEnabled );
52+ EXPECT_FALSE (joint.isError );
4453 EXPECT_EQ (App::DataTypes::RobotState::ReferencingState::IS_REFERENCING , joint.referencingState );
4554 EXPECT_FLOAT_EQ (45 .6f , joint.temperatureBoard );
4655 EXPECT_FLOAT_EQ (56 .7f , joint.temperatureMotor );
@@ -54,13 +63,17 @@ TEST(App_RobotStateJointTest, ConstructorGRPC)
5463 (robotcontrolapp::HardwareState)(robotcontrolapp::HardwareState::ERROR_MOTOR_NOT_ENABLED | robotcontrolapp::HardwareState::ERROR_DRIVER );
5564 jointGrpc.set_state (state);
5665 jointGrpc.set_referencing_state (robotcontrolapp::ReferencingState::NOT_REFERENCED );
66+ jointGrpc.set_is_enabled (false );
67+ jointGrpc.set_is_error (true );
5768
5869 App::DataTypes::RobotState::Joint joint (jointGrpc);
5970
6071 App::DataTypes::RobotState::HardwareState expectState =
6172 (App::DataTypes::RobotState::HardwareState)((int )App::DataTypes::RobotState::HardwareState::ERROR_MOTOR_NOT_ENABLED |
6273 (int )App::DataTypes::RobotState::HardwareState::ERROR_DRIVER );
6374 EXPECT_EQ (expectState, joint.hardwareState );
75+ EXPECT_FALSE (joint.isEnabled );
76+ EXPECT_TRUE (joint.isError );
6477 EXPECT_EQ (App::DataTypes::RobotState::ReferencingState::NOT_REFERENCED , joint.referencingState );
6578 }
6679
@@ -116,6 +129,11 @@ TEST(App_RobotStateTest, ConstructorDefault)
116129 }
117130
118131 EXPECT_TRUE (robotState.hardwareState .empty ());
132+ EXPECT_EQ (App::DataTypes::RobotState::HardwareState::OKAY , robotState.hardwareStateEnum );
133+ EXPECT_EQ (0 , robotState.hardwareStateCode );
134+ EXPECT_FALSE (robotState.isEnabled );
135+ EXPECT_FALSE (robotState.isError );
136+
119137 EXPECT_EQ (robotcontrolapp::KinematicState::KINEMATIC_NORMAL , robotState.kinematicState );
120138 EXPECT_FLOAT_EQ (0 , robotState.velocityOverride );
121139 EXPECT_FLOAT_EQ (0 , robotState.cartesianVelocity );
@@ -159,6 +177,11 @@ TEST(App_RobotStateTest, ConstructorGRPC)
159177 }
160178
161179 robotStateGrpc.set_hardware_state_string (" MNE_ENC" );
180+ robotStateGrpc.set_hardware_state (robotcontrolapp::HardwareState::ERROR_ESTOP_LOW_VOLTAGE );
181+ robotStateGrpc.set_hardware_state_code (2345 );
182+ robotStateGrpc.set_is_enabled (true );
183+ robotStateGrpc.set_is_error (false );
184+
162185 robotStateGrpc.set_kinematic_state (robotcontrolapp::KinematicState::KINEMATIC_ERROR_BRAKE_ACTIVE );
163186 robotStateGrpc.set_velocity_override (0 .8f );
164187 robotStateGrpc.set_cartesian_velocity (45 .6f );
@@ -206,6 +229,11 @@ TEST(App_RobotStateTest, ConstructorGRPC)
206229 }
207230
208231 EXPECT_STREQ (" MNE_ENC" , robotState.hardwareState .c_str ());
232+ EXPECT_EQ (App::DataTypes::RobotState::HardwareState::ERROR_ESTOP_LOW_VOLTAGE , robotState.hardwareStateEnum );
233+ EXPECT_EQ (2345 , robotState.hardwareStateCode );
234+ EXPECT_TRUE (robotState.isEnabled );
235+ EXPECT_FALSE (robotState.isError );
236+
209237 EXPECT_EQ (robotcontrolapp::KinematicState::KINEMATIC_ERROR_BRAKE_ACTIVE , robotState.kinematicState );
210238 EXPECT_FLOAT_EQ (0 .8f , robotState.velocityOverride );
211239 EXPECT_FLOAT_EQ (45 .6f , robotState.cartesianVelocity );
@@ -320,7 +348,47 @@ TEST(App_RobotStateTest, ConstructorGRPC)
320348 {
321349 EXPECT_EQ (i % 2 == 0 , robotState.globalSignals [i]);
322350 }
351+ }
352+
353+ // isEnabled and isError swapped
354+ {
355+ robotcontrolapp::RobotState robotStateGrpc;
356+ robotStateGrpc.set_is_enabled (false );
357+ robotStateGrpc.set_is_error (true );
358+
359+ App::DataTypes::Matrix44 tcp;
360+ tcp.SetOrientation (10 , 20 , 30 );
361+ tcp.Translate (100 , 200 , 300 );
362+ *robotStateGrpc.mutable_tcp () = tcp.ToGrpc ();
323363
324- EXPECT_EQ (App::DataTypes::RobotState::ReferencingState::IS_REFERENCED , robotState.referencingState );
364+ // Test
365+ App::DataTypes::RobotState robotState (robotStateGrpc);
366+
367+ EXPECT_FALSE (robotState.isEnabled );
368+ EXPECT_TRUE (robotState.isError );
325369 }
326370}
371+
372+ TEST (App_RobotStateTest, IsEnabled)
373+ {
374+ App::DataTypes::RobotState rs;
375+ EXPECT_FALSE (rs.IsEnabled ());
376+
377+ rs.hardwareState = " NoError" ;
378+ rs.hardwareStateEnum = App::DataTypes::RobotState::HardwareState::OKAY ;
379+ rs.hardwareStateCode = 0x0 ;
380+ rs.isEnabled = false ;
381+ rs.isError = false ;
382+ EXPECT_FALSE (rs.IsEnabled ());
383+
384+ rs.isEnabled = true ;
385+ EXPECT_TRUE (rs.IsEnabled ());
386+
387+ rs.hardwareState = " MNE_COM" ;
388+ rs.hardwareStateEnum = App::DataTypes::RobotState::HardwareState::ERROR_ENCODER ;
389+ rs.hardwareStateCode = 0xFF ;
390+ EXPECT_TRUE (rs.IsEnabled ());
391+
392+ rs.isError = true ;
393+ EXPECT_TRUE (rs.IsEnabled ());
394+ }
0 commit comments