epics-extensions / vscode-epics

VS Code colorization for EPICS database, templates and substitution files
MIT License
14 stars 6 forks source link

add modbus snippet type #18

Open agaget opened 5 years ago

agaget commented 5 years ago

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") }

agaget commented 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.

vnadot commented 5 years ago

Je propose de mettre seulement:

agaget commented 5 years ago

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