Open agaget opened 5 years ago
Bon on est d'accord, une fois qu'on a un fichier template avec ça on n'a pas vraiment à le refaire à l'infini mais bon ça fait un produit plus fini.
Je propose de mettre seulement:
field(INP, "@asynMask($(PORT) $(OFFSET) $(NBITS))MODBUS_DATA")
field(OUT, "@asynMask($(PORT) $(OFFSET) 0xFFFF)")
Proposition rejeté, les différents champs OUT et INP sont différents en fonction des types et il faut aussi au moins le DTYP et tu noteras que pour le waveform par exemple ce n'est pas asynMask, mais asyn
A appeler epics.record.[type].modbus ou du genre
record(longout, "$(SIGNAL)") { field(DTYP,"asynInt32") field(INP,"@asyn($(PORT) $(OFFSET=0))MODBUS_DATA") }
record(ai, "$(SIGNAL)") { field(DTYP,"asynInt32") field(INP, "@asynMask($(PORT) $(OFFSET) $(NBITS))MODBUS_DATA") field(LINR,"$(LINR=LINEAR)") field(EGUL,"$(EGUL)") field(EGUF,"$(EGUF)") field(EGU, "$(EGU)") field(HOPR,"$(EGUF)") field(LOPR,"$(EGUL)") field(PREC,"$(PREC)") field(SCAN,"$(SCAN)") } record(ao, "$(SIGNAL)") { field(DTYP,"asynInt32") field(OUT, "@asynMask($(PORT) $(OFFSET) $(NBITS))MODBUS_DATA") field(LINR,"$(LINR=LINEAR)") field(EGUL,"$(EGUL)") field(EGUF,"$(EGUF)") field(EGU, "$(EGU)") field(HOPR,"$(DRVH)") field(LOPR,"$(DRVL)") field(DRVH,"$(DRVH)") field(DRVL,"$(DRVL)") field(PREC,"$(PREC)") } record(bi,"$(SIGNAL)") { field(DTYP,"asynUInt32Digital") field(INP, "@asynMask($(PORT) $(OFFSET) $(MASK))") field(SCAN,"I/O Intr") field(ZNAM,"$(ZNAM=OFF)") field(ONAM,"$(ONAM=ON)") } record(bo,"$(SIGNAL)") { field(DTYP,"asynUInt32Digital") field(OUT, "@asynMask($(PORT) $(OFFSET) $(MASK))") field(ZNAM,"$(ZNAM=OFF)") field(ONAM,"$(ONAM=ON)") field(HIGH,"$(HIGH=0)") } record(mbbi,"$(SIGNAL)") { field(DTYP,"asynUInt32Digital") field(INP, "@asynMask($(PORT) $(OFFSET) 0xFFFF)") field(SCAN,"I/O Intr") } record(mbbiDirect,"$(SIGNAL)") { field(DTYP,"asynUInt32Digital") field(INP, "@asynMask($(PORT) $(OFFSET) 0xFFFF)") field(SCAN,"I/O Intr") } record(mbbo,"$(SIGNAL)") { field(DTYP,"asynUInt32Digital") field(OUT, "@asynMask($(PORT) $(OFFSET) 0xFFFF)") } record(mbboDirect,"$(SIGNAL)") { field(DTYP,"asynUInt32Digital") field(OUT, "@asynMask($(PORT) $(OFFSET) 0xFFFF)") }
//A tester record(waveform, "$(SIGNAL)") { field(DTYP,"asynInt32ArrayOut") field(INP,"@asyn($(PORT) $(OFFSET=0))MODBUS_DATA") field(FTVL,"LONG") field(NELM,"$(NELM)") } record(longout, "$(SIGNAL)LONG") { field(DTYP,"asynInt32") field(INP,"@asyn($(PORT) $(OFFSET=0))MODBUS_DATA") }