Home AMX User Forum NetLinx Modules & Duet Modules

XDD Driver Help

KenKen Posts: 19

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:


image



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?



Comments

  • Does the power on/off work as expected??

  • KenKen Posts: 19
    edited October 2019

    Power on query response works when checking [vdvProjectorNec, LAMP_POWER_FB].

    Not sure if the power off query response does anything.

  • KenKen Posts: 19
    edited October 2019

    I checked a different NEC xdd module from inconcert to see what it did to track cool/warming.


    image


    It uses a different power query:


    305-3. PROJECTOR INFORMATION REQUEST
    **********************************************************************
    
    Function:
    This command acquires basic operation states of projector.
    
    Command:
    00H BFH 00H 00H 01H 02H C2H
    
    Response: At the time of a success
    20H BFH 01H xxH 10H DATA01 ... DATA16 CKS
    
    Data Portion Contents
    -------------------------------------------------------------------
    DATA01 02H fixed
    DATA02 Projector Processing Status
    00H : Idle
    04H : Power On
    05H : Cooling
    06H : Idle(Error Standby)
    Other : Not Support
    Other than above : (nondisclosure)
    Internal use of code during a state transition period
    


    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

  • KenKen Posts: 19
    edited October 2019

    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:


    image


    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 :(.


Sign In or Register to comment.