Thanks for help. My component is for interfacing my USB pendant, so I need pins for the inputs and outputs, and it also has an lcd, so I want to read the emc status and error information to display it on the lcd. I didnt need to be master, I just needed to get the timing right.
I'm having another issue with reading messages from the error channel. I've copied the code from shcom.cc where it will do a read() from the error channel. This is ok for my component, I receive operator error messages, but axis is no longer receiving the messages - I'm guessing there is only one message and I'm taking it. I was thinking I can do a peek() of the message, but how do I stop peek()ing the same message over and over. Or is there a better way? Or maybe I should ask - how does messaging and channels work? Is that documented? Thanks again, Frank > -----Original Message----- > From: Alex Joni [mailto:[email protected]] > Sent: Wednesday, 22 July 2009 1:10 AM > To: EMC developers > Subject: Re: [Emc-developers] Shared memory errors > > All the answers are in the emc.nml file. > Currently a component called emcsvr (emc server) is the > master of NML channels. > It is started pretty early in the 'emc' runscript, before > task and the GUI are started. > > If you want to have a different approach, you can have your > component as the master (but then you can't hijack the xemc > entry from the nml, as the GUIs also use that). > It would work to add a new name (mycomp), have it set up as > the master, clear the master flag from emcsvr. Then you need > to make sure you start your component first, and you try to > open all NML channels from the ini. > When a new process tries to open a NML channel, it checks > first if it's a master or not. If it is, it initializes the > channel rather than connecting to it. > > Regards, > Alex > > > ----- Original Message ----- > From: "Frank Tkalcevic" <[email protected]> > To: "'EMC developers'" <[email protected]> > Sent: Tuesday, July 21, 2009 12:48 > Subject: Re: [Emc-developers] Shared memory errors > > > >I think I can partly answer my own questions... > > > > It appears that the important MASTER bit needs to be up and > running first. > > If I load my component after emc has started, it works. > I'm currently > > using > > the POSTGUI_HALFILE to do this. Obviously my code wasn't > working as I > > thought. > > > > Some questions... > > > > Who is the master, and who is responsible for starting him? > > I have a usr component, with pins and parameters, that also > wants to > > monitor > > the emc statuses. Is there any notifications that tell me > the master is > > up > > and I can connect? Or should I just keep trying > periodically to connect > > until successful? > > > > Thanks, > > Frank > > > >> -----Original Message----- > >> From: Frank Tkalcevic [mailto:[email protected]] > >> Sent: Tuesday, 21 July 2009 6:50 PM > >> To: 'EMC developers' > >> Subject: Shared memory errors > >> > >> I've been writing a component, based on emclcd.cc and > >> shcom.cc. I think the code was working - it would start up > >> in a halrun, but now it fails to start with nml errors. > >> > >> I'm not sure how the shared memory works. Do I need to > >> allocate a new key(?) for my application? I just took > >> shcom.cc which uses "xemc". > >> > >> My component is also a usr component. Can it connect to the > >> share memory buffers? > >> > >> Can someone point me in the right direction? > >> > >> This is a snippet of the errors..... > >> > >> > >> > >> libnml/os_intf/_shm.c 206: shmget(1001(0x3E9),8192,0) failed: > >> (errno = 2): No such file or directory libnml/os_intf/_shm.c > >> 225: No shared memory buffer exists for this key and the > >> IPC_CREAT was not given. > >> shmctl: Invalid argument > >> libnml/cms/cms_cfg.cc 905: cms_config: > >> -4(CMS_NO_MASTER_ERROR: An error occured becouse the master > >> was not started.) Error occured during SHMEM create. > >> libnml/nml/nml.cc 368: NML: cms_config returned -1. > >> > >> ********************************************************** > >> * Current Directory = /home/frankt/emc2/config/sim > >> * > >> ********************************************************** > >> * BufferName = emcCommand > >> * BufferType = 0 > >> * ProcessName = xemc > >> * Configuration File = emc.nml > >> * CMS Status = -4 (CMS_NO_MASTER_ERROR: An error occured > >> becouse the master was not started.) > >> * Recent errors repeated: > >> NML: cms_config returned -1. > >> > >> shmget(1001(0x3E9),8192,0) failed: (errno = 2): No such file > >> or directory > >> > >> No shared memory buffer exists for this key and the IPC_CREAT > >> was not given. > >> > >> cms_config: -4(CMS_NO_MASTER_ERROR: An error occured becouse > >> the master was not started.) Error occ > >> * BufferLine: B emcCommand SHMEM localhost > >> 8192 0 0 1 16 1001 TCP=5005 xdr > >> * ProcessLine: P xemc emcCommand LOCAL > >> localhost W 0 10.0 0 10 > >> * Config File = emc.nml > >> * error_type = 0 (NML_NO_ERROR) > >> ************************************************************ > >> > >> libnml/os_intf/_shm.c 206: shmget(1002(0x3EA),10240,0) > >> failed: (errno = 2): No such file or directory > >> libnml/os_intf/_shm.c 225: No shared memory buffer exists for > >> this key and the IPC_CREAT was not given. > >> shmctl: Invalid argument > >> libnml/cms/cms_cfg.cc 905: cms_config: > >> -4(CMS_NO_MASTER_ERROR: An error occured becouse the master > >> was not started.) Error occured during SHMEM create. > >> libnml/nml/nml.cc 368: NML: cms_config returned -1. > >> > >> ********************************************************** > >> * BufferName = emcStatus > >> * BufferType = 0 > >> * ProcessName = xemc > >> * Configuration File = emc.nml > >> * CMS Status = -4 (CMS_NO_MASTER_ERROR: An error occured > >> becouse the master was not started.) > >> * Recent errors repeated: > >> > > > > > > > -------------------------------------------------------------- > ---------------- > > Enter the BlackBerry Developer Challenge > > This is your chance to win up to $100,000 in prizes! For a > limited time, > > vendors submitting new applications to BlackBerry App > World(TM) will have > > the opportunity to enter the BlackBerry Developer > Challenge. See full > > prize > > details at: http://p.sf.net/sfu/Challenge > > _______________________________________________ > > Emc-developers mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > > > -------------------------------------------------------------- > ---------------- > Enter the BlackBerry Developer Challenge > This is your chance to win up to $100,000 in prizes! For a > limited time, > vendors submitting new applications to BlackBerry App > World(TM) will have > the opportunity to enter the BlackBerry Developer Challenge. > See full prize > details at: http://p.sf.net/sfu/Challenge > _______________________________________________ > Emc-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-developers > ------------------------------------------------------------------------------ _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
