Home AMX User Forum NetLinx Studio

SET_VIRTUAL_X_COUNT

I guess I never paid attention before and just noticed this so I figure I'd post it for reference.

Normal virtual device, 255 channels & 8 levels.
---------- Checking Port Status for [33001:1:2] ----------  
Output Channel Count [33001:1:2] - 255  
Level Count [33001:1:2] - 8  

When setting virtual level count to 9 system adds a another block of 8 levels for a new total of 16 levels.
DATA_EVENT[vdvTP]

     {
     ONLINE: 
	  {
	  ON[vdvTP,255] ;//only_means_the_virtual_TP_is_online
	  SET_VIRTUAL_LEVEL_COUNT(DATA.DEVICE,9) ;
	  }
     OFFLINE:
	  {
	  OFF[vdvTP,255] ;//only_means_the_virtual_TP_is_offline
	  }
     }


---------- Checking Port Status for [33003:1:1] ----------  
Output Channel Count [33003:1:1] - 255  
Level Count [33003:1:1] - 16  

If you then set the virtual level count to 17 system adds a 2 blocks of 8 levels for a new total of 24 levels.
DATA_EVENT[vdvTP]
     
     {
     ONLINE:
	  {
	  ON[vdvTP,255] ;//only means the virtual TP is online
	  SET_VIRTUAL_LEVEL_COUNT(DATA.DEVICE,17) ;
	  }
     OFFLINE:
	  {
	  OFF[vdvTP,255] ;//only means the virtual TP is offline
	  }
     }
---------- Checking Port Status for [33001:1:2] ----------  
Output Channel Count [33001:1:2] - 255  
Level Count [33001:1:2] - 24  

If you now increase the channel count from 255 to 256 the system adds another block of 255 channels for a new total of 512 channels. I don't get the 512 though, I expected 510.
DATA_EVENT[vdvTP]
     
     {
     ONLINE:
	  {
	  ON[vdvTP,255] ;//only means the virtual TP is online
	  SET_VIRTUAL_LEVEL_COUNT(DATA.DEVICE,17) ;
	  SET_VIRTUAL_CHANNEL_COUNT(DATA.DEVICE,256) ;  
	  }
     OFFLINE:
	  {
	  OFF[vdvTP,255] ;//only means the virtual TP is offline
	  }
     }
---------- Checking Port Status for [33001:1:2] ----------  
Output Channel Count [33001:1:2] - 512  
Level Count [33001:1:2] - 24 

So in my case I only needed 9 levels and I could probably scrap one to stay with in the default 8 limit. If the system just added a single level when I set the count to 9 that would be fine but now I need to decide if the extra resources being assigned are worth 1 extra level that I could probably live with out.

In my situation it doesn't really matter that much since my resources aren't strecthed that thin but in other systems it may be something to consider before increases these counts just to add 1 or 2 levels or channels.

Comments

  • JeffJeff Posts: 374
    Something else I noticed today in the same vein as this. I only saw it with virtual channel count, but I haven't tested it with anything else.

    The following code is on a regular virtual device, with no special set_virtual_channel_count anywhere else in the program. It executes perfectly. Pulsing channel any of the 4 channels generates the text changing on the panel as noted.
    channel_event[vdvDevice,1]
    channel_event[vdvDevice,42]
    channel_event[vdvDevice,212]
    channel_event[vdvDevice,384]
    {
    	on:
    	{
    		send_command dvTP,"'^TXT-1,0,',itoa(channel.channel),'!'"
    	}
    }
    

    However, if you don't specifically declare that that channel might be pulsed, it doesn't work.
    channel_event[vdvDevice,0]
    {
    	on:
    	{
    		send_command dvTP,"'^TXT-1,0,',itoa(channel.channel),'!'"
    	}
    }
    

    The second code block only generates text on the panel up to channel 255. You only have to issue set_virtual_channel_count if you're not going to declare the exact channel you might be pulsing in the code.

    Beyond that, in the first code block, it does exactly what you were referring to. Having a channel event for channel 384 suddenly makes that virtual device have channels up to 511 (or 510, I'm not really clear on that).

    Anywho, just seemed related to what you found. Hope its helpful.

    J
Sign In or Register to comment.