Пример #1
0
void cmd_vx_bcaps_get(xmlrpc_env *env, int argc, char **argv)
{
	xmlrpc_value *response, *result;
	char *name, *bcap;
	int len, i;

	if (argc < 1)
		usage(EXIT_FAILURE);

	name = argv[0];

	response = client_call("vxdb.vx.bcaps.get",
		"{s:s}",
		"name", name);
	return_if_fault(env);

	len = xmlrpc_array_size(env, response);
	return_if_fault(env);

	for (i = 0; i < len; i++) {
		xmlrpc_array_read_item(env, response, i, &result);
		return_if_fault(env);

		xmlrpc_decompose_value(env, result, "s", &bcap);
		return_if_fault(env);

		xmlrpc_DECREF(result);

		printf("%s\n", bcap);
	}

	xmlrpc_DECREF(response);
}
Пример #2
0
void cmd_list(xmlrpc_env *env, int argc, char **argv)
{
	xmlrpc_value *response, *result;
	char *username;
	int len, i;

	if (argc > 0)
		username = argv[0];
	else
		username = "";

	response = client_call("vxdb.list",
		"{s:s}",
		"username", username);
	return_if_fault(env);

	len = xmlrpc_array_size(env, response);
	return_if_fault(env);

	for (i = 0; i < len; i++) {
		xmlrpc_array_read_item(env, response, i, &result);
		return_if_fault(env);

		xmlrpc_decompose_value(env, result, "s", &username);
		return_if_fault(env);

		xmlrpc_DECREF(result);

		printf("%s\n", username);
	}

	xmlrpc_DECREF(response);
}
Пример #3
0
void cmd_vx_stop(xmlrpc_env *env, int argc, char **argv)
{
	char *group;

	if (argc < 1)
		usage(EXIT_FAILURE);

	group = argv[0];

	client_call("vg.vx.stop",
		"{s:s}",
		"group", group);
}
Пример #4
0
void cmd_vx_bcaps_add(xmlrpc_env *env, int argc, char **argv)
{
	char *name, *bcap;

	if (argc < 2)
		usage(EXIT_FAILURE);

	name = argv[0];
	bcap = argv[1];

	client_call("vxdb.vx.bcaps.add",
		"{s:s,s:s}",
		"name", name,
		"bcap", bcap);
}
Пример #5
0
void cmd_user_caps_add(xmlrpc_env *env, int argc, char **argv)
{
	char *username, *cap;

	if (argc < 2)
		usage(EXIT_FAILURE);

	username = argv[0];
	cap = argv[1];

	client_call("vcd.user.caps.add",
		"{s:s,s:s}",
		"username", username,
		"cap", cap);
}
Пример #6
0
void cmd_vx_bcaps_remove(xmlrpc_env *env, int argc, char **argv)
{
	char *name, *bcap;

	if (argc < 1)
		usage(EXIT_FAILURE);

	name = argv[0];

	if (argc > 1)
		bcap = argv[1];
	else
		bcap = "";

	client_call("vxdb.vx.bcaps.remove",
		"{s:s,s:s}",
		"name", name,
		"bcap", bcap);
}
Пример #7
0
void cmd_user_caps_remove(xmlrpc_env *env, int argc, char **argv)
{
	char *username, *cap;

	if (argc < 1)
		usage(EXIT_FAILURE);

	username = argv[0];

	if (argc > 1)
		cap = argv[1];
	else
		cap = "";

	client_call("vcd.user.caps.remove",
		"{s:s,s:s}",
		"username", username,
		"cap", cap);
}
Пример #8
0
void call_add(client_t *cli, int k) {
    struct_add sa;
    sa.a = k;
    sa.b = 0;
    client_call(cli, ADD, (uint8_t *)&sa, sizeof(struct_add));
}
bool send2(brio_assembly_vision_new::TrasformStampedRequest  &req, brio_assembly_vision_new::TrasformStampedResponse &res)
{
    request_a_new_cluster =true;
    if(find_cloud_from_kinect_head==true && final ==false)
    {
        brio_assembly_vision_new::Container * cont = new brio_assembly_vision_new::Container();
        while((cont=client_call())==NULL)
        {
            std::this_thread::sleep_for (std::chrono::seconds(1)); //wait for a good response
        }

        if(first_time==true)
        {
            initial_cluster_size=cont->date_container.size();
        }
        first_time=false;

        if(cont->date_container.size()>0) //after moving objects size is decreased
        {
            int i=0; //start with the lowest index
            std::string object_with_shape_requested = model[model_step];
            while(cont->date_container[i].piece_type!=object_with_shape_requested && i<cont->date_container.size()-1) //
            {
                i++;
            }
            //end while when cluster_vector[i] has the requested shape or when the search index is bigger then cluster_vector
            if(i<=cont->date_container.size()-1) // if i<=cluster_vector.size() then we did find requested object at indices i
            {
                Eigen::Vector3d z_axe,x_or_y_axe;
                Eigen::Vector4d translation;
                z_axe=estimate_plane_normals(cloud);
                int i_center = cont->date_container[i].center_index;
                int i_head = cont->date_container[i].head_conn_index;
                x_or_y_axe= obj_axe_2_points_next(i_head,i_center);
                pcl::PointXYZRGB center = cloud->at(cont->date_container[i].center_index);
                translation[0] = center.x;
                translation[1] = center.y;
                translation[2] = center.z;

                calculate_transformation(x_or_y_axe,z_axe ,translation);

                ROS_INFO("Send TransformedPose");
                Eigen::Quaternionf quat;
                quat = createQuaternion();
                res.msg.child_frame_id = "brio_piece_frame";
                res.msg.header.frame_id = "head_mount_kinect_rgb_optical_frame";
                res.msg.transform.translation.x = transformata_finala(0,3);
                res.msg.transform.translation.y = transformata_finala(1,3);
                res.msg.transform.translation.z = transformata_finala(2,3);

                res.msg.transform.rotation.w = (double)quat.w();
                res.msg.transform.rotation.x = (double)quat.x();
                res.msg.transform.rotation.y = (double)quat.y();
                res.msg.transform.rotation.z = (double)quat.z();

                if(model_step<initial_cluster_size-1)
                    model_step++;
                else
                {   final=true;
                    //return false;
                }

                return true;
            }