Home AMX User Forum NetLinx Studio
Options

Sony Qualia 004 projector

I have to connect a qualia to a ni-3000 using 232 and not ethernet. The problem is AMX doesn't have a published module for 232 control only ethernet.

I talked to a Sony engineer and got the following hex strings...

Power ON

Sample A9 17 2E 00 00 00 3F 9A


Power OFF

Sample A9 17 2F 00 00 00 3F 9A


Picture Mute ON

Sample A9 00 30 00 00 01 31 9A


Picture Mute OFF

Sample A9 00 30 00 00 00 30 9A


These are working fine and show me the 8-bit format of the commands. Yet, the engineer didn't send me the only other 2 commands I really need (HDMI and DVI discrete input commands). I tried using the Qualia protocol guide that AMX has on its webiste (included below) but I haven't been able to piece together what the 2nd to last bit should be (the checksum).

this is what I think they should be (without the checksum)

$A9$00$01$00$00$05$(--)$9A

$A9$00$01$00$00$04$(--)$9A

anyone else any good at figuring out checksums from the protocol guide? TIA

Comments

  • Options
    whats really strange also is that I am sending the string to the qualia with this line....
    SEND_STRING dvQualia, "$A9,$17,$2E,$00,$00,$00,$3F,$9A"		//power on qualia
    

    However, when I look at device notifications this is what it says...
    String to [5001:1:1]   $A9$17.$00$00$00?$9A
    
    is this because of some kind of data check? why do the strings not equal each other?
  • Options
    Joe HebertJoe Hebert Posts: 2,159
    Jarrette wrote:
    why do the strings not equal each other?
    Hi Jarrette,

    The strings do equal each other, they?re just presented in a different format. Device Notifications will display the ASCII value of a byte when it?s a printable character.

    The third byte (the . period) is the ASCII representation of $2E and the next to last byte (the ? question mark) is the ASCII representation of $3F.
  • Options
    The (really silly, IMHO) checksum is simply all the bits of the previous bytes (sans header byte) ORed together. So yeah, the checksum for $01 $02 and $01 $03 would be exactly the same. And the folks that drew up the manual didn't use the most stellar examples for calculating the checksum, either...

    - Chip
  • Options
    Joe HebertJoe Hebert Posts: 2,159
    I?ll take Silly Checksums for $100, Alex.

    This popular 70?s band consisted of an ex Beatle?

    Excuse me Alex. I said Silly Checksums for $100, not Silly Love Songs

    My bad. This Silly Checksum is the same for both of the HDMI and DVI discrete input commands that Jarrette wants to implement.

    What is $05?

    :)
  • Options
    Oooh! Ooooh! "Wings!"

    I'm sorry, you forgot to state that in the form of a question...

    And you threw me for a few seconds with that "What is $05" question until I got back into the Jeopardy frame of mind.

    - Chip
  • Options
    cbaileycbailey Posts: 15
    When I needed to get any strings for that Sony Qualia projector, I simply calculated the checksum based on the middle five hex bytes (not including the start character). A helper function like this accomplished that just fine:

    // Calculate check sum by OR addition
    DEFINE_FUNCTION CHAR getCheckSum(CHAR strInput[]){
    LOCAL_VAR INTEGER i;
    LOCAL_VAR CHAR strOutput;
    i = 0;
    strOutput = $00;

    FOR(i=1; i<=LENGTH_STRING(strInput); i++){
    strOutput = strOutput BOR strInput;
    }
    RETURN strOutput;
    }

    Hope that helps.

    -Chadd
  • Options
    thanks for the help guys, just for reference here are the working dvi and hdmi strings...
    Input HDMI								
    								
    	A9	00	01	00	00	05	05	9A
    								
    Input DVI								
    								
    	A9	00	01	00	00	04	05	9A
    
Sign In or Register to comment.