Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <simple_message/smpl_msg_connection.h>
00019 #include <simple_message/simple_message.h>
00020 #include <simple_message/socket/tcp_client.h>
00021 #include <mtconnect_grasp_action/gripper_message.h>
00022 #include <iostream>
00023 #include <sstream>
00024 using namespace std;
00025 using namespace industrial::smpl_msg_connection;
00026 using namespace industrial::simple_message;
00027 using namespace mtconnect_cnc_robot_example::gripper_message;
00028
00029
00030 int main(int argc, char** argv)
00031 {
00032 std::string ip_address;
00033 int port_number;
00034 std::stringstream ss;
00035
00036 if(argc == 3)
00037 {
00038
00039
00040 ip_address = std::string(argv[1]);
00041 ss<<argv[2];
00042 if(!(ss >> port_number))
00043 {
00044 ROS_ERROR("Could not read port number, usage: grasp_utility <robot ip address> <port number>");
00045 }
00046 else
00047 {
00048 ROS_INFO("Grasp action connecting to IP address: %s and port: %i", ip_address.c_str(),port_number);
00049 industrial::tcp_client::TcpClient robot;
00050 robot.init(const_cast<char*>(ip_address.c_str()), port_number);
00051 if(!robot.makeConnect())
00052 {
00053 ROS_ERROR_STREAM("Failed to connect, exiting");
00054 return 0;
00055 }
00056
00057 cout << "Grasp client connected" << endl;;
00058
00059 int i = 0;
00060 while (true)
00061 {
00062 cout << "Grasp Utility" << endl
00063 << "1. INIT" << endl
00064 << "2. CLOSE" << endl
00065 << "3. OPEN" << endl;
00066 cin >> i;
00067
00068 GripperMessage gMsg;
00069 SimpleMessage request;
00070 SimpleMessage reply;
00071
00072 switch(i)
00073 {
00074 case 1:
00075 gMsg.init(GripperOperationTypes::INIT);
00076 gMsg.toRequest(request);
00077 robot.sendAndReceiveMsg(request, reply);
00078 cout << "Gripper initialized" << endl;
00079 break;
00080
00081 case 2:
00082 gMsg.init(GripperOperationTypes::CLOSE);
00083 gMsg.toRequest(request);
00084 cout << "Message length: " << request.getMsgLength() << endl;
00085 robot.sendAndReceiveMsg(request, reply);
00086 cout << "Gripper closed" << endl;
00087 break;
00088
00089 case 3:
00090 gMsg.init(GripperOperationTypes::OPEN);
00091 gMsg.toRequest(request);
00092 robot.sendAndReceiveMsg(request, reply);
00093 cout << "Gripper opened" << endl;
00094 break;
00095
00096 default:
00097 return 0;
00098 }
00099 }
00100 }
00101 }
00102 else
00103 {
00104 ROS_ERROR("Missing command line arguments, usage: grasp_utility <robot ip address>< port number>");
00105 }
00106
00107 return 0;
00108 }
00109
00110
00111
00112