is cia dead?
the bot that sends IRC messages when things are committed to the repo
CIA-2, what's up?
* SWPadnos kicks CIA-2
I'm looking through the emc code... is there any reason that some stuff in motion, task, etc can't be written in C++?
anything in the kernel can't be c++
therefore anything that talks to things in the kernel has to use C declarations
other than that, I don't know of any reasons why it can't be C++
that was my next question. so those parts are in kernel space (I'm not sure what that even means)
motion is, task isn't
implicit in your question is the assumption that using C++ is better, and you will find some firm opposition to that, especially in the areas of motion and hal :-)
actually, the userspace part (that deals with all the metadata) of HAL could be C++, and it would probably end up a lot cleaner
cia was working 4-5 hrs ago
except for the interface to all the C code in RT
yeah, your commit was the last it saw though
actually, orocos uses c++ in realtime motion control, and from anything I've read, if done correctly there isn't much if any performance hit.
I'm mainly looking at comments such as at the top of command.c
comments can be in C or C++ :)
there is limited support for "C++ in the kernel" in the RTAI patches, but I don't know how limited it is
of course we have additional requirements:
and thinking some sort of object oriented approach may help the problems mentioned there.
no malloc, no blocking, no library calls ...
oh yeah, and half the stuff recently committed for clearing structs and such
just thinking out loud and trying to learn. things can be abstracted more in C.
you'll find that the c++ code isn't very c++-ish
it uses classes and some inheritance, but otherwise it's not using the language features well
yeah, but I meant that you can actually do object oriented code in straight c
no inheritance, but at least fairly good abstraction. gtk does a pretty good job at that last I looked
there are a couple of things to keep in mind when looking at this stuff
first, EMC2 is a distributed system
there are separate tasks which communicate via NML
it's not always easy to figure out what gets done where (at least not for me)
I'm learning that slowly.
some of those tasks need to be able to run on separate physical computers
not that it's not easy to figure out, but how stuff works
so you can't rely on pointers and RTTI to help you
I have some sort of mental block on this actually, I've been looking at it and having it explained to me for years, and I still don't know for sure where all the parts go :)
yeah. I've not used RTTI much anyhow. I think I mentioned to you at the fest a method of dynamic construction that I have used in the past
I don't know how something like it would fit yet, but I'm slowly learning how things work (I think)
so does HAL communicate with emc via nml also?
yep, it was me
HAL is another beast entirely, and at the moment can only communicate within one PC
ok, so how does it do it? function calls?
though I think someone made an ethernet-based remote HAL driver, I don't know where it is
and functions which get added to RT threads
in userspace, it's strictly via shared memory, no function calls across the kernel/user boundary
doesn't nml use shared memory?
is it separate from the hal shared memory?
yes, they are separate
NML uses shared memory on the same machibne
but it can use TCP/IP or serial as well
and you can share the same data over multiple channels simultaneously
so you can have a local user interface and a remote one (on a separate PC) running at the same time, using the same control and status channels
so does hal not use nml because it needs to be faster?
hmmm. no, I wouldn't say that's the reason
though it is part of it
is there any kind of block diagram of emc2?
it'll take a minute or three to find though
I've been looking.
trying to understand the overall structure of the code
well, "the code" and "the system" don't really look quite the same
at least not in my view
I almost never know where to look for source files related to a particular part of EMC, but it could just be me
hmm, I'd like to understand both!
[03:55:09] <SWPadnos> http://www.linuxcnc.org/content/view/42/13/lang,en/
several block diagrams
take those with a grain of salt though, I think they're pre-HAL
I think they're diagrams jmkasunich made for himself when designing HAL
yeah, it says they are from emc1
but they're a start
the second one has HAL in a big interface layer
micges1 is now known as micges_emc
EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/gcode/main.lyx: add g90.1 g91.1 to quick reference and add label and index
EMC: 03bigjohnt 07TRUNK * 10emc2/docs/html/gcode.html: make link for g90.1 g91.1 match new label
Hi Ho, Hi Ho it's off to work I go :)
Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emcdevel/2009-06-19.txt
alex_joni, if you're around, it looks like CIA is screwed up
BJT-Work: thanks for cleaning up after my doc change - I didn't know what I was doing.
SWPadnos: how so?
well, I'm not seeing any messages from all of seb's commits
sure, but they didn't happen now :)
so CIA probably was screwed up
heh - oh look, there are a couple from bigjohnt :)
I'll just drink my coffee now ...
otoh, I just got an email from a change seb did more than 26h ago
yeah, I just got a couple of those too
yuck, I think micges's bug report is right, tolerance mode doesn't work right for arcs
the derivation is only right for lines making corners
I hate sourceforge's bug tracker
why is everything hidden by default?
why doesn't it show the image in the browser?
I agree firmly
EMC: 03cradek 07v2_3_branch * 10emc2/src/emc/kinematics/tp.c:
EMC: fix typo in a comment that might become important
EMC: to understand if someone wants to tackle bug #2808858
is M100-199 in 2.2 ?
it's been in EMC since about 126.96.36.199.0 :)
(maybe slightly later, but you get the idea :) )
I've slept since then :)
bjt-work: couldn't he use they pyvcp?
and put buttons on that?
can you 'dock' a pyvcp pannel to screens othet than axis?
I don't think so, that's a feature of AXIS, not pyvcp
That I what I was thinking.
skunkworks_ if I could figure out what he is trying to do it would easier to help him :/
uh-oh, you're sounding like me
I think the remaining question is whether he wants to do that with gcode. if so, it's easy to use the gcode multipurpose digital outputs
I asked him that and he said he wants to push a button and activate an output...
if he needs to use tcl and software he writes, he might want to look at how halshow does it
he can just exec a halcmd command from tcl
SWPadnos: can you explain that to him?
um. it's possible
I'd have to look up my login details for the website though, and I have no idea where that stuff is
oh. lucky that Firefox remembers
"but I am using tcl" vs "I added stuff to iocontrol" makes no sense
he may have been using emcsh, which would only be able to do things via NML
it makes even less sense to me :)
heh - around and around we go. ;)
well, let's see if I stopped the merry-go-round
I hope so
I think I'll celebrate early and have a radish for lunch...
um. yay. maybe
lerman: I think it was me who put your "in favor" because of my memory of your opinion at fest. Originally we were using that as a list to keep track of the opinions we'd heard -- later, people added their own to it.
some other opinions I recall: "anything is better than cvs" and "the board should decide, and then do it; that's why we elected you", heh
rob is now known as robh_
jepler: have you any info about task delay gliches?
it's not realtime, so there's no guarantee that it will execute at any particular time
but I think cradek confirmed there's something funky going on with circles and tolerance-mode
17:02 < cradek> yuck, I think micges's bug report is right, tolerance mode
doesn't work right for arcs
17:03 < cradek> the derivation is only right for lines making corners
alex_joni: I saw that
ok.. off to bed for me
SWPadnos: yes but if my yesterday "bug" was 1s delay of task that is also bad
well, it's annoying but not catastrophic
the machine would still follow the correct path, but the backplot would be wrong
unless you see the machine actually doing those incorrect moves
so you can't rely on preview and it's hard to debug
well, preview is different from backplot
the backplot is sampled in userspace, so it's only as reliable as your userspace timing
SWPadnos: point is that my machine actually doing these incorrect moves, so I think trace task gliches would be first to do
ok, if the machine does them then it's not a sampling problem :)
task can delay (or be crashed) for all the RT system cares - the program will continue to run as long as there are operations in the queue
SWPadnos: yes I know
It would be easier if rt modules can print to console
tail -f /var/log/messages or similar
SWPadnos: thanks, I didn't know that
there may be some things that don't look the same as dmesg - some timestamp formatting will be different or something
but you won't want to have anything print too regularly
anything RT anyway
I know I tested that few times :)
you can increase the size of the message log, though I think it requires a kernel recompile
it may have been made into some /proc or /sys setting though, I'm not sure
EMC: 03micges 07TRUNK * 10emc2/src/emc/task/taskintf.cc: Always update ferror info
cradek: is this intentional (spelling) in src/configure: Report bugs to <firstname.lastname@example.org>. ?
I am sure it's supposed to be a working address, not a broken one
I'll fix it
EMC: 03micges 07TRUNK * 10emc2/src/configure: fix typo in email address
EMC: 03jepler 07TRUNK * 10emc2/src/configure.in: fix an e-mail address that was wrong
micges: "configure" is a generated file. never edit it directly.
EMC: 03jepler 07TRUNK * 10emc2/src/configure: regenerate
SWPadnos_ is now known as SWPadnos
KimK is now known as KimK_afk