public override void setf_command(double command) { if (command < 0 || command > 100) { throw new ArgumentException("Command must be between 0 and 100"); } uint cmd_seqno; lock (this) { cmd_seqno = ++_ros_cmd_seqno; } var cmd1 = new EndEffectorCommand(); cmd1.sequence = cmd_seqno; cmd1.id = _tool_id; cmd1.command = "go"; cmd1.args = "{\"position\": " + command + "}"; _gripper_command_pub.publish(cmd1); lock (this) { _command = command; } }
public override void home() { uint cmd_seqno; lock (this) { cmd_seqno = ++_ros_cmd_seqno; } var cmd1 = new EndEffectorCommand(); cmd1.sequence = cmd_seqno; cmd1.command = "clear_calibration"; cmd1.id = _tool_id; _gripper_command_pub.publish(cmd1); Thread.Sleep(1000); lock (this) { cmd_seqno = ++_ros_cmd_seqno; } var cmd2 = new EndEffectorCommand(); cmd2.sequence = cmd_seqno; cmd2.command = "calibrate"; cmd2.id = _tool_id; _gripper_command_pub.publish(cmd2); lock (this) { _command = 0; } }
public override void halt() { uint cmd_seqno; lock (this) { cmd_seqno = ++_ros_cmd_seqno; } var cmd1 = new EndEffectorCommand(); cmd1.sequence = cmd_seqno; cmd1.command = "halt"; cmd1.id = _tool_id; _gripper_command_pub.publish(cmd1); }