Menu

WriteMultipleProperties at a time in BACnet

Raveesh
2012-04-18
2013-04-25
  • Raveesh

    Raveesh - 2012-04-18

    We are following these sequences to write multiple properties of a given object of a specific( SCADA Engine Simulator) BACnet device using bacnet4j api

    1.PropertyValue (PropertyIdentifier propertyIdentifier,Encodable  encodeValue).Repeated for each property to be WRitten

    2.WriteAccessSpecification write=new WriteAccessSpecification ( ObjectIdentifier objectIdentifier SequenceOf < PropertyValue > (pvs))

    3.create SequenceOf<WriteAccessSpecification >writeSpecs

    4.WritePropertyMultipleRequest wmpr= WritePropertyMultipleRequest ( SequenceOf< WriteAccessSpecification > (writeSpecs)))

    5.Recieve AcknowledgementService by invoking  send(RemoteDevice remoteDevice, WritePropertyMultipleRequest  wmpr)

    At the end of the procedure,if we recieve AcknowledgementService as null the we are saying Write is Successfull.

    This  also happens if we  provide 3(say)properties at a time and only 1(say)is successfully written to the simulator and the rest 2(say)  are not.

    Is there any way to obtain the information which property is successfully written to the simulator or which are not with reason(of not being written)?

     
  • Matthew Lohbihler

    If the simulator does not return any information about a write failure, then the answer is no. BACnet4J will itself return an error response, but only at the moment of the failure, i.e. not transactional. Still, this is likely better than not returning an error at all.

     
  • Raveesh

    Raveesh - 2012-04-19

    Thanks  mlohbihler.

    We are facing the issues as  if the we are unable to write at least 1 property out of 3 given in a write multiple properties API of BACnet4j ,It simply throw ErrorAPDUException  even if the rest 2(say)are written successfully.
    The request will stop when  first exception arrives(if the 1st properties is not writable)and won't go further(2 and 3) for other properties.
    Is that not supported by the Simulator or the BACnet4j API?

     
  • Matthew Lohbihler

    To my knowledge the BACnet spec makes no mention of transactional multiple writes. If you need this you can implement it yourself by using individual write requests.

     

Log in to post a comment.