int main( int argc, char **argv ) { // connection SodaClient sc( QHostAddress::Any, 8890 ); if ( not sc.connected() ) return 1; qDebug() << "argv : " << argv; //id du model à traiter quint64 model_id = atoi(argv[1]); //qDebug() << "model_id : " << model_id; // type d'item observé sc.reg_type( "UnvReaderItem2D" ); sc.reg_type( "UnvReaderItem3D" ); sc.reg_type( "Scult2DItem" ); sc.reg_type( "Scult3DItem" ); sc.reg_type( "Scills3DItem" ); sc.reg_type( "CorrelationItem" ); sc.reg_type( "MesherItem" ); sc.reg_type( "GmshItem" ); sc.reg_type( "File" ); sc.reg_type( "Img" ); sc.reg_type( "ServerAssistedVisualization" ); sc.reg_type( "AcquisitionItem" ); //chargement du model MP mp = sc.load_ptr(model_id); // lancement de la bonne commade std::stringstream str_model_id; str_model_id << model_id; std::string temp_str = str_model_id.str(); std::string commande; if(mp.type() == "CorrelationItem" or mp.type() == "MesherItem" or mp.type() == "File" or mp.type() == "Img" or mp.type() == "ServerAssistedVisualization" ){ commande = "../../CorreliPlugin/Analytics/src/compilations/src_main_cpp.exe " + temp_str ; std::system(commande.c_str()); } else if(mp.type() == "GmshItem" ){ commande = "../../GmshPlugin/Analytics/src/compilations/src_main_cpp.exe " + temp_str ; std::system(commande.c_str()); } sleep(1); mp[ "_computation_mode" ] = false; mp[ "_computation_state" ] = false; mp[ "_processing_state" ] = false; mp.flush(); SodaClient::Event event = sc.event(); }
void Launcher::launch(SodaClient::Event event){ if(event.event_num == 1){ //evennement issu du timer MP input = mp_list[0]; MP child_24 = input["children[2]"]["children[0].children"]; MP node_22 = input["children[0]"]["children[1]"]; QString name_0 = input["name"]; if(name_0 == "+"){ child_24 << node_22; name_0 = "Noeud 0"; input["name"] = name_0; } else if(name_0 == "-"){ child_24.clear(); name_0 = "Noeud 0"; input["name"] = name_0; input["children[2]"]["children[0].children"] = child_24; } qDebug() << child_24; // MP nom = input["children[0]"]["children[1]"]["children[0].children"]; // QString _nom = nom; // _nom = "testotest"; // nom = _nom; input.flush(); } if(event.event_num != 1){ //evennement issu d'une modification de l'objet sur le serveur MP input = mp_list[0]; } };
bool ScillsResultUpdater::run( MP mp ) { // add_message( mp, ET_Info, "Test info msg" ); int nb_parts_ = mp[ "nb_parts" ]; qDebug() << nb_parts_; double id_model = mp[ "id_model" ]; if ( id_model == -1 ) { add_message( mp, ET_Error, "Model is not available" ); //return false; } double id_calcul = mp[ "id_calcul" ]; if ( id_calcul <= -2 ) { add_message( mp, ET_Error, "Data are not available" ); } else if( id_calcul == -1 and nb_parts_ == 0) { add_message( mp, ET_Info, "You choose to visualize the base mesh" ); // using namespace Metil; // using namespace LMT; // version 1------------------------------------------------------------------ Sc2String str_id_model; str_id_model << id_model; Sc2String str_id_calcul; str_id_calcul << id_calcul; GeometryUser geometry_user; /// structure de stockage des informations du fichier HDF5 geometry_user.initialisation(str_id_model, str_id_calcul); geometry_user.read_hdf5(false,true,"test"); /// true si on lit les info micro, true si on lit toutes les infos MP opc = mp[ "_children[ 0 ]" ]; // output Part collection MP oic = mp[ "_children[ 1 ]" ]; // output Interface collection MP oec = mp[ "_children[ 2 ]" ]; // output Edge collection //qDebug() << oec[ "_edge_profile" ]; int nb_parts = 0; int nb_interfaces = 0; int nb_edges = 0; int dimention; if(geometry_user.group_elements[0].pattern_id == 0 or geometry_user.group_elements[0].pattern_id == 1) { dimention = 2; } else { dimention = 3; } for (int i_group=0; i_group<geometry_user.group_elements.size(); i_group++) { MP part_profile = oic[ "_part_profile" ]; MP part = MP::new_obj( "ScillsPartItem" ); new_scills_obg(part, part_profile, geometry_user.group_elements[i_group].id, "Part"); //création du sous maillage de part ------ part[ "_mesh" ] = MP::new_obj( "Mesh" ); MP om = part[ "_mesh" ]; new_mesh(om); part[ "visualization" ] = om[ "visualization" ]; part[ "id" ] = geometry_user.group_elements[i_group].id; if(dimention == 2) { //liste des points du maillage------------ new_list_points_mesh_2D(om, geometry_user.group_elements[i_group]); //liste des éléments du maillage---------- new_list_elements_mesh_2D(om, geometry_user.group_elements[i_group]); } else if(dimention == 3) { new_mesh_part_3D(om, geometry_user, i_group); } nb_parts += 1; opc[ "_children" ] << part; } for (int i_group=0; i_group<geometry_user.group_interfaces.size(); i_group++) { if(geometry_user.group_interfaces[i_group].type == 2) { //création de l'interface------------------------- MP interface_profile = oic[ "_interface_profile" ]; MP interface = MP::new_obj( "ScillsInterfaceItem" ); new_scills_obg(interface, interface_profile, geometry_user.group_interfaces[i_group].id, "Interface"); //création du sous maillage de interface ------ interface[ "_mesh" ] = MP::new_obj( "Mesh" ); MP om = interface[ "_mesh" ]; new_mesh(om); interface[ "visualization" ] = om[ "visualization" ]; interface[ "id" ] = geometry_user.group_interfaces[i_group].id; if(dimention == 2) { //liste des points du maillage------------ new_list_points_mesh_2D(om, geometry_user.group_interfaces[i_group]); //liste des éléments du maillage---------- new_list_elements_mesh_2D(om, geometry_user.group_interfaces[i_group]); } else if(dimention == 3) { //liste des points du maillage------------ new_list_points_mesh_3D(om, geometry_user.group_interfaces[i_group]); //liste des éléments du maillage---------- new_list_elements_mesh_3D(om, geometry_user.group_interfaces[i_group]); } //ajout de l'interface à l'assemblage------------ nb_interfaces += 1; oic[ "_children" ] << interface; } else if(geometry_user.group_interfaces[i_group].type == 0) { //création du edge------------------------- MP edge_profile = oec[ "_edge_profile" ]; MP edge = MP::new_obj( "ScillsEdgeItem" ); new_scills_obg(edge, edge_profile, geometry_user.group_interfaces[i_group].id, "Edge"); //création du sous maillage de edge ------ edge[ "_mesh" ] = MP::new_obj( "Mesh" ); MP om = edge[ "_mesh" ]; new_mesh(om); edge[ "visualization" ] = om[ "visualization" ]; edge[ "id" ] = geometry_user.group_interfaces[i_group].id; if(dimention == 2) { //liste des points du maillage------------ new_list_points_mesh_2D(om, geometry_user.group_interfaces[i_group]); //liste des éléments du maillage---------- new_list_elements_mesh_2D(om, geometry_user.group_interfaces[i_group]); } else if(dimention == 3) { //liste des points du maillage------------ new_list_points_mesh_3D(om, geometry_user.group_interfaces[i_group]); //liste des éléments du maillage---------- new_list_elements_mesh_3D(om, geometry_user.group_interfaces[i_group]); } //ajout du edge à l'assemblage------------ nb_edges += 1; oec[ "_children" ] << edge; } } mp[ "nb_parts" ] = nb_parts; mp[ "nb_interfaces" ] = nb_interfaces; mp[ "nb_edges" ] = nb_edges; mp.flush(); } else { add_message( mp, ET_Info, "You choose to visualize a result" ); } add_message( mp, ET_Info, "ScillsResult just finish" ); }