예제 #1
0
static void getCallback(processNotify *ppn,notifyGetType type)
{
    tpnInfo *ptpnInfo = (tpnInfo *)ppn->usrPvt;
    int status = 0;
    long no_elements = 1;
    long options = 0;

    if(ppn->status==notifyCanceled) {
        printf("dbtpn:getCallback notifyCanceled\n");
        return;
    }
    switch(type) {
    case getFieldType:
        status = dbChannelGetField(ppn->chan, DBR_STRING, ptpnInfo->buffer,
            &options, &no_elements, 0);
        break;
    case getType:
        status = dbChannelGet(ppn->chan, DBR_STRING, ptpnInfo->buffer,
            &options, &no_elements, 0);
        break;
    }
    if (status) {
        ppn->status = notifyError;
        printf("dbtpn:getCallback error\n");
    } else {
        printf("dbtpn:getCallback value %s\n", ptpnInfo->buffer);
    }
}
예제 #2
0
static void getCallback(processNotify *ppn, notifyGetType type)
{
    stringinRecord *prec = (stringinRecord *)ppn->usrPvt;
    devPvt *pdevPvt = (devPvt *)prec->dpvt;
    long no_elements = 1;

    if (ppn->status==notifyCanceled) {
        printf("devSiSoftCallback::getCallback notifyCanceled\n");
        return;
    }

    assert(type == getFieldType);
    pdevPvt->status = dbChannelGetField(ppn->chan, DBR_STRING,
        &pdevPvt->buffer, &pdevPvt->options, &no_elements, 0);
}