#ifndef ${name.upper()}_DRIVER_H #define ${name.upper()}_DRIVER_H \#include "asynPortDriver.h" \#include "cpswAsynPortDriver.h" \#include "${name}.h" \#include /* Registers */ #for $p in $registers #define ${p.name}String "${p.name}" #end for /* Commands */ #if $varExists('commands') #for $c in $commands #define C${c.name}String "C_${c.name}" #end for #end if /* This class implements the AxiVersion driver. */ class ${name}Driver : public cpswAsynDriver { public: ${name}Driver(const char *portName, Path p, int nelms); #if $varExists('commands') virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value); #end if protected: ${name} p${name}; #set $first = True /* Registers */ #for $p in $registers int p_${p.name}; #if $first == True #define FIRST_${name.upper()}_PARAM p_${p.name} #set $first = False #end if #end for #if $varExists('commands') /* Commands */ #for $c in $commands int p_C_${c.name}; #end for #define LAST_${name.upper()}_PARAM p_C_${commands[-1].name} #else #define LAST_${name.upper()}_PARAM p_${registers[-1].name} #end if #define NUM_${name.upper()}_PARAMS (&LAST_${name.upper()}_PARAM - &FIRST_${name.upper()}_PARAM + 1) private: #if $varExists('commands') #for $c in $commands asynStatus ${c.name}(); #end for #end if }; #endif