No group level update through cbm.dll

Discussion in 'C-Bus Wired Hardware' started by kirlan, Nov 27, 2008.

  1. kirlan

    kirlan

    Joined:
    Nov 27, 2008
    Messages:
    2
    Likes Received:
    0
    Location:
    Moscow
    Hi!

    We are working with a system of 5 networks and using cbm.dll to control it.There is a problem: some groups (about a dozen), linked to dimmers in adjacent networks, not updates correctly when controlled through our application. Command cbus_lighting_vf_set_level() executes successfully, and Database Change Event comes with correct level update, but real states of some of hardware outputs stays unchanged. I've tried to use force=10 when calling set_level() and have registered MMI Event handler, but that's not helped and there were no MMI events when problem occurs.

    Could you give me any hint about understanding/resolving this problem, please?

    Before, we have used our program with smaller systems (1 network) and there was no such problems. Could it be linked?
     
    kirlan, Nov 27, 2008
    #1
  2. kirlan

    ashleigh Moderator

    Joined:
    Aug 4, 2004
    Messages:
    2,391
    Likes Received:
    24
    Location:
    Adelaide, South Australia
    I don't quite understand the problem.

    Is the problem that you do not get change EVENTS for some groups?

    And those groups are on remote networks - in other words they are on the other side of a bridge?

    If the group in question is on the other side of a bridge... it is only 1 bridge away from the PC, or is it 2 or more bridges deep?

    This is all important because the problem you have is almost certainly related to how your bridges are set up, not the CBM.DLL.
     
    ashleigh, Nov 28, 2008
    #2
  3. kirlan

    kirlan

    Joined:
    Nov 27, 2008
    Messages:
    2
    Likes Received:
    0
    Location:
    Moscow
    Sorry for my English, it's not my native language... :(
    I'm trying my best.

    And thank you for the fast answer!

    Quite the contrary - I've sent a level change command, I've receive event about level change in driver's DB, but there are no real level change at hardware dimmer.
    To be more specific: I'm trying to turn off the lights in whole system, but some lamps are not switching off. Moreover, my software - according to cbm's DB state - erroneously shows that all lights are switched off successfully.

    Part of groups are in network 1 bridge away from PC, others deeper. But other groups in the same networks and even at the same dimmers works quite well.

    It seems to me like if driver updates it's own DB, but has troubles with transmitting command to hardware. Could it be caused by a high rate of incoming commands, maybe? There are more then 100 commands going to driver almost simultaneously when I get this problem.
    However, I've tried such load in testing system (1 dimmer, 1 network) and it works without any problems.

    Unfortunately, I'm not a person who builds this system (man who did it is currently unavailable), but I've looked Toolkit project and it seems fine to me. After all, like I've already said, most of groups in distant networks works quite fine.
     
    Last edited by a moderator: Nov 28, 2008
    kirlan, Nov 28, 2008
    #3
  4. kirlan

    ashleigh Moderator

    Joined:
    Aug 4, 2004
    Messages:
    2,391
    Likes Received:
    24
    Location:
    Adelaide, South Australia
    I think your problem is in the networks that are defined when using CBM.DLL.

    Background information:

    This software uses a "flattened" model of the network and its groups. This means it considers there to be 255 groups across all the networks.

    So, for example, if you have 3 networks (call them network 1, network 2, network 3), and you have a group (say 65), then there is only 1 group 65 in the whole installation. The network that this group is in does not matter.

    Consequently, if you have turned off that group 65 on network 1, then it is considered to be off in all networks.

    Now... your problem...

    It might be the case that your networks definition and topology that you use to set up CBM.DLL has a mistake in it, so the commands are not being sent to some networks. The way to tell is:

    - Are the lights that do not respond all in the same network?

    (if the answer is yes, then the network routing definition you use to set up CBM.DLL probably has a mistake in it)

    - Is it always the exact same lights that do not respond?

    (If it is the same then the problem is most likely that the same group numbers are used in different networks....)

    Solution:

    1. Check that the network routing and topology that you use to set up CBM.DLL are correct.

    2. Check and see if the same group numbers are used to mean different things in different networks. If they do... (for example if Group X is used for different purposes in several networks.... you might be in trouble) then you will need to change the group numbers in some of the networks. Your group numbers should be unique across the networks EXCEPT if you really do want them to be linked to each other through bridges, and in that case you need to carefully check your bridge programming with Toolkit.
     
    Last edited by a moderator: Nov 30, 2008
    ashleigh, Nov 29, 2008
    #4
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.