Don't worry ... I understand.

Not everyone uses the same rendering engine .... html and css are not
always interpreted in the same way.

Unfortunately English is not my mother language and I write it and I speak
badly ... I find it difficult to express correctly what I would like to say
... and I know that it is often interpreted in a negative way .... as it
happened to you .... so I dwell on the explanations and try to apologize
.... but it seems that the result is even worse.

:))

One day I will have to take some time to study the language well.

For the instrument: you teach me that the medium reflects (the requests -
the profit) = at the price you want the product is always disappointing for
some details. :)) ....

Thanks and good week end.

You are in canada? I'm in north italy.
When the average temperatures in your region exceed 15 ° C you will also
see covid19. Like in new york now.
Stay safe, stay at home, wash your hands, and keep away from others'
sneezes. Done this rigorously .... all in all it is nothing special. Of
course if you don't, the results will be what you see now in Italy and in
other regions of Europe. But canada ia a land of large empy spaces ... so
probaily the result become similar to cina.
Now we are in sort of "war against covid19". I hope your land is spared.
More than anything else because you can no longer go to the bar for a beer
or a coffee for a month or two. Normally, governments close everything.


regards


Il giorno sab 21 mar 2020 alle ore 19:43 John Dammeyer <
[email protected]> ha scritto:

> I never meant to say anything negative about the code or its purpose.  I
> apologize if it came out that way.  I tend to email code fragments to some
> of my colleagues all the time.  They keep posting into the HTML emails
> which converts the code to proportional spacing and expands tabs
> differently.
>
> I like my ancient editing tool that lets me convert tabs to spaces and
> syntax highlights the code.  Lots of editors do this but that information
> is never copied onto the clipboard so the text comes out awful and hard to
> read.
>
> So where this looks great in my email as HTML text I think the group turns
> it back into ugly text.
>
>     public:
>         explicit QtDro(QObject *parent = 0, bool b = false);
>         void run();
>         ~QtDro();
>        // if Stop = true, the thread will break
>         // out of the loop, and will be disposed
>         bool Stop;
>
>
> But to show you what I typed in I've included a screen grab.  So I'm
> really complaining more about the medium and not your code.
>
> In this day and age, where tools like syntax highlighting are available it
> seems sad to be back in the 70's where everything is a single colour font.
>
> John
>
>
>
> > -----Original Message-----
> > From: theman whosoldtheworld [mailto:[email protected]]
> > Sent: March-21-20 11:09 AM
> > To: Enhanced Machine Controller (EMC)
> > Subject: Re: [Emc-users] about NML - RCS_CMD_CHANNEL/EMC_CMD_MSG -
> EMC_AUX_ESTOP_ON
> >
> > I add that the code is just a test to make an interface communicate in qt
> > and c ++ via nml to linuxcnc. That's all. It is for learning.
> >
> > Il giorno sab 21 mar 2020 alle ore 19:06 theman whosoldtheworld <
> >  <mailto:[email protected]> [email protected]> ha scritto:
> >
> > > The references to the post on Linuxcnc that Andy made are only
> indications
> > > to study ....
> > >
> > > The lack of comments is because I did the tests during breakfast and
> > > lunch, which is an important moment for test prices on things I have to
> > > learn to understand. It is not a code to be shared with third parties
> ....
> > > In any case, the test is a positive state apart from the fact that
> there is
> > > no semaphore of the signals .... in fact if you try that tet and
> repeatedly
> > > press the button and stop to perform estop-on and estop-off, it will
> surely
> > > happen that the communication channel is interrupted because before
> making
> > > a new call you must always wait for the approval and the refreshing is
> not
> > > so fast .... dro's refreshing is instead quick to simulate with
> #include
> > > <QOpenGLWidget> the movement of the machine almost in real time.
> > >
> > > In any case the next time before posting the code I will make sure it
> is
> > > clean and commented.
> > >
> > >
> > > any how next time
> > >
> > > Il giorno sab 21 mar 2020 alle ore 18:32 John Dammeyer <
> > >  <mailto:[email protected]> [email protected]> ha scritto:
> > >
> > >> I'm not sure anymore exactly what you code was supposed to so but a
> > >> proportional font program embedded into an email is really hard to
> follow.
> > >>
> > >> I've been using Codewright since it came out back in about 1991 but
> as I
> > >> understand it now Microsoft's Visual Studio Code can do this too.
> There
> > >> may be something in Linux that can do this too.
> > >>
> > >> I cleaned up your program a bit to make it more readable for me and
> > >> attached it as a pdf.  Both the .h and .cpp are in the one doc.
> > >>
> > >> John
> > >>
> > >>
> > >> > -----Original Message-----
> > >> > From: theman whosoldtheworld [ <mailto:[email protected]>
> mailto:[email protected]]
> > >> > Sent: March-21-20 4:50 AM
> > >> > To: Enhanced Machine Controller (EMC)
> > >> > Subject: Re: [Emc-users] about NML - RCS_CMD_CHANNEL/EMC_CMD_MSG -
> > >> EMC_AUX_ESTOP_ON
> > >> >
> > >> > Sorry, i've very little time to control my mail .. these code
> perform
> > >> the
> > >> > command, need to write the right "world" inside your nml file and
> launch
> > >> > lcnc first and only after qtDroModified ... my thread is about right
> > >> using
> > >> > of nml inside qt c++ interfaces program ... the post suggested from
> > >> Andy is
> > >> > for interfacing labview with nml ... a little different, but
> sometime
> > >> same
> > >> > basic problem ....
> > >> >
> > >> > #ifndef QTDRO_H
> > >> > #define QTDRO_H
> > >> >
> > >> > #include <stdio.h>
> > >> > #include <string.h>
> > >> > #include <stdlib.h>
> > >> > #include <signal.h>
> > >> > #include <unistd.h>
> > >> > #include <ctype.h>
> > >> > #include <math.h>
> > >> > #include <sys/types.h>
> > >> > #include <inttypes.h>
> > >> > #include <iostream>
> > >> > #include <cstdlib>
> > >> >
> > >> > #include <qapplication.h>
> > >> > #include <qlabel.h>
> > >> > #include <qpushbutton.h>
> > >> > #include <qlcdnumber.h>
> > >> > #include <qtimer.h>
> > >> > #include <QApplication>
> > >> > #include "qstring.h"
> > >> > #include "qlayout.h"
> > >> > #include "qfont.h"
> > >> > #include <QTime>
> > >> > #include <QTimer>
> > >> > #include <QDebug>
> > >> > #include <QThread>
> > >> > #include <QTextStream>
> > >> > #include <QTextStreamFunction>
> > >> > #include <QTextStreamManipulator>
> > >> >
> > >> >
> > >> > #include <QApplication>
> > >> > #include <QtDebug>
> > >> > #include <stdlib.h>
> > >> > #include <unistd.h>
> > >> > #include <sys/io.h>
> > >> > #include <stdio.h>
> > >> > #include <stdlib.h>
> > >> > #include <inttypes.h>
> > >> > #include <math.h>
> > >> > #include <QtCore>
> > >> > #include <QThread>
> > >> > #include <QWidget>
> > >> > #include <sys/types.h>
> > >> > #include <QTimer>
> > >> > #include <QDateTime>
> > >> > #include <QTextStream>
> > >> > #include <QFile>
> > >> > #include <QProcess>
> > >> > #include <iostream>
> > >> > #include <sstream>
> > >> > #include <QDial>
> > >> > #include <QWidget>
> > >> > #include <QPushButton>
> > >> > #include <QDir>
> > >> > #include <QComboBox>
> > >> > #include <QStringList>
> > >> > #include <QByteArray>
> > >> > #include <QAbstractButton>
> > >> > #include <QTime>
> > >> > #include <QDate>
> > >> > #include <QDateEdit>
> > >> > #include <QTimeEdit>
> > >> > #include <QGraphicsView>
> > >> > #include <QGraphicsSceneHoverEvent>
> > >> > #include <QGraphicsItem>
> > >> > #include <QGraphicsScene>
> > >> > #include <QPolygon>
> > >> > #include <QPolygonF>
> > >> > #include <QDoubleValidator>
> > >> > #include <QIntValidator>
> > >> > #include <QMessageBox>
> > >> > #include <QPixmap>
> > >> > #include <sqlite3.h>
> > >> > //#include <QtSql/QSql>
> > >> > #include <QtSql/QSqlDatabase>
> > >> > #include <QtSql/QSqlDriver>
> > >> > #include <QtSql/QSqlDriverPlugin>
> > >> > #include <QtSql/QSqlError>
> > >> > #include <QtSql/QSqlField>
> > >> > #include <QtSql/QSqlIndex>
> > >> > #include <QtSql/QSqlRelationalTableModel>
> > >> > #include <QtSql/QSqlQuery>
> > >> > #include <QtSql/QSqlQueryModel>
> > >> > #include <QtSql/QSqlRecord>
> > >> > #include <QtSql/QSqlRelation>
> > >> > #include <QtSql/QSqlTableModel>
> > >> > #include <QtSql/QtSqlDepends>
> > >> > #include <QtSql/QtSqlVersion>
> > >> > //#include <QtSerialBus>
> > >> > #include <QtSql/QSqlRelationalDelegate>
> > >> > #include <QtNetwork/QNetworkAccessManager>
> > >> > #include <QIODevice>
> > >> > #include <QMessageBox>
> > >> > #include <QFont>
> > >> > #include <QAbstractButton>
> > >> > #include <QDebug>
> > >> >
> > >> > #include "include/cmd_msg.hh"
> > >> > #include "include/stat_msg.hh"
> > >> > #include "include/emc_nml.hh"
> > >> > #include <stat_msg.hh>
> > >> > #include <cmd_msg.hh>
> > >> > #include <nml.hh>
> > >> > #include "rcs.hh"               // etime()
> > >> > #include "emc.hh"               // EMC NML
> > >> > #include "include/emcglb.h"             // EMC_NMLFILE,
> > >> TRAJ_MAX_VELOCITY,
> > >> > TOOL_TABLE_FILE
> > >> > #include "include/emccfg.h"             // DEFAULT_TRAJ_MAX_VELOCITY
> > >> > #include "inifile.hh"           // INIFILE
> > >> >
> > >> >
> > >> >
> > >> > /*extern  int  argc;
> > >> > extern char **argv;*/
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > class QtDro: public QThread
> > >> > {
> > >> >         Q_OBJECT
> > >> > public:
> > >> >     explicit QtDro(QObject *parent = 0, bool b = false);
> > >> >     void run();
> > >> >
> > >> >     // if Stop = true, the thread will break
> > >> >     // out of the loop, and will be disposed
> > >> >
> > >> >     ~QtDro();
> > >> >
> > >> >         bool Stop;
> > >> >
> > >> >
> > >> >
> > >> > public slots:
> > >> >     void thEme(bool emeCmd);
> > >> >     void thOn(bool onCmd);
> > >> >    // int emcCommandSend(RCS_CMD_MSG & cmd);
> > >> >  /*   int emcCommandSend(RCS_CMD_MSG & cmd)
> > >> >     {
> > >> >         // write command
> > >> >         if (emcCommandBuffer->write(&cmd)) {
> > >> >             return -1;
> > >> >         }
> > >> >         emcCommandSerialNumber = cmd.serial_number;
> > >> >         return 0;
> > >> >     }*/
> > >> >
> > >> >
> > >> > signals:
> > >> >     void thXYZABCDEF (double x, double y, double z, double a,
> double b,
> > >> > double c, double u, double v, double w);
> > >> >
> > >> > private:
> > >> >     int acTh;
> > >> >     char avTh;
> > >> >     char state_msg[4096];
> > >> >
> > >> >
> > >> >
> > >> > protected:
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > };
> > >> >
> > >> >
> > >> > #endif // QTDRO_H
> > >> >
> > >> >
> > >> >
> > >> >
> > >>
> **************************************************************************************
> > >> >
> > >> >
> > >> > #include "QtDro.h"
> > >> >
> > >> >
> > >> >
> > >> > using namespace std;
> > >> >
> > >> > // the NML channels to the EMC task
> > >> > RCS_CMD_CHANNEL *emcCommandBuffer ;
> > >> > RCS_STAT_CHANNEL *emcStatusBuffer ;
> > >> > EMC_STAT *emcStatus;
> > >> > EMC_CMD_MSG *emcCmd;
> > >> >
> > >> > // the NML channel for errors
> > >> > static NML *emcErrorBuffer = 0;
> > >> > static char error_string[NML_INTERNAL_CMS_ERROR] = "";
> > >> >
> > >> > // the current command numbers, set up updateStatus(), used in
> main()
> > >> > static int emcCommandSerialNumber = 0;
> > >> >
> > >> > int counter = 0;
> > >> >
> > >> >
> > >> > QtDro::QtDro (QObject *parent, bool b) :
> > >> >     QThread(parent), Stop(b)
> > >> > {
> > >> >
> > >> > }
> > >> >
> > >> > QtDro::~QtDro()
> > >> > {
> > >> >   //  inifile.Close();
> > >> >     this->Stop;
> > >> >
> > >> > }
> > >> >
> > >> >
> > >> > void QtDro::run()
> > >> > {
> > >> >     double thX = 0;
> > >> >     double thY = 0;
> > >> >     double thZ = 0;
> > >> >     double thA = 0;
> > >> >     double thB = 0;
> > >> >     double thC = 0;
> > >> >     double thU = 0;
> > >> >     double thV = 0;
> > >> >     double thW = 0;
> > >> >
> > >> >     QTextStream(stdout) <<  "First run  function" << endl;
> > >> >
> > >> >
> > >> >     const char *nmlfile =
> > >> "/home/bkt/linuxcnc-dev/configs/sim/axis/emc.nml";
> > >> >     RCS_STAT_CHANNEL *stat = new RCS_STAT_CHANNEL(emcFormat,
> > >> "emcStatus",
> > >> > "xemc", nmlfile);
> > >> >     RCS_CMD_CHANNEL *cmd = new RCS_CMD_CHANNEL(emcFormat,
> "emcCommand",
> > >> > "xemc", nmlfile);
> > >> >     NML *error = new NML(emcFormat, "emcError", "xemc", nmlfile);
> > >> >
> > >> >     //************ try to connect to EMC cmd
> > >> >   /*  if (emcCommandBuffer == 0) {
> > >> >         emcCommandBuffer =  new RCS_CMD_CHANNEL(emcFormat,
> "emcCommand",
> > >> > "xemc", nmlfile, 0);
> > >> >         QTextStream(stdout) <<  "cmd buffer is valid  " << endl;
> > >> >     if (!emcCommandBuffer->valid()) {
> > >> >         delete emcCommandBuffer;
> > >> >         emcCommandBuffer = 0;
> > >> >         QTextStream(stdout) <<  "cmd buffer is NOT valid  " << endl;
> > >> >         return;
> > >> >     }
> > >> > }*/
> > >> >
> > >> >
> > >> >
> > >> >     while(1)
> > >> >     {
> > >> >
> > >> >
> > >> >         if((stat->peek() != EMC_STAT_TYPE) || (!stat->valid()))
> > >> >         {
> > >> >             QTextStream(stdout) <<  "while    these program NOT
> run  "
> > >> <<
> > >> > endl;
> > >> >             break;
> > >> >         }
> > >> >         else
> > >> >         {
> > >> >
> > >> >             EMC_STAT *emcStatus =
> > >> > static_cast<EMC_STAT*>(stat->get_address());
> > >> >             //EMC_CMD_MSG *emcCmd =
> > >> > static_cast<EMC_CMD_MSG*>(cmd->get_address());
> > >> >
> > >> >             if ((thX != emcStatus->motion.traj.position.tran.x) ||
> (thY
> > >> !=
> > >> > emcStatus->motion.traj.position.tran.y) || (thZ !=
> > >> > emcStatus->motion.traj.position.tran.z))
> > >> >                 {
> > >> >                 thX = emcStatus->motion.traj.position.tran.x;
> > >> >                 thY = emcStatus->motion.traj.position.tran.y;
> > >> >                 thZ = emcStatus->motion.traj.position.tran.z;
> > >> >                 thA = 0;
> > >> >                 thB = 0;
> > >> >                 thC = 0;
> > >> >                 thU = 0;
> > >> >                 thV = 0;
> > >> >                 thW = 0;
> > >> >                 emit thXYZABCDEF(thX, thY, thZ, thA, thB, thC, thU,
> thV,
> > >> > thW);
> > >> >             }
> > >> >
> > >> >             if(counter>=80 && counter<81)
> > >> >             {
> > >> >
> > >> >                  QTextStream(stdout) <<  "state_msg try zone" <<
> endl;
> > >> >                  EMC_TASK_SET_STATE  state_msg;
> > >> >                 // EMC_TASK_PLAN_PAUSE emc_task_plan_pause_msg;
> > >> >                  QTextStream(stdout) <<  "spy 1" << endl;
> > >> >                  state_msg.state = EMC_TASK_STATE_OFF;
> > >> >                  QTextStream(stdout) <<  "spy 2" << endl;
> > >> >                  state_msg.serial_number = ++emcCommandSerialNumber;
> > >> >                  QTextStream(stdout) <<  "actual value of
> state_msg: "
> > >> <<
> > >> >  state_msg.state << endl;
> > >> >                  QTextStream(stdout) <<  "these steps seems right
> .. now
> > >> > try to write" << endl;
> > >> >                 // cmd->write(&emc_task_plan_pause_msg);
> > >> >                  cmd->write(&state_msg);  /* these NOT work because
> not
> > >> > declare 'emcCommandBuffer' with automatic memory allocation with
> macro
> > >> > "new"  */
> > >> >                  QTextStream(stdout) <<  "just write on
> > >> emcCommandBuffer"
> > >> > << endl;
> > >> >                  counter = 0;
> > >> >
> > >> >             }
> > >> >
> > >> >             counter++;
> > >> >
> > >> >         }
> > >> >
> > >> >          this->msleep(100);
> > >> >     }
> > >> >
> > >> >
> > >> > }
> > >> >
> > >> >
> > >> >
> > >> > Regards
> > >> >
> > >> > Il giorno dom 23 feb 2020 alle ore 18:44 John Dammeyer <
> > >> >  <mailto:[email protected]> [email protected]> ha
> scritto:
> > >> >
> > >> > > Sorry,
> > >> > > Still confused.  I'm not even sure which code you are talking
> about.
> > >> > > John
> > >> > >
> > >> > >
> > >> > > > -----Original Message-----
> > >> > > > From: N [ <mailto:[email protected]> mailto:
> [email protected]]
> > >> > > > Sent: February-23-20 4:00 AM
> > >> > > > To: Enhanced Machine Controller (EMC)
> > >> > > > Subject: Re: [Emc-users] about NML - RCS_CMD_CHANNEL/EMC_CMD_MSG
> > >> > > > - EMC_AUX_ESTOP_ON
> > >> > > >
> > >> > > > If you figure out what code do and comment is missing you could
> add
> > >> it.
> > >> > > Or
> > >> > > > you made agreement not to comment his code?
> > >> > > >
> > >> > > > > Not sure I understand what you meant here.
> > >> > > > >
> > >> > > > > > -----Original Message-----
> > >> > > > > > From: N [ <mailto:[email protected]> mailto:
> [email protected]]
> > >> > > > > > Sent: February-23-20 1:12 AM
> > >> > > > > > To: Enhanced Machine Controller (EMC)
> > >> > > > > > Subject: Re: [Emc-users] about NML -
> > >> > > > RCS_CMD_CHANNEL/EMC_CMD_MSG
> > >> > > > > > - EMC_AUX_ESTOP_ON
> > >> > > > > >
> > >> > > > > > > @ John Dammeyer
> > >> > > > > > >
> > >> > > > > > > I'm quite sure that labview project at least work great
> ....
> > >> the
> > >> > > difficult
> > >> > > > > > > is study lcnc code (write in a good way but not rich of
> > >> comment
> > >> > > ... on
> > >> > > > the
> > >> > > > > > > other hand, I agree not to comment too much on his code)
> > >> > > > > >
> > >> > > > > > Something adding some comments to code then you read it?
> > >> > > > > >
> > >> > > > > >
> > >> > > > > > _______________________________________________
> > >> > > > > > Emc-users mailing list
> > >> > > > > >  <mailto:[email protected]>
> [email protected]
> > >> > > > > >  <https://lists.sourceforge.net/lists/listinfo/emc-users>
> https://lists.sourceforge.net/lists/listinfo/emc-users
> > >> > > > >
> > >> > > > >
> > >> > > > >
> > >> > > > > _______________________________________________
> > >> > > > > Emc-users mailing list
> > >> > > > >  <mailto:[email protected]>
> [email protected]
> > >> > > > >  <https://lists.sourceforge.net/lists/listinfo/emc-users>
> https://lists.sourceforge.net/lists/listinfo/emc-users
> > >> > > >
> > >> > > >
> > >> > > > _______________________________________________
> > >> > > > Emc-users mailing list
> > >> > > >  <mailto:[email protected]>
> [email protected]
> > >> > > >  <https://lists.sourceforge.net/lists/listinfo/emc-users>
> https://lists.sourceforge.net/lists/listinfo/emc-users
> > >> > >
> > >> > >
> > >> > >
> > >> > > _______________________________________________
> > >> > > Emc-users mailing list
> > >> > >  <mailto:[email protected]>
> [email protected]
> > >> > >  <https://lists.sourceforge.net/lists/listinfo/emc-users>
> https://lists.sourceforge.net/lists/listinfo/emc-users
> > >> > >
> > >> >
> > >> > _______________________________________________
> > >> > Emc-users mailing list
> > >> >  <mailto:[email protected]>
> [email protected]
> > >> >  <https://lists.sourceforge.net/lists/listinfo/emc-users>
> https://lists.sourceforge.net/lists/listinfo/emc-users
> > >> _______________________________________________
> > >> Emc-users mailing list
> > >>  <mailto:[email protected]>
> [email protected]
> > >>  <https://lists.sourceforge.net/lists/listinfo/emc-users>
> https://lists.sourceforge.net/lists/listinfo/emc-users
> > >>
> > >
> >
> > _______________________________________________
> > Emc-users mailing list
> >  <mailto:[email protected]>
> [email protected]
> >  <https://lists.sourceforge.net/lists/listinfo/emc-users>
> https://lists.sourceforge.net/lists/listinfo/emc-users
> _______________________________________________
> Emc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-users
>

_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to