Hi Pilar,
What asyn driver are you using? How does it implement the asynInt32 getBounds() method?
Mark
________________________________
From: Pilar Gil Jaldo <[email protected]>
Sent: Wednesday, November 15, 2017 5:02 AM
To: Mark Rivers; [email protected]
Subject: Re: Problem when formating a field as HEX32
Hi Mark,
exactly, I'm using this variable as a bitmask. But before trying with ao
type, I used a longout having the same results as with ao.
That why I was thinking the problem should be something related to CSS.
Pilar
On 14/11/17 19:55, Mark Rivers wrote:
Hi Pilar,
Can you explain what this variable is used for? I see that the drvInfo field is "mask" which sounds like it is being used as a bit mask?
If so, I don't think that "ao" is the best record type, since its VAL field is a double, not an integer. In this case it would be better to use a longout record instead. And if you want to be able to control all 32 bits without worrying about the sign you should use the asynUInt32Digital interface, rather than asynInt32. That ensures that the value is treated as an unsigned 32-bit number.
Mark
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Pilar Gil Jaldo
Sent: Tuesday, November 14, 2017 4:17 AM
To: [email protected]
Subject: Problem when formating a field as HEX32
Dear all,
I am having following problem.
MaskSet is a 32 double variable:
record(ao, "$(user):MaskSet")
{
field(DTYP ,"asynInt32")
field(OUT ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))mask")
field(LOPR, 0x00000000)
field(HOPR, 0x7FFFFFFF)
field(PINI, "YES")
}
For the CSS/BOY, I have defined a text input field which makes possible
to change the value of this field.
When I set "Default" as format type of the field, everything works fine.
The problem comes when changing the format type to "HEX32". In this
case, it is not possible to control the introduced value to the set field.
For example,
if we introduce 0xFFFFFF7, after pressing Enter, the value changes
automatically to 0xFFFFFF0.
Or when 0x800007F -> the input value changes to 0x8000080.
If now, I change the format type to "Default" again and introduce the
value 134217855 ( 0x800007F as decimal) every works as it should.
Have somebody an idea of what is happening?
Kind regards,
Pilar Gil
--
Pilar Gil Jaldo Seven Solutions | Embedded SW Engineer 2, Periodista
Rafael Gómez Montero. Edf. CETIC-UGR, Oficina 13 - Planta 1 18014,
Granada - SPAIN This e-mail and any materials attached hereto,
including, without limitation, all content hereof and thereof are
confidential and proprietary to Seven Solutions,S.L and/or its
affiliates. Without the prior written consent of Seven Solutions, this
content may not (i) be disclosed to any third party, (ii) be reproduced,
modified or otherwise used by anyone other than current employees of
Seven Solutions or its affiliates. If you are not the intended recipient
or if this message has been received in error, please immediately notify
us via e-mail and delete it.