Home AMX User Forum AMX Control Products

DMS Level Sync

Greetings...I have a system that has two DMS keypads controlling one zone of audio, and am trying to keep the levels in sync. I've tried a hard-coded SEND_LEVEL, as well as COMBINE_LEVELS with little luck. I don't fully know what goes on in the DMS Comm Module, but I am reading/writing to the virtual device....

For example

LEVEL_EVENT [myVirtual, level1]
{
SEND_LEVEL someOtherVirtual, level1, LEVEL.VALUE
}

From a combine level standpoint, I tried combining the virtual devices and the actual DMS device with a virtual level, but neither worked.

Thoughts, ideas and experiences appreciated...

Thanks...Sonny

Comments

  • champchamp Posts: 261
    The bar graphs on DMS keypads don't update instantly.
    You have to change pages.
    I once came accross this but didn't have time to fix it by code.
    There is a command which I haven't tested which should allow you to directly update the bargraph, or maybe refresh the page:

    SEND_COMMAND<DEV>"?SET-
    [<TITLE>,<SM#>,<SV#>,<SN#>,<SX#>,<SS#>]?"
    Variables:
    TITLE - title of page
    SM# - Mode Number, BARGRAPH = 1, TEXT = 2,
    TEMPERATURE = 3
    SV# - Value, -255 to 255
    SN# - Minimum, -255 to 255
    SX# - Maximum, -255 to 255
    SS# - Step, 0-100
    Example String Return: "'SET-<SV#>',<CR>"

    Please reply with the exact string you send to make it work

    champ
  • You can not combine DMS levels. Found that out the hard way. I also ran into the same issue, two DMS', one audio zone. This is my work around, recode as needed.. Basically, DMS1 updates DMS2, and DMS2 updates DMS1. But.... DMS1 will not update DMS2 if the level event came from DMS2 and vice verses. Only one DMS actually sends the command to my audio switcher.

    Kevin D.
    LEVEL_EVENT[DMS_LIVING,3]
    {
        IF (LEVEL.VALUE>0)
        {
            IF (!IGNORE_LEVEL)
    	{
    	    CANCEL_WAIT 'IGNORE_LEVEL_WAIT2'
    	    IGNORE_LEVEL2=1
    	    SEND_LEVEL DMS_MASTER_BED,3,V_PORCH_DMS
    	    WAIT 5 'IGNORE_LEVEL_WAIT2'
    	    IGNORE_LEVEL2=0
    	}
    	V_PORCH=((V_PORCH_DMS*25)/10)
            CALL 'KNOX_VOL_SET' (OA_PORCH)
        }
    }
    LEVEL_EVENT[DMS_MASTER_BED,3]
    {
        IF (!IGNORE_LEVEL2)
        {
    	CANCEL_WAIT 'IGNORE_LEVEL_WAIT'
    	IGNORE_LEVEL=1
    	SEND_LEVEL DMS_LIVING,3,V_PORCH_MB_DMS
    	WAIT 5 'IGNORE_LEVEL_WAIT'
    	IGNORE_LEVEL=0
        }
    }
    
  • champ wrote:
    The bar graphs on DMS keypads don't update instantly.
    You have to change pages.
    I once came accross this but didn't have time to fix it by code.
    There is a command which I haven't tested which should allow you to directly update the bargraph, or maybe refresh the page:

    SEND_COMMAND<DEV>"?SET-
    [<TITLE>,<SM#>,<SV#>,<SN#>,<SX#>,<SS#>]?"
    Variables:
    TITLE - title of page
    SM# - Mode Number, BARGRAPH = 1, TEXT = 2,
    TEMPERATURE = 3
    SV# - Value, -255 to 255
    SN# - Minimum, -255 to 255
    SX# - Maximum, -255 to 255
    SS# - Step, 0-100
    Example String Return: "'SET-<SV#>',<CR>"

    Please reply with the exact string you send to make it work

    champ


    That command is actually the old way of doing DMS's, before Keypad Builder. You had to create all the menus in code!! So that command would just create a level page. A SEND_LEVEL / "'PAGE-(CURRENT)'" combo will refresh it. You basically send the new level and change pages to the same page.

    Kevin D.
  • This is the way I handle the bargraph, and yes as shr00m-dew stated, it does refresh it automatically:

    INTEGER AS8VOL1 //variable in which to store the level value

    CREATE_LEVEL vdvAS8,1,AS8VOL1

    BUTTON_EVENT[vdvDMS_Dining,101] //Volume Up
    {
    PUSH:
    {
    OFF[vdvAS8,3] //MUTE Off Zone First just in case it is muted
    SEND_LEVEL vdvDMS_Dining,1,((AS8VOL1*100)/255)
    WAIT 1
    {
    SEND_COMMAND vdvDMS_Dining, "'PAGE-Volume'"
    }
    }
    }

    // SENDS THE LEVEL TO THE AS8
    LEVEL_EVENT [vdvDMS_Dining,1]
    {
    SEND_COMMAND vdvAS8, "'S1L',ITOA(LEVEL.VALUE),'%'"
    }
Sign In or Register to comment.