#include #include #include #include #include "BH_handler.h" #include #include #include #include #include #include #include "BH_task_dateset.h" /** * @headerfile user's header files */ #include "BH_handler.h" #include "handler_common.h" int checkvalue(char* str) { int i; for (i = 0;i < strlen(str);i++) { if (isdigit(str[i]) == 0) return 0; } return 1; } char* decrypt(char* lic_file) { char* p = NULL, buf[512], * str; int i = 0; FILE* fp1 = NULL; if ((fp1 = fopen(lic_file, "r")) == NULL) { printf("can not open the license file\n"); return ""; } fgets(buf, 9, fp1); //printf("buf=%s\n",buf); p = buf; while (*p != '\0') *p++ ^= i++; p = buf; while (*p != '\0') *p++ ^= i++; p = buf; while (*p != '\0') *p++ ^= i++; return buf; } char* encrypt(char* str) { char* p = str; int i = 0; while (*p != '\0') *p++ ^= i++; return str; } extern DLLAPI int USERSERVICE_custom_register_handlers(int* decision, va_list args) { int ifail = ITK_ok, n = 0; char date_buf[80], * expire_date, env[512], temp1[512], temp2[512]; time_t now; struct tm* p; *decision = ALL_CUSTOMIZATIONS; //DWG签名 ifail = EPM_register_action_handler("BH_Mapping_Att", "BH_Mapping_Att", (EPM_action_handler_t)BH_Mapping_Att); if (ifail == ITK_ok) { fprintf(stdout, "Registering action handler BH_Mapping_Att completed!\n"); } else { fprintf(stdout, "Registering action handler BH_Mapping_Att failed %d!\n", ifail); } //数据移植 (ifail = EPM_register_action_handler("Connor_Data_Transplant", "Connor_Data_Transplant", (EPM_action_handler_t)Connor_Data_Transplant)); if (ifail == 0) { printf("Registering action handler Connor_Data_Transplant successful\n"); } else { printf("Registering action handler Connor_Data_Transplant failed %d\n", ifail); } //物料&BOM数据自动下发 (ifail = EPM_register_action_handler("BH_Part_Capp", "物料&BOM数据自动下发", (EPM_action_handler_t)BH_Part_Capp)); if (ifail == 0){ printf("Registering action handler BH_Part_Capp successful\n"); }else{ printf("Registering action handler BH_Part_Capp failed %d\n", ifail); } //图纸&BOM数据自动下发 (ifail = EPM_register_action_handler("BH_Design_Capp", "图纸&BOM数据自动下发", (EPM_action_handler_t)BH_Design_Capp)); if (ifail == 0){ printf("Registering action handler BH_Design_Capp successful\n"); }else{ printf("Registering action handler BH_Design_Capp failed %d\n", ifail); } //变更数据自动下发 (ifail = EPM_register_action_handler("BH_Change_Capp", "变更数据自动下发", (EPM_action_handler_t)BH_Change_Capp)); if (ifail == 0) { printf("Registering action handler BH_Change_Capp successful\n"); } else { printf("Registering action handler BH_Change_Capp failed %d\n", ifail); } return ifail; } //定义JAVA调用的服务 //register service method extern DLLAPI int USERSERVICE_custom_register_methods(int* decision, va_list args) { int status = ITK_ok, numberOfArguments = 0, returnValueType = USERARG_STRING_TYPE, * argumentList = NULL; USER_function_t functionPtr; //QTM_ebom_to_pbom //规定java需要传递过来的个数 numberOfArguments = 1; //需要调用的函数地址函数地址 functionPtr = Connor_set_bypass; //定义java需要传递的参数 argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int)); argumentList[0] = USERARG_STRING_TYPE; //argumentList[1] = USERARG_DATE_TYPE; //argumentList[2] = USERARG_STRING_TYPE +USERARG_ARRAY_TYPE; //argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE; //returnValueType = USERARG_STRING_TYPE; //定义返回值的类型 returnValueType = USERARG_VOID_TYPE; ITKCALL(status = USERSERVICE_register_method("Connor_set_bypass", functionPtr, numberOfArguments, argumentList, returnValueType)); MEM_free(argumentList); if (status == ITK_ok) { fprintf(stdout, "\n Registering Connor_set_bypass finished\n"); } else { fprintf(stdout, "\n Registering Connor_set_bypass failed %d\n", status); } ////=========================================== numberOfArguments = 1; //需要调用的函数地址函数地址 functionPtr = Connor_close_bypass; //定义java需要传递的参数 argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int)); argumentList[0] = USERARG_STRING_TYPE; //argumentList[1] = USERARG_DATE_TYPE; //argumentList[2] = USERARG_STRING_TYPE +USERARG_ARRAY_TYPE; //argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE; //returnValueType = USERARG_STRING_TYPE; //定义返回值的类型 returnValueType = USERARG_VOID_TYPE; ITKCALL(status = USERSERVICE_register_method("Connor_close_bypass", functionPtr, numberOfArguments, argumentList, returnValueType)); MEM_free(argumentList); if (status == ITK_ok) { fprintf(stdout, "\n Registering Connor_close_bypass finished\n"); } else { fprintf(stdout, "\n Registering Connor_close_bypass failed %d\n", status); } //numberOfArguments = 1; ////需要调用的函数地址函数地址 //functionPtr = remove_class; ////定义java需要传递的参数 //argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) ); //argumentList[0] = USERARG_STRING_TYPE; // //returnValueType = USERARG_VOID_TYPE; //ITKCALL(status = USERSERVICE_register_method("IcoRemove", functionPtr, numberOfArguments, // argumentList, returnValueType )); //MEM_free(argumentList); //if(status == ITK_ok) //{ // fprintf( stdout, "\n Registering ORIGIN_set_bypass finished\n" ); //} //else //{ // fprintf( stdout, "\n Registering ORIGIN_set_bypass failed %d\n" , status ); //} ////=========================================== //numberOfArguments = 1; ////需要调用的函数地址函数地址 //functionPtr = ORIGIN_set_bypass; ////定义java需要传递的参数 //argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) ); //argumentList[0] = USERARG_STRING_TYPE; ////argumentList[1] = USERARG_DATE_TYPE; ////argumentList[2] = USERARG_STRING_TYPE +USERARG_ARRAY_TYPE; ////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE; ////returnValueType = USERARG_STRING_TYPE; ////定义返回值的类型 //returnValueType = USERARG_VOID_TYPE; //ITKCALL(status = USERSERVICE_register_method("ORIGIN_set_bypass", functionPtr, numberOfArguments, // argumentList, returnValueType )); //MEM_free(argumentList); //if(status == ITK_ok) //{ // fprintf( stdout, "\n Registering ORIGIN_set_bypass finished\n" ); //} //else //{ // fprintf( stdout, "\n Registering ORIGIN_set_bypass failed %d\n" , status ); //} //=========================================== //numberOfArguments = 2; //functionPtr = connor_set_release_status; //argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) ); //argumentList[0] =USERARG_TAG_TYPE ; //argumentList[1] =USERARG_STRING_TYPE ; //returnValueType = USERARG_VOID_TYPE; //ITKCALL(status = USERSERVICE_register_method("connor_set_release_status", functionPtr, numberOfArguments, //argumentList, returnValueType )); //MEM_free(argumentList); //if(status == ITK_ok) //{ //fprintf( stdout, "\n Registering connor_set_release_status finished\n" ); //} //else //{ //fprintf( stdout, "\n Registering connor_set_release_status failed %d\n" , status ); //} ////============================================= //numberOfArguments = 1; //functionPtr = ORIGIN_close_bypass; //argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) ); //argumentList[0] = USERARG_STRING_TYPE; ////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE; ////returnValueType = USERARG_STRING_TYPE; //returnValueType = USERARG_VOID_TYPE; //ITKCALL(status = USERSERVICE_register_method("ORIGIN_close_bypass", functionPtr, numberOfArguments, // argumentList, returnValueType )); //MEM_free(argumentList); //if(status == ITK_ok) //{ // fprintf( stdout, "\n Registering ORIGIN_close_bypass finished\n" ); //} //else //{ // fprintf( stdout, "\n Registering ORIGIN_close_bypass failed %d\n" , status ); //} ////================================================================= //numberOfArguments = 1; //functionPtr = getDbMsg; //argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) ); //argumentList[0] = USERARG_STRING_TYPE; ////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE; ////returnValueType = USERARG_STRING_TYPE; //returnValueType = USERARG_VOID_TYPE; //ITKCALL(status = USERSERVICE_register_method("HX_GetProjMsg", functionPtr, numberOfArguments, // argumentList, returnValueType )); //MEM_free(argumentList); //if(status == ITK_ok) //{ // fprintf( stdout, "\n Registering Connor_GetProjMsg finished\n" ); //} //else //{ // fprintf( stdout, "\n Registering Connor_GetProjMsg failed %d\n" , status ); //} ////============================================= ////======================= //numberOfArguments = 1; //functionPtr = USERSEVICE_TEST; //argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) ); //argumentList[0] =USERARG_TAG_TYPE ; //returnValueType = USERARG_VOID_TYPE; //ITKCALL(status = USERSERVICE_register_method("SendItem", functionPtr, numberOfArguments, // argumentList, returnValueType )); //MEM_free(argumentList); //if(status == ITK_ok) //{ // fprintf( stdout, "\n Registering SendItem finished\n" ); //} //else //{ // fprintf( stdout, "\n Registering SendItem failed %d\n" , status ); //} //======================= * decision = ALL_CUSTOMIZATIONS; METHOD_id_t mth_tag; //int status = ITK_ok; /* { ITKCALL( METHOD_find_prop_method ( "HX3_GYTRevision", "HX3_MUJT", PROP_set_value_tags_msg, &mth_tag ) ); if ( mth_tag.id != NULLTAG ) { printf("find HX3_GYTRevision HX3_MUJT \n "); ITKCALL(status = METHOD_add_action( mth_tag, METHOD_post_action_type,( METHOD_function_t ) HX3_post_prop_set_MJ, NULL ) ); if(status == ITK_ok){ printf("success HX3_MUJT \n "); }else{ printf("faild HX3_MUJT \n "); } }else{ printf("not find HX3_GYTRevision HX3_MUJT \n "); } } { ITKCALL( METHOD_find_prop_method ( "JK8MaterialRevisionMaster", "jk8SpecModel", PROP_set_value_string_msg, &mth_tag ) ); if ( mth_tag.id != NULLTAG ) { printf("find HX3_GYTRevision JK8Material \n "); ITKCALL(status = METHOD_add_action( mth_tag, METHOD_pre_action_type,( METHOD_function_t ) LP_set_prop, NULL ) ); if(status == ITK_ok){ printf("success JK8Material \n "); }else{ printf("faild JK8Material \n "); } }else{ printf("not find JK8Material HX3_JIANJT \n "); } } { ITKCALL( METHOD_find_prop_method ( "HX3_ZPTRevision", "last_mod_date", PROP_set_value_date_msg, &mth_tag ) ); if ( mth_tag.id != NULLTAG ) { printf("find HX3_ZPTRevision last_mod_date \n "); ITKCALL(status = METHOD_add_action( mth_tag, METHOD_post_action_type,( METHOD_function_t ) HX3_mod_date, NULL ) ); if(status == ITK_ok){ printf("success last_mod_date \n "); }else{ printf("faild last_mod_date \n "); } }else{ printf("not find HX3_ZPTRevision last_mod_date \n "); } } */ return(status); }