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

    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
    M
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 2
    • Groups 0

    Madartsoft

    @Madartsoft

    0
    Reputation
    293
    Profile views
    2
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    Madartsoft Unfollow Follow

    Latest posts made by Madartsoft

    • Timeout error when call getExtendedDeviceInformation

      Hi,

      I'm having problem with discovery devices when using method 'getExtendedDeviceInformation'. The application stops and after some time I got a timeout error.
      To test the BACnet I use VTS application. The VTS respond 4 times but it looks like the BACnet4j doesn't see the responses.

      P.S.
      Also the VTS can see 'Iam' message so it's not a communication issue.

          public static void main(String[] args) throws Exception {
               LocalDevice localDevice = new LocalDevice(12, "192.168.254.255");         
              localDevice.getEventHandler().addListener(new Listener());
              localDevice.initialize();
      
              localDevice.sendBroadcast(47808, new WhoIsRequest());
      
              // Wait a bit for responses to come in.
              Thread.sleep(1000);
              
              // Get extended information for all remote devices.
              for (RemoteDevice d : localDevice.getRemoteDevices()) {            
            	
              	localDevice.getExtendedDeviceInformation(d);        	
                  
                  List<ObjectIdentifier> oids = ((SequenceOf<ObjectIdentifier>) localDevice.sendReadPropertyAllowNull(d, d
                          .getObjectIdentifier(), PropertyIdentifier.objectList)).getValues();
      
                  PropertyReferences refs = new PropertyReferences();
                  for (ObjectIdentifier oid : oids)
                      addPropertyReferences(refs, oid);
      
                  PropertyValues pvs = localDevice.readProperties(d, refs);
                  
                  System.out.println(pvs);
                  System.out.println(d);
              }
      
              localDevice.terminate();
              
          }
      
          private static void addPropertyReferences(PropertyReferences refs, ObjectIdentifier oid) {
              refs.add(oid, PropertyIdentifier.objectName);
      
              ObjectType type = oid.getObjectType();
              if (ObjectType.accumulator.equals(type)) {
                  refs.add(oid, PropertyIdentifier.units);
              }
              else if (ObjectType.analogInput.equals(type) || ObjectType.analogOutput.equals(type)
                      || ObjectType.analogValue.equals(type) || ObjectType.pulseConverter.equals(type)) {
                  refs.add(oid, PropertyIdentifier.units);
              }
              else if (ObjectType.binaryInput.equals(type) || ObjectType.binaryOutput.equals(type)
                      || ObjectType.binaryValue.equals(type)) {
                  refs.add(oid, PropertyIdentifier.inactiveText);
                  refs.add(oid, PropertyIdentifier.activeText);
              }
              else if (ObjectType.lifeSafetyPoint.equals(type)) {
                  refs.add(oid, PropertyIdentifier.units);
              }
              else if (ObjectType.loop.equals(type)) {
                  refs.add(oid, PropertyIdentifier.outputUnits);
              }
              else if (ObjectType.multiStateInput.equals(type) || ObjectType.multiStateOutput.equals(type)
                      || ObjectType.multiStateValue.equals(type)) {
                  refs.add(oid, PropertyIdentifier.stateText);
              }
              else
                  return;
      
              refs.add(oid, PropertyIdentifier.presentValue);
          }
      
          static class Listener extends DefaultDeviceEventListener {
              @Override
              public void iAmReceived(RemoteDevice d) {
                  System.out.println("IAm received" + d);
              }
          }
      
      
      posted in BACnet4J general discussion
      M
      Madartsoft
    • RE: Timeout error when call getExtendedDeviceInformation

      Hi,

      I'm having problem with discovery devices when using method 'getExtendedDeviceInformation'. The application stops and after some time I got a timeout error.
      To test the BACnet I use VTS application. The VTS respond 4 times but it looks like the BACnet4j doesn't see the responses.

      P.S.
      Also the VTS can see 'Iam' message so it's not a communication issue.

          public static void main(String[] args) throws Exception {
               LocalDevice localDevice = new LocalDevice(12, "192.168.254.255");         
              localDevice.getEventHandler().addListener(new Listener());
              localDevice.initialize();
      
              localDevice.sendBroadcast(47808, new WhoIsRequest());
      
              // Wait a bit for responses to come in.
              Thread.sleep(1000);
              
              // Get extended information for all remote devices.
              for (RemoteDevice d : localDevice.getRemoteDevices()) {            
            	
              	localDevice.getExtendedDeviceInformation(d);        	
                  
                  List<ObjectIdentifier> oids = ((SequenceOf<ObjectIdentifier>) localDevice.sendReadPropertyAllowNull(d, d
                          .getObjectIdentifier(), PropertyIdentifier.objectList)).getValues();
      
                  PropertyReferences refs = new PropertyReferences();
                  for (ObjectIdentifier oid : oids)
                      addPropertyReferences(refs, oid);
      
                  PropertyValues pvs = localDevice.readProperties(d, refs);
                  
                  System.out.println(pvs);
                  System.out.println(d);
              }
      
              localDevice.terminate();
              
          }
      
          private static void addPropertyReferences(PropertyReferences refs, ObjectIdentifier oid) {
              refs.add(oid, PropertyIdentifier.objectName);
      
              ObjectType type = oid.getObjectType();
              if (ObjectType.accumulator.equals(type)) {
                  refs.add(oid, PropertyIdentifier.units);
              }
              else if (ObjectType.analogInput.equals(type) || ObjectType.analogOutput.equals(type)
                      || ObjectType.analogValue.equals(type) || ObjectType.pulseConverter.equals(type)) {
                  refs.add(oid, PropertyIdentifier.units);
              }
              else if (ObjectType.binaryInput.equals(type) || ObjectType.binaryOutput.equals(type)
                      || ObjectType.binaryValue.equals(type)) {
                  refs.add(oid, PropertyIdentifier.inactiveText);
                  refs.add(oid, PropertyIdentifier.activeText);
              }
              else if (ObjectType.lifeSafetyPoint.equals(type)) {
                  refs.add(oid, PropertyIdentifier.units);
              }
              else if (ObjectType.loop.equals(type)) {
                  refs.add(oid, PropertyIdentifier.outputUnits);
              }
              else if (ObjectType.multiStateInput.equals(type) || ObjectType.multiStateOutput.equals(type)
                      || ObjectType.multiStateValue.equals(type)) {
                  refs.add(oid, PropertyIdentifier.stateText);
              }
              else
                  return;
      
              refs.add(oid, PropertyIdentifier.presentValue);
          }
      
          static class Listener extends DefaultDeviceEventListener {
              @Override
              public void iAmReceived(RemoteDevice d) {
                  System.out.println("IAm received" + d);
              }
          }
      
      
      posted in BACnet4J general discussion
      M
      Madartsoft