Re: [Emc-users] X-NUCLEO-IHM03A1 stepper controller

2023-11-02 Thread Eric Keller
There is remora code for the nucleo and the cnc shield. Not sure about
the linked board.  I think you can talk to the nucleo over ethernet
using an external board.
I haven't tried it. You can ask Cakeslob on the forum.
Eric Keller
Boalsburg, Pennsylvania


On Wed, Nov 1, 2023 at 4:24 PM fxkl47BF--- via Emc-users
 wrote:
>
> anyone here have any experience with this controller
>
> https://www.st.com/en/ecosystems/x-nucleo-ihm03a1.html
>
>
>
> ___
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users


___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


[Emc-users] HAL_TYPE_UNINITIALIZED

2023-11-02 Thread theman whosoldtheworld
With rt-preempt kernel 4.19 rt3 on mint 19.3 for 4 year write and send
data to hal with Lcnc2.9 pre0 from my c++ gui  last week need to
upgrade to 2.9 on actual gihub . and my reading become unvaible
and every reading become HAL_TYPE_UNINITIALIZED . pieces of code
that I use for reading is these:


int do_gets_cmd(QString nameSig)

{

hal_sig_t *sig = nullptr;

hal_type_t type;

void *d_ptr;

char *value_str = {};

static char buf[18];

std::string str_false = "FALSE";

std::string str_true = "TRUE";

std::string str_unknow = "unknown_type";

int valBIT  = 10;

char name[strlen(nameSig.toStdString().c_str()) + 1];  // Make
sure there's enough space

strcpy(name, nameSig.toStdString().c_str());


qDebug() << Q_FUNC_INFO << "get signal receive " << name;

/* get mutex before accessing shared data */

rtapi_mutex_get(&(hal_data->mutex));

/* search signal list for name */

sig = halpr_find_sig_by_name(name);

if (sig == 0) {

rtapi_mutex_give(&(hal_data->mutex));

qDebug() << Q_FUNC_INFO << "get signal not find " << name;

valBIT = 10;

}

else{

//rtapi_mutex_get(&(hal_data->mutex));

qDebug() << Q_FUNC_INFO << "get signal FIND " << name;

type = sig->type;

//qDebug() << Q_FUNC_INFO << "get signal FIND  VALID
HAL_TYPE for sig  :" << name << " ,   value:" << type;

if(sig->writers > 0){


   //qDebug() << Q_FUNC_INFO << "get bool receive  case
HAS WRITER" ;

d_ptr = SHMPTR(sig->data_ptr);

if(type == HAL_BIT){

if (*((hal_bit_t *) d_ptr) == 0){

   // strcpy(value_str, str_false.c_str());

rtapi_mutex_give(&(hal_data->mutex));

valBIT = 0;

//value_str = "FALSE";

qDebug() << Q_FUNC_INFO << "get bool receive 
case HAL_BIT:   " << valBIT  << "value from sig->name " << name;

}

else{

   // strcpy(value_str, str_true.c_str());

rtapi_mutex_give(&(hal_data->mutex));

valBIT = 1;

//value_str = "TRUE";

qDebug() << Q_FUNC_INFO << "get bool receive 
case HAL_BIT:   " << valBIT  << "value from sig->name " << name;

}

}

else if(type == HAL_FLOAT){

snprintf(buf, 16, "%.7g", (double)*((hal_float_t *) d_ptr));

rtapi_mutex_give(&(hal_data->mutex));

value_str = buf;

qDebug() << Q_FUNC_INFO << "get bool receive  case
HAL_FLOAT"  << "value from sig->name " << name;

}

else if(type == HAL_S32){

snprintf(buf, 16, "%ld", (long)*((hal_s32_t *) d_ptr));

rtapi_mutex_give(&(hal_data->mutex));

value_str = buf;

qDebug() << Q_FUNC_INFO << "get bool receive  case
HAL_S32"   << "value from sig->name " << name;

}

else if(type == HAL_U32){

snprintf(buf, 16, "%ld", (unsigned long)*((hal_u32_t *) d_ptr));

rtapi_mutex_give(&(hal_data->mutex));

value_str = buf;

qDebug() << Q_FUNC_INFO << "get bool receive  case
HAL_U32"  << "value from sig->name " << name;

}

else if(type == HAL_PORT){

//snprintf(buf, 16, "%ld", (unsigned long)*((hal_u32_t *) d_ptr));

rtapi_mutex_give(&(hal_data->mutex));

   // value_str = buf;

qDebug() << Q_FUNC_INFO << "get bool receive  case
HAL_PORT"  << "value from sig->name " << name;

}

else if(type == HAL_TYPE_UNINITIALIZED){

//snprintf(buf, 16, "%ld", (unsigned long)*((hal_u32_t *) d_ptr));

rtapi_mutex_give(&(hal_data->mutex));

   // value_str = buf;

qDebug() << Q_FUNC_INFO << "get bool receive 
HAL_TYPE_UNINITIALIZED"  << "value from sig->name " << name;

}

and return every time HAL_TYPE_UNINITIALIZED . why?? ... my app is
the same, my SO too, I add only

python3 support, but seems linking of hal_priv.h and hal.h not work
properly . or there are something of similar that not run ...

perhaps if use axis gui my machine work perfect  i use my gui c++,
can read trought command ethercat upload ., but can not from hal
...

any help type is appreciated

regards


___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users