Example #1
0
void FanucPath::getCondition(unsigned short aFlibhndl, long aAlarm)
{
  if (aAlarm != 0) 
  {
    for (int i = 0; i < 31; i++) 
    {
      if (aAlarm & (0x1 << i))
      {
        ODBALMMSG2 alarms[MAX_AXIS];
        short num = MAX_AXIS;
        
        short ret = cnc_rdalmmsg2(aFlibhndl, i, &num, alarms);
        if (ret != EW_OK)
          continue;

        for (int j = 0; j < num; j++) 
        {
          ODBALMMSG2 &alarm = alarms[j];
          char num[16];
          
          Condition *cond = translateAlarmNo(i, alarm.axis);
          if (cond == NULL)
            continue;

          sprintf(num, "%d", alarm.alm_no);
          cond->add(Condition::eFAULT, alarm.alm_msg, num);
        }
      }
    }       
  }
}