XDD Driver Help
Ken Posts: 19
edited October 2019 in NetLinx Modules & Duet Modules
I am trying to create my own XDD module to control a NEC projector. This is my first XDD module and I can't get the monitoring for lamp warming/cooling to work.
Here is what I've put into Design Suite:
And here the command details:
078-2. RUNNING STATUS REQUEST ********************************************************************** Function: This command acquires the status of the projector operation. Command: 00H 85H 00H 00H 01H 01H 87H Response: At the time of a success 20H 85H xxH xxH 10H DATA01 .. DATA16 CKS Data Portion Contents ------------------------------------------------------------------- DATA01 .. 02 Reserved DATA03 Projector status 00H : Idling 01H : Power On DATA04 Cooling processing 00H : No execution(Normal condition) 01H : During execution DATA05 Power On/Off processing 00H : No execution(Normal condition) 01H : During execution DATA06 Status of operation 00H : Idling 04H : Power On 05H : Cooling 06H : Idling(Error occurrence) Other than above : (nondisclosure) Internal use of code during a state transition period
The query and responses work great. When I track responses from data events I can easily determine when the projector is cooling/warming. But I can't figure out the how I need to input the commands into Design Suite.
Does anyone know what I'm doing wrong?
Does the power on/off work as expected??
Power on query response works when checking [vdvProjectorNec, LAMP_POWER_FB].
Not sure if the power off query response does anything.
I checked a different NEC xdd module from inconcert to see what it did to track cool/warming.
It uses a different power query:
And does not monitor for cooling/warming responses. Relying on the default times set in the properties section to update LAMP_WARMING_FB and LAMP_COOLING_FB. But I would prefer they be updated based on a valid response from the projector.
Is there a way to track warming/cooling without relying on the times set in the properties section?
Not sure - it was my understanding that a response back from the device would set the warming/cooling state regardless of the timer. Curious if a passthru- with the query while it is in a warming or cooling state sets the feedback - timing would probably need to extended enough to not matter
A passthru- is not even needed. If you set the "Command Holdoff" property to false the module will continue to query every couple of seconds during warming and cooling. Producing valid responses showing the warm/cool and power on/off changes. But the NEC responses maybe aren't different enough for the module to trigger updates?
I ran out of ideas for testing with the NEC, so switched to Sony.
I used this setup:
This produced different results. The xdd module successfully catches the cooling/warming responses. And checking against LAMP_WARMING_FB will show true. But warming will stay true until a cooling response is sent and same for the reverse.
If you then set the default warming/cooling times it appears to ignore/override the response queries, only changing the state of LAMP_WARMING_FB and LAMP_COOLING_FB based on the timers.
I've read the pdf supplied with Design Suite and the Help Contents inside Design Suite but found no info on how all this should work. I'd love to write most of my future drivers in Design Suite to easily stay snapi compliant but I need a better understanding of how the module is working .