[WiP] - MediaPortal DiseqC Motor Code Patch

Discussion in 'Area 51 - Testing Area' started by Kotik, October 23, 2016.

  1. Kotik
    • Premium Supporter

    Kotik MP Donator

    Joined:
    March 19, 2009
    Messages:
    699
    Likes Received:
    337
    Gender:
    Male
    Location:
    Athens
    Ratings:
    +555 / 2
    Home Country:
    Greece Greece
    Show System Specs
    -DISCLAIMER-

    This patch is meant only for users that are having a motorized setup and are having issues with it. If your tuner cannot move the motor this patch will not fix this issue, if your card is incompatible with Media Portal then this patch is also not for you. Use at your own risk!

    Patch is based on 1.15 master with the HEVC changes included. Should also work under 1.15 Final.
    -DISCLAIMER-


    Hi everyone,


    We have modified the DiseqC Motor Code to add dynamic delays during channel switching that are located on different satellites.


    • The issue with current code is that it will always add a static delay of 200ms per motor movement before sending out a "Tune" command. As a result many tuner cards will either time out while trying to "LockOn" a signal or will "LockOn" a similar frequency on a wrong satellite while the dish is still not done with reaching the proper position.

    • Ideally we would want to delay the "Tune" command based on the difference between the two satellites and this way solve the issue that some tuner cards are having.

    • This patch will:

    1.Calculate the delay needed based on "Current" satellite position and "Next" satellite position and will apply it. This will delay the "Tune" command and hopefully solve the "No Signal", "No PMT Found" errors that we are getting with a motorized setup.


    2. It will also add a static delay during 1st tune ONLY, the reason for that is to avoid issues during our 1st tune since MP is unaware of our current position after a TV Service Restart/ PC Restart.

    • The patch consists of 3 files: dish.xml, TVLibrary.dll and TVLibrary.pdb. These are the steps you have to follow in order to install the patch.

    1. Prior to installing the patch u have to find out which satellite corresponds to which position.

    (A)If this is your initial setup, Media Portal will report the position a satellite is stored to each time u press the "Store Position" button in the DiseqC Motor Tab, take note of these positions.

    (B) If you already have all your positions setup and you don’t know which position corresponds to which satellite then you will have to manually move the dish to this satellite by selecting the satellite from the satellite drop down list and then instruct Media Portal to move the dish to this satellite by using the "Goto" button, when the movement is initiated Media Portal will report which position the current satellite corresponds to. You will have to repeat this for every satellite you have stored in your current MP setup.

    It is very important that you take notes of these positions as you will need to use them later in order to fill in values in the dish.xml file. If your positions are wrong then the delays will be off and the patch won’t apply proper delays.


    2. Next you will have to fill in dish.xml with corresponding satellites and their positions. In order to properly fill in all the data that the patch requires you will also need to know how fast can your dish move, this information generally comes available with the motor manual, in my case the motor specifications report that the dish can move 1.9 degrees / second @ 12 volts and 2.5 degrees / second @ 18 volts, we only need the data for motor speed @ 12 volts. Knowing the motor speed @ 12 volts and the satellite positions will allow us to fill in dish.xml


    Taking a look at dish.xml you will see an entry for "SatCount", here you will have to specify how many satellites in total you have stored in Media Portal, in my case i got 2 so the final result will look like this:

    <section name="SatCount">

    <entry name="Count">2</entry>

    Next you will see an entry for "CurrentMovingDish", here you will have to specify how much time (in milliseconds) your motor needs to move 1 degree (you will have to calculate this based on the motor speed reported by your motor manufacturer). In my case it is 526ms and it will look like this:

    <entry name="CurrentMovingDish">526</entry>

    Next you will have to set a default delay (which is static and should be in milliseconds) for your 1st tune after a TV Sever/ PC restart, generally i suggest using a value of around 10 seconds, but you can experiment with this one, keep in mind that this delay will be always present ONLY during your 1st tune, so if all your satellites are close to each other and you know that moving from one end of the ark to the other will never take more than 10 seconds then you can lower this value to get a faster 1st tune. In my case i use 10000ms

    <entry name="FirstTuneWait">10000</entry>

    And finally you will have to input which position corresponds to which satellite, you also have to specify if the satellite is located West or East. Again an example of my own setup:

    <section name="1">

    <entry name="PositionDiSEqC">1</entry>

    <entry name="PositionSat">19.2</entry>

    <entry name="PositionDirection">E</entry>

    </section>

    <section name="2">

    <entry name="PositionDiSEqC">2</entry>

    <entry name="PositionSat">8</entry>

    <entry name="PositionDirection">W</entry>

    </section>


    3. When you are done with dish.xml and prior to installing the files have to stop TV Service and close Media Portal, and as !!always!! take back up of your current TVLibrary.dll, when this is done you can proceed:

    (A) Copy dish.xml to C:\ProgramData\Team MediaPortal\MediaPortal TV Server

    (B) Copy TVLibrary.dll and TVLibrary.pdb to C:\Program Files (x86)\Team MediaPortal\MediaPortal TV Server (overwrite existing).


    4. Startup TV Service and proceed with testing :)


    If something is not working for you, double check your dish.xml configuration and make sure to post logs.


    A BIG thanx goes to @Sebastiii for his coding work and time and to @mm1352000 for his valuable information and insights.


     

    Attached Files:

    • Thank You! Thank You! x 2
    • Like Like x 1
  2. Google AdSense Guest Advertisement



    to hide all adverts.
  3. Sebastiii
    • Team MediaPortal

    Sebastiii Development Group

    Joined:
    November 12, 2007
    Messages:
    16,204
    Likes Received:
    6,169
    Gender:
    Male
    Location:
    France
    Ratings:
    +10,150 / 9
    Home Country:
    France France
    Show System Specs
    Thanks to you too :)
     
  4. Sebastiii
    • Team MediaPortal

    Sebastiii Development Group

    Joined:
    November 12, 2007
    Messages:
    16,204
    Likes Received:
    6,169
    Gender:
    Male
    Location:
    France
    Ratings:
    +10,150 / 9
    Home Country:
    France France
    Show System Specs
    @mm1352000
    I would like to include this, i will prepare branch + jira for it :)
     
    • Like Like x 1
Loading...

Users Viewing Thread (Users: 0, Guests: 0)

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  • About The Project

    The vision of the MediaPortal project is to create a free open source media centre application, which supports all advanced media centre functions, and is accessible to all Windows users.

    In reaching this goal we are working every day to make sure our software is one of the best.

             

  • Support MediaPortal!

    The team works very hard to make sure the community is running the best HTPC-software. We give away MediaPortal for free but hosting and software is not for us.

    Care to support our work with a few bucks? We'd really appreciate it!