Jan Breuer
2018-01-29 79ca37aefec8e26a1a74b0b2b9c36e0c9af6d9c1
libscpi/src/ieee488.c
@@ -51,6 +51,17 @@
}
/**
 * Update latching event register value based on bit transitions from 0 -> 1
 * in the condition register
 * @param context
 * @param condReg - condition register name
 * @param eventReg - event register name
 */
static void regUpdateEvent(scpi_t * context, scpi_reg_val_t oldCondVal, scpi_reg_val_t newCondVal, scpi_reg_name_t eventReg) {
    SCPI_RegSet(context, eventReg, ((oldCondVal ^ newCondVal) & newCondVal) | SCPI_RegGet(context, eventReg));
}
/**
 * Update STB register according to value and its mask register
 * @param context
 * @param val value of register
@@ -142,12 +153,18 @@
        case SCPI_REG_QUESE:
            regUpdate(context, SCPI_REG_QUES);
            break;
        case SCPI_REG_QUESC:
            regUpdateEvent(context, old_val, val, SCPI_REG_QUES);
            break;
        case SCPI_REG_OPER:
            regUpdateSTB(context, val, SCPI_REG_OPERE, STB_OPS);
            break;
        case SCPI_REG_OPERE:
            regUpdate(context, SCPI_REG_OPER);
            break;
        case SCPI_REG_OPERC:
            regUpdateEvent(context, old_val, val, SCPI_REG_OPER);
            break;
        case SCPI_REG_COUNT: