#driver Modbus
#scpiCmd A holding 0x10 (value) *ScaleFactor
#scpiCmd A? holding? 0x10 /ScaleFactor
#scpiCmd B holding 0x11 (value) *ScaleFactor
#scpiCmd B? holding? 0x11 /ScaleFactor
#scpiCmd C holding 0x12 (value)
#scpiCmd C? holding? 0x12
How can I make "ScaleFactor" change depending on "C"?
"C"=0, "ScaleFactor"=10
"C"=1, "ScaleFactor"=100
You cannot use the shorthand *100 or /100, but must use expression, this means for reading you use readmath:
#scpiCmd A? holding? 0x10
:readmath: value*ScaleFactor
And for writing you use inline expressions
#scpiCmd A holding 0x10 (value*ScaleFactor)
The above assumes you create a var called ScaleFactor:
#scpiCmd C holding 0x12 (value)
:setvar: ScaleFactor=value==0?10:100
You must initialize the var before its first use, i.e. call C from #initCmd