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); } } } } }