1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

SODE v1.5.3 - SimObjects Duplicating

Discussion in 'SimObject Display Engine' started by christopherbritton, 5 Oct 2017.

  1. christopherbritton

    christopherbritton Resource contributor

    Joined:
    11 Aug 2012
    Messages:
    158
    Country:
    us-florida
    @Jeffrey Stähli
    Hey Jeffrey,
    I'm not sure if you are aware of this or not, but I have ran into a intermittent bug with the latest version of SODE. For some reason, I will randomly get double or triple windsocks. This has only happened a few times though, so it seems to be a rare case. Reviewing the SODE.log, I caught a couple of lines where another windsock was injected, but the old injection wasnt removed. (See lines 155 & 332) This seems to happen right after SODE begins "Refreshing Season/Time Data..."

    Wind conditions were very gusty yesterday. (The date this log was saved) I did notice the windsock was switching between medium and high (wind animation levels) quite frequently. Maybe this overloaded SODE causing it to miss removing a windsock model when the conditions were updated? (Even though I find it hard to believe that it could overload so easily.) Just speculation of course..

    [​IMG]

    [​IMG]
    (Another user's screenshot - Unsure of his exact conditions at the time.)

    I have attached the SODE log to this post. (Converted to a txt file to satisfy the uploader) Although I tried for an hour or so this morning, I was unable to replicate the issue seen above.

    [EDIT]
    I'm going to throw my Windsock's XML snippet in here just in case you wish to review it:
    <!-- Windsock -->
    <SimObject Name="BI Windsock">
    <Placement Lat="29.4420519099325" Lon="-81.4857393752116" Alt="0.0#AGL" Hdg="0.0"/>
    <Model SimTitle="Windsock Worn Orange No Wind">
    <TargetSim ID="P3Dv2;P3Dv3" SimTitle="Windsock Worn Orange No Wind P3D"/>
    <TargetSim ID="P3Dv4" SimTitle="Windsock Worn Orange No Wind P3Dv4"/>
    <VariableDrivenRotation Variable="WindDirection" Axis="HEADING" Animated="No"/>
    <ConditionalVisibility Variable="WindSpeed" Value="0"/>
    </Model>

    <Model SimTitle="Windsock Worn Orange Low">
    <TargetSim ID="P3Dv2;P3Dv3" SimTitle="Windsock Worn Orange Low P3D"/>
    <TargetSim ID="P3Dv4" SimTitle="Windsock Worn Orange Low P3Dv4"/>
    <VariableDrivenRotation Variable="WindDirection" Axis="HEADING" Animated="No"/>
    <ConditionalVisibility Variable="WindSpeed" Value="1-4"/>
    </Model>

    <Model SimTitle="Windsock Worn Orange Medium">
    <TargetSim ID="P3Dv2;P3Dv3" SimTitle="Windsock Worn Orange Medium P3D"/>
    <TargetSim ID="P3Dv4" SimTitle="Windsock Worn Orange Medium P3Dv4"/>
    <VariableDrivenRotation Variable="WindDirection" Axis="HEADING" Animated="No"/>
    <ConditionalVisibility Variable="WindSpeed" Value="5-14"/>
    </Model>

    <Model SimTitle="Windsock Worn Orange High">
    <TargetSim ID="P3Dv2;P3Dv3" SimTitle="Windsock Worn Orange High P3D"/>
    <TargetSim ID="P3Dv4" SimTitle="Windsock Worn Orange High P3Dv4"/>
    <VariableDrivenRotation Variable="WindDirection" Axis="HEADING" Animated="No"/>
    <ConditionalVisibility Variable="WindSpeed" Value="15-90"/>
    </Model>
    </SimObject>
    [/EDIT]
     

    Attached Files:

    Last edited: 5 Oct 2017
  2. Jeffrey Stähli

    Jeffrey Stähli

    Joined:
    8 Aug 2004
    Messages:
    497
    Country:
    switzerland
    Hi Chris,

    Thanks for your report.
    It could well be that SODE gets overloaded with fast switchings between models.
    The mechanism is like this:
    1. SODE gets a notification from SimConnect when e.g. the wind speed variable changes.
    2. SODE will then choose the correct model according to that value and tells SimConnect to load that model.
    3. SODE waits until SimConnect return with a notification about the succesfull injection of that model.
    4. SODE only now knows about the existance of this model and remove it if needed.
    You see, SimConnect communication is highly asynchronous. In the time between the variable update and the registration of a loaded model, more variable changes can happen (in gusty wind conditions near the value threshold of two models).
    This is also cleary a design limitation of SODE of course and I'll try to find a solution, but I have to reproduce this case first on my computer to be really sure that our suspicion is correct.
     

Share This Page