Problems with NI-X100 Master Firmware v3.41.414

mushmush I programme in the dark!Posts: 285
G'day All,

Please be aware that if you combine touch panels with NI-X100 Master Firmware v3.41.414 that level_events
will not be passed to the virtual device.
I have experienced the problem and thought I was going nuts. After wasting a whole day I reverted back
to v3.30.371 and the problem disappeared.

Cheers

Mush

Comments

  • viningvining X Member Posts: 4,353
    I think there's been a few post about that and that may not have affected just virtuals but real TPs as well. I've gotten into the habit of using SET_VIRTUAL_LEVEL_COUNT on virtuals and real TPs if I'm using levels. At one time it was levels over 255 on real TPs that didn't work after a firmware release and took some time to figure out. Same with with virtual port counts if I'm using multiple virtuals with the same dev numbe but on different ports I always SET_VIRTUAL_PORT_COUNT and I thought in the pasts if I explicitly defined a virtual DPS on a port other than 1 they used to work and I think they still do some times but not reliably.

    If you go the the online tree click on a device and then port status I would often find a real TP would have 512 levels and then after a updated program upload find it only had 8. Other times it may have shown 0 but I'm not sure. It may have been something to do with how the online tree reports the levels but at the same time things that should have worked didn't until I got the levels reporting correctly.
  • ericmedleyericmedley Senior Member - 3709 Posts Posts: 4,159
    Does putting in the Set_Virtual_Levels/Channels/Port command(s) help?
  • mushmush I programme in the dark! Posts: 285
    ericmedley wrote: »
    Does putting in the Set_Virtual_Levels/Channels/Port command(s) help?

    No, the problem occurs regardless.
  • ericmedleyericmedley Senior Member - 3709 Posts Posts: 4,159
    mush wrote: »
    No, the problem occurs regardless.
    oh well, worth a try. sorry it didn't help
  • TurnipTruckTurnipTruck Junior Member Posts: 1,485
    I have not found myself doing combines in recent years.

    In the context of multiple panels that would show a bargraph, I put all of the panels in a DEV array and send each panel the level when it comes online and all panels when the level changes.

    I have run into other strange things in the past with various combine statements. I have pretty much written them off.
  • ericmedleyericmedley Senior Member - 3709 Posts Posts: 4,159
    I have not found myself doing combines in recent years.

    In the context of multiple panels that would show a bargraph, I put all of the panels in a DEV array and send each panel the level when it comes online and all panels when the level changes.

    I have run into other strange things in the past with various combine statements. I have pretty much written them off.
    Ditto for me. I cannot remember the last time I found myself even debating whether or not ot use Combine.
  • mushmush I programme in the dark! Posts: 285
    ericmedley wrote: »
    Ditto for me. I cannot remember the last time I found myself even debating whether or not ot use Combine.

    So you guys don't use modules?
  • viningvining X Member Posts: 4,353
    mush wrote:
    So you guys don't use modules?
    One has nothing to do with the other?

    Most of us just use arrays and work with the arrays rather than a virtual combined with a group of devs. We can then selectively decide/determine which of the individual devs in the array to send feedback to or which one pushed the button.

    Dev arrays allow much more control, flexabilty and isolation for feedback and are preffered over combines by most. I don't recall when I last used a define_combine either.
  • ericmedleyericmedley Senior Member - 3709 Posts Posts: 4,159
    mush wrote: »
    So you guys don't use modules?

    What he said /\ /\ /\

    I use modules all the time.
  • mushmush I programme in the dark! Posts: 285
    vining wrote: »
    mush wrote:

    One has nothing to do with the other?
    I would have thought that most AMX modules used define_combine. All of mine do.
    vining wrote: »
    mush wrote:

    Most of us just use arrays and work with the arrays rather than a virtual combined with a group of devs. We can then selectively decide/determine which of the individual devs in the array to send feedback to or which one pushed the button.

    Dev arrays allow much more control, flexabilty and isolation for feedback and are preffered over combines by most. I don't recall when I last used a define_combine either.

    Can you give me an example please?
  • HARMAN_shane-a-rooHARMAN_shane-a-roo Junior Member Posts: 39
    FYI, Level event processing regarding combined devices was fixed in 3.41.422 which is available on the Web.
  • ericmedleyericmedley Senior Member - 3709 Posts Posts: 4,159
    mush wrote: »
    I would have thought that most AMX modules used define_combine. All of mine do.



    Can you give me an example please?

    sure...
    DEFINE_DEVICE
    
    dvTP_01 = 10001:01:0
    dvTP_02 = 10004:01:0
    dvTP_03 = 10006:01:0
    dvTP_04 = 10007:01:0
    dv_TP_Virt = 33001:01:0
    
    DEFINE_VARIABLE
    
    volatile DEV dev_TPs[]=
    {
    dvTP_01
    ,dvTP_02
    ,dvTP_03
    ,dvTP_04
    ,dv_TP_Virt
    }
    
    volatile integer  nButtons_for_Something[]=
    {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}
    
    
    DEFINE_EVENT
    
    BUTTON_EVENT[dev_TPs,nButtons_for_Something] 
    {
    PUSH:
      {
      //get_last(dev_TPs) - gives you the index of which touch panel last fired. ex:  device 10007 will be index 4
      // Button.Input.Device.Number  gives you 10007
      // Button.Input.Device.Port  gives you the port number of the device
      //  Button.Input.Device.System  gives you the system number of the device.
      // BUTTON.INPUT.CHANNEL  gives you which button was pushed
      send_command dev_TPs , 'some command' will send this command to all devices in the array.
      send_command dev_TPs[get_last(dev_TPs)], 'some command' will send it to only the one that did the push
      // send_command dvTP_01, 'some command' still works because it is not combined.
      }
    }
    
    


    you can also do dev_chans and combine the device and buttons together in one array. There are a whole host of things that you can get out of an array. Check out the help file for events to see the values you can pull.

    hope that helps.
  • DHawthorneDHawthorne Junior Member Posts: 4,584
    I'm in the crew that never uses define_combine anymore ... I have a few legacy modules where I thought it was a good idea, but I remove it when I get the chance if it doesn't break ten other things. When the concept was new, I used it any time I could, but the many and various foibles of the method have led me to replace it with arrays whenever possible.
  • AlexArtistAlexArtist Junior Member Posts: 51
    Ya, not just levels and combines but ON and OFF Channel Events on virtuals don't always work either on this firmware.

    I got thrown under the bus by AMX with this firmware, i had no clue why Feedback was so intermittent until i found out it was the firmware. Firmware 422 does much better with handling virtuals Level and Channel events. Although you may have IP issues but so far setting ethernet mode to 10 half seems to have made firmware 422 tremendously more stable.
Sign In or Register to comment.