[REL] rF2 Shared Memory Tools for Developers

Discussion in 'Other' started by The Iron Wolf, Jan 19, 2017.

  1. The Iron Wolf

    The Iron Wolf Member

    Joined:
    Feb 20, 2016
    Messages:
    952
    Likes Received:
    879
    03/29/2019 - v3.5.0.9

    Plugin:

    • Expose LSI messages in DMA mode.
    • Clear out accumulated damage on return to Monitor.
    • Harden DMA mode against crashes.
    Monitor:

    • Implement Frozen Order detection based on LSI messages. That's the only way to handle FO in the online sessions.
     
  2. The Iron Wolf

    The Iron Wolf Member

    Joined:
    Feb 20, 2016
    Messages:
    952
    Likes Received:
    879
    05/01/2019 - v3.6.0.0

    Plugin:

    • Fix version string not behaving as expected (breaking rF2Extended change, Sorry!)
    • Reduce amount of string copies in DMA mode.
     
    MaD_King likes this.
  3. Seven Smiles

    Seven Smiles Registered

    Joined:
    Oct 5, 2010
    Messages:
    740
    Likes Received:
    799
    For anyone like me using this in Python: I was using @k3nny's Python mapping but I have written https://github.com/TonyWhitley/hpp2py to autogenerate Python classes from the C structs in rF2 Shared Memory. The code produced is not 100% but I corrected any errors in the working version https://github.com/TonyWhitley/pyRfactor2SharedMemory/blob/master/rF2data.py (though that is not complete, I didn't edit all the enums). That is imported by https://github.com/TonyWhitley/gearshift/blob/Shared-Memory-Only/sharedMemoryAPI.py The two together replace k3nny's Mmap_for_DSPS_V22.py
     
    Last edited: Nov 10, 2019
    The Iron Wolf likes this.
  4. The Iron Wolf

    The Iron Wolf Member

    Joined:
    Feb 20, 2016
    Messages:
    952
    Likes Received:
    879
    11/08/2019 - v3.7.0.0

    Plugin:

    • Expose rF2Graphics (GraphicsInfoV02) buffer via $rFactor2SMMP_Graphics$. Note that it is not subsribed to by default.
    • It is now possible to configure which buffers get updated and which don't. This is done via UnsubscribedBuffersMask value in the CustomPluginVariables.json file. To specify buffers to unsubscribe from, add desired flag values up.
    Telemetry = 1, Scoring = 2, Rules = 4, MultiRules = 8, ForceFeedback = 16, Graphics = 32

    So, to unsubscribe from Multi Rules and Graphics buffeers set UnsubscribedBuffersMask to 40 (8 + 32).
     
    Seven Smiles likes this.
  5. The Iron Wolf

    The Iron Wolf Member

    Joined:
    Feb 20, 2016
    Messages:
    952
    Likes Received:
    879
    11/10/2019 - v3.7.1.0
    Plugin:

    • Expose UsubscribedBuffersMask via rF2Extended::mUnsubscribedBuffersMask. This can be used by clients to validate UBM, and might be made client writable in the future.

    Thanks @Seven Smiles for making me realize I overlooked this.
     
    Seven Smiles likes this.
  6. davehenrie

    davehenrie Registered

    Joined:
    Jul 6, 2016
    Messages:
    2,583
    Likes Received:
    1,514
    uh.,..... whut???
     
    Seven Smiles and ADSTA like this.
  7. Seven Smiles

    Seven Smiles Registered

    Joined:
    Oct 5, 2010
    Messages:
    740
    Likes Received:
    799
    You can stop when you get to the end of
    :D
    I use Shared Memory as part of my gearshift and headlights programs which are written in Python. I'm not aware of anyone else doing that but if they are...
     
    The Iron Wolf likes this.
  8. Corti

    Corti Registered

    Joined:
    Sep 29, 2014
    Messages:
    531
    Likes Received:
    620
    same name and different version? or no link update? :rolleyes:
     
    The Iron Wolf likes this.
  9. The Iron Wolf

    The Iron Wolf Member

    Joined:
    Feb 20, 2016
    Messages:
    952
    Likes Received:
    879
    Thanks for bringing that up, I'll check it out. I was in rush to reduce mess with SimHub going out of sync with Crew Chief :)

    Edit: fixed the link
     
    Last edited: Nov 13, 2019
  10. D Nichols

    D Nichols Registered

    Joined:
    Jun 18, 2019
    Messages:
    25
    Likes Received:
    14
    Is anyone using this with Winzarten Second/Monitor?

    I am struggling to get it to register that the game is running. Crewchief picks it up and works as it should. Do I need install second/monitor on the same HDD to allow it to find it easier?
     
  11. GeraArg

    GeraArg Registered

    Joined:
    Oct 4, 2010
    Messages:
    359
    Likes Received:
    618
    Someone knows how I capture the vehicle class, bah the opponent filter? The rf2VehicleScoring don't have that property. :/
    [​IMG]
     
  12. Lazza

    Lazza Registered

    Joined:
    Oct 5, 2010
    Messages:
    7,107
    Likes Received:
    2,881
    @GeraArg from a quick test recently I suspect that each of the vehicle classes/categories can be used in the filter, but only one (the first?) will come up as the vehicle class in scoring/telemetry info. The filter you've selected won't change that.
     
    GeraArg likes this.
  13. GeraArg

    GeraArg Registered

    Joined:
    Oct 4, 2010
    Messages:
    359
    Likes Received:
    618
    For example, the vehicle class in the GT3 pack from S397, all cars class are "GT3" and the vehicle name is the name in the skin/team, not the car selected.
    That is a little problem for me because I'm written an solution like RSR Live Timing for AC and two things are critical, filters the car and the track (also have a similar problem, capture the name but not the version of the track) who use the player.
    :)
     
  14. Lazza

    Lazza Registered

    Joined:
    Oct 5, 2010
    Messages:
    7,107
    Likes Received:
    2,881
    Yeah, that's very much an issue. There's no defined standard on class name formats and the track info as you say can be vague (in rF1 where track files were always accessible I calculated and added a checksum to the track name in motec logs, otherwise different versions could conflict in i2Pro and break each other's track layouts - I haven't bothered doing similar in rF2 because encrypted track files obviously can't be accessed, and I hate implementing solutions that are always broken for some content).

    Perhaps whispering in the correct ear will help unveil a little more useful information. The old ISI comments suggest such but a number of suggestions over the years have gone unnoticed, so I'm not sure.
     
    GeraArg likes this.
  15. GeraArg

    GeraArg Registered

    Joined:
    Oct 4, 2010
    Messages:
    359
    Likes Received:
    618

    The only odd solution I found for this is add all content by hand but i can't support anyone who use a custom skin/team and also have to install all mods and tracks for get the names and put into the database. Is a ugly work :/
    Maybe for the first release I do that with a limited number of tracks and cars/teams but I hope find other solution.
    Also this solution have a big problem for the di**heads who whant to cheat the leaderboard, encrypt the messages without at least a checksum don't stop them.
     
  16. GeraArg

    GeraArg Registered

    Joined:
    Oct 4, 2010
    Messages:
    359
    Likes Received:
    618

Share This Page