I am working with a matrix driver on which a router control app can perform some actions (e.g., Lock and Unlock outputs). In its current state, the drive is able to successfully lock and unlock the outputs through the Matrix, and such modifications can also be seen in the Router Control application.
Nevertheless, when performing the lock/unlock from the Router Control application, such actions are not performed on the device, since such actions are not sent to the device (at least are not shown on the stream viewer).
Considering this, and since this is my first matrix driver, may someone provide me with some pointers of where to look for the issue? For instance, which variable/parameters are used for biding the router control app with the driver?
(Note: I saw that the DiscreetInfo parameter/variable receives events from the router control.)
It's not clear if the device supports lock actions or not. Below info is in case the device does not support it but you still want to see locking in the UI.
You're going to need to trigger on the incoming events that are coming from the Router Control and further process these similar like is normally being done, but instead of sending it to the device you need to directly set the lock state with the MatrixHelper, this way the correct value is going to be set on the read parameter that the Router Control is using.
With device support:
->Execute ProcessParameterSetFromUI on MatrixHelper, OnLockSetFromUI gets triggered, send command to device, read out value from device, set MatrixHelper with read value
Without device support:
->Execute ProcessParameterSetFromUI on MatrixHelper, OnLockSetFromUI gets triggered, set MatrixHelper with this value that triggered it
If the device does support the lock and you want to support it in the driver then please take a look at the SLC SDF Matrix driver, range 1.0.0 supports matrix and router table parameters, range 1.0.1 is only matrix parameter, range 1.0.2 only contains the router control table parameters