Mogli12 / GearboxAddon

Farming Simulator 2017: Gearbox addon
GNU General Public License v3.0
53 stars 28 forks source link

Double-clutch shifting request : Skip gears when in neutral mode #372

Closed Dudejo closed 6 years ago

Dudejo commented 6 years ago

Sometimes, because of my speed, I need to move a few gears down but, even though I am not in gear (and should therefore be able to move the shifting lever freely) due to being in neutral, I can't change gears unless I fully stop the truck.

This becomes especially difficult to deal with if the vehicle has speed-matching enabled by default.

Mogli12 commented 6 years ago

Hi,

Can you please add some details. Which truck do you use? Can you add a screen shot?

Thanks!

Dudejo commented 6 years ago

I dunno if the actual vehicle matters but here's a screenshot of the event and my transmission configuration.

https://cdn.discordapp.com/attachments/412348931473801217/443044962578333697/screenshot.png

        <transmission name="FRO-10" autoStartStop="false" speedLimiter="false" maxRpmThrottle="0.5" fuelPerDistanceMinSpeed="10">
        <gears doubleClutch="true" axleSpeed="2.87" tireWidth="315" tireRatio="80" rimDiameter="22.5" defaultGear="1" shiftTimeMs="800">
            <gear inverseRatio="12.69" forwardOnly="true" name="1"/>
            <gear inverseRatio="13.75" reverseOnly="true" name="R"/>
            <gear inverseRatio="9.29" forwardOnly="true" name="2"/>
            <gear inverseRatio="6.75" forwardOnly="true" name="3"/>
            <gear inverseRatio="4.90" forwardOnly="true" name="4"/>
            <gear inverseRatio="3.62" forwardOnly="true" name="5"/>
        </gears>

        <ranges shiftNoThrottle="true" defaultRange="1" shiftTimeMs="800">
            <range name="L" ratio="1.0000"/>
            <range name="H" ratio="4.8919"/>
        </ranges>
        </transmission>
Mogli12 commented 6 years ago

You started in which gear? Which keys did you press?

If there is only one gearbox (e.g. only gears) the gear shaft is always connected to the wheels. Some of the gears are connected to the output gear shaft. They are always rotating at wheel RPM multiplied by final transmission ratio. This is independent of neutral.

If you want to shift down from H to L then you are already too fast.

Dudejo commented 6 years ago

I went into Neutral manually, using the ; (semicolon) key that toggles between manual/automatic/neutral.

Dudejo commented 6 years ago

I just noticed your edited post

The hi-lo box in my previous post is synchronized so I have no issues there.

Basically, I start in 1st, get some speed, then manually go into Neutral mode and try to randomly cycle the gears with [ and ' (left bracket and apostrophe), the default keys for changing gears up or down.

the result is pretty much what happens in the screenshot.

Mogli12 commented 6 years ago

I do not think that the error message is wrong. The meaning is that the current rotation of the transmission input shaft is at 700 RPM but the required RPM for the gears your want to switch into is 3595 RPM. You gear is simply too slow. I am not quite sure if the ratio of L and H are very realistic.

Dudejo commented 6 years ago

I don't have problems with the error messages for wrong RPM matching. They totally make sense.

I just want to replicate to ability to select any gear I want when my shifting lever is not in gear (which I assume is the in-game Neutral mode). Like when your shifting lever is loose and you can wiggle it freely.

In that state, you can move the shifting lever to any gear, yes? That I what I thought Neutral mode did. A free-wiggling shifting lever. And I thought switching to Manual mode meant that I was pushing the shifting lever into a gear slot (which will obviously fail if I didn't match my engine RPM to my gear RPM).

As for my L and H ranges, I have seen documentation that advertised the ability to synchronize range shifts. http://www.eaton.com/ecm/idcplg?IdcService=GET_FILE&allowInterrupt=1&RevisionSelectionMethod=LatestReleased&noSaveAs=0&Rendition=Primary&dDocName=RR_TRSL-0261

From what I've seen of YouTube demonstrations, it works like this : 1: accelerate and upshift until you reach the highest gear in the low range. 2: flick a switch on the shifting lever while still in final gear and with the clutch lifted. 3: move the shifting lever back to the first gear with a double-clutching procedure. 4: you are now driving on the lowest gear in high range.

Because of how gear selection currently behaves (because it assumes that I am trying to force the shifting lever into a gear slot even in Neutral mode), I cannot move the shifting lever directly back to first gear unless I enable Speed Matching in the mod options.

A player with the G27 shifter game controller can go straight to first gear but for players who can only do sequential gear selection, it is impossible even though it is the correct procedure.

Mogli12 commented 6 years ago

Even if you are in neutral the output shaft of the transmission is still connected to the wheels. Neutral just means that There is no connection between input and output shaft.

Dudejo commented 6 years ago

so how do I go from Lo 5 to Hi 1 without using a G27 shifter game controller, enabling Speed Matching or stopping the truck entirely?

Mogli12 commented 6 years ago

Did you see my configuration for the americanTruckOneAxle?

            <gears axleSpeed="3.70" tireWidth="315" tireRatio="80" rimDiameter="22.5" defaultGear="3" automatic="true" doubleClutch="true" shiftTimeMs="1000" autoShiftPriority="1">
                <gear name="Lo" forwardOnly="true" inverseRatio="14.40" maxRange="1">
                    <extraName range1="1" range2="1" name="Lo"/>
                    <extraName range1="2" range2="1" name="!!do not use!! (L)"/>
                    <extraName range1="2" range2="2" name="!!do not use!! (H)"/>
                </gear>
                <gear name="R"  reverseOnly="true" inverseRatio="15.06">
                    <extraName range1="1" range2="1" name="R1"/>
                    <extraName range1="2" range2="1" name="R2"/>
                    <extraName range1="2" range2="2" name="R3"/>
                </gear>
                <gear name="1"  forwardOnly="true" inverseRatio="8.51">
                    <extraName range1="1" range2="1" name="1"/>
                    <extraName range1="2" range2="1" name="5 L"/>
                    <extraName range1="2" range2="2" name="5 H"/>
                </gear>
                <gear name="2"  forwardOnly="true" inverseRatio="6.05">
                    <extraName range1="1" range2="1" name="2"/>
                    <extraName range1="2" range2="1" name="6 L"/>
                    <extraName range1="2" range2="2" name="6 H"/>
                </gear>
                <gear name="3"  forwardOnly="true" inverseRatio="4.38">
                    <extraName range1="1" range2="1" name="3"/>
                    <extraName range1="2" range2="1" name="7 L"/>
                    <extraName range1="2" range2="2" name="7 H"/>
                </gear>
                <gear name="4"  forwardOnly="true" inverseRatio="3.20">
                    <extraName range1="1" range2="1" name="4"/>
                    <extraName range1="2" range2="1" name="8 L"/>
                    <extraName range1="2" range2="2" name="8 H"/>
                </gear>
            </gears>

            <ranges doubleClutch="true" shiftTimeMs="1200" defaultRange="1" automatic="true" autoShiftPriority="3">
                <range name="Lo" ratio="1"    upGearOffset="-3" maxRange2="1"/>
                <range name="Hi" ratio="3.74" downGearOffset="3" minGear="2"/>
            </ranges>

            <ranges shiftTimeMs="300" clutchRatio="1" shiftNoThrottle="true" defaultRange="1" automatic="true" autoShiftPriority="1">
                <range name="L" ratio="1"/>
                <range name="H" ratio="1.172" minRange="2"/>
            </ranges>

The trick is are the attributes upGearOffset and downGearOffset in the 1st ranges tag.

Dudejo commented 6 years ago

I've tried that template and the flags upGearOffset and downGearOffset only appear to work in Automatic mode.

if I drive in manual mode, the transmission goes from gear 4 directly to gear 8 L when I shift from Lo to Hi range.

Also, it still doesn't let me cycle to gear 5 L unless I stop the truck. I can't even enable Speed Matching in the options because it's locked out.

Isn't there a way to make the Neutral mode count as a synchronized gear (or somehow override the values that prevent "improper" gear cycling) until you try to switch into Manual mode? This would allow the driver to freely select his gear before re-engaging the connection between the engine and wheels. If the RPMs don't match, the transmission would remain in Neutral.

Mogli12 commented 6 years ago

Ok, now I understand the problem. You go to neutral, change some gears and ranges and the check for transmission input and output RPM should happen only if you disable neutral.

I am not fully satisfied with the current solution but I propose you try v3.1 build 48.

Dudejo commented 6 years ago

I've tried build 48 for a few minutes, now.

So far, the best way for me to do a clean gear change is to do the following sequence of actions.

1: clutch 2: switch to Neutral 3: select desired gear 4: match RPMs 5: clutch 6: switch to Manual

Is this the intended sequence for the current system?

Also, I had to go disable the auto-hold in the Gearboxconfig for the American One-Axle truck as it would constantly engage itself while I was in Neutral. This happened even if the truck was still moving at high speeds.

The upgearoffset and downgearoffset flags still don't work, too.

Dudejo commented 6 years ago

Something to add.

I searched through old documentation of your mod and applied the revDownMs flag with a time of 3000 ms to your American One Axle template. I found it very useful to nail the timing for the gear changes.

Mogli12 commented 6 years ago

I think we can close this one