pvbrowser manual
Back Content

Modbus

En el "qt designer" puedes introducir las propiedades tool_tip y whats_this. Estas propiedades puedes emplearlas en cada mask y slot. Asumiendo que introduzcas las siguientes cadenas en la propiedad tool_tip usando "qt designer".

 static const char *toolTip[] = {
 "",
 "",
 "Byte(0,0)",
 "Short(0,0)",
 "Bit(0,0)",
 "",
 ""};

Una vez hecho esto puedes utilizar este slot para leer valores Modbus. Así no necesitas hacer programación a mano para visualizaciones simples. Todo queda especificado dentro del "qt designer". Cuando pases por encima de los datapoints en el cliente pvbrowser el toolTip se mostrará en una pequeña ventana "popup".

static int slotNullEvent(PARAM *p, DATA *d)
{
  if(p == NULL || d == NULL) return -1;
  int val,offset,number;

  for(int id=1; id<ID_END_OF_WIDGETS; id++)
  {
    if     (strncmp(toolTip[id],"Bit(",4)==0)
    {
      sscanf(toolTip[id],"Bit(%d,%d)",&offset,&number);
      val = modbus.readBit(offset,number);
      pvPrintf(p,id,"%d",val);
    }
    else if(strncmp(toolTip[id],"Byte(",5)==0)
    {
      sscanf(toolTip[id],"Byte(%d,%d)",&offset,&number);
      val = modbus.readByte(offset,number);
      pvPrintf(p,id,"%d",val);
    }
    else if(strncmp(toolTip[id],"Short(",6)==0)
    {
      sscanf(toolTip[id],"Short(%d,%d)",&offset,&number);
      val = modbus.readShort(offset,number);
      pvPrintf(p,id,"%d",val);
    }
  }
  return 0;
}

Back Content