• Recent
    • Tags
    • Popular
    • Register
    • Login
    1. Home
    2. Gatos
    3. Posts

    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
    G
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 13
    • Best 0
    • Controversial 0
    • Groups 0

    Posts made by Gatos

    • How to find out a Device ID

      Hello everybody,

      I am using the findRemoteDevice() method and, in one of my tests, I don't know the device id (which is needed as the third argument of the method...).
      Can I somehow find it out using the lib?
      I know the IP and the port (even the device name and the MAC address, I think :-)).

      Thanks a lot in advance.

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: How to find out a Device ID

      Hello everybody,

      I am using the findRemoteDevice() method and, in one of my tests, I don't know the device id (which is needed as the third argument of the method...).
      Can I somehow find it out using the lib?
      I know the IP and the port (even the device name and the MAC address, I think :-)).

      Thanks a lot in advance.

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: RemoteDevice getObjects method

      OK, thanks a lot, that's true, it would be heavy...

      posted in BACnet4J general discussion
      G
      Gatos
    • RemoteDevice getObjects method

      Hi,

      when discovering a device (i.e., in iAmReceived(RemoteDevice d) ), d.getObjects() returns always null, although the device has objects that can be addressed.
      Is this normal/expected functionality? How can I get the list of RemoteObjects of a discovered device?

      Best regards,

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: RemoteDevice getObjects method

      Hi,

      when discovering a device (i.e., in iAmReceived(RemoteDevice d) ), d.getObjects() returns always null, although the device has objects that can be addressed.
      Is this normal/expected functionality? How can I get the list of RemoteObjects of a discovered device?

      Best regards,

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: Non unique Object Names???

      Is then the same true when changing an ObjectIdentifier? Or is the latter simply not writable?

      Thanks + regards!

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: Non unique Object Names???

      Yes, it helps, thanks a lot for your response.
      I see...
      Well, actually, according to the standard, the object name MUST be unique:
      http://www.bacnet.org/Bibliography/ES-7-96/ES-7-96.htm
      (This is not the specification document, but I have read the same in many BACnet sources)
      I don't doubt that there may be good arguments why this is not necessary or maybe even a bad strategy.
      However, strictly speaking, if we want to say that bacnet4j implements the BACnet specification, I think it should ensure the uniqueness of the object name.

      posted in BACnet4J general discussion
      G
      Gatos
    • Non unique Object Names???

      Hello,

      I create and initiate a device with multiple objects with the same name.
      No problems, no exceptions, everything works "fine".
      But according to the BACnet standard, object names MUST be unique.

      Am I missing something?

      Thanks a lot in advance.

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: Non unique Object Names???

      Hello,

      I create and initiate a device with multiple objects with the same name.
      No problems, no exceptions, everything works "fine".
      But according to the BACnet standard, object names MUST be unique.

      Am I missing something?

      Thanks a lot in advance.

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: How to integrate BACnet Change Of Value (COV) using BACnet4J

      Hey,

      Thanks, again!

      I've read in the forum that you have done some research on the issue "COV subscriptions for Analog Inputs/Outputs".
      Could you tell me what's the status there? Any solutions or workarounds for implementing it with bacnet4j described somewhere?

      Cheers,
      Gatos

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: How to integrate BACnet Change Of Value (COV) using BACnet4J

      Hello,

      Many thanks, it works now!

      However, it took me a while to find out why subscriptions did not work with my own client although they worked with the SimpleSubscriptionClient.
      Therefore, just in case someone is as stupid as I am :-), I note where the problem was:

      It is necessary that also the client sends the "iAm" -> Line 24 of the SimpleSubscriptionClient: localDevice.sendBroadcast(2068, localDevice.getIAm());
      Just because I could do discoveries, reads, and writes without having done this (i.e., my client was sending only a "whoIs"), I did not think that it would be needed for subscriptions, so I had ignored the above call and was always getting the error ErrorAPDU(choice=5, errorClass=Services, errorCode=Cov subscription failed)...

      Best regards
      Gatos

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: How to integrate BACnet Change Of Value (COV) using BACnet4J

      Hello Joel,

      many thanks for your response!

      I am now a bit stuck with the test.
      Although the slave test device receives the iAm from the subscription client, the latter blocks at:
      d = localDevice.findRemoteDevice(new Address(new byte[] { (byte) 192, (byte) 168, (byte) 56, (byte) 255}, 2068), null, 1968);
      while the slave device test periodically throws the exception:

      com.serotonin.bacnet4j.exception.BACnetException: Error while creating APDU:
      at com.serotonin.bacnet4j.npdu.ip.IpMessageControl$IncomingMessageExecutor.parseApdu(IpMessageControl.java:662)
      at com.serotonin.bacnet4j.npdu.ip.IpMessageControl$IncomingMessageExecutor.runImpl(IpMessageControl.java:530)
      at com.serotonin.bacnet4j.npdu.ip.IpMessageControl$IncomingMessageExecutor.run(IpMessageControl.java:518)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.IllegalArgumentException: Unknown id: 7
      at com.serotonin.bacnet4j.enums.MaxSegments.valueOf(MaxSegments.java:71)
      at com.serotonin.bacnet4j.apdu.ConfirmedRequest.<init>(ConfirmedRequest.java:255)
      at com.serotonin.bacnet4j.apdu.APDU.createAPDU(APDU.java:44)
      at com.serotonin.bacnet4j.npdu.ip.IpMessageControl$IncomingMessageExecutor.parseApdu(IpMessageControl.java:655)
      ... 5 more

      Note: This exception starts to be thrown only in the case of a successfully received iAm.
      Further, I noticed that if I provide a port other than 2068 to the method findRemoteDevice, this exception is not thrown, unless I provide 47808. Then, exactly the same exception is thrown, but at the subscription client this time.

      Any ideas?

      Thanks + regards
      Gatos

      posted in BACnet4J general discussion
      G
      Gatos
    • RE: How to integrate BACnet Change Of Value (COV) using BACnet4J

      Hello,

      as this is my first post, I start by saying many thanks for bacnet4j, great work!

      I am "updating" this thread because I have seen a couple of questions about implementing COV subscriptions, but not many answers.
      The SimpleSubscriptionClient, which is mentioned in another thread, seems to be missing from the current release (?)

      I also have difficulties with COV. More concretely:
      I am trying to subscribe using the following method, passing it a RemoteDevice for which I have checked that d.getServicesSupported().isSubscribeCovProperty() returns true and an oid which corresponds to a Binary Input:

      public int subscribeCOV(RemoteDevice d, ObjectIdentifier oid) {
      SubscribeCOVRequest covReq = new SubscribeCOVRequest(new UnsignedInteger(0), oid, new Boolean(true), new UnsignedInteger(0));
      try {
      localDevice.send(d, covReq);
      System.out.println("Subsciption of " + oid.getObjectType() + "-" + oid.getInstanceNumber() + " done.");
      return Properties.SUCCESS;
      } catch (BACnetException be) {
      System.out.println("Unable to send <SubscribeCOVRequest> for the Object " + oid.getObjectType()+ "-" + oid.getInstanceNumber()+ ":\n"+ be.getMessage());
      return Properties.FAIL;
      }
      }

      and the exception occurs giving the message:
      ErrorAPDU(choice=5, errorClass=Services, errorCode=Cov subscription failed)
      Can someone tell me when and why this occurs?

      Thanks a lot in advance. I will post again here if I solve the problem.

      Best regards,
      Gatos

      posted in BACnet4J general discussion
      G
      Gatos