¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Active CNX UpdateRequest


 

The Active CNX has an "Update Request" method that kindly returns statuses of all Digital, Analog, and Serial joins - however, with a price to pay - it generates the same events as though those joins were just invoked. ?


So I can't differentiate between a user button press that raises a Digital join, vs. an Update Request, that spits out all current digital joins (at least those that are true). ?Does anyone know how to differentiate between them or at least know when the UpdateRequest has completed?


The net result of the way it works is that if I run UpdateRequest, dozens of Digital and Analog join events occur, which then sends my code into a lot of logic that doesn't apply.


Thanks,

Chris


 

If anyone knows where I can get documentation the actual network protocol (independent of the DLL) that would be great to have, and might reveal a solution. One thing I'm looking at is this 16-bit "handle" that is included in every packet. If it's really a tag or sequence number, then it could be that all the packets coming back from an update request have the same tag / sequence number as the request, which would be great. ??

Eventually I think I might build a Node.js implementation of Active CNX in case anyone is interested (and in provided it doesn't violate anything with Crestron's terms? )


 

Track the last-received state of the digitals and analogs and only fire your events when they actually change.? This will also keep you from firing events incorrectly after a network reconnection.

The CIP protocol is undocumented and not supported for integration, at least officially.? In practice it's used in so many devices that I really doubt Crestron could change it without breaking all of them.? The right way to do it would be to switch to XSIG on the Crestron side, which uses a protocol documented in the SIMPL WIndows help file.

On Wed, Sep 28, 2016 at 12:12 PM, cmiller@... [Crestron] <Crestron@...> wrote:
?

The Active CNX has an "Update Request" method that kindly returns statuses of all Digital, Analog, and Serial joins - however, with a price to pay - it generates the same events as though those joins were just invoked. ?


So I can't differentiate between a user button press that raises a Digital join, vs. an Update Request, that spits out all current digital joins (at least those that are true).? Does anyone know how to differentiate between them or at least know when the UpdateRequest has completed?


The net result of the way it works is that if I run UpdateRequest, dozens of Digital and Analog join events occur, which then sends my code into a lot of logic that doesn't apply.


Thanks,

Chris



 

>> Eventually I think I might build a Node.js implementation of Active CNX in case anyone is interested

I am most certainly interested in anything Node.js <-> Crestron