error:dulplicate component name "inihal"??
08 May 2014 09:43 #46703
by tiffany
Replied by tiffany on topic error:dulplicate component name "inihal"??
This is my INI and HAL config.
I just add MAX_JERK and DEFAULT_JERK to [TRAJ] /[AXIS];
I just add MAX_JERK and DEFAULT_JERK to [TRAJ] /[AXIS];
Please Log in or Create an account to join the conversation.
08 May 2014 14:27 #46706
by ArcEye
Replied by ArcEye on topic error:dulplicate component name "inihal"??
There is nothing in your ini and hal files so it is the code
You are only giving me part of the picture, the ini folder shows the changes you made to get the new fields from the ini file, (which you could have done without using that method)
but I don't know what you are doing with it
I can't assist any further, because I can't test it, as the rest of the code is missing as per this error
The error is coming from trying to create a second component with the name inihal
I would guess that somewhere in your code you are calling ini_hal_init(void) again
or you are calling comp_id = hal_init(NAME); where NAME comes out as inihal
If you point me to a github repo with ALL your changed code I will try to test again
regards
You are only giving me part of the picture, the ini folder shows the changes you made to get the new fields from the ini file, (which you could have done without using that method)
but I don't know what you are doing with it
I can't assist any further, because I can't test it, as the rest of the code is missing as per this error
Compiling emc/ini/emcIniFile.cc
Compiling emc/ini/iniaxis.cc
Compiling emc/ini/initool.cc
Compiling emc/ini/initraj.cc
Compiling emc/ini/inihal.cc
emc/ini/iniaxis.cc: In function ‘int loadAxis(int, EmcIniFile*)’:
emc/ini/iniaxis.cc:258:19: error: ‘DEFAULT_AXIS_MAX_JERK’ was not declared in this scope
emc/ini/iniaxis.cc:261:49: error: ‘emcAxisSetMaxJerk’ was not declared in this scope
make: *** [objects/emc/ini/iniaxis.o] Error 1
make: *** Waiting for unfinished jobs....
emc/ini/initraj.cc: In function ‘int loadTraj(EmcIniFile*)’:
emc/ini/initraj.cc:173:37: error: ‘emcTrajSetJerk’ was not declared in this scope
emc/ini/initraj.cc:184:40: error: ‘emcTrajSetMaxJerk’ was not declared in this scope
make: *** [objects/emc/ini/initraj.o] Error 1
make: Leaving directory `/usr/src/linuxcnc-dev/src'
The error is coming from trying to create a second component with the name inihal
I would guess that somewhere in your code you are calling ini_hal_init(void) again
or you are calling comp_id = hal_init(NAME); where NAME comes out as inihal
If you point me to a github repo with ALL your changed code I will try to test again
regards
Please Log in or Create an account to join the conversation.
08 May 2014 14:37 #46707
by tiffany
Replied by tiffany on topic error:dulplicate component name "inihal"??
Yes, I agree with your points. Just couldn't find the second inihal calling.
I can give you other codes.tt's linuxcnc-dev/src/emc folder.
now you can test all of them
I can give you other codes.tt's linuxcnc-dev/src/emc folder.
now you can test all of them
Please Log in or Create an account to join the conversation.
08 May 2014 16:29 #46715
by ArcEye
Replied by ArcEye on topic error:dulplicate component name "inihal"??
HI
I have built it and got the same errors, using a completely different config
If I comment out all your changes, linuxcnc runs
There is obviously some interaction which is less than obvious going on.
If I had to guess, it might be that something is causing emcMotionInit() to be called again, as in turn that calls ini_hal_init()
You might need to dig down further and see what some of the calls you have echoed in your changes actually do, for instance usrmotWriteEmcmotCommand()
I can only suggest that you comment everything out and then slowly re-introduce it, starting with data members etc but not using them, and see where the error point comes.
Sorry can't be more help at present
regards
I have built it and got the same errors, using a completely different config
If I comment out all your changes, linuxcnc runs
There is obviously some interaction which is less than obvious going on.
If I had to guess, it might be that something is causing emcMotionInit() to be called again, as in turn that calls ini_hal_init()
You might need to dig down further and see what some of the calls you have echoed in your changes actually do, for instance usrmotWriteEmcmotCommand()
I can only suggest that you comment everything out and then slowly re-introduce it, starting with data members etc but not using them, and see where the error point comes.
Sorry can't be more help at present
regards
Please Log in or Create an account to join the conversation.
08 May 2014 17:00 #46719
by tiffany
Replied by tiffany on topic error:dulplicate component name "inihal"??
Ok~~~
I got it ! you have given me some methods for furthur researching~~
Thank you very much~~
I got it ! you have given me some methods for furthur researching~~
Thank you very much~~
Please Log in or Create an account to join the conversation.
09 May 2014 12:48 #46747
by tiffany
Replied by tiffany on topic error:dulplicate component name "inihal"??
hi
I tried to comment line by line, you guess what? the reason is a 'return -1' in file 'iniaxis.cc'
I was confused, can you try to figure out the root cause?
Thank you very much !
I tried to comment line by line, you guess what? the reason is a 'return -1' in file 'iniaxis.cc'
//LT add
maxJerk = DEFAULT_AXIS_MAX_JERK;
axisIniFile->Find(&maxJerk, "MAX_JERK", axisString);
if (0 != emcAxisSetMaxJerk(axis, maxJerk)) {
if (emc_debug & EMC_DEBUG_CONFIG) {
rcs_print_error("bad return from emcAxisSetMaxJerk\n");
}
/* return -1;*/ error appear
}
old_inihal_data.max_jerk[axis] = maxJerk;
//LT end
I was confused, can you try to figure out the root cause?
Thank you very much !
Please Log in or Create an account to join the conversation.
09 May 2014 18:16 #46754
by ArcEye
Replied by ArcEye on topic error:dulplicate component name "inihal"??
Hi
I think the root cause is that you have copied other functions at a higher level, to find the ini file key etc, but have not written anything to handle the resulting call.
Specifically you have created an emcmot command called EMCMOT_SET_JOINT_JERK_LIMIT, but there is no handler for it in the command loop so it will always return false
and trigger a -1 return. (emc/motion/command.c)
Presumably this premature error return, is somehow prompting a second call which attempts to create a component called 'inihal', after one has already been created.
I would suggest you follow the trail of where EMCMOT_SET_JOINT_ACC_LIMIT goes and ensure that all stages are replicated for your command.
Either the emcmot command and the code which actually sets the jerk limit are not connected, or there is no code to actually set the jerk limit, as well as nothing to handle the command
regards
I think the root cause is that you have copied other functions at a higher level, to find the ini file key etc, but have not written anything to handle the resulting call.
Specifically you have created an emcmot command called EMCMOT_SET_JOINT_JERK_LIMIT, but there is no handler for it in the command loop so it will always return false
and trigger a -1 return. (emc/motion/command.c)
Presumably this premature error return, is somehow prompting a second call which attempts to create a component called 'inihal', after one has already been created.
I would suggest you follow the trail of where EMCMOT_SET_JOINT_ACC_LIMIT goes and ensure that all stages are replicated for your command.
Either the emcmot command and the code which actually sets the jerk limit are not connected, or there is no code to actually set the jerk limit, as well as nothing to handle the command
regards
Please Log in or Create an account to join the conversation.
Time to create page: 0.067 seconds