1 / 7

Base 3.15 LSB

Base 3.15 LSB. Lesser Significant Bits in the “current” version of Base. Assemblies. Old: Manual st.cmd management Hard to do for many IOCs Using include files creates a debugging nightmare New: Create text files from numbered snippets Number in file name (phase) determines order

mtrent
Download Presentation

Base 3.15 LSB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Base 3.15 LSB Lesser Significant Bitsin the “current” version of Base

  2. Assemblies • Old: Manual st.cmd management • Hard to do for many IOCs • Using include files creates a debugging nightmare • New: Create text files from numbered snippets • Number in file name (phase) determines order • Snippets can add to or replace a phase • Can use global and local directories(packages may install snippets in global dirs)

  3. Property events • Old situation: no monitors on metadata • GUI has to “reopen window” to update limits etc. • New situation: DBE_PROPERTY event type sends updates on metadata changes • Record type declares fields as properties of the VAL • Client subscribes to the VAL using DBR_CTRL_* and DBE_PROPERTY event flag • IOC sends updates when a property (limit etc.) changes • Fully supported by the CA Gateway

  4. Pointer Swapping for Arrays • Old way: copy data into a waveform     {epicsMutexMustLock(CirBufMutex[card][signal]);memcpy((unsigned char *) prec->bptr, (unsigned char *) m_rBuf[card][signal], (size_t)samples * sizeof(float));epicsMutexUnlock(CirBufMutex[card][signal]);} • New way: swap the pointer     {epicsMutexMustLock(priv->lock); if (prec->bptr) free (prec->bptr);prec->bptr = priv->nextBuffer; /* no memcpy! */priv->nextBuffer = NULL;epicsMutexUnlock(priv-lock);    }

  5. IOCs can bind to single NIF • Old IOCs running on hosts with multiple network interfaces were always binding to all • Creating “duplicate PV” exceptions in clients • Causing beacon traffic on unwanted networks • New IOCs can configure to bind to a subset • EPICS_CAS_INTF_ADDR_LIST=192.168.1.23 • Binding to multiple NIFs supported

  6. Sub-Arrays on the Fly • Old IOCs need a subArrayRecord to extract a partial array • New IOCs support this operation on the fly • “cagetwf.VAL[20:25]” • Client does not need to be 3.15 • Works only for gets and monitors

  7. Summary • Assemblies: create files from snippets • Property events: get updated on metadata • Pointer swap: zero-copy array device support • Selective IOC binding: keep other nets clean • Sub-Arrays on the fly: no subArrayRec needed • More things to find in the release notes: • Multicast name resolution • Drivers can directly process records • Multiple parallel callback threads on multi-core CPUs

More Related