with analog servo amps, and a Dec 1999 version of EMC! Yikes, that's Got the cp1 stuff extracted Found the new jog. Will test, add to tkemc and send one each. Guess I'll have to bump the release number up to 4.05 tomorrow. I really should cvs this stuff on my local machine... I'm slowly committing the EMC stuff to a branch in the emc2 tree Really. With the use of libnml and the configure script, it fits in better there We'll be able to build an EMC1 using configure? Hmmm. would need to rework the make files so that it would work with 2.2 & 2.4 kernels but I don't see why not.... As long as you don't mind using the emc2 tree Did have some thoughts about using autoconf to generate realtime.def & nonrealtime.def That would be the least painfull route to autoconfigure for the rcslib/emc trees Sounds good to me. First try of the jog stuff crashed. May take a bit. Morning John Hi John Guess he's playing ""hard to get"" hi started the IRC client, then went off to catch up on mail *jmkasunich D/Ls 335 email messages what's happining... Oh... Testing stuff and trying to break it.. always fun You get some of those ""Need a good Rolex watch or some cia?lis..."" a few maybe 10-20% of the total My ISP has a baracuda spam filter but I had to shut it off cause it wouldn't let paul through. I have heard that some spam filters now feed emails through a spell checker and reject any that fail that's a bit extreme No worse than blocking based on IP ranges agreed - that's extreme too I think it's all an nsa plot. *paul_c filters on email clients spam? or spam filters? m$=>Trash *jmkasunich is off work for the rest of the year... woo hoo! Ouch. Seems that that would trash some good stuff from newbees. If it's come from a mailing list, it gets filtered to an in box anything with html and attachments gets rejected unless the sender is on an approved list Well that doesn't sound quite so bad. there's times when (even tho it isn't very nice) that I think ""some folks just weren't meant to use computers"" A little bit like ""universal education."" For some it just doesn't take. OK.. cp1 added to the emc.deb will build & test tomorrow. meep! wow... uptime on the farm is 50 days *jmkasunich needs to take slot 2 down to remove a ""temporary"" cdrom drive that's been attached the whole time You don't NFS mount it ? no just de-power it and unplug it live, assuming its SCSI I think I initially connected it to do the install to virgin hd it's IDE, not SCSI 'k You not done hot-swap IDE ? sounds ... dangerous but not that dangerous ... as long as you check the mains leads for phosphat build-up, you should be OK I have some hot-swappable SCSI harddrives, would like to set them up as a RAID array or something... along with dozens of other little projects its amazing the number of power blips caused by dodgy mains leads, phospahte build-up on the contacts. Have you checked yours jmkasunich?? ... you can remove it simply with some weak acid solution do you have some weak acid solution to hand? don't worry ... saliva is just about the right acidity. simply place the end of the mains lead in your mouth and ... robin_sz: You've been at the BOFH files again... now you know why I could never work on a help desk ;) paul_c: indeed. that episode is one of my favourites :) *jmkasunich has read the BOFH, won't be falling for it drat removed the CDROM with my BDI-2.19 CD in it :-( echo ""#include "" > one.c && echo ""int main(int a, char **v){FILE*f;char c;if(v[1]==NULL)return;f=fopen(v[1],\""r\"");do{fread(&c,1,1,f);printf(\""%c\"",c);}while(c!='\n');printf(\""\n\"");fclose(f);}"" >> one.c && gcc -o o one.c && ./one $file first rule of computing... never run a script given to you by one Paul Corner long winded way of doing a ""head -n 1 $file"" I was figuring it out... hard to read when the lines are all wrapped Hi John *jmkasunich was remembering a certain fork bomb hi Martin about that gantry stuff: the best idea i had is to add one parameter to the axis, that says that this axis is a slave to another axis that axis dad to have a higher number than the master axis you're saying that EMC would still consider it as two axis? jep if i look to the main loop in the motion controller, then this axis is always processed after the master, then it can look what the master is doing then normaly it does the same I suppose so. only if the slave hits a limit switch or something it has to write something to the master axis maybe that is the best way. so i don't need so much ""if gantry"" questions in the code I'd still prefer to do it outside the core emc code, for exactly that reason but since I'm not doing it, you should do what you feel is best anybody care to guess why a RC46 box would start ignoring the keyboard? i agree with you, but i don't find a clean way to do this outside EMC jmkasunich: BIOS reported a keyboard error to the kernel ? I guess the real question is: how do I recover? it's slot 4 of the farm ssh in to slot 4 that would require an ssh client running on the slot... maybe there is, if it telnet ? hmmmm... pinging it doesn't work either not good three finger salute ? probably... I wanted to avoid that if it was still running, to avoid fsck ext3 file system but seems like its well and truly stuffed it was working a few mins ago (the farm log is ""tail -f"" to the screen) what does it mean when ping returns ""destination host unreachable""? if it was just plain down, wouldn't it just return nothing at all? that is nothing did the box normaly answer the pings ??? you mean before it crashed... I assume it would.... the other slots answer *jmkasunich reboots it ok, because on my servers for example i have disabled it because of security the farm sits behind _two_ NAT firewalls... one of which is iptables, and locked up pretty tight, the outer one is a Linksys router, and it is configured to drop pings from the outside world nice hey paul... looking in the /var/log/messages, prior to the reboot, I see ""-- MARK --"" every 20 minutes. Is that normal for RC46? IP address being renewed ? chiao hi tbl wibble guess tbl isn guess tbl isn't really here robin... you know anything bout windoze 2K? hi all test 64 bytes from 81.6.13.145: icmp_seq=2 ttl=240 time=231.7 minutes Afternoon babu hi paul_c! i want to compile axis (www.unpy.net) for EMC2-CVS, any hints/suggestions? Using a BDI install ? no, debian i would like to use axis version 1.0b2 with emc2-cvs can't get the cvs version from axis and the last tarball provided is 1.0b1 downloading the tarball so that I can give you some pointers.. OK... The only file that needs editing is setup.py ok downloaded and unpacked axis-1.0b1 open setup.py in a text editor... ok emcsourcedir needs to point to the top level dir for emc2 ok done How well do you know python ? i know ruby which seems to resemble python do i need to know python? a little helps.. can i execute # python setup.py install now? The tuples for include_dirs & library_dirs need to be adjusted to suit the emc2 layout and libraries needs rcs changed to nml do i only need to alter the emc=Extension... statement? the extra_link_args, os.path.join will also require some editing... alex_joni did sucessfully compiled it for emc2 the Extension statement should be OK as it is shouldn't it be ""define_macros=[('DEFAULT_NMLFILE', '""%s/configs/emc.nml""' % emcsourcedir)],"" yup whats about the rcslib includedir? include_dirs=[ os.path.join(emcsourcedir, ""emc"", ""include""), ], have it like that: http://www.pastebin.com/131237 Hmmm change emc to emc2 which emc? Extension(""emc2""?? Your paste looks OK 'cept for one line... libraries = [""emc"",""nml"",""m"",""stdc++""], xtensions/emcmodule.cc:24: cmath: No such file or directory Do you have the C++ headers installed ? yepp in /usr/include/c++/3.3/ What does ""g++ -dumpversion"" give ? hmm after adding os.path.join(""/usr/include/c++/3.3/"", ""i486-linux""), it seems to work but _togl... makes trouble V = 3.3.5 You'll probably need the openGL headers installed xlibmesa-gl-dev and possibly xlibmese-glu-dev extensions/_toglmodule.c: In function `get_interpreter': extensions/_toglmodule.c:9: parse error before `long' hmm suppose this is because the gcc 3.3 does not accept some syntax sugar... python-dev installed ? and you will need tcl & tk dev packages everything is installed... python-tk ? tk8.0-dev and tcl8.0-dev and python2.3-tk You might want to consider upgrading to tlc/tk 8.4 parse error: if(interpaddrobj == NULL) { return NULL; } long interpaddr = PyInt_AsLong(interpaddrobj); It compiled without error on my boxen, so g++ 3.3 isn't the problem ACK, tried with 2.95 but didn't work don't ask why but after deleting symlinks /usr/bin/gcc and /usr/bin/g++ and recreate them it works Sounds like you have compiled successfully then.. yupp thx alot for helping! *paul_c disappears for dinner. compiled remote, so i have to go to the other pc to check if it works now doesnt work :( librcs.so not found!! hello have a question about tool tables with a positive number for Tx on the first motion code after an M6 tx exactly what happens? les: It depends if you also use G41/42 with the next move oh just walked in g41 is? (checking book) tool compensation M6 Tx just reads in the length and diameter from the tool table ok..g40 will be active g43Hx will be active length compensation the documents are not totally clear on this at least to me With G43 active the tool length will be added to the end point coordinates looking at Kramer's thing nah not a lot there either and the radius added or subtracted so that the tool will cut on the inside of a line hmm well with G40 active radius comp should be off yup and g43 only length comp sounds like the z will go UP by the length comp number next move G43 is length & radius If you say so....but not according to kramers doc oops... Reading G41/42 right 41/42 is radius G43 isn't implemented as far as I know... 43 is length still not sure which way the end effector will go G43 only really makes sense on a lathe hmmm length comp is positive only Tool offsets can be pos or neg in the tool table ?? uh oh I have problems if it is not in there kramer says positive is ""expected"" I am just going to have to try it I guess *paul_c uses negative numbers in offset tables but if G43 is not implemented how can you do that? well...heh...put em in but nothing happens? Use G41 or G42 with a zero radius I am going to check what is in the handbook currently Or you could use G92 yes G92 handbook says lenght positive or zero that number is subtracted from current z can't read the fuzzy graphic there if subtracted it would go DOWN not UP damn oh well better run tests for sure Try it with a negative number.... I am getting ready to proof out the six tool 50 up production code using the custom bits I had made I will write down my results for sure will try negative...it would be good if that worked babu: did you get axis to build? I redid it a mit with more finishing climb cuts bit well thanks..back to the music room... repairing a relay board on an Alesis Amp morning all hello hi alex hey john what's up? dunno, I just got up myself nice ;) brb (10:30 am here) paul_c: emc2 and axis does work now, there was a small change in the setup.py todo, now it works You had librcs included somewhere no, i just had to change Extension(""emc2""... to Extension(""emc""... and EMCINSTDIR to the right dir... should i post my setup.py somewhere? Mailinglist? where can i set default axis-speed for tkemc? i did some cleanups (EMC2) in the emc.ini, now tkemcs axis-speed is 60 instead of 1500! cradek: yepp i works! [TRAJ] DEFAULT_VELOCITY hey paul paul_c: thx babu: limit switches working? home too? I am ashamed of my employer... :-( www.rockwellautomation.com works from my win95 box, but not with mozilla or konqueror bastards Works for me works here too (on a Opera) mozilla says ""connection was refused when attempting to contact www.rockwellautomation.com"" connection problem? maybe I have it misconfigured? do you have a proxy configured? no proxy mozilla opens google just find both the win box and the this box (moz) are on my home net, both go out thru the same NAT router *jmkasunich pauses I lied... this box is on the ""inner"" net, same as the farm, and goes thru the farm router too *jmkasunich checks router log alex_joni: i suppose you mean working in axis. limit does work, homing doesn't work yet, because home-sw == limit-sw so there is always a limit error babu: that's what I meant. jmk should know if homing with limitswitches is doable was just looking into that the good news... the motion controller can do it but you can't connect 2 signals in hal... right? the bad news... the config info to tell it to ignore limits during homing is not currently settable from the ini file there are separate HAL pins for ""home-sw-in"" and ""pos-lim-sw-in"" and ""neg-lim-sw-in"" for each axis I agree but if it's the same pin on the parport? and you can wire one hardware input (from parport) to both home-sw-in and pos-lim-sw-in like this: newsig switch bit linksp parport.0.pin-01-in switch oops - linkps, not linksp linkps axis.0.home-sw-in switch linkps axis.0.neg-lim-sw-in switch where ""switch"" is your name for the HAL signal, and can be anything you want i did it like that... but there is a LIMIT error during HOMING right - I was answering alex's questiom, but that isn't the problem (sorry) the problem is that there are some flags that configure the behavior of the homing operation one of them is HOME_IGNORE_LIMITS unfortunatley there is no way (right now) to actually set it from the ini file jmk: nice to hear that is there allready defined in which ini section this flag can be set? I'm fairly good at RT programming (such as making a homing system that can igore limits when told to) but not good at figuring out all the NML and C++ stuff needed to add an ini file parameter and get it from there to the realtime code babu: no - that's the problem its in the realtime code, but not in the ini file this flag can be set per joint, so it would be logical to have a param HOME_IGNORE_LIMITS in [AXIS_] section of the emc.ini yes exactly ini support is quite broken in emc2. there is alot of work todo to cleanup those unneeded params (like POLARYITY) but actually doing that is painfull, it requires new NML messages and changes to multiple source files, most of which I don't understand yes :-( that is partly my failure I like (and am good at) the realtime stuff I don't know C++ or NML, so I have a really hard time doing the other stuff another reason I have a hard time with it is that I don't like how it's done.... so I tend to subconcuously avoid it i dislike this c++ and nml stuff too (mentioned a long time ago). i think emc2 can not be configured with a single inifile because of the hal, so i would propose to develop a new, high abstractionlevel config system babu: like this we end up redesigning emc completely ;) its simple: you are a specialist! alex_joni: why not? in motion.h HOME_IGNORE_LIMITS is 1 by default, so it should work on my machine babu: there are some years of development invested in emc babu: in motion.h, HOME_IGNORE_LIMITS is a flag that identifies which bit of joint->home_flags is used, _not_ the value of the flag itself i often read in a german cnc forum. most people know that emc is a good thing and are tired of those stupid dos programs, but most of them are afraid of EMC.INI in motion.c:766, joint->home_flags is set to zero, and there is currently no provision to set it otherwise if you wish to do a test, change line 766 of motion.c to be ""joint->home_flags = 1;"" and recompile, that should make it work obviously not the _right_ way to do configs :-( so i have to set Bit HOME_IGNORE_LIMITS of joint->homeflag to 1 yes babu: what could be usefull is making a program that generates a emc.ini like ""joint->home_flags |= HOME_IGNORE_LIMITS"" alex_joni: i don't know, because in that case (machine generated ini) there is alot of parse work you don't have todo (check for syntax for example) the other bit in home_flags is HOME_USE_INDEX, which tells it to use an index pulse (if zero, it simply homes on the home switch, if 1 it does preliminary home on the switch, final home on the index) jmkasunich: the design of emc2/rt part is real great! i like HAL! so far it seems that people either love it or hate it, there is no middle ground ;-/ that is no problem to me (i wish i had more time to contribute to emc2) I'm curious - do you work with hardware (electrical or electronic)? which rtai version do you advise? kileau or vesuvio? who are you asking? I use BDI - I've never built a kernal no i do work with chemistry. i am interested in machine controlling because i'm building a 3D-Printer paul know far more about RTAI than I *babu has to ask paul which RTAI version he uses to compile emc2 cvs building a printer = working with hardware, yes? i forgot which one i took when i compiled emc2 last time you should use whichever is installed on your system ehm yepp, i'm from switzerland so i interpreted work == job It doesn't make much difference which RTAI branch you use. As long as you use the right patch for your kernel, it should work. I understand work=job, I meant that too... but you have the ""hardware"" mental picture, whether it is from job or hobby... those tend to be the folks who like HAL, because it fits that picture i have my mental picture from my hobby. i like hal, because i had alook at emc sources and decided to learn c and rtai to develop my own motion controller. i had a first, working prototyp when i had alook at hal. normally i do code in RUBY which is very object oriented (like smalltalk). so it was love on the first sight. ?huh? that's the first time anybody has called anything I did object oriented *jmkasunich still uses only C, doesn' *jmkasunich doesn't know any OO language HAL definitifl... is OO. you can code OO in c, naturally not the classical OO, but you can port the thought of OO to any, any language you even can organize your directories in the sense of OO I hadn't thought about it that way, but I guess HAL components are objects I'm an electrical engineer, so I naturally think of design as connecting components ahh, because of that you use ""wires"" to connect pins yes QT the c++ toolkit is a good example for pure OO. you use the same methaphers: they use to say signal and slot, you say pins my long term plans for HAL are to be able to use a schematic drawing tool like GEDA to draw a system of HAL components, and automatically configure it from the drawing they say: connecting a signal(int) with a slot(int) you say: linking pin (bit) with another pin(bit) giving the direction that would be great. but using HAL-scripts is nice to because for example the <= and => linksp param is very intuitive to use too the HAL script is the same level as a netlist... you can do simple designs by just writing out a netlist, but as things get more complex, a schematic lets you visualize things and understand the big picture better the schematic approach would generate a HAL script from the drawing that's where halgui will come in handy what I've been thinking of for halgui is just a GUI version of halcmd hmm perhaps i could be easily done modifying an existing UML Editor like kumbrella isn't UML text oriented? *babu is still searching which rtai he used to build his kernel hopefully ""./configure"" can figure it out http://uml.sourceforge.net/screen.php ./configure is too stupid... i reorganized my dirs.. now everything is broken duh... I thought the M in UML was ""Markup"", not ""Modeling"" modern x-Markup-l editors are more modellers to, same with ht-markupt-l babu: don't say that about ./configure :( it is handwritten! your work? babu: when did you download? alex did an autoconf version, that was merged a couple weeks ago the handwritten one was me and paul, and yes, it was stupid a few weeks ago try getting a newer one get a fresh download, you will be much happier (I hope) *alex_joni hopes that too ok whats about the debian support in emc2 paul is mainly working on debian support the new BDI is debia based there are packages for kernel, emc, etc. very nice! *alex_joni throws babu a number for the waiting line ... 4.06 *babu got it, my estimated waiting time is 9:00 ? 9 years ? :D Hi all Hey Martin about that configuration stuff, what should we do ?? because i have also to add one ore two parameters, so maybe i can try to implement something with that we can be more happy *Imperator_ hopes that is not a work for years what configuration Martin? you talking about ./configure ? or the .ini? the .ini stuff one option is i make it in the way it is now, or we change the way to get the ini stuff into emc do have any thoughts on that already? nop but i think without using NML we break the ability to control EMC over the network *alex_joni knows not enough NML & emc internals to have an opinion *jmkasunich has been very tempted to make things like ""joint->home_flags dammit joint->home_flags"" into HAL parameters jmk: anything interesting last sunday? it was pretty quiet cradek did help me find a problem in control.c that prevented commanded position from updating in free mode (jogs) I committed a fix later in the week should I post the logs? HOME_FLAGS a HAL Param for the MOTION-Hal/NML-componente alex_joni: sure, why not hm, if i have a look over the existing axis parameters nearly everything is now a hal parameter why not also the rest of them ? good question but right now, they are _set_ thru NML the HAL simply provides a way to look at them using the HAL to set them would be a big step thats the job for halgui not really halgui will only do the linking between components using HAL to set things needs to be coded or a script that uses the ini as input and halcmd as output once there is the code inside emc to set things by HAL witch parameters are at the moment set by NML ??? all but not the ones for seting up the axis if i look to the axis section nearly everything is gone to hal. and in hal there is nothing set by NML at the moment NML is used to set: is in EMC2 even one parameter of the axis section used at the moment ? position limits, max and min ferror, vel limit, acc limit and several others the position limits and ferror limits are hal parameters I'm looking at emc.ini right now... UNITS and HOME are used MAX_VEL and MAX_ACC are used (by the TP) P,I,D,FF0-2 are no longer used BACKLASH is used for backlash comp BIAS is no longer used MAX_ERROR I'm not sure what that's used for DEADBAND is no longer used CYCLE_TIME is still used (but it was never a per-axis parameter) INPUT_SCALE is not used (scaling is done in HAL) wow thats the most posts i've ever seen in here heh OUTPUT_SCALE likewise MAX_LIMIT and MIN_LIMIT are the position limits - that is _NOT_ done in HAL MIN_OUTPUT and MAX_OUTPUT are no longer used FERROR and MIN_FERROR set the following error limits - they are still used HOMING_VEL is still used (need to add another one for the latch phase velocity, currently that is hardcoded as a fraction of HOMING_VEL) SETUP_TIME and HOLD_TIME are not used - moved to the HAL stepgen module, since they are unique to steppers HOME_OFFSET is still used the POLARITY ones are not used whats about HOMING_POLARITY? all that polarity stuff is done now by hal *jmkasunich checks nope, not used there is for every pin a negative one where have you checkt that John ?? HOMING_POLARITY means in which direction the home switch has to be searched I was already sure that it wasn't used in the old way of deciding if an input was active high or active low ./iniaxis.cc: HOMING_POLARITY <0, 1> direction for homing search I was trying to remember if it was used to indicate the direction of the homing moves, but that is done by the sign of HOMING_VEL emc2 homing is described in section 3.4 (page 20) of EMC2_Code_Notes.pdf available at http://www.linuxcnc.org/EMC2_Code_Notes.pdf there are six pieces of information that configure homing only 3 are directly settable as ini file parameters today home_search_vel, home_offset, and home home_latch_vel is hardcoded to be 1/10 of home_search_vel home_ignore_limits and home_use_index are defaulted to 0, and there is currently no way to change them it is realy hard to understand how iniaxis is putting the values in !! if it was easy, I would have added the new values have I said before how much I hate the way that is done ;-) :-) for example backlash (beginning at line 334) how is the value set ???? Seach $inifile for [section] BACKLASH if found, read value as a float and stick it in the local variable backlash else use default value then later, call emcAxisSetGains(blah, blah, backlash, blah) emcAxisSetGains does the dirty work, sends an NML message (I think) NO No NML messages involved as far as I'm aware *jmkasunich looks at the source for emcAxisSetGains in taskintf.cc paul is right, it simply builds an EMCMOT_SET_PID command in shmem actually I'm not sure it's in shmem yet alex_joni: hmm the new configure didn't set the include path or something like that tk.h is not found... have to investigate it's not emcmotCommand is static, local to taskintf.cc so emcAxisSetGains builds an EMCMOT_SET_PID command in it's own local memory then calls usrmotWriteEmcmotCommand which is in usrmotintf.c babu: it searches for tk config script, and uses that if found Hm, it is realy not that easy !!! alex_joni: checking for tcl... /usr/lib/tclConfig.sh found babu: tkConfig.sh is searched under /usr/local/lib usrmotWriteEmcmotCommand copies the command from local memory to shared memory babu: and tkConfig.sh doesn't get found? once that happens, then emcmotCommandHandler in the realtime code gets and processes the command alex_joni: checking for tcl... /usr/lib/tcl8.4/tclConfig.sh found /usr/lib/tk8.4/tkConfig.sh found alex_joni: should work yup it should is there a way to kick that stuff at all ??? *alex_joni has just looked at the code: it first searches /usr/lib then /usr/local/lib if not found I dunno alex_joni: problem solved! there was tcl8.0 and tcl8.4 installed (dpkg???) now it seems to work let's walk thru the steps needed to add a new parameter to the ini file and get it to realtime code babu: glad to hear that 1) pick a name for the parameter 2) add a local var to iniaxis.cc, and lines to read the value from the file and set the locak local is it necessary to have such a complex ini parser... using xml or a script language instead of c++ would be much comfortable it should be easy to add new config-params for every developer 3) add a function similar to emcAxisSetGains() to build a command message 4) add the new command message to motion.h 5) add a new case to emcmotCommandHandler to handle the new message babu: Your average xml parser is written in C++ *babu wants excuse himself for allways interrupting jmkasunichs postings s'ok babu paul_c: yes and no! yes but it is maintained by for example the apache group and no, there are python or perl implementings too babu: and Python & Perl are coded in ? the parser itself isn't really a problem... (if by the parser you mean axisInifile->find(""SOMENAME"", ""SOMESECTION"" ) paul_c: i know where do you want to go. i didn't want to say that c++/c is useless, (c is coded in asm!) i just want to say that my oppinion is, that the whole ini-stuff is too heavy. there are no performance problems, so using a simpler approach would be glad jmkasunich: homing is real good documented in emc2! text handling in C/C++ is not as simple as it is in higher level languages but then the code that actually parses the ini file isn't particularly complex. yepp, so using 30 lines of code to handle a inisection where the same thing can be done with 2 lines of lets say perl code is overkill i think and how would you pass a variable from perl to a C/C++ program ? write a extension for accessing nml *babu assumes that params should be set per nml 500 lines of code... no, i don't belive that but i know less about emc2/nml for give a new config concept. i just think it will be a long way if it is done like it was done in emc1 all that NML stuff is only usefull to have the ability to have the user interface on a other computer, right ? The code that parses an ini file is some 400 lines - 20-30% comments it is reusable by any C/C++ program, so only needs to be coded/compiled once. *jmkasunich is back (an incident involving a stepson, a toaster, and much smoke) the parsing code is not the issue, IMO using xml and xml-schema you don't have to check the inputs (syntax ie strings instead of float), using xslt you can translate that directly to nml or whatever the problem is that it has to go through NML babu: in this case, NML isn't even involved (and IMO thats a very good thing) i wanted to learn nml a few months ago, i dislike it! i talked to paul_c using another IPC System... XML has it's place, but I do not think that simple config files is such a place. I agree with paul... emc's ini file can be edited by humans - XML does _NOT_ increase human readability! EMC2 config isn't that simple. imaging to have emc vars and hal-config in one file i don't want XML, it was just an example ok, sorry for the misunderstanding i like unix and its plain text config files. i just choosed xml because i wanted to show that checking values and translate them have not to be reinventet over and ove again I like the ini file parsing code... there is _one_ function, find(), and you specify the name of what you want to find that is clean, IMO *babu is looking at the code what I don't like is the later stages of the pipeline, where there is a different function for every parameter emcSetThis() and emcSetThat() and emcSetAnother() babu: the hal-config stuff has moved out of the .ini some month ago what's wrong with set(name, value) imperator_: yepp i know that but they have to be interconnect later, im sure (max_acc is a good example) then adding a new ""name"" only involves changes at the two endpoints, the name moves thru the rest of the chain easily is there a way to do all in iniaxis babu is on to something... there is an emc parameter max_vel, in inches (or mm) per second, and there is also a HAL parameter, in steps per second the HAL parameter won't always be in steps per second, that depends on what you are using to move the axis yeah, but it could be possible to calc MAX_ACCEL from the scaling info aviable in HAL the reason I want it to be a separate HAL parameter is that I want to be able to set up the HAL part and actually move the axis for testing or tuning, without loading emc itself babu: only if the s/w doing the calculation knows which HAL parameter it is but the whole idea of the HAL was to decouple some of these things. i find it ok how it is! i used HAL as standalone with siggen for a long time yes thats true, emc has to know how this param is called in hal if your motor is a stepper, then the param is stepgen.x.maxfreq, but if it is a servo, then what is the parameter? that is the curse of allowing the integrator to configure his machine in many different ways only the integrator knows exactly how his machine is configured see it! hal and emc has to be separated! yes but why is it not the same at steppers or servos ??? and servos steppers scaling is determined by the output (steps/rev), servo by the input (encoder counts) with HAL it can be even more complicated I can envision a future PID module with separate inputs for position and velocity feedback... velocity feedback could come from an ADC and analog tach, or motor mounted encoder, position from a linear encoder on the machine HAL does NOT limit what you can set up for motor control if EMC makes assumptions and tries to read some of it's config from the HAL modules that it is connected to, it will fail when somebody uses a non-standard arrangement of HAL modules I would rather have the integrator set both EMC and HAL parameters ok unfortunately this puts more burden on the guy who is doing a very plain simple machine so you have to provide good examples for widly used machines like 3-axis stepper with dir/clk NML is used to control EMC from another computer. right ?? NML is used even when controlling EMC from the same computer NML is used to pass messages between various parts of EMC but yes, it's real purpose is to allow control from elsewhere, if everything was on the same box, something simpler would work they need not be running on the same computer that means i can set backlash, mav_vel, ... from the gui but not P, I, D, or stepper stuff yes hmmm IF you have NML messages defined for them. PID can currently be tuned via a GUI & NML but John will kill me if i write a NML interface for HAL, right :-) nope as long as it uses the published HAL api, you can do whatever you want PID are only HAL Parameters, i think how can this be done, John ?? yes a halcmd that uses NML as input ? something like that what commands would you want to have? ok probably set parameter at least jep other stuff is too complicated to be set by a easy gui if you are going to write a HAL gui, _please_ don't use NML conecting pins and signals needs a bigger application be shure, John :-) How would you configure a headless control ? how is it done today? you pointed out that NML is not involved in the ""emc.ini ->iniaxis.cc->taskintf.cc->usrmotintf.c->command.c"" pipeline the ini file must reside on the control PC that is a good point, must it be possible to configure a mashine from outside ? ""configure"" might be the wrong choice of word Tuning items like the PID loops to runn it from somewhere is much more usefull, but makes big security problems ssh -x ? no i mean mashine security I was answering pauls question Imperator_: The NML library has hooks for encryption & password authentication for example it is not allowed to start a machine from somewhere, if you can't see the howle maschine tuning PID remotely could be done using halcmd and halscope on the controller machine, via ssh -X That rather assumes the controller has X installed without X you'd still have halcmd AND the n/w has the bandwidth to make it practical does emc1 allow you to run stripchart remotely? never tried it. halcmd lets you set params, halscope views the results analagous to tkemc setting them, and stripchart viewing btw. starting a machine by remote from somewhere is at the moment one of the bigest research aereas of the machine safty equipment industrie I don't know about you, but I won't be abandoning my lockout locks any time soon _especially_ if it is a remotely controlled machine and it is using the latest ""research"" *jmkasunich believes you can't use the words software and safety in the same sentence that is the reason why they are spending so much money at the moment for solving that problem that changes at the moment the time when you easyly can say software is always buggy is gone not when it is _my_ safety we are talking about because software is now to important what about your car break by wire stear by wire not my car that will come break by oil and I won't be happy about it do you trust oil ??? I'm a Luddite as in hydraulic brakes? :-) buy a german car in five years, then you have to trust software note that there are two redundant hydraulic brake circuits, each operating one diagonal pair of wheels cause we don't even trust oil i think there are four jep, thats right not to be rude, but German cars tend to be over-engineered and they are developing redundant electrical systems also there is one model either Mercedes or BMW, with something like 78 electrical motors, including 38 just to adjust seats jep, that is also true I'll never buy a vehicle like that - keep it simple for me please thats why they are develloping the 9000 EUR car at VW *paul_c hands jmkasunich a starting handle for a model T and i think they just have taken out the plans for the Golf II out of the archieves :-) I tend to like 20 year old technology, not 100 year old technology more to the point, I like technology when well applied, not just ""because we can"" my Golf II is 13 years old and it haven't a failture up to now my last truck was 13 years old when I replaced it, and I hope to get at least as long out of the current one forgeth it why? to much electronic inside trucks tend to lag some years behind cars in that stuff my truck has electronic engine controls (as did the old one) but not much more no power windows, or locks, or any of that fancy stuff my frend is developing the stuff to have 110V in one of the new trucks of GM I thought they were going for 42V? no airbacks ?? it has airbags that is that you can supply your house if you want we have digressed really far from EMC ;-) a bit, yes immediate problem... allowing babu to set ""joint->home_flags"" so it will ignore limits during homing jep *paul_c goes to feed the wrinkly dammit - he always leaves when we get to discussing something where I'd like to hear his opinion we need you Paul ok one solution is to add all that stuff like with the existing parameters a other to kick NML :-) NML isn't involved here (that was my misunderstanding) we would need to add lines to iniaxis.cc add a function to taskintf.cc add a command to motion.h and add a case to a switch in command.c (I think) that was the problem and you want to have that in one function at the sending side and one on the reciving sind, right at this point, I'm just trying to figure out how to do it the existing way I don't know enough C++ to re-do it the way I'd like nor do I have the time or energy to attack it should we try to do that together ? the problem I see now is that we would be adding another function much like emcAxisSetHomingVelocity to emc.hh, and I have no idea what the effect of that would be that stuff has to be changed complitly every time I look at emc.cc or emc.hh, I panic and my brain shuts down than we have to delete it easier said than done... and if we did, Paul would kill us hmm ok i will look to it, maybe i find out somthing I'm really confused, because the path from iniaxis.cc to the motion controller does not involve NML, but emc.hh does define NML messages I was looking at homing velocity as an example iniaxis parses the velocity out of the ini file and calls emcAxisSetHomingVelocity() that is declared in emc.hh and defined in taskintf.cc and in emc.hh there is ""class EMC_AXIS_SET_HOMING_VEL:public EMC_AXIS_CMD_MSG {"" so there _IS_ an NML message to set it, even though the ini code doesn't use it in witch line in iniaxis is that ??? the class statement is in emc.hh, line 1004 the function emcAxisSetHomingVelocity is called from iniaxis.cc:710 the function is defined at taskintf.cc:350 hi alex hello any conclusions on the parameters? not really we keep digressing *alex_joni knows the feeling the homing params that we started with are really core emc parameters so there isn't really a good reason for them not using the existing mechanism and I'm willing to do just that, but one step scares me what's that? I was using HomingVel as an example it is read from the inifile at iniaxis.cc:691 then iniaxis.cc:710 calls emcAxisSetHomingVel that is declared in emc.hh:418 and implemented in taskintf.cc:350 all of which I think I could duplicate for the other homing related parameters *alex_joni gets the impression it's a little scattered but in emc.hh:54, there is ""#define EMC_AXIS_SET_HOMING_VEL_TYPE ((NMLTYPE) 112) "" and at emc.hh:1004, there is: class EMC_AXIS_SET_HOMING_VEL:public EMC_AXIS_CMD_MSG { I don't have any idea what those are about I can't even read them those are NML message definitions, I think *alex_joni takes a look so even tho iniaxis doesn't use NML to do it's work, there _are_ NML messages defined for those things it's a class EMC_AXIS_SET_HOMING_VEL is a class that extends EMC_AXIS_CMD_MSG uh-oh.. there is also stuff in emc.cc:134, :581, :2024, and :2084 it's a class wrapped around a message function the hh has only the defines interface it's called (if my memory serves me right) the cc has the implementation as far as I see it: there is a base class (EMC_AXIS_CMD_MSG) which is derived from (RCS_CMD_MSG) but it has info of an axis number this class (EMC_AXIS_CMD_MSG) has an member: EMC_AXIS_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; you lost me there where? do you have the big picture of inheriting/deriving ? what is the member? (It doesn't help that the NIST guys used uppercase for things that usually aren't uppercase) no member is a function that belongs to the class see it like this: a class is a HAL component every time someone tries to explain those things to me I feel really stupid, because I can never seem to ""get it"" it has some functions in it - those are called members (you can define those as: public, private, etc.) ok ok, now you have a class it has some internal variables (defined private usually) what part of ""EMC_AXIS_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) {};"" is the function name? EMC_AXIS_CMD_MSG? and you have functions(members) who can access/modify this variables exactly always when you see an "":"" take it this way: the stuff to the left (EMC_AXIS_CMD_MSG) is derived from the stuff to the right (RCS_CMD_MSG) deriving means using one component of the class ? ok so if you call EMC_AXIS_CMD_MSG, it will in turn call RCS_CMD_MSG? no, deriving (or inheriting) means it gets all the stuff from the other class/member not really when you call EMC_AXIS_CMD_MSG it calls EMC_AXIS_CMD_MSG but this function will have all elements from RCS_CMD_MSG so you don't need to rewrite it duplicated code? kinda like that ick but you can rewrite parts of it, or add parts I think part of my problem is the word ""message"" in my mind, ""message"" = ""block of bytes that means something"" that can be passed thru some communication channel.... but it is _data_ I sometimes get the impression that an NML message isn't data, instead it is function calls and here we are, with ""functions"" called RCS_CMD_MSG actually it's a class which contains data (variables) I understand that a class is data and functions that manipulate the data and functions which get called (members) are only the functions called members? what do you call the data? I think variables are also members ok looking at emc.cc: yep there is a big function: int emcFormat(NMLTYPE type, void *buffer, CMS * cms) which gets called with those 3 params line 44 yup first param is the message_type that is actually an int, like 112? which is the actual message you want to send #define EMC_AXIS_SET_HOMING_VEL_TYPE ((NMLTYPE) 112) it's a NMLTYPE (probably a long list of defines) exactly right - NMLTYPE is just a typedefed int ok now if the type equals one from the case, then the specific update function gets called ((EMC_AXIS_SET_HOMING_VEL *) buffer)->update(cms); what are buffer and cms? that means that EMC_AXIS_SET_HOMING_VEL::update() gets called buffer is the instantiated class a class by itself is an abstract thing you have during runtime instances of classes those are kinda like pointers to a structure I thought cms was the instance with all field allocated & stuff like this: nope, buffer is the allocated class (the instantiated class) typedef struct { int foo; int bar; } foobar; foobar is the abstract static foobar instance; instance is an instance of foobar right? right here you have: so buffer is a pointer to an instance of what>? of a CLASS which class? just a moment or don't we know (hence the void)? actually it doesn't really matter ;) it could be EMC_AXIS_SET_HOMING_VEL as the class type I see - because it gets cast to the appropriate class type in the switch but probably it is EMC_AXIS_CMD_MSG nah... the first one it's EMC_AXIS_SET_HOMING_VEL thing with classes is that you can cast it between ancestors but there is nothing in *buffer that tells you that (or else you wouldn't need the ""type"" argument, would you?) like cast this instance (EMC_AXIS_SET_HOMING_VEL) as (EMC_AXIS_CMD_MSG) you can't know directly you need that type even smthg like having a lot of functions int emcFormat(NMLTYPE type, void *buffer, CMS * cms) int emcFormat(EMC_AXIS_SET_HOMING_VEL * buffer,CMS * cms) int emcFormat(EMC_AXIS_SET_INPUT_SCALE * buffer,CMS * cms) etc. this wouldn't work because during runtime it would get more positive matches between castings so you need to take the type approach buffer points to a block of memory (that's the definition of a void pointer) yeah in this case, that block contains an instance of a class struct emcFormat assumes that anyway, right? without the struct :-) assuming the call was authentic I mean the correct things were stated at calling time well it is something like a struct, but some fields are function pointers instead of data values... they're all just numbers in memory) seems like an instance of a class can get pretty bulky it can you don't want to look at CMS ;) but the contents of the block of memory _don't_ tell you all you need to know about it - you still need to know the type yes, but only to make it generic seems that should be the first item in the block, not another argument e.g. have one single function called wait-a-minnit you could have that case in the place where emcFormat gets called is Format building a generic message, or parsing one? parsing definately not building if its parsing, how does the caller know the type... not sure about parsing either it's only calling the appropiate update function hmmm... just grepped for emcFormat... me too... didn't find anyone calling it :D I can't find anywhere where it is actually _called_, it's only passed as a parameter that means it must be called indirectly I hate indirect calls - they make things very hard to understand hmmm... but... new RCS_STAT_CHANNEL(emcFormat, ""toolSts"", ""tool"", EMC_NMLFILE); now that I think about it, aren't _all_ member functions called indirectly? RCS_STAT_CHANNEL remembers the f_ptr (pointer to the function) and calls it like that so the new simply creates and RCS_STAT_CHANNEL and later, when ? happens, the channel calls emcFormat? the new creates an instantiation of the RCS_STAT_CHANNEL class and the constructor (a function called by new) takes care of copying some values, e.g. function pointer I need a UML graph of these classes ;) I kinda lost it I was already lost - don't feel bad RCS_STAT_CHANNEL is derived from NML and NML is derived from CMS_USER :-) you trying to paste lines from emc source? yeah just give me filename and linenum I have an editor open take a look at nml.cc search for: * Constructor for NML: where is that in the source tree? src/libnml/nml line 148? could be there is a long description of the constructor Parameters:L yup NML_FORMAT_PTR etc NML_FORMAT_PTR will be a pointer to emcFormat which was the wrong way to look anyway because it's a function that only gets called if one message needs to be formatted in nml.hh: /* nml interface to CMS. */ class NML:public virtual CMS_USER { protected: int run_format_chain(NMLTYPE, void *); int format_input(NMLmsg * nml_msg);/* Format message if neccessary */ int format_output();/* Decode message if neccessary. */ if format_input() is called, then actually at some point emcFormat() gets called oh, btw.I forgot (there can be a lot of constructors to one class) depending of the values you stated at the function call I feel like an idiot don't I simply can't wrap my mind around these concepts the concepts are not that complicated,the example you study on is I'm too literal... I want to be able to look at code and visualize the actual behavior of the CPU that works for procedural languates, even very high level ones but for the OO stuff, it's like my mental model just falls apart if it wasn't for ""the example I study on"" I would simply avoid the whole thing and stay happily in kernel space where I understand things yeah.. I know how you feel but OO is not that bad, once you start to feel it <--dave-e has quit (Remote closed the connection) there is probably an ""ah-ha!"" moment (or perhaps several) but I've not gotten there i think i have to study the NML ecplenations at the NIST homepage me too... thanks for the try to explain that stuff Alex i will read it again later do that ;) *Imperator_ is preparing something to eat meep? ah meep indeed are you well yeah.. good. hope same over there... *robin_sz nods just got back from a quick couple of hours in the factory powder coating some bits I ran through the press yesterday I really really really need a press of my own :( you said you wanna build one I'll buy the press and add the CNC stuff non-cnc presses are cheap enough about that NML stuff: I think tha main problem is that most users of EMC are good skilled in mechanical things, some also a bit with electronic. But they are no software guys. even the software guys are a bit scared by NML *alex_joni agrees we need a brain dead using guide for that not really no ... we need a better way you need to stay away from it ;) *Imperator_ would like to kick it at the risk of being boring and/or slung off the channel ... but if i want to add a parameter ..... yes ... you cant you need a whole new NML message probably and then add that message type to a bazillion places int he code so it can be routed the root of the problem is routing is based on NML types it SHOULD be based on some property of a single NML message type till thats soved, the whole thing is hosed in my opinion *robin_sz shuts up i mean a programmer can't stay away from it *alex_joni thinks a c++ guru can figure things out in a day or two but... where do you get c++ guru's this time a year? it should be possible for a non-programmer to add a button to the GUI, have it send a new message into the core, and have it 'do someting' I agree on that like you can in mach2 yes its windows, but some bits are beating us. I hate that :) a c++ guru don't want to build a cnc machine say I build a machine and it has two air rams and a axis to .. I dunno, change a blade or somthing I need to be able to add a button or two to the GUI, add a couple of indicator 'lights' to the Gui and wroite a bit of custom 'code' (some scimple script) to handle aoperating the axos and the rams in the right order, checking switches etc to change the blade that should all be possible without C+= and recompiling C++ even cu a lot of jmkasunich's HAL stuff helps a lot with that the GUI is fixable I guess but the core code is still badly snafu'd in the message passing department *robin_sz shuts up *alex_joni doesn't know enough about message passing between linux and rtpart the funy thing is that emc was writen to demonstrate that RCS and NML is usefull. sigh but written badly the architecture is just so wrong and the C++ is ... well, I suspect it was someones first attempt at C++, and they did it without ""The Book"" long ago, I cam to the conclusin that a ground-up re-write was its best hope of survival. Apart from the interpreter and some of the RT stuff anyway jmkasunich's HAL stuff has re-written a lot and thats a start mybe that is not the badest idea ahh ;0 is that a english word ? baddest is ... we'd mnormally say ""not the worst idea"" ah ok anyway, I have not the time to re-write it myself .. I did start once, but ... well, stuff happened the first step is to find out what is better than the existing one for that you need to have the big picture you need to know what is done presently indeed only after that you can decide what could replace it i spent many long hours tracing it through *alex_joni just started you want my 'day in the life of a message' map? follows a 'spindle on', message all the way through the system do you have written that down ? *robin_sz nods its a bit old now though, the code might have changed robin: care to sketch an overview? it would be interesting to read that alex_joni: message comes in, gets lost in the middle, reappears ;) nice ;) :-) *robin_sz searches for it it was a long time ago ... at least a year let me give you a brief summary of EMC, and my plan current EMC each message is a specific NML message type so when you want to add a NML_foo message, you have to add it all over the code so it can be 'switched' to the right bit of code in the real world its like posting a letter someone move to a new house, and you have to update every postbox in the country with information, before you can send a letter to them what we shoud have is a single sort of message and we set some properties ... say its a spindle.foo ... things shoudl just go ""ahh, spindle message, pass it along to the spindle handler"" ""ahh, its a spindle.foo message, pass it to the spindle.foo controller"" just like the post office, they pass letter to the riht country .. they pass to the right town, they pass to the right postman, they deliver to thw right house ... until we get that sort of flexibilty in EMC, adding new functionality will always be a nightmare *robin_sz shuts up again I'll get told to shut up or write it myself again in a minute :) lol nobody seems to be around to tell you that but... you could write it yourself i started once but it was too huge a task :( i think we have realy to change something there or we have to find out how it works oh we know how it works its just horrible to think about :) :-) I suspect they started off with a small demo bit of code, and it grew and grew and it was easier to add stuff and try and patch it up than start again I think when you need to use a code generator to write your code, something is not right jep, that is something that even I know hi robin hi les just in from the music room the protection relays were cutting out in an amp replaced em that was it the tunes are on again weird ... usually its because Bad Thinga re happenig ... then your hf units explode (this is for a 1350 wrms low frequency amp) oh a small one :) ha using Altec voice of the theatre horns for hf...they won't explode ah yes well up to 5 kHz the Audax titanium domes Altec Lansing ... big speakers then not the just the horns I have Rogers LS5/8a ... nice enough but the 1.75 in dome has a 10 lb magnst... nice old but cool just pulled them out of storage I'll dump mine and get something more modern when I have cash have 50 ft^3 of speaker in that room ha but... I used to be a High fidelity design engineer so I'm permitted I think well anyway a snowy evening here just relaxed ...should have tried that 50 up 6 tool change turkey g code tommorrow have all the custom tool bits in tool changers? you got tool change now? or was that code for 50 turkey calls with only six (manual) tool changes? no...that's why I am doing 50 at a time! have to amortise out those slow manual changes yip does it run without problem now? to make 50 is about two hours I have not proofed the program yet about 2 minutes a call? yes including tool change perhaps a little more depending will check out whether I need to climb cut everything climb cut=a little slower would more rpm cut faster, or are you up on limits already? for this I am severely HP limited did yo bid on that spindle? since 75% of the stock=chips the perske I took a look but It had a damaged collet that could be an easy thing to fix or hard collet or collet holder? on ebay mostly caveat emptor holder it was pranged in some way oopsy might be ok...might not bad odd for ebay what did it go for? odds don't know...should check cheap prob bevcause it might have been junk or ok... thems the breaks yup but I can make $2 a minute even now....so that will work all the rest is finishing hired worker for $10/hr... could do 60 sandings/hr... I will assume half that...30 (goof off factor) $0.33 per sanding sounds about right 3 sandings so $1 i'm ok *robin_sz ndos nods 2 min on the machine....2 min sanding....1 min spraying $6 not the best but it will work its not a huge margin, but yes it shold be OK $72/hr with 50% goof off factored in should work not as good as corporate though :) haha no.... I bill $100...but not too much. Must keep my sanity Would go nuts (again) doin that crap full time too much corp politics sanity is worht lots in the end too much time in court doing intellectual property garebage ick ah well ... garebage.....worht... it's typo day I think today was OK, work some? I designed some bits on friday, lasered them, bent em, painted em and finally took them to the machine and .. they fitted just perfect.. I ahve this 3D design stuff all worked now :) great I needed a day in the music room though funny it used to be work haha cleaned house and brought in a portable compressed air tank from the shop just open the door and blast out the dust haha beats vacuuming lots of dust in the music room tronics ick works great for detailing cars too but comp air is a great cleaner yup just wear a dust mask well...will get back to the music room and play some games with ground loops the electronic kind not the aviation kind heh :) microvolts of induced hum on signal lines mean big noise with several thousand watts move cables around ...break multiple grounds...etc yep well later! earthing is simple, once you know the rules *robin_sz waves 2.6.9-adeos #1 Sun Dec 19 15:52:35 GMT 2004 i686 GNU/Linux Dec 20th for two weeks OK ? hey tbl hows it hanging dude? hey notmuch how's it going robin? hey tbl, its going OK well, for some vlaues of OK ;) g-code ""optimizer"": http://axis.unpythonic.net/index.cgi/downloads/01103508580 cradek: did you see Paul Fox's message ""tkemc (on emc2) bugs/nits""? well, I replied to it, anyway did I miss anything interesting in the last two developer meetings? A little.. I'm just pleased to be at home, trying to dig out of my mounds of e-mail, most of it mailing lists... time for me to go jepler: not sure... jepler: ok, yes I did see it jepler: in fact I marked it with an ! intending to go read it more carefully later. *alex_joni waves *paul_c plays with chanserv. what's +v? voice alex_joni: A url for you... http://www.isd.mel.nist.gov/projects/rcslib/NMLcpp.html geee.. thanks I prefer the Ada version :D http://www.isd.mel.nist.gov/projects/rcslib/NML_Ada.html morning hello jepler paul_c: I downloaded some docs, I plan to read those in the next few weeks I'll try to comprehend the big picture then we can discuss what could be done *alex_joni is playing with doxygen http://193.226.12.129/emcstuff/doxygen/ test hmm ? oh internet and email is down for me...but this works must be problems from high winds/cold updated http://193.226.12.129/emcstuff/doxygen/ wth is emcmot_config_t ??? you ask me? :-) it's a struct defined in motion.h line 624 I think you need to fine tune your doxy-config yeah... I saw it outputs structs as classes It's pulling in stuff from the rtapi & hal tree bear in mind this is my first experience with doxygen should it only leave it up to libnml ? no other dirs? Are you using the config from CVS ? nope I used a Wizard :D *alex_joni is trying the doxconfig from CVS Doxygen is a usefull tool, but it doesn't always produce sane docs *alex_joni agrees Are you using a branch, or head ? an older head I was just curious if the output from doxygen is somehow usefull... and it does seem like that there should be some tags for a few of the functions that add comments to doxygen's output *alex_joni wonders if paul_c could point him to some existing tags? Nope - I need to go back through the revisions & branches to find them. how is it possible that SMC website is ""down"" so lame! oopsy ;-) paul_c: never mind, if I ever meet some, I think I'll recognize them id figure as large of a company as that would have some sort of redundant failovers or something. at least a few a networking company no less! try www.smc-europe.com but there are some products missing over here Try http://www.smc.org.uk/ yeah ill check to see if this product is in the uk hey paul i got a new laptop lol... The scottish mounteneering club powerbook g4, 12"" i love it, osx > * The scottish mountaineering club = SMC alex_joni, yeah i saw that heh the only one I found is the europe one, but only the german one works http://www.smc-europe.com/de/ i wonder if the german firmware is the same as the us ones okay so that didn't work! can't update english version with the german firmware alex_joni: emc2: lathe_fork - Check rs274ngc/interp_arc.cc for examples of Doxygen tags hi all Evening babu compiled emc2-cvs (yesterday), rtai (vesuvio) and kernel (2.4.27) new, now i get RTAPI: ERROR: version mismatch what does dmesg show ? dmesg output is on http://www.pastebin.com/131604 looks good to me One of two things spring to mind... Did you do a mrproper when building the kernel... and/or clean & configure in the emc2 tree i did no mrproper in the kerneldir, i just did a make-kpkg binary i downloaded the emc2 in a new dir so i didn't have to cleanup. the ./configure did run without any problems And RTAI ? hmm i think it will be best to rebuild all wanna try some new debs ? why not! gimme a sec to generate a Package list for the repo. deb http://81.100.211.99/debs ./ got a ""Unknown host morphix"" Hmmm... Check your apt/sources.list your hostname is morphix add morphix to your /etc/hosts hmm ok it works i don't need emc1 i am just using emc2 so i cant give you feedback for your emc and python2.3-axis package. should i install it and check it if works (unconfigured)? The emc package requires the 2.6.9 kernel... hmm i just use 2.4.27 on that machine Feel free to use the 2.4 stuff... ok removing your server from sources.list, thx anyway *babu has found the error: Please unset CONFIG_MODVERSIONS And disable APM *babu hates it to reconfigure and reconfigure same things again because he lost his GOOD_WORKING_CONFIG.CFG!! hi john hi les long day...proofing some g code 6 tool changes! but 50 turkey calls? right well 54 groups of 9 (using all the g5x offsets then 5 repeats changing the offset amounts with variables cutting and pasting all that stuff in a text editor sounds like fun ;-) my long day was running around christmas shopping just sent an email to Keith he says he is using segmentqueue want to confirm that the old ""jerk and stutter"" issue is coming up again *paul_c prods jmkasunich