Perfect ... you are in right ... problem solved finally. you use keystick on nml file ..... you have a 3d printer? linear or delta?
I work on these project from 2017 but only 2/3 week per years and only during my lauch time (max 30min) .... so my teaching about emc file ecosistem is bad. Every time a very little problem become big enough ... I do not know if I can ever offer you a beer for this ... but you deserve it ... maybe even two. Hello and thanks bkt Il giorno mar 4 dic 2018 alle ore 23:40 Frank Tkalcevic < fr...@franksworkshop.com.au> ha scritto: > You want... > > If there is a new message > > AND > > The connection is valid > > So... > > if((stat->peek() == EMC_STAT_TYPE) && (stat->valid())) > { > // Good > } > else > { > // Either bad, or no message > } > > But really, it should be > > If ( !stat->valid()) > { > // connection bad > } > else > { > int status = stat->peek() > If ( status == EMC_STAT_TYPE ) > { > // new message > } > Else if ( status == 0 ) > { > // no new message > } > Else /* if (status == -1 ) > { > // error reading message > } > } > > -----Original Message----- > From: theman whosoldtheworld [mailto:bleachk...@gmail.com] > Sent: Wednesday, 5 December 2018 6:24 AM > To: EMC developers > Subject: Re: [Emc-developers] [Emc-users] [EMC] NML_FILE = emc.nml > > Nooo ... the right code is these??: > > /*********** CASE 1 *******************/ > > if((stat->peek() == EMC_STAT_TYPE) || (stat->valid())) /* > error ... these condition never valid */ > { > /** send my best position to ui **/ > } > else { /** error condition?? **/ } > > or these one? > > /*********** CASE 2 *******************/ > if((stat->peek() == EMC_STAT_TYPE) || (stat->valid())) /* > error ... these condition never valid */ > { > /** error condition?? **/ > } > else { /** send my best position to ui **/ } > > IF THE RIGHT CASE IS 1 (ONE) ALL WORKS RIGHT ... nothing to do .... else if > the right id CASE 2 ... I have some problem .... > I not know stat->peek() .... but stat->valid() i think is boolean so > probabili I invert the condition and the right case is CASE 1 .... so my > program works. > > Can you confirm these? > > regards > bkt > > Il giorno lun 3 dic 2018 alle ore 20:20 Frank Tkalcevic < > fr...@franksworkshop.com.au> ha scritto: > > > Just confirming, which line do you still get the error? What is the > error? > > > > > > Here are some things you can check... > > > > After > > > > RCS_STAT_CHANNEL *stat = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", > > "xemc", "/home/mypc/linuxcnc-dev/configs/sim/axis/emc.nml"); > > > > you can > > > > if ( !stat->valid()) > > { > > // there is an error > > } > > > > Also, stat->peek() returns... > > > > -1 on error, > > 0 no new data, > > EMC_STAT new data > > > > Did you update the path to the emc.nml file in the ini file? Both > > linuxcnc real time and your program need to use the same .nml file. > > > > > > > > > > > > -----Original Message----- > > From: theman whosoldtheworld [mailto:bleachk...@gmail.com] > > Sent: Monday, 3 December 2018 11:53 PM > > To: EMC developers > > Subject: Re: [Emc-developers] [Emc-users] [EMC] NML_FILE = emc.nml > > > > @franks thanks .... never understand that I must insert in my config > > folder (or absolute path file) with emc.nml file ..... so actually as > test > > pourpose I've insert in my c++ app an adbolute path like these: > > > > RCS_STAT_CHANNEL *stat = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", > > "xemc", "/home/mypc/linuxcnc-dev/configs/sim/axis/emc.nml"); > > > > now nothing about error in compiling time .... the app start ... but i've > > an error in these point of code: > > > > RCS_STAT_CHANNEL *stat = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", > > "xemc", "/home/mypc/linuxcnc-dev/configs/sim/axis/emc.nml"); > > > > > > if((stat->peek() == EMC_STAT_TYPE) || (stat->valid())) /* > > error ... these condition never valid */ > > { > > corri = false; > > corriPlus = false; > > sendPosition(Error, Error, Error); > > > > qDebug() << " errore EMC_STAT_TYPE ...... "; > > } > > else > > { > > EMC_STAT *emcStatus = > > static_cast<EMC_STAT*>(stat->get_address()); > > > > /*std::cout << emcStatus->motion.traj.position.tran.x << > " > > " > > << > emcStatus->motion.traj.position.tran.y > > << " " > > << > emcStatus->motion.traj.position.tran.z > > << "\n";*/ > > > > X = > > QString(QChar::fromLatin1(emcStatus->motion.traj.position.tran.x )); > > /*********** these conversion is really wrong ****************/ > > Y = > > QString(QChar::fromLatin1(emcStatus->motion.traj.position.tran.y )) ; > > /*********** these conversion is really wrong ****************/ > > Z = > > QString(QChar::fromLatin1(emcStatus->motion.traj.position.tran.z )) ; > > /*********** these conversion is really wrong ****************/ > > > > > > qDebug() << " position x: " << X ; > > qDebug() << " position y: " << Y; > > qDebug() << " position z: " << Z; > > > > emit sendPosition(X, Y ,Z); > > > > } > > > > stat is never valid or == to EMC_STAT_TYPE ... but is possible to have my > > emcStatus->motion.traj.position.tran.x, > > emcStatus->motion.traj.position.tran.y, > > emcStatus->motion.traj.position.tran.z HEUREKA!! > > > > actually I not know why I have these situation ... I've used your emc.nml > > file .... without hidcomp and keystick part. > > > > bkt > > > > Il giorno ven 30 nov 2018 alle ore 23:17 Frank Tkalcevic < > > fr...@franksworkshop.com.au> ha scritto: > > > > > This is what I use on mine... > > > > > > https://github.com/ftkalcevic/CNCConfig/blob/master/9x20lathe/emc.nml > > > > > > I've added entries for my own process, hidcomp. The linuxcnc I'm > running > > > is a bit old, so I don't know if the buffer sizes are correct. > > > > > > > > > > > > > > > -----Original Message----- > > > From: theman whosoldtheworld [mailto:bleachk...@gmail.com] > > > Sent: Friday, 30 November 2018 11:34 PM > > > To: Enhanced Machine Controller (EMC) > > > Cc: EMC developers > > > Subject: Re: [Emc-developers] [Emc-users] [EMC] NML_FILE = emc.nml > > > > > > no solution for these ... if I try to insert the row obtain an error > > > relative to "impossible establish nml connection" (more or less these > is > > > the messages that appear on terminal) if not insert these row if I try > to > > > ruan a c++ program like these: > > > > > > void qtdro::dro() > > > { > > > // const QStringList args = QCoreApplication::arguments(); > > > const QStringList args = QApplication::arguments(); > > > > > > > > > if(args.isEmpty() || (args.size() < 1)) > > > { > > > /*std::cerr << "Usage: " << argv[0] << " NMLFILE\n";*/ > > > qDebug() << "NMLFILE is not open yet"; > > > qDebug() << "args is open? ...." << args.isEmpty(); > > > qDebug() << "args.size? ....... " << args.size(); > > > qDebug() << "args.[0] contains? ....... " << args[0]; > > > } > > > else > > > { > > > qDebug() << "args is open? ...." << args.isEmpty(); > > > qDebug() << "args.size? ....... " << args.size(); > > > qDebug() << "args.[0] contains? ....... " << args[0]; > > > qDebug() << "args.[0] contains? ....... " << args[1]; > > > > > > QString s0 = args[0]; > > > QString s1 = args[1]; > > > QString s2 = > > > "/home/mypc/linuxcnc-dev/configs/sim/axis/axis.ini"; > > > > > > const char *nmlfile = s2.toStdString().c_str(); > > > qDebug() << "consta chars c2 contains? ....... " << > > > s2.toStdString().c_str(); > > > qDebug() << "consta chars c2 contains? ....... " << *c2; > > > //RCS_STAT_CHANNEL *stat = new RCS_STAT_CHANNEL(emcFormat, > > > "emcStatus", "xemc", nmlfile); > > > RCS_STAT_CHANNEL *stat = new RCS_STAT_CHANNEL(emcFormat, > > > "emcStatus", "xemc", > > "/home/mypc/linuxcnc-dev/configs/sim/axis/axis.ini"); > > > > > > I've a return messages like these: > > > > > > libnml/cms/cms_cfg.cc 496: No buffer-line entry found for buffer > > emcStatus > > > in config file /home/mypc/linuxcnc-dev/configs/sim/axis/axis.ini. > > > libnml/nml/nml.cc 370: NML: cms_config returned -1. > > > > > > ********************************************************** > > > * Current Directory = /home/mypc/linuxcnc-dev/scripts > > > * > > > ********************************************************** > > > * BufferName = emcStatus > > > * ProcessName = xemc > > > * Config File = /home/mypc/linuxcnc-dev/configs/sim/axis/axis.ini > > > * error_type = 0 (NML_NO_ERROR) > > > ************************************************************ > > > > > > libnml/nml/nml.cc 1343: NML::peek: CMS not configured. > > > > > > So my original question (make some time and post ago) is: But in SIM > > only > > > installa (no preempt), NML server is running?? > > > > > > sob ... I know my english is quite bad ... I hope was all clear .. > > > > > > bkt > > > > > > > > > > > > Il giorno mer 28 nov 2018 alle ore 15:33 andy pugh <bodge...@gmail.com > > > > ha > > > scritto: > > > > > > > On Wed, 28 Nov 2018 at 10:26, theman whosoldtheworld < > > > bleachk...@gmail.com > > > > > > > > > wrote: > > > > > > > > > [EMC] NML_FILE = emc.nml > > > > > > > > > > these row in file.ini is still valid? > > > > > > > > > > > > Some sections of code still look for it: > > > > > > > > https://github.com/LinuxCNC/linuxcnc/search?l=C%2B%2B&q=NML_FILE > > > > > > > > No version of the docs (back to 2.2 at least) has ever mentioned that > > > > entry. > > > > I think it must be the case that the default value is OK. > > > > > > > > -- > > > > atp > > > > "A motorcycle is a bicycle with a pandemonium attachment and is > > designed > > > > for the especial use of mechanical geniuses, daredevils and > lunatics." > > > > ? George Fitch, Atlanta Constitution Newspaper, 1916 > > > > > > > > _______________________________________________ > > > > Emc-users mailing list > > > > emc-us...@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > > _______________________________________________ > > > Emc-developers mailing list > > > Emc-developers@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > > > > > > > > > > _______________________________________________ > > > Emc-developers mailing list > > > Emc-developers@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > > > > > _______________________________________________ > > Emc-developers mailing list > > Emc-developers@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > > > > > > _______________________________________________ > > Emc-developers mailing list > > Emc-developers@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > > _______________________________________________ > Emc-developers mailing list > Emc-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > > _______________________________________________ > Emc-developers mailing list > Emc-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-developers > _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers