Home AMX User Forum AMX General Discussion

Sanyo protocol help

Hi,

looking for some help / ideas on trying to get reliable feedback from a Sanyo projector. Sanyo is using one of those 'not-so-great' protocols where, after a status request, you get back just a number so you'll have to write your code that it remembers what it send to figure out what's the meaning of the data that just came back. Or, in other words: by just looking at the respons from the projector, there's no telling what it means, you'll have to know the question.

I know the steps I'll have to take, but because Sanyo is using the same basic protocol since world war II (give or take a few years), there must be other people who had the same problem. Someone willing to share some code, so I don't have to re-invent the wheel again........

Just looking for 'basic' feedback: power states, input and lamptimer.

Richard

Comments

  • TurnipTruckTurnipTruck Posts: 1,485
    Don't know the specific projector in question, but the way I handle that is to set a varaible as to what type of request went out and parse the incoming data according to the value of the variable. It is best to design a way to clear the variable shortly after the expected amount of time that it takes the projector to respond, preventing misinterpretation of data.
  • AuserAuser Posts: 506
    [...] set a varaible as to what type of request went out and parse the incoming data according to the value of the variable.

    Agree, works well for me.
  • yuriyuri Posts: 861
    these are the strings I check for in my module:
    (* Projector power off *)
    ACTIVE(FIND_STRING(projBuffer,'80',1)):
    {}
    
    (* Projector power on *)
    ACTIVE(FIND_STRING(projBuffer,'00',1)):
    {}
    
    (* Projector power is warming *)
    ACTIVE(FIND_STRING(projBuffer,'40',1)):
    {}
    
    (* Projector power is cooling *)
    ACTIVE(FIND_STRING(projBuffer,'20',1)):
    {}
    
    

    this is my status request command:
    CHAR	cState[cSize]		= 'CR0'		(* Check the status of the projector *)
    

    good luck!
  • yuri wrote: »
    these are the strings I check for in my module:
    (* Projector power off *)
    ACTIVE(FIND_STRING(projBuffer,'80',1)):
    {}
    
    (* Projector power on *)
    ACTIVE(FIND_STRING(projBuffer,'00',1)):
    {}
    
    (* Projector power is warming *)
    ACTIVE(FIND_STRING(projBuffer,'40',1)):
    {}
    
    (* Projector power is cooling *)
    ACTIVE(FIND_STRING(projBuffer,'20',1)):
    {}
    
    

    this is my status request command:
    CHAR	cState[cSize]		= 'CR0'		(* Check the status of the projector *)
    

    good luck!

    Thanks for the reply, Yuri. Unfortunately it gets more complicated when you also want things like input state, lamptimer etc. then you have to track each request.

    due to time constraints (it's already delivered) I decided to 'swallow my pride' and use the AMX Duet module. It's overkill for the setup I use it in, and i really don't like those huge (duet) modules, but hey, if something doesn't work, at least I can blame AMX...

    I started on a more basic module, tuned to the functions i want/use. I'll finish that when i find the time for it.

    Thanks to all who replied,


    Richard
  • gregrgregr Posts: 54
    Sorry for the late reply, but to anyone still interested, I have found the Sanyo projector feedback protocol to be fairly easy to parse, since most status returns are unique. For instance, you won't find the ASCII string "'80'" coming back for anything other than "power status =Standby". The lamp timer status always comes back as 5 consecutive digits, so it cannot be mistaken for anything else.

    Now as for Hitachi and others, you definitely need to set flags.

    Greg
Sign In or Register to comment.