Skip to content

Shouldn't outOfService object property be writable? #26

@veodko

Description

@veodko

I'm interested with this project and tried to start some of the examples, like the ThermostatDevice custom class.

I noticed though, that the outOfService object property seems to be readonly, trying to write to this property results in an ERROR_CODE_WRITE_ACCESS_DENIED. Looking at the source code this seems to be caused by the configuratio nof BDSingletProperty writable parameter as false in object.js:

this.outOfService = this.addProperty(new BDSingletProperty(PropertyIdentifier.OUT_OF_SERVICE, ApplicationTag.BOOLEAN, false, false));
bacnet:transport:debug server got message from 10.1.2.79:51451: 810a0016010400756f0f0c0000000119513e113f4910 +10s
  bacnet:client:trace handlePdu Header:  {
  func: 10,
  sender: { address: '10.1.2.79:51451', forwardedFrom: null },
  apduType: 0,
  expectingReply: true
} +10s
  bacnet:client:trace Received service requestwith invokeId 111: writeProperty +2ms
  bacnet:client:trace Handled service requestwith invokeId 111: writeProperty {"len":4,"type":0,"service":15,"maxSegments":112,"maxApdu":5,"invokeId":111,"sequencenumber":0,"proposedWindowNumber":0,"header":{"func":10,"sender":{"address":"10.1.2.79:51451","forwardedFrom":null},"apduType":0,"expectingReply":true,"confirmedService":true},"payload":{"len":12,"objectId":{"type":0,"instance":1},"value":{"property":{"id":81,"index":4294967295},"value":[{"type":1,"value":true}],"priority":16}}} +12ms
  bacnet:client:trace listener count by name emits writeProperty with content. {
  bacnet:client:trace   len: 4,
  bacnet:client:trace   type: 0,
  bacnet:client:trace   service: 15,
  bacnet:client:trace   maxSegments: 112,
  bacnet:client:trace   maxApdu: 5,
  bacnet:client:trace   invokeId: 111,
  bacnet:client:trace   sequencenumber: 0,
  bacnet:client:trace   proposedWindowNumber: 0,
  bacnet:client:trace   header: {
  bacnet:client:trace     func: 10,
  bacnet:client:trace     sender: { address: '10.1.2.79:51451', forwardedFrom: null },
  bacnet:client:trace     apduType: 0,
  bacnet:client:trace     expectingReply: true,
  bacnet:client:trace     confirmedService: true
  bacnet:client:trace   },
  bacnet:client:trace   payload: {
  bacnet:client:trace     len: 12,
  bacnet:client:trace     objectId: { type: 0, instance: 1 },
  bacnet:client:trace     value: {
  bacnet:client:trace       property: { id: 81, index: 4294967295 },
  bacnet:client:trace       value: [ { type: 1, value: true }, [length]: 1 ],
  bacnet:client:trace       priority: 16
  bacnet:client:trace     }
  bacnet:client:trace   }
  bacnet:client:trace } +2ms
  bacnet:device:device req #+10s: writeProperty
  bacnet:device:device error while handling request: Error: not writable

Is there any way to actually make outOfService writable without having to make a custom clone of the built-in basic object?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions