#emc | Logs for 2011-01-02

[00:04:11] -!- theorb [theorb!~theorb@] has joined #emc
[00:04:40] <alex_joni> ries: cool
[00:04:54] -!- theorbtwo has quit [Ping timeout: 260 seconds]
[00:04:59] theorb is now known as theorbtwo
[00:06:10] -!- ries has quit [Ping timeout: 276 seconds]
[00:11:38] -!- ries [ries!~ries@] has joined #emc
[00:12:16] <ries> alex_joni: sorry for the DC... my new cable WIFI modem likes to disconnect every 5 minutes orso
[00:16:35] -!- emcrules_laptop has quit [Ping timeout: 240 seconds]
[00:19:47] -!- ries has quit [Read error: Connection reset by peer]
[00:19:54] -!- ries [ries!~ries@] has joined #emc
[00:33:31] <Valen> looks like its running emc
[00:33:36] <Valen> cool
[00:41:55] -!- mhaberler has quit [Ping timeout: 265 seconds]
[00:44:47] <ries> Valen: yes indeed... we are asking (the mechmate forum) to see if they can post some more pictures
[00:45:44] -!- robh__ has quit [Ping timeout: 260 seconds]
[00:54:30] -!- andypugh has quit [Quit: andypugh]
[01:12:49] -!- dgarr has quit [Ping timeout: 272 seconds]
[01:14:55] -!- dgarr [dgarr!~dgarrett@adsl-75-61-65-2.dsl.pltn13.sbcglobal.net] has joined #emc
[01:18:43] -!- Roguish has quit [Remote host closed the connection]
[01:23:36] -!- servos4ever [servos4ever!~chatzilla@173-87-48-52.dr01.hnvr.mi.frontiernet.net] has joined #emc
[02:03:38] <elmo40> http://popartmachine.com/gallery/technical-information.php
[02:04:03] <elmo40> doesn't give any software info other then Inkscape/Illustrator
[02:05:45] <elmo40> not much of a robot, per say...
[02:07:24] -!- qq- has quit [Ping timeout: 260 seconds]
[02:08:11] -!- cradek has quit [Ping timeout: 240 seconds]
[02:08:16] -!- cradek [cradek!~chris@outpost.timeguy.com] has joined #emc
[02:08:30] -!- qq- [qq-!~Moldovean@unaffiliated/qq-] has joined #emc
[02:15:56] -!- servos4ever has quit [Quit: ChatZilla 0.9.85 [SeaMonkey 2.0.10/20101027205253]]
[02:49:51] -!- qq- has quit [Ping timeout: 240 seconds]
[02:50:18] -!- qq- [qq-!~Moldovean@unaffiliated/qq-] has joined #emc
[03:10:09] -!- emcrules has quit [Read error: Connection reset by peer]
[03:27:19] -!- pcw_home has quit [Remote host closed the connection]
[03:27:40] -!- pcw_home [pcw_home!~chatzilla@ip-66-80-167-54.sjc.megapath.net] has joined #emc
[03:55:44] -!- Valen has quit [Quit: Leaving.]
[04:19:44] -!- emcrules_laptop [emcrules_laptop!~emcrules_@CPE001310e6c94f-CM001bd71cb794.cpe.net.cable.rogers.com] has joined #emc
[04:22:09] -!- Birdman3131 has quit [Ping timeout: 240 seconds]
[04:24:48] -!- Birdman3131 [Birdman3131!~quassel@76-220-98-18.lightspeed.fyvlar.sbcglobal.net] has joined #emc
[04:33:51] -!- ries has quit [Quit: ries]
[04:39:47] -!- qq- has quit [Ping timeout: 240 seconds]
[04:52:22] -!- qq- [qq-!~Moldovean@unaffiliated/qq-] has joined #emc
[05:01:41] -!- foxdung [foxdung!~IceChat77@ip-206-124-216-130.static.eatel.net] has joined #emc
[05:30:13] -!- rob_melb [rob_melb!~rob@c114-77-35-34.brodm3.vic.optusnet.com.au] has joined #emc
[05:30:48] -!- rob_melb [rob_melb!~rob@c114-77-35-34.brodm3.vic.optusnet.com.au] has parted #emc
[05:44:09] -!- nullie [nullie!~nullie@] has joined #emc
[05:47:29] -!- dgarr has quit [Ping timeout: 240 seconds]
[05:56:17] -!- jgnoss [jgnoss!~jgnoss@] has joined #emc
[05:59:29] <jgnoss> Hi all, anyone knows how to separate the enable for each axe and just enable them right before the axis moves
[06:00:06] <SWPadnos> no, and you probably don't want to do that anyway
[06:00:28] <jgnoss> pls. give me a hint why not
[06:00:41] <SWPadnos> all the enables are set whenever there might be motion, so you can't do it without detecting steps (which can be done, sort of)
[06:00:58] <SWPadnos> because even when an axis isn't being told to move, it is still being told to hold still
[06:01:18] <SWPadnos> cutting forces might move an axis that is stationary if it's de-powered
[06:01:24] <jgnoss> ahh ok, so I have to be more specific
[06:01:35] <SWPadnos> that usually helps :)
[06:02:03] -!- mhaberler [mhaberler!~chatzilla@extern-181.stiwoll.mah.priv.at] has joined #emc
[06:02:04] <SWPadnos> in any case, it's not easy, and may not be possible
[06:02:41] <SWPadnos> if it is OK to enable at the same time as an axis needs to move, then it might work. if you need a delay, then I don't think it can be done
[06:03:34] <jgnoss> in reality I dont like to take the amp with that signal, I have a driver that has several "Power stages" and I want the driver go to low power when there is no movement on the axis
[06:04:28] <jgnoss> the amp still stays powered, to hold the axis in position
[06:05:08] <jgnoss> but gives more power if axis should move
[06:05:09] -!- nullie has quit [Quit: Ex-Chat]
[06:05:43] <SWPadnos> ok
[06:06:08] <jgnoss> so I need a signal that is right before the motion controller tells a axis to move
[06:06:18] <SWPadnos> well, that's what doesn't exist :)
[06:06:24] <jgnoss> uff
[06:06:36] <SWPadnos> if it can be at the same time, then you're OK
[06:07:10] <jgnoss> I tried to analyze and understand what motion really does
[06:07:30] <jgnoss> is that the part who does the gcode interpretation?
[06:07:35] <SWPadnos> nope
[06:07:39] <SWPadnos> that's the interpreter
[06:08:09] <SWPadnos> motion is the realtime part that actually calculates the trajectory, after being issued movement commands by the interpreter
[06:08:25] <SWPadnos> it also takes into account things like feed override
[06:11:02] <jgnoss> ok, he reads the gcode, interpret's it and does some magick to know whats physical possible and makes sense and what not, and then?
[06:11:18] <SWPadnos> err
[06:11:25] <jgnoss> sorry
[06:11:50] <SWPadnos> interpreter interprets (in userspace) and sends motion commands to realtime controller
[06:12:37] <SWPadnos> realtime motion controller calculates new points along the trajectory every servo cycle (usually 1000 times/sec), and outputs new positions which are constrained by the accel and vel llimits you set
[06:12:42] <SWPadnos> limits
[06:13:16] <SWPadnos> those new positions for each motor are then fed into another component which depends on your physical and interface hardware
[06:13:20] <jgnoss> ahh OK, so that comes long after interpreting the gcode
[06:13:35] <SWPadnos> this is often a software step generator that is connected to a parallel port
[06:13:56] <SWPadnos> yes, the entire G-code file may be queued before the first move has finished
[06:14:06] <SWPadnos> depends on the file and the move ...
[06:14:31] <jgnoss> ok, slightly comes light in
[06:14:59] <SWPadnos> excellent
[06:16:17] <SWPadnos> in that case, I'll head to bed. good night
[06:16:44] <jgnoss> so I have to think a bit more about that and what possible solution I can get
[06:16:59] <jgnoss> good night and many thanks
[06:20:36] -!- me345 [me345!~me345@adsl-75-15-250-79.dsl.bkfd14.sbcglobal.net] has joined #emc
[06:31:48] -!- psha [psha!~psha@] has joined #emc
[07:00:29] -!- mhaberler has quit [Ping timeout: 240 seconds]
[07:02:08] -!- mhaberler [mhaberler!~chatzilla@imac.stiwoll.mah.priv.at] has joined #emc
[07:14:11] -!- emcrules_laptop has quit [Ping timeout: 240 seconds]
[07:38:04] -!- skunkworks has quit [Remote host closed the connection]
[08:50:03] -!- psha has quit [Quit: leaving]
[08:59:03] -!- nullie [nullie!~nullie@] has joined #emc
[08:59:41] -!- Valen [Valen!~Valen@] has joined #emc
[09:02:58] -!- nullie has quit [Client Quit]
[09:13:23] -!- qq- has quit [Read error: Operation timed out]
[09:27:53] -!- OoBIGeye [OoBIGeye!~kent@81-235-191-51-no48.tbcn.telia.com] has joined #emc
[09:52:55] -!- isssy [isssy!EMCIRCUser@78-83-54-41.spectrumnet.bg] has joined #emc
[09:53:21] -!- isssy has quit [Client Quit]
[10:04:17] -!- robh__ [robh__!~robert@5ace70af.bb.sky.com] has joined #emc
[10:14:06] -!- Valen has quit [Quit: Leaving.]
[10:23:21] -!- nullie [nullie!~nullie@] has joined #emc
[10:27:51] -!- awallin [awallin!~quassel@cs27061165.pp.htv.fi] has joined #emc
[10:31:15] -!- psha [psha!~psha@] has joined #emc
[10:38:01] -!- nullie has quit [Quit: Ex-Chat]
[10:55:47] <archivist> jgnoss, you should not power down an axis due to the stepper losing its ability to hold position
[10:57:47] -!- mhaberler has quit [Ping timeout: 240 seconds]
[11:14:03] -!- e3m [e3m!~e3m@] has joined #emc
[11:19:20] -!- isssy [isssy!EMCIRCUser@78-83-54-41.spectrumnet.bg] has joined #emc
[11:24:59] -!- vezza has quit [Remote host closed the connection]
[11:27:53] <awallin> is there a way to set the AXIS jog-speed from HAL or halui ? the halui jog-speed seems to be a separate thing
[11:37:41] -!- _sh3 [_sh3!debian-tor@gateway/tor-sasl/sh3/x-62271040] has joined #emc
[11:47:37] <jthornton> awallin: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Simple_Remote_Pendant
[11:50:44] -!- isssy has quit [Quit: Visitor from www.linuxcnc.org]
[11:54:14] <awallin> jthornton: that is using halui.jog-speed, I don't see anything that would set the AXIS jog-speed
[11:56:23] <psha> awallin: i see no hal pins too
[11:57:17] <awallin> for example feed-override is a kind of 'global' variable. if you set it from one UI, everyone else will notice. but it seems jog-speed is local to each GUI (halui, AXIS, etc)
[11:57:33] <jthornton> oh, I misunderstood your question
[12:03:16] <jthornton> must be the lack of coffee
[12:13:08] -!- JT-D510 [JT-D510!~chatzilla@216-41-143-50.semo.net] has joined #emc
[12:21:18] <JT-D510> psha: I seem to be doing something wrong... I do . ./scripts/emc-environment, run scripts/emc configs/sim/axis.ini 2.5 shows up but when I open another terminal and do glade the original one shows up without the Hal widgets
[12:22:00] -!- psha has quit [Read error: No route to host]
[12:22:27] -!- psha [psha!~psha@] has joined #emc
[12:23:05] <psha> on russian forum i've found question about axis jog being not stable - jog speed reaches it's maximum and then drop and gain periodicaly
[12:23:36] <psha> it's related to X11 autorepeat feature - axis get key released event and halts jog, then get key press and continues it
[12:23:55] <psha> in most cases time delta between jog stop and start is too small to be noticed
[12:24:05] <psha> anyone else noticed that behaviour?
[12:24:39] <JT-D510> I've not noticed it even with long jogs on the plasma table
[12:27:43] <psha> user states that he's got it after increasing acceleration value - so mill has noticable speed drop in that short period. after switching of autorepeat everything isok
[12:30:37] <Jymmm> So, due to X11 axis is seeing a pulse train instead of a solid key press (so to speak)?
[12:31:35] <psha> Jymmm: it's _always_ seing pulsing key instead of one press - unless you've switched that off
[12:32:06] <Jymmm> Is that normal for X11?
[12:32:13] <Jymmm> or a bug?
[12:35:22] <psha> normal for x11 - otherwise every app has to do some hacks to move several lines when arrow key is pressed
[12:36:17] -!- mhaberler [mhaberler!~chatzilla@imac.stiwoll.mah.priv.at] has joined #emc
[12:36:52] <psha> i think for gtk jogs i'll add some trottle protection but for tk i see no way to fix that...
[12:39:30] <psha> so since nobody here noticed same behaviour i'd rather suggest him to play around with his setup
[12:43:02] -!- qq- [qq-!~Moldovean@] has joined #emc
[12:43:02] -!- qq- has quit [Changing host]
[12:43:02] -!- qq- [qq-!~Moldovean@unaffiliated/qq-] has joined #emc
[12:46:56] * JT-D510 wonders why I can't get the hal widgets to show up in glade
[12:47:26] <psha> not source RIP environment?
[12:47:29] <psha> sourced
[12:49:57] <JT-D510> I did . ./scripts/emc-environment then ran axis 2.5 sim
[12:50:51] <psha> and glade still don't show you any gladevcp widgets?
[12:50:57] <JT-D510> no
[12:51:27] <JT-D510> I did a pull yesterday and a build
[12:51:30] <psha> any meaningful errors in console? (surely you are starting glade from console :) )
[12:53:37] <JT-D510> yes, I remember that part :) http://pastebin.ca/2036659
[12:55:52] <psha> hm, it's not loading them at all
[12:56:18] <psha> env | grep echo $GLADE_CATALOG_PATH
[12:56:30] <psha> without 'env| grep' :)
[12:56:38] <psha> started one command, ended with another ;)
[12:56:39] -!- mhaberler has quit [Ping timeout: 260 seconds]
[12:57:06] <JT-D510> I did a make clean now a make be done in a minute
[13:02:50] -!- e3m has quit [Quit: Visitor from www.linuxcnc.org]
[13:02:56] -!- ries [ries!~ries@] has joined #emc
[13:05:07] -!- ries has quit [Read error: Connection reset by peer]
[13:05:15] -!- ries [ries!~ries@] has joined #emc
[13:06:20] <JT-D510> john@d510:~/emc2-dev$ echo $GLADE_CATALOG_PATH
[13:06:22] <JT-D510> /home/john/emc2-dev/lib/python/gladevcp
[13:07:59] <JT-D510> psha: http://pastebin.ca/2036669
[13:09:41] <JT-D510> when I try and open my .ui I get and error Failed to load /home/john/emc2/configs/gvcp/vcp.ui.
[13:09:43] <JT-D510> The following required catalogs are unavailable: gladevcp
[13:10:04] -!- qq- has quit [Ping timeout: 276 seconds]
[13:10:57] <JT-D510> I see gladevcp_makepins.yp but not gladevcp
[13:12:00] <Jymmm> Wanna see something cool... http://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html
[13:12:32] <Jymmm> Completely client side SVG editor using JS
[13:14:31] <JT-D510> there is the directory gladevcp
[13:16:38] <JT-D510> psha: my RIP is /home/john/emc2-dev
[13:16:53] <JT-D510> it's looking in /home/john/emc2
[13:21:05] -!- JT-D510 has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6.13/20101206122310]]
[13:24:15] -!- qq- [qq-!~Moldovean@unaffiliated/qq-] has joined #emc
[13:24:23] <psha> JT: maybe some time ago it was emc2-dev and then you've moved to emc2? i've same problem - emc-environment was not up to date
[13:25:42] <jthornton> I just rebooted and ran emc-environment and it shows the proper path now to gladevcp
[13:27:27] <jthornton> but glade does not have the hal widgets
[13:30:43] <jthornton> I will start from scratch with a fresh one
[13:31:09] -!- psha has quit [Quit: Lost terminal]
[13:31:53] -!- psha [psha!~psha@] has joined #emc
[13:37:13] -!- robh__ has quit [Quit: Leaving]
[13:48:12] -!- me345 has quit [Remote host closed the connection]
[14:01:51] -!- qq- has quit [Ping timeout: 240 seconds]
[14:07:49] -!- OoBIGeye has quit [Ping timeout: 260 seconds]
[14:23:08] -!- qq- [qq-!~Moldovean@unaffiliated/qq-] has joined #emc
[15:01:12] <alex_joni> http://www.whitehouse.gov/sites/default/files/microsites/ostp/pcast-nitrd-report-2010.pdf
[15:01:15] <alex_joni> something nice to read
[15:04:27] <ries> elmo40: on your yesterdays note.. from the video you can see they use EMC2, they just don't mentioned it... the design is a mechmate (not there own design) although the tool holders are :)
[15:08:47] -!- mhaberler [mhaberler!~chatzilla@imac.stiwoll.mah.priv.at] has joined #emc
[15:23:45] -!- skunkworks [skunkworks!~chatzilla@str-bb-cable-south2-static-6-412.dsl.airstreamcomm.net] has joined #emc
[15:25:14] -!- acemi [acemi!~acemi@unaffiliated/acemi] has joined #emc
[15:32:09] -!- andypugh [andypugh!~andy2@cpc2-basl1-0-0-cust1037.basl.cable.virginmedia.com] has joined #emc
[15:34:27] -!- skunkworks has quit [Read error: Connection reset by peer]
[15:34:29] -!- skunkworks_ [skunkworks_!~chatzilla@str-bb-cable-south2-static-6-412.dsl.airstreamcomm.net] has joined #emc
[15:34:32] skunkworks_ is now known as skunkworks
[15:36:26] -!- dgarr [dgarr!~dgarrett@adsl-75-61-65-2.dsl.pltn13.sbcglobal.net] has joined #emc
[15:36:32] -!- mhaberler has quit [Ping timeout: 255 seconds]
[15:41:56] <jthornton> psha: new RIP + reboot and still no hal in glade... it must be broken or I am
[15:42:09] <jthornton> glade catalog path looks good
[15:43:33] -!- JT-D510 [JT-D510!~chatzilla@216-41-143-50.semo.net] has joined #emc
[15:43:44] <JT-D510> http://pastebin.ca/2036839
[15:51:51] -!- emcrules [emcrules!~emcrules@CPE001310e6c94f-CM001bd71cb794.cpe.net.cable.rogers.com] has joined #emc
[16:04:54] <psha> JT-D510: what's value of CATALOG_PATH?
[16:05:24] <psha> glade output indicates that it's not looking for catalog at all
[16:11:41] <JT-D510> do like echo $CATALOG_PATH?
[16:12:04] <JT-D510> that returns CATALOG_PATH
[16:13:20] <JT-D510> empty return
[16:14:04] <psha> echo $GLADE_CATALOG_PATH
[16:14:11] <JT-D510> blank return
[16:14:45] <psha> and EMC_HOME - set?!
[16:15:06] <psha> EMC2_HOME?
[16:15:09] <SWPadnos> env > pastebin :)
[16:15:58] <JT-D510> http://pastebin.ca/2036876
[16:16:03] <elmo40> ries: ya, I noticed the machine was not 'theirs', but the brush holders, stroke generation and colour selector was theirs. Would like to see the script they came up with to generate the appropriate brush techniques
[16:18:39] <JT-D510> john@d510:~/emc2-dev/scripts$ . ./emc-environment
[16:18:41] <JT-D510> john@d510:~/emc2-dev/scripts$ echo $GLADE_CATALOG_PATH
[16:18:42] <JT-D510> /home/john/emc2-dev/lib/python/gladevcp
[16:19:09] -!- nullie [nullie!~nullie@nullie.telenet.ru] has joined #emc
[16:21:52] <JT-D510> psha: when I start Axis it removes the $GLADE_CATALOG_PATH
[16:25:43] <JT-D510> psha: http://pastebin.ca/2036889
[16:26:22] * JT-D510 wanders back out to the shop...
[16:57:33] -!- awallin has quit [Remote host closed the connection]
[16:57:54] -!- awallin [awallin!~quassel@cs27061165.pp.htv.fi] has joined #emc
[17:00:56] -!- Roguish [Roguish!~chatzilla@c-67-174-215-143.hsd1.ca.comcast.net] has joined #emc
[17:03:33] -!- mikegg [mikegg!~mike@188-22-177-198.adsl.highway.telekom.at] has joined #emc
[17:05:14] -!- Roguish has quit [Remote host closed the connection]
[17:33:48] -!- emcrules has quit [Quit: Visitor from www.linuxcnc.org]
[17:35:29] -!- nullie has quit [Quit: Ex-Chat]
[17:35:50] -!- nullie [nullie!~nullie@nullie.telenet.ru] has joined #emc
[17:38:01] -!- nullie has quit [Client Quit]
[17:44:51] <psha> JT: Try to put symlink from hal_python.xml to /usr/share/glade3/catalogs/
[17:45:18] <psha> if after this glade will pick widgets - something is in env
[17:45:29] <JT-Shop> ok
[17:45:49] <psha> if not - it'll report what's wrong
[17:52:41] <JT-D510> put it in usr/share/glade3/catalogs?
[17:54:11] <ries> elmo40: indeed.... it seems like that the machine does a bit more then just applying colors, it can mix and clean brushes aswell.. VEry cleaver :)
[17:56:12] -!- mikeggg [mikeggg!~mike@91-115-138-87.adsl.highway.telekom.at] has joined #emc
[17:56:21] <JT-D510> psha: http://pastebin.ca/2036976
[17:57:22] -!- mikegg has quit [Ping timeout: 276 seconds]
[18:17:01] -!- Roguish [Roguish!~chatzilla@c-67-174-215-143.hsd1.ca.comcast.net] has joined #emc
[18:19:07] -!- mark_ [mark_!~mark@adsl-70-239-88-156.dsl.bltnin.sbcglobal.net] has joined #emc
[18:19:19] -!- mark_ has quit [Remote host closed the connection]
[18:20:08] -!- mark_ [mark_!~mark@adsl-70-239-88-156.dsl.bltnin.sbcglobal.net] has joined #emc
[18:29:10] -!- mikeggg has quit [Ping timeout: 260 seconds]
[18:33:03] <psha> JT-D510: in RIP env? it fails to find gladevcp modules in $EMC2_HOME/lib/python
[18:36:19] <andypugh> Interesting question on the forum. Somebody wants to cycle through axes to jog by pressing a switch. I can think of ways to do it by adding one on button-press, masking with 0x03 and then using select8 to enable one axis, but it seems a little clunky.
[18:40:37] <cradek> ladder! ladder!
[18:41:48] <andypugh> Well, I would use a custom .comp :-)
[18:42:10] <cradek> sure, or that
[18:42:20] <andypugh> If you want to explain to him how to do it in CL feel free :-)
[18:42:38] <cradek> first, set up CL, then write the obvious thing, test and repeat until it works
[18:46:17] <JT-D510> psha: no it was not in a RIP env but in the RIP it does work now :)
[18:47:14] <andypugh> Aha! updown.comp is the key.
[18:48:20] <cradek> sorta... it doesn't mix with mux
[18:48:37] <andypugh> select8 ?
[18:48:59] <cradek> yep that might work
[18:49:18] <cradek> easier in ladder :-)
[18:49:32] <cradek> you have bitwise expressions, counters, edge triggering, etc
[18:51:11] <psha> JT-D510: very strange that it's not picking GLADE_CATALOG_PATH...
[18:51:18] <psha> is it lucid install?
[19:03:05] <andypugh> That _blasted_ forum decided I was a guest while I was typing a very long reply including 20+ lines of HAL, and rejected the reply. I am not happy
[19:11:59] -!- robh__ [robh__!~robert@5ace70af.bb.sky.com] has joined #emc
[19:12:51] -!- WonTu [WonTu!~WonTu@p57B572F3.dip.t-dialin.net] has joined #emc
[19:13:06] -!- WonTu [WonTu!~WonTu@p57B572F3.dip.t-dialin.net] has parted #emc
[19:15:14] -!- andypugh_ [andypugh_!~andy2@cpc2-basl1-0-0-cust1037.basl.cable.virginmedia.com] has joined #emc
[19:15:14] -!- andypugh has quit [Read error: Connection reset by peer]
[19:15:14] andypugh_ is now known as andypugh
[19:21:59] <pcw_home> Thats happened enough to me that I alway copy/paste long replies to a scratchpad before hitting submit
[19:22:01] <pcw_home> (though its better now that the timeout has been lenghened)
[19:22:50] -!- drill has quit [Ping timeout: 260 seconds]
[19:23:03] -!- drill [drill!~question@46-126-159-16.dclient.hispeed.ch] has joined #emc