• Recent
    • Tags
    • Popular
    • Register
    • Login
    1. Home
    2. kishorevenki
    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
    K
    • Profile
    • Following 0
    • Followers 0
    • Topics 6
    • Posts 16
    • Best 0
    • Controversial 0
    • Groups 0

    Posts made by kishorevenki

    • RE: local Device is not updated with the properties set and objects added to it

      Hi Philip,

      I got the issue, If the local device is bind to other than 0.0.0.0 say for example 192.168.1.133 with the correct broadcast address 192.168.1.255, local device is not responding with I-Am. Local Device expects bind address should be 0.0.0.0. But every time we cannot set 0.0.0,.0 as bind address if we have multiple IP port, and would prefer to bind it one one particular address.

      After some search, I noticed that same issue has been discussed in detail in the following post: https://forum.infiniteautomation.com/post/23468

      However I am not finding the fix for the issue in that thread. In that thread it was mentioned that issue#43 is fix for it. But after understanding the description, fix for issue#43 is not the for for the current issue So please share the fix for the issue mentioned in the above thread.

      Thanks & Regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: local Device is not updated with the properties set and objects added to it

      Hi,

      After the debugging I-AM is sent from the code. At line 648 DefaultTransport.java call is passed onto ur.getservice().handle(localdevice, from) wherein it sends I-Am. However at the outset it seems this line is skipped to execute hence there was no I-Am..

      Further the I-A,m is always sent as broadcast messages through the above mentioned code.. To avoid network traffic it is advisable to send unicast I-Am. So if we implement the same in the device Listener of our application, first Unicast I-Am would be sent. Subsequently once again the service.handle() would be executed resulting immediate I-Am as broadcast.

      So how to avoid two I-Am messages?

      Thanks & Regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • Network based discovery (Who-Is-Router-To-Network)

      Hello,

      If the recipient list of Notification Class object of the local device is configured with (Network Number and MAC Address), BACnet4J is not sending Who-Is-Router-To-Network service to get the router address so that event notification can be sent.

      Please help to resolve this issue.

      Thanks & Regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • BACnet/IPV6

      Hi,

      Could you please explain with example on how to configure IPV6 as the default transport for the local device? Are there any other settings to be configured for IPV6?

      Thanks & regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: local Device is not updated with the properties set and objects added to it

      Hi Phildunlap,

      Even after binding to 0.0.0.0, I-Am message is not sent automatically for Who-Is broadcast message.

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: How to solve the unrecognized service problem

      Please set the protocol services supported property of device object accordingly. This property is string of bits, setting 1 in any position indicates that the service in the corresponding position is supported.

      posted in BACnet4J general discussion
      K
      kishorevenki
    • Present_Value and other proeprties are not writeable

      Hi,

      When tried to write Present_Value of AV, BV, MSV objects and High_Limit, Low_Limit, etc we are getting write-access-denied error response? In fact for the above three commandable mixin is added.

      So how to make a property writeable and how to make a property not writeable?

      Regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: localDate, localTime and utcOffset

      Hi phildunlap,

      Based on your suggestion I did debugging.

      • UTC_Offset is getting updated when localDevice.writePropertyInternal(pid, value) during the initialize time. ;. After the analysis, I noticed that at 622nd line in BACnetObject.java ( l.propertyChange(pid, oldValue,, value) the value is right;y updated.

      • But when from 3rd property client ReadProprty (Device Object. UTC_Offset) is sent, the local device is returning the value of the timeZone and not with set value of UTC_Offset.. I could not debug using break point when asked from external device.with ReadProperty or other services. Please guide me where to set the break point, which will help me to debug and furnish you with more information.

      • Further I believe there is error in the value of UTC_Offset as per the time zone. For example if the time zone is - 7 hours, then the value of the UTC_Offset should be +420 and not -420. This is because as per BACnet local date / time is calculated based on the formula (GMT - UTC offset). So in the above example if UTC_Offset is -420 for - 7 hours. then the actual time would be if GMT equals 0;00 hours, 0 - (-420) equals 0 + 420 which means + 7 hours. and is wrong.

      Thanks,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: localDate, localTime and utcOffset

      Hi phildunlap,

      I also face similar problem. My problem is

      • UTC_Offset set during creation of LocalDevice is not getting updated to the utc_offset property of the device. Though Simple Ack is received while writing the UTC_Offset property from 3rd party client, but when read it always responds with old value.. Here the expected behavior is UTC_Offset, should be updated.

      • When TimeSynch message is sent either via broadcast or to localDevice, the local date and time should change accordingly. But it always shows the system clock which is incorrect. I think carnecro is also facing the same issue.

      • Above issue is faced for UTCTime Synch as well. Here one more problem is UTC_Offset cannot be changed through BACnet. .

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: local Device is not updated with the properties set and objects added to it

      Since the initialize() command was not executed, localDevice was not initialized. So the above issues are faced. Once the port is closed, local; device was initialized and was updated with objects, services and property values.

      However I-Am response has not received for Who-Is.

      Thanks & regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: LocalDevice.initialize() throws exception

      Yes, you are right. somehow port is blocked. After killing the process and the running the app, initialize() command was executed successfully.

      Thanks.

      Regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • local Device is not updated with the properties set and objects added to it

      Hello,

      The local device is not updated with the objects that are added, properties that are set except the object identifier which the local device is picking from the constructor. Below is the code :

      package com.test.mavenproject1;
      import com.serotonin.bacnet4j.LocalDevice;
      import com.serotonin.bacnet4j.exception.BACnetServiceException;
      import com.serotonin.bacnet4j.npdu.ip.IpNetwork;
      import com.serotonin.bacnet4j.npdu.ip.IpNetworkBuilder;
      import com.serotonin.bacnet4j.obj.BACnetObject;
      import com.serotonin.bacnet4j.transport.DefaultTransport;
      import com.serotonin.bacnet4j.transport.Transport;
      import org.slf4j.Logger;
      import org.slf4j.LoggerFactory;

      import com.serotonin.bacnet4j.type.constructed.ObjectTypesSupported;

      import com.serotonin.bacnet4j.type.constructed.SequenceOf;
      import com.serotonin.bacnet4j.type.constructed.ServicesSupported;
      import com.serotonin.bacnet4j.type.enumerated.ObjectType;
      import com.serotonin.bacnet4j.type.enumerated.PropertyIdentifier;
      import com.serotonin.bacnet4j.type.enumerated.RestartReason;
      import com.serotonin.bacnet4j.type.primitive.CharacterString;
      import com.serotonin.bacnet4j.type.primitive.ObjectIdentifier;
      import com.serotonin.bacnet4j.type.primitive.UnsignedInteger;

      public class App
      {
      public static void main( String[] args ) throws Exception
      {
      final int port = 47808;
      IpNetwork network;
      System.out.println( "Hello World!" );
      network = new IpNetworkBuilder()
      .withSubnet("192.168.1.0", 24)
      .withLocalBindAddress("192.168.1.107")
      .withPort(port)
      .build();

          final Logger LOG = LoggerFactory.getLogger(DefaultTransport.class);
          LOG.debug("Default Transport class");
          
      	Transport transport = new DefaultTransport(network);
      	System.out.println( "Default Transport class!" );
      
      	ServicesSupported servicesSupported=new ServicesSupported();
          servicesSupported.setAll(false);
          servicesSupported.setWhoIs(true);
          servicesSupported.setReadProperty(true);
      	LocalDevice localDevice = new LocalDevice(1000, transport)
      			.withPassword("1234")
      			.withAPDUTimeout(new UnsignedInteger(3000))
      			.withNumberOfApduRetries(new UnsignedInteger(3))
      			.writePropertyInternal(PropertyIdentifier.protocolServicesSupported, servicesSupported);
      	
      	try {
      		localDevice.initialize();
      	} catch (Exception e) {
      		// TODO Auto-generated catch block
      		e.printStackTrace();
      	} 
      
      	System.out.println(localDevice.getInstanceNumber());
      	System.out.println(localDevice.get(PropertyIdentifier.objectIdentifier));
      	System.out.println(localDevice.getId());
      	
          
          localDevice = localDevice.writePropertyInternal(PropertyIdentifier.location, new CharacterString("Puvys"));
          localDevice = localDevice.writePropertyInternal(PropertyIdentifier.description, new CharacterString("Server Device"));
          localDevice = localDevice.writePropertyInternal(PropertyIdentifier.activeCovSubscriptions, new SequenceOf<>());
      
          ObjectTypesSupported ots=new ObjectTypesSupported();
          ots.allFalse();
          ots.set(ObjectType.analogValue, true);
          localDevice = localDevice.writePropertyInternal(PropertyIdentifier.protocolObjectTypesSupported, ots);
          ObjectIdentifier objectId = new ObjectIdentifier(ObjectType.analogValue, 1);
          BACnetObject object = new BACnetObject(localDevice, objectId);
          try {
      		localDevice.addObject(object);
      	} catch (BACnetServiceException e) {
      		// TODO Auto-generated catch block
      		e.printStackTrace();
      	}
       
          
          System.out.println(localDevice.getServicesSupported());
      }    	
      

      }
      For the above the code, we faced the following issues when communicated from 3rd party client

      • For Who-is, I-Am has not been received from the local Device.

      • Correct response is received for Read-Property : Object Identifier

      • Incorrect value is returned for APDU Timeout. As per the above code 3000 is expected, but returned 6000 which is never set.

      • Incorrect value for Protocol_Services_Supported.

      • Analog Value,1 added is not returned while reading Object-List.

      • Output of the print statements are correct.

      • In spite of client functionalities are not added in the above code, after receiving Who_Is from the 3rd party client local devices started sending ReadProperty requests, but not the I-Am.

      Please provide the solution. Your quick response is appreciated.

      Thanks & Regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: LocalDevice.initialize() throws exception

      Hello,

      There is no other application running. When I terminate the server no response this local Device. But every time at the inititalize() command, I am getting exception.

      Further the values of device object, services that are modified and objects that are added not reflected in the local device. That is from the 3rd party client if I send the ReadProperty request, only the default values are returned and not the values that are set in the code. Probably I will raise another ticket with the code which help us to solve two different issues.

      Regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • LocalDevice.initialize() throws exception

      When I run the code mentioned at the last following errors are received

      Exception in thread "main" java.net.BindException: Address already in use (Bind failed)
      at java.base/java.net.PlainDatagramSocketImpl.bind0(Native Method)
      at java.base/java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:131)
      at java.base/java.net.DatagramSocket.bind(DatagramSocket.java:394)
      at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:244)
      at com.serotonin.bacnet4j.npdu.ip.IpNetwork.initialize(IpNetwork.java:169)
      at com.serotonin.bacnet4j.transport.DefaultTransport.initialize(DefaultTransport.java:186)
      at com.serotonin.bacnet4j.LocalDevice.initialize(LocalDevice.java:316)

      The code is:
      public class App
      {
      public static void main( String[] args ) throws Exception
      {
      final int port = 47808;
      IpNetwork network;
      network = new IpNetworkBuilder()
      .withSubnet("192.168.1.0", 24)
      .withLocalBindAddress("192.168.1.107")
      .withPort(port)
      .build();
      Transport transport = new DefaultTransport(network);
      LocalDevice localDevice = new LocalDevice(1000, transport);
      try {
      localDevice.initialize();
      } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }

      The same exception is also received for localDevice.initialize(RestartReason.coldstart);

      Please provide solution.

      Regards,
      Kishore

      posted in BACnet4J general discussion
      K
      kishorevenki
    • RE: Does BACnet4J support Bitstring-Value Object?

      Hi,

      Yes, I look for similar one. Since bitstringValue.java is not available under obj folder similar to other objects like AnalogInput.java etc...I thought bitStringValue is not supported.

      After your clarification I understand that bitStringValue object along with intrinsic reporting is supported.

      Please confirm.

      regards,
      Kishore

      posted in User help
      K
      kishorevenki
    • Does BACnet4J support Bitstring-Value Object?

      Hi,

      I noticed that currently BACnet4J supports many new objects, however bitstring-value object is not able to locate in the code. Further in the alarm events, I could see support for CHANGE_OF_BITSTRING. So would like to check whether I overlooked the code for support of Bitstring-Value object.

      Please guide.

      Best Regards,
      Kishore

      posted in User help
      K
      kishorevenki