• Recent
    • Tags
    • Popular
    • Register
    • Login

    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

    Bacnet4j Error Unable to find router to network 50001,20001 soo on

    BACnet4J general discussion
    1
    1
    563
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Prabhu Hiremath
      last edited by

      When I try to read the object properties from the IP address, I am getting Unable to find router to network 50001
      please help me.

      I am using Bacnet4j 3.2.4.4 library.

      Here is the Code:
      import com.serotonin.bacnet4j.LocalDevice;
      import com.serotonin.bacnet4j.RemoteDevice;
      import com.serotonin.bacnet4j.RemoteObject;
      import com.serotonin.bacnet4j.ServiceFuture;
      import com.serotonin.bacnet4j.event.DeviceEventAdapter;
      import com.serotonin.bacnet4j.exception.BACnetException;
      import com.serotonin.bacnet4j.exception.ErrorAPDUException;
      import com.serotonin.bacnet4j.npdu.ip.IpNetwork;
      import com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyAck;
      import com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyMultipleAck;
      import com.serotonin.bacnet4j.service.confirmed.*;
      import com.serotonin.bacnet4j.service.unconfirmed.WhoIsRequest;
      import com.serotonin.bacnet4j.transport.DefaultTransport;
      import com.serotonin.bacnet4j.transport.Transport;
      import com.serotonin.bacnet4j.type.constructed.ReadAccessResult;
      import com.serotonin.bacnet4j.type.constructed.ReadAccessSpecification;
      import com.serotonin.bacnet4j.type.constructed.SequenceOf;
      import com.serotonin.bacnet4j.type.enumerated.ObjectType;
      import com.serotonin.bacnet4j.type.enumerated.PropertyIdentifier;
      import com.serotonin.bacnet4j.type.enumerated.Segmentation;
      import com.serotonin.bacnet4j.type.primitive.ObjectIdentifier;
      import com.serotonin.bacnet4j.type.primitive.Real;
      import com.serotonin.bacnet4j.util.DiscoveryUtils;

      import java.util.ArrayList;
      import java.util.List;

      public class Bacnet_4_j_test2 {

      /**

      • @param args the command line arguments
        */
        public static void main(String[] args) throws Exception {
        IpNetwork network = new IpNetwork("172.16.60.195", IpNetwork.DEFAULT_PORT);
        Transport transport = new DefaultTransport(network);
        transport.setTimeout(500000);
        transport.setSegTimeout(15000);
        final LocalDevice localDevice = new LocalDevice(5001, transport);

      localDevice.getEventHandler().addListener(new DeviceEventAdapter() {
      public void iAmReceived(RemoteDevice device) {
      // System.out.println("Discovered device " + 1001);
      localDevice.addRemoteDevice(device);
      final RemoteDevice remoteDevice = localDevice.getRemoteDevice(device.getAddress());
      // System.out.println("hi:"+remoteDevice.getInstanceNumber());

      remoteDevice.setSegmentationSupported(Segmentation.segmentedBoth);
      remoteDevice.setSegmentationSupported(Segmentation.noSegmentation);
      remoteDevice.setSegmentationSupported(Segmentation.segmentedReceive);
      remoteDevice.setSegmentationSupported(Segmentation.segmentedTransmit);
      remoteDevice.setSegmentationSupported(Segmentation.ALL[3]);
      device.setMaxAPDULengthAccepted(100);

      // System.out.println("Hi:"+remoteDevice.getSegmentationSupported());

      new Thread(new Runnable() {
      @Override
      public void run() {
      try {
      try {
      DiscoveryUtils.getExtendedDeviceInformation(localDevice, remoteDevice);
      } catch (BACnetException e) {
      e.printStackTrace();
      }
      System.out.println(remoteDevice.getName() + " " + remoteDevice.getVendorName() + " " + remoteDevice.getModelName() + " " + remoteDevice.getAddress() + " " + remoteDevice.getProtocolRevision() + " " + remoteDevice.getProtocolVersion());

      ReadPropertyAck ack = localDevice.send(remoteDevice, new ReadPropertyRequest(remoteDevice.getObjectIdentifier(), PropertyIdentifier.objectList)).get();
      SequenceOf<ObjectIdentifier> value = (SequenceOf<ObjectIdentifier>) ack.getValue();

      for (ObjectIdentifier id : value) {

      List<ReadAccessSpecification> specs = new ArrayList<ReadAccessSpecification>();
      specs.add(new ReadAccessSpecification(id, PropertyIdentifier.presentValue));
      //specs.add(new ReadAccessSpecification(id, PropertyIdentifier.units));
      specs.add(new ReadAccessSpecification(id, PropertyIdentifier.objectName));
      //specs.add(new ReadAccessSpecification(id, PropertyIdentifier.description));
      //specs.add(new ReadAccessSpecification(id, PropertyIdentifier.objectType));
      //specs.add(new ReadAccessSpecification(id, PropertyIdentifier.eventType));

      ReadPropertyMultipleRequest multipleRequest = new ReadPropertyMultipleRequest(new SequenceOf<ReadAccessSpecification>(specs));

      ReadPropertyMultipleAck send = localDevice.send(remoteDevice, multipleRequest).get();
      SequenceOf<ReadAccessResult> readAccessResults = send.getListOfReadAccessResults();

      System.out.print(id.getInstanceNumber() + " " + id.getObjectType() + ", ");
      for (ReadAccessResult result : readAccessResults) {
      for (ReadAccessResult.Result r : result.getListOfResults()) {
      System.out.print(r.getReadResult() + ", ");
      if(r.getReadResult().toString().contains("T")){

      }

      }
      }
      System.out.println();
      }

      ObjectIdentifier mode = new ObjectIdentifier(ObjectType.analogValue, 11);

      ServiceFuture send = localDevice.send(remoteDevice, new WritePropertyRequest(mode, PropertyIdentifier.presentValue, null, new Real(2), null));
      System.out.println(send.getClass());
      System.out.println(send.get().getClass());

      } catch (ErrorAPDUException e) {
      System.out.println("Could not read value " + e.getApdu().getError() + " " + e);
      } catch (BACnetException e) {
      e.printStackTrace();
      }

      }
      }).start();
      }

      @Override
      public void iHaveReceived(RemoteDevice device, RemoteObject object) {
      System.out.println("Value reported " + device + " " + object);
      }
      });

      localDevice.initialize();
      localDevice.sendGlobalBroadcast(new WhoIsRequest());
      Thread.sleep(60000);

      List<RemoteDevice> remoteDevices = localDevice.getRemoteDevices();
      for (RemoteDevice device : remoteDevices) {
      System.out.println("Remote dev " + device);
      }

      System.in.read();
      localDevice.terminate();
      }

      }

      1 Reply Last reply Reply Quote 0
      • First post
        Last post