static void getCB(EVENT_ARGS args) { /* void* node=(void*)ca_puser(args.chid); */ struct dbr_gr_enum* edb; char* cdb; if(args.status==ECA_NORMAL) { if(pv_type==DBF_ENUM) { edb=(struct dbr_gr_enum*)args.dbr; cdb=&edb->strs[edb->value][0]; /* strncpy(pv_value,cdb,MAX_ENUM_STRING_SIZE); */ SEVCHK(ca_add_event(DBR_GR_ENUM,id,evCB,NULL,&event), "add event"); } else { cdb=(char*)args.dbr; /* strncpy(pv_value,cdb,MAX_STRING_SIZE); */ SEVCHK(ca_add_event(DBR_STRING,id,evCB,NULL,&event), "add event"); } } else fprintf(stderr,"PV <%s> get failed\n",pv_name); }
void ChannelAccessThr::AddEventsOnPage(const int page) { //qDebug("AddEvents-Page[%d], VecNodeSize:%d",page, vecnode.size()); for(size_t i = 0; i < vecnode.size(); i++) { CHNODE *pNode = &vecnode.at(i); //qDebug("Node(%p)", pNode); if(pNode == NULL) continue; ca_add_event(pNode->dbrequest,pNode->ch_id,eventCallback,(void*)pNode,&(pNode->ev_id)); }; setClearEvents(false); }