...
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
void GmdDebugStream::streamPoll(const int ch) { // First check if the user created the channel if(! _stream[ch]) { return; } try { rdLen[ch] = _stream[ch]->read(buff[ch], size, CTimeout(2000000)); } catch (IOError &e) { // A timeout happened timeoutCnt ++; timeoutCnt_perStream[ch] ++; } catch (CPSWError &e) { // Don't print, as we are inside a polling. Wait for the next try, as // rdLen[ch] will be zero. } if(rdLen[ch] == 0 ) { return; } epicsTimeStamp time; rdCnt++; rdCnt_perStream[ch]++; /* extract data in stream */ stream_with_header_t *p = (stream_with_header_t *) buff[ch]; time.nsec = p->packet.time. secPastEpoch; time.secPastEpoch = p->packet.time.nsec; /* Set PVs from extracted data */ ... setTimeStamp(&time); callParamCallbacks(); } |
...