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.

  • Creating a Schedule Object in BACnet4j

    6
    0 Votes
    6 Posts
    6k Views
    W
    Sorry to answer so lately, I finally found back my login and password for this site. Tank you Joolz, your comment helped me buld a schedule object. I'll try to paste a very basic example when I'll figure out how to put my code into code tag.
  • How to receive the COV messeges in BACnet4j.jar

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • MSTP WhoIs

    4
    0 Votes
    4 Posts
    4k Views
    K
    Any other Suggestions as to what it might be?
  • 0 Votes
    2 Posts
    2k Views
    E
    Good day, We are trying to develop bacnet explorer using bacnet4j. the thing is that this explorer will not be in the same subnet as the bacnet controller most of the time. We can send who-is messages to the local broadcast address with destination network address 65535. We are trying to figure out how we can achieve the same when we are not in the same network as bacnet controller but we know the IP of the bacnet controller. Does bacnet4j support it? Thanks
  • BACnet explorer

    3
    0 Votes
    3 Posts
    3k Views
    JoelHaggarJ
    You could use Mango as a platform for this but it might be a bit over kill. We have started developing an API for Mango. We don't currently have API features for the discovery tool but that will be added at some point. You could then use pure JavaScript / HTML5 to build a UI that sits on top of Mango to do all the functions that you want. Again this will only be possible once we build the API features for the BACnet discovery which I don't have a timeline but I would say it will be this year.
  • Bacnet alarm report

    7
    0 Votes
    7 Posts
    4k Views
    M
    Yeah, still not the information i was hoping for. Do you use COV in your points? Also, what kind of event is raised: a device exception, or a message exception? Sorry for all the questions, but it would be great to track this down. Could you provide a chuck of the events so that i can check the timestamps for any clues?
  • Bacnet IP discove error Address already in use: Cannot bind

    5
    0 Votes
    5 Posts
    4k Views
    I
    hi i found that a service was using UDP port 47808 so i disable this and it is now working! Iain
  • MultiState Value with Event Enrollment and Notification

    2
    0 Votes
    2 Posts
    2k Views
    O
    Hi Everyone; I couldnt find a way create an event enrollment with a multistate value (cant set alarm values). Has anyone an example sending alarm using event notification,enrollment and multistate value? Thanks
  • Unable to subscribe to COV

    2
    0 Votes
    2 Posts
    2k Views
    G
    Hi I'm using bacnet4j stack from 3 tears ago and not able to unsubscribe to COV although the PDU response for unsubscribe is success. registration is for life time and the way I Subscribe and Unsubscribe is as follow: Subscribe: req = new SubscribeCOVRequest(new UnsignedInteger(1), aoid, new Boolean(true), new UnsignedInteger(0)); ocalDevice.send(d, req); Unsubscribe: localDevice.send(rd, new SubscribeCOVRequest(1, oid, null, null)); BTW:Is the process Id number should be same ?
  • Failure to communicate with BACnet server simulator

    3
    0 Votes
    3 Posts
    3k Views
    V
    This morning it works again. Still don't understand why... Is this a bug? There something I'm missing? Thank you.
  • Bug in LogData class

    2
    0 Votes
    2 Posts
    2k Views
    J
    According to the standard, BACnetLogData is a choice of log-status, log-data or time-change. However, looking at com.serotonin.bacnet4j.type.constructed.LogData.java:``` public LogData(ByteQueue queue) throws BACnetException { logStatus = read(queue, LogStatus.class, 0); logData = readSequenceOfChoice(queue, classes, 1); timeChange = read(queue, Real.class, 2); } @Override public void write(ByteQueue queue) { write(queue, logStatus, 0); write(queue, logData, 1); write(queue, timeChange, 2); } By changing public LogData(ByteQueue queue) throws BACnetException { logStatus = read(queue, LogStatus.class, 0); logData = readSequenceOfChoice(queue, classes, 1); timeChange = read(queue, Real.class, 2); } public LogData(ByteQueue queue) throws BACnetException { int tag = peekTagNumber(queue); if (tag == 0) { logStatus = read(queue, LogStatus.class, 0); logData = null; timeChange = null; } else if (tag == 1) { logStatus = null; logData = readSequenceOfChoice(queue, classes, 1); timeChange = null; } else if (tag == 2) { logStatus = null; logData = null; timeChange = read(queue, Real.class, 2); } else { throw new BACnetErrorException(ErrorClass.property, ErrorCode.missingRequiredParameter); } }
  • Problems with start BACnet4j (java.lang.ClassNotFoundException)

    4
    0 Votes
    4 Posts
    4k Views
    B
    Thanks now it compiles :) (after i added one more jar file - seroUtils.jar).
  • 0 Votes
    2 Posts
    2k Views
    B
    Hey there, I'm running into a little trouble changing PresentValues of data points while the device which is sending the WritePropertyRequest is also subscribed to Confirmed COV notifications of that data point. This is the error my device receives: com.serotonin.bacnet4j.exception.ErrorAPDUException: ErrorAPDU(choice=127, errorClass=Device, errorCode=Operational problem) at com.serotonin.bacnet4j.transport.Transport.send(Transport.java:202) at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:370) I'm not exactly sure what choice=127 means, but for some reason the target device doesn't process the WriteProperty request. Oddly enough, WriteProperty requests which are quickly sent after the first actually are successful. Also, when using the UnconfirmedCOV service, WriteProperty requests do not produce any errors, and properties are written without issues. Could this be a bug?
  • SlaveTestDevice response to readProperties request

    2
    0 Votes
    2 Posts
    2k Views
    B
    I am new to bacnet4j and need some help understanding how the slaveDevicetest Local device would respond to a ReadProperties request. I dont see any indication in the Listener instance that would give an indication that a readproperty request was received. Do I need to add the readproperty request to the event handler?? Any suggestions would be greatly appreciated. Bill
  • BACnet Discovery not working

    4
    0 Votes
    4 Posts
    3k Views
    T
    Ah found it in System Settings. There I found a setup section for BACnet. There I could select the address of the Mango Server Computer instead of 0.0.0.0::47808 Now it works perfectly. Just a silly beginners problem. Regards TJ
  • BACnet/WS

    4
    0 Votes
    4 Posts
    3k Views
    R
    After working more intensively with BACnet4J, I came to the conclusion that it is not supported.
  • Reading Trendlog LogBuffer property should return an error

    2
    0 Votes
    2 Posts
    2k Views
    J
    The BACnet standard states that any attempt to read the LogBuffer property of a Trendlog or Trendlog Multiple object with a ReadProperty-Request or a ReadPropertyMultiple-Request shall cause a a Result(-) response, with an Error class of PROPERTY, and an Error Code of READ_ACCESS_DENIED. Currently BACnet4j does not do this. I've created a couple of patches which I believe fix this: diff --git a/src/com/serotonin/bacnet4j/service/confirmed/ReadPropertyMultipleRequest.java b/src/com/serotonin/bacnet4j/service/confirmed/ReadPropertyMultipleRequest.java --- a/src/com/serotonin/bacnet4j/service/confirmed/ReadPropertyMultipleRequest.java +++ b/src/com/serotonin/bacnet4j/service/confirmed/ReadPropertyMultipleRequest.java @@ -44,6 +44,8 @@ import com.serotonin.bacnet4j.type.constructed.ReadAccessResult.Result; import com.serotonin.bacnet4j.type.constructed.ReadAccessSpecification; import com.serotonin.bacnet4j.type.constructed.SequenceOf; +import com.serotonin.bacnet4j.type.enumerated.ErrorClass; +import com.serotonin.bacnet4j.type.enumerated.ErrorCode; import com.serotonin.bacnet4j.type.enumerated.PropertyIdentifier; import com.serotonin.bacnet4j.type.primitive.ObjectIdentifier; import com.serotonin.bacnet4j.type.primitive.OctetString; @@ -151,7 +153,10 @@ else { // Get the specified property. try { - results.add(new Result(pid, pin, obj.getPropertyRequired(pid, pin))); + if (pid.equals(PropertyIdentifier.logBuffer)) + results.add(new Result(pid, pin, new BACnetError(ErrorClass.property, ErrorCode.readAccessDenied))); + else + results.add(new Result(pid, pin, obj.getPropertyRequired(pid, pin))); } catch (BACnetServiceException e) { results.add(new Result(pid, pin, new BACnetError(e.getErrorClass(), e.getErrorCode()))); diff --git a/src/com/serotonin/bacnet4j/service/confirmed/ReadPropertyMultipleRequest.java b/src/com/serotonin/bacnet4j/service/confirmed/ReadPropertyMultipleRequest.java --- a/src/com/serotonin/bacnet4j/service/confirmed/ReadPropertyMultipleRequest.java +++ b/src/com/serotonin/bacnet4j/service/confirmed/ReadPropertyMultipleRequest.java @@ -44,6 +44,8 @@ import com.serotonin.bacnet4j.type.constructed.ReadAccessResult.Result; import com.serotonin.bacnet4j.type.constructed.ReadAccessSpecification; import com.serotonin.bacnet4j.type.constructed.SequenceOf; +import com.serotonin.bacnet4j.type.enumerated.ErrorClass; +import com.serotonin.bacnet4j.type.enumerated.ErrorCode; import com.serotonin.bacnet4j.type.enumerated.PropertyIdentifier; import com.serotonin.bacnet4j.type.primitive.ObjectIdentifier; import com.serotonin.bacnet4j.type.primitive.OctetString; @@ -151,7 +153,10 @@ else { // Get the specified property. try { results.add(new Result(pid, pin, obj.getPropertyRequired(pid, pin))); if (pid.equals(PropertyIdentifier.logBuffer)) results.add(new Result(pid, pin, new BACnetError(ErrorClass.property, ErrorCode.readAccessDenied))); else results.add(new Result(pid, pin, obj.getPropertyRequired(pid, pin))); } catch (BACnetServiceException e) { results.add(new Result(pid, pin, new BACnetError(e.getErrorClass(), e.getErrorCode())));
  • Support for SubscribeCOVPropertyRequests?

    5
    0 Votes
    5 Posts
    4k Views
    R
    On the recipient side, SubscribeCOV is supported, but not SubscribeCOVProperty. I implemented my own SlaveDevice and it is supporting SubscribeCOV but not SubscribeCOVProperty. But I would like to subscribe just one property, not all. How Can I achieve that my slavedevice supports this?
  • Difference getProperty and readProperty

    4
    0 Votes
    4 Posts
    3k Views
    R
    Next question, in hopes that I get an answer eventually ;) Is it possible to detect which type data has to be I want to write?
  • Search for a device by name

    3
    0 Votes
    3 Posts
    2k Views
    R
    With the SlaveDeviceTest it works, but unfortunately not with VTS.