OK great, thanks.
Added to bacnet4j doco.
OK great, thanks.
Added to bacnet4j doco.
Hi Matthew,
I am trying to set a COV subscription to a (virtual) device's present value using a SubscribeCOVPropertyRequest. By "virtual device" I mean I am creating the device(s) via bacnet4j. I receive the following:
Unsupported confirmed request: invokeId=61, from=Address(networkNumber=0, macAddress=[c0,a8,19,2b,ba,c0]), request=com.serotonin.bacnet4j.service.confirmed.SubscribeCOVPropertyRequest
...
Caused by: com.serotonin.bacnet4j.exception.ErrorAPDUException: ErrorAPDU(choice=127, errorClass=Services, errorCode=Service request denied)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:424)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:403)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:396)
Could you please comment on the level of support for SubscribeCOVPropertyRequest on real devices?
Hi Matthew,
I am trying to set a COV subscription to a (virtual) device's present value using a SubscribeCOVPropertyRequest. By "virtual device" I mean I am creating the device(s) via bacnet4j. I receive the following:
Unsupported confirmed request: invokeId=61, from=Address(networkNumber=0, macAddress=[c0,a8,19,2b,ba,c0]), request=com.serotonin.bacnet4j.service.confirmed.SubscribeCOVPropertyRequest
...
Caused by: com.serotonin.bacnet4j.exception.ErrorAPDUException: ErrorAPDU(choice=127, errorClass=Services, errorCode=Service request denied)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:424)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:403)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:396)
Could you please comment on the level of support for SubscribeCOVPropertyRequest on real devices?
BTW, I am also getting the same exception + error message when trying to pass a com.serotonin.bacnet4j.type.primitive.Double or UnsignedInteger to the same remote object, though I suspect this may be because the analog object will only accept a float/Real value?
In general will "virtual devices" created by bacnet4j perform any type conversion (narrowing or widening)?
That would be a great thing to make known in the class' doco... in what circumstance would one use or find a com.serotonin.bacnet4j.type.primitive.Boolean?
BTW, I am also getting the same exception + error message when trying to pass a com.serotonin.bacnet4j.type.primitive.Double .
No it's certainly a class com.serotonin.bacnet4j.type.primitive.Boolean, value=true that's being sent from my end. Here's the relevant code:
public void setPresentValue( RemoteDevice rd, ObjectIdentifier id, Encodable value, int priority )
throws BACnetException
{
log.debug( "setPresentValue: value encoded as "
+ value.getClass()
+ ", value="
+ value );
localDevice.send(
rd,
new WritePropertyRequest(
id
, PropertyIdentifier.presentValue
, null
, value
, new UnsignedInteger( priority )
)
);
}
this code prints:
DEBUG: setPresentValue: value encoded as class com.serotonin.bacnet4j.type.primitive.Boolean, value=true (com.buildingiq.io.protocol.bacnet.Bacnet4jUtils.setPresentValue(Bacnet4jUtils.java:582))
when run. While we're here, what does 'propertyArrayIndex' refer to? It doesn't seem to affect the writing of other points, such as writing an unsigned int to an analog remote object.
I've created a "virtual" bacnet device with a couple of analog and binary controls. I can read/write the analog object with no problem, but I receive the following error when trying to write boolean to a binary remote object:
com.serotonin.bacnet4j.exception.ErrorAPDUException: ErrorAPDU(choice=127, errorClass=Property, errorCode=Missing required parameter)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:424)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:403)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:396)
writing of an unsigned integer = 1 to the binary object does however work.
bug?
lastly, is there a facile way of ascertaining the type of a remote object's present value without writing java code that guesses the correct type?
Also I would like to commit some code+docs for bacnet4j (added code is mainly commons logging at this point) in the near future, please CC or send a message to 'g l y c o s l a v e at g m a i l . c o m' if you're interested.
cheers,
matt
I've created a "virtual" bacnet device with a couple of analog and binary controls. I can read/write the analog object with no problem, but I receive the following error when trying to write boolean to a binary remote object:
com.serotonin.bacnet4j.exception.ErrorAPDUException: ErrorAPDU(choice=127, errorClass=Property, errorCode=Missing required parameter)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:424)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:403)
at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:396)
writing of an unsigned integer = 1 to the binary object does however work.
bug?
lastly, is there a facile way of ascertaining the type of a remote object's present value without writing java code that guesses the correct type?
Also I would like to commit some code+docs for bacnet4j (added code is mainly commons logging at this point) in the near future, please CC or send a message to 'g l y c o s l a v e at g m a i l . c o m' if you're interested.
cheers,
matt
Salutations from Australia :-)
First-up thanks Matthew for the source release. Open source rocks.
Before we commit to using bacnet4j we have a couple of questions:
how widely has bacnet4j been tested against "real devices"?
do you have a compiled list of existing/known issues with the codebase?
is there a "portfolio" of existing virtual bacnet devices that could be used for testing/learning?
If you're looking for constructive criticism, the biggest issue(s) we have with your code is the lack of doco... I think the codebase would benefit tremendously from the addition of some documentation to each of the main classes in the library, and some unit/functional tests that work "out of the box".
Assuming we go with bacnet4j (my boss is concerned about the lack of doco/tests), we would be interested in returning our fixes/improvements/tests/etc back to sourceforge if you're interested.
regards,
Matt
Salutations from Australia :-)
First-up thanks Matthew for the source release. Open source rocks.
Before we commit to using bacnet4j we have a couple of questions:
how widely has bacnet4j been tested against "real devices"?
do you have a compiled list of existing/known issues with the codebase?
is there a "portfolio" of existing virtual bacnet devices that could be used for testing/learning?
If you're looking for constructive criticism, the biggest issue(s) we have with your code is the lack of doco... I think the codebase would benefit tremendously from the addition of some documentation to each of the main classes in the library, and some unit/functional tests that work "out of the box".
Assuming we go with bacnet4j (my boss is concerned about the lack of doco/tests), we would be interested in returning our fixes/improvements/tests/etc back to sourceforge if you're interested.
regards,
Matt