Welcome to autoparamDriver’s documentation!

Get autoparamDriver from its code repository.

autoparamDriver is an EPICS module that facilitates writing a generic device driver based on asyn that does not know ahead of time which (or how many) parameters the device supports, delegating the job of defining them to the EPICS database. If you’ve ever used EPICS modules like modbus or s7plc, you already know what this is about. If not, the Introduction gives an explanation, while the Tutorial shows how to base your driver on Autoparam::Driver. Otherwise, jump directly to the list of Autoparam features.

asyn documentation, while otherwise excellent, tries to be agnostic with respect to different users of asyn interfaces and is thus a bit hard to follow for an EPICS developer. This documentation takes a different approach and takes an EPICS-centric view in the hope that a developer will find it more approachable. Moreover, autoparamDriver attempts to shield the developer from dealing directly with heavily overloaded concepts like asynUser and various kinds of “reasons”.

That is not to say that it is not necessary to be familiar with asyn; in particular, the section Generic Device Support for EPICS records in the asynDriver documentation is a must-read. autoparamDriver helps implement all interfaces except Enum and GenericPointer; for these two, it won’t help, but it won’t hinder you either. Moreover, it relies on the DrvUser interface, which is how asyn passes additional information from an EPICS record to the driver. Relying on this means, for example, that asynOctetRead EPICS device support will work, but asynOctetCmdResponse will not. This is not considered a limitation: if you need a driver that doesn’t rely on the DrvUser interface, autoparamDriver is not a good fit for your use case anyway.

Indices and tables