DiamondLightSource / pmac

Driver for the Delta Tau PMAC motion controller family.
Apache License 2.0
25 stars 17 forks source link

String PV #93

Open georgekontogiorgos opened 2 years ago

georgekontogiorgos commented 2 years ago

Hello,

I am writing a custom Background Program in C language to perform fast gathers.

One specification is that the user could be able to set the output file name on the GUI. By this reason, I would like to know if there is something related to read and write strings on PowerPMAC.

I saw this snippet of code on pmacVariableWrite template:

record(ao, "$(P)$(Q):SET") {
  field(DESC, "Write value to pmac")
  field(DTYP, "$(DTYP=asynFloat64)")
  field(SDIS, "$(P)$(Q):SYNC.PACT")
  field(OUT, "@asyn($(PORT),0)PMAC_W$(TYPE=D)_$(VAR)")
}

and maybe this TYPE is the solution for my problem. I don`t know how to use it on both sides: EPICS and PowerPMAC; and I would like some help on it.

I also would like to know if I could just adapt TYPE of the same template on tag 2-4-11 which is the running version on our entire lab. The following snippet of the same template for the variable write template of version 2-4-11 (Note that TYPE does not exist)

record(ao, "$(P)$(Q):SET") {
  field(DESC, "Write value to pmac")
  field(DTYP, "asynFloat64")
  field(SDIS, "$(P)$(Q):SYNC.PACT")
  field(OUT, "@asyn($(PORT),0)PMAC_VDM_$(VAR)")

The Cdata shared memory was designed for string manipulation, could I have access to it from pmacVariableWrite?

Thanks in advance George