• Recent
    • Tags
    • Popular
    • Register
    • Login
    1. Home
    2. Bernd

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 4
    • Best 0
    • Controversial 0
    • Groups 0

    Bernd

    @Bernd

    0
    Reputation
    217
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Bernd Unfollow Follow

    Latest posts made by Bernd

    • RE: switching from bacnet4j3 to bacnet4j4 using special ObjectProperties

      My Problem is fixed with bacnet4j 5 thank you.

      It is possible again to add proprietary values:

            final ObjectPropertyTypeDefinition o = new ObjectPropertyTypeDefinition(
                  ObjectType.lifeSafetyZone, true, new PropertyTypeDefinition(
                        PropertyIdentifier.forId(MY_SPECIAL_VALUE), CharacterString.class, true));
            ObjectProperties.getObjectPropertyTypeDefinitions(ObjectType.lifeSafetyPoint).add(o);
            final ObjectPropertyTypeDefinition o2 = new ObjectPropertyTypeDefinition(
                  ObjectType.lifeSafetyPoint, true, new PropertyTypeDefinition(
                        PropertyIdentifier.forId(MY_SPECIAL_VALUE), CharacterString.class, true));
            ObjectProperties.getObjectPropertyTypeDefinitions(ObjectType.lifeSafetyPoint).add(o2);
      
      

      in this example above MY_SPECIAL_VALUE is a list (SequenceOf<CharacterString>)

      posted in BACnet4J general discussion
      BerndB
      Bernd
    • RE: switching from bacnet4j3 to bacnet4j4 using special ObjectProperties

      Hello,
      unfortunately, only now I have had time to get involved in this discussion. I have now bypassed my problem by limiting the reading of multiple properties in a request to read the properties known to bacnet4j. The proprietary properties I read now individually with a single read request from the device. This is not nice and for me it means losing time with bacnet4j version 4, but I get the information in several reading cycles, which I read under bacnet4j version 3 in one reading cycle. Since I have seen that bacnet4j version 5 is now shipped, I'll try to find a way to get the information from the device I'm interrogating in one read cycle. The topic propertyArrayIndex from release notes version 5 could perhaps be the cause of the my problem. I will continue to report if my problem with version 5 can be solved.

                  case LIFE_SAFETY_POINT :
                     final Encodable value = new ReadProperty(localDevice, remoteDevice)
                           .readProperty(oId, PropertyIdentifier.forId(MY_SPECIAL_PROBLEM_EVENT_MESSAGE_TEXTS),
                                         new UnsignedInteger(3));
                     logger.debug("Encodable: [{}]", value);
                     txt = ((CharacterString) value).getValue();
      
      
      posted in BACnet4J general discussion
      BerndB
      Bernd
    • switching from bacnet4j3 to bacnet4j4 using special ObjectProperties

      Hello community,

      I'm searching for an example how to use the old ObjectProperties.addPropertyTypeDefinition in bacnet4j4 now. I don't know how to add new ObjectProperties.

      In the past ObjectProperties could be defined like this:

            ObjectProperties.addPropertyTypeDefinition(ObjectType.lifeSafetyZone,
                                                       PropertyIdentifier.forId(MY_SPECIAL_VALUE),
                                                       CharacterString.class, true, false);
      
      

      Now the add- function is private, so bacnet4j cannot handle answers for the PropertieIdentifier with the value of MY_SPECIAL_VALUE. Because of this the Objectpropertie is undefined. RequestUtils.readProperties causes failures in parsing the ComplexAck.

      RequestUtils.readProperties(localDevice, d, oprs, null);
      

      with oprs

      
               final List<ObjectPropertyReference> oprs = new ArrayList<>();
               oprs.add(new ObjectPropertyReference(oId, PropertyIdentifier.objectName));
               oprs.add(new ObjectPropertyReference(oId, PropertyIdentifier.description));
               oprs.add(new ObjectPropertyReference(oId,
                           PropertyIdentifier.forId(MY_SPECIAL_VALUE)));
      

      Stack-Trace:

      Caused by: com.serotonin.bacnet4j.exception.BACnetException: property: missing-required-parameter
      	at com.serotonin.bacnet4j.transport.ServiceFutureImpl.result(ServiceFutureImpl.java:76) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.transport.ServiceFutureImpl.get(ServiceFutureImpl.java:63) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.util.RequestUtils.readProperties(RequestUtils.java:313) ~[bacnet4j-4.1.6.jar:?]
      	... 13 more
      Caused by: com.serotonin.bacnet4j.exception.BACnetErrorException: property: missing-required-parameter
      	at com.serotonin.bacnet4j.type.Encodable.popEnd(Encodable.java:186) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.primitive.Primitive.createPrimitive(Primitive.java:67) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.Encodable.readANY(Encodable.java:368) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.constructed.Choice.read(Choice.java:102) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.constructed.Choice.<init>(Choice.java:75) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.Encodable.readChoice(Encodable.java:267) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult$Result.<init>(ReadAccessResult.java:141) ~[bacnet4j-4.1.6.jar:?]
      	at sun.reflect.GeneratedConstructorAccessor45.newInstance(Unknown Source) ~[?:?]
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_131]
      	at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_131]
      	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:230) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:87) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:309) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.Encodable.readOptionalSequenceOf(Encodable.java:342) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult.<init>(ReadAccessResult.java:75) ~[bacnet4j-4.1.6.jar:?]
      	at sun.reflect.GeneratedConstructorAccessor48.newInstance(Unknown Source) ~[?:?]
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_131]
      	at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_131]
      	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:230) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:74) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:298) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyMultipleAck.<init>(ReadPropertyMultipleAck.java:56) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.service.acknowledgement.AcknowledgementService.createAcknowledgementService(AcknowledgementService.java:52) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.apdu.ComplexACK.parseServiceData(ComplexACK.java:211) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.transport.DefaultTransport.completeComplexAckResponse(DefaultTransport.java:757) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.transport.DefaultTransport.receiveAPDU(DefaultTransport.java:679) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.transport.DefaultTransport.receiveImpl(DefaultTransport.java:573) ~[bacnet4j-4.1.6.jar:?]
      	at com.serotonin.bacnet4j.transport.DefaultTransport.run(DefaultTransport.java:493) ~[bacnet4j-4.1.6.jar:?]
      	at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]
      

      Wireshark of this special property:
      0_1540911576455_9ba43268-66c0-4d62-a396-00a85ab8de9c-grafik.png
      Is someone able to show me a way to fix my problem?

      Many thanks in advance,

      Bernd

      posted in BACnet4J general discussion
      BerndB
      Bernd