DirIncrease ( ) ignored in CVF File

Bug #1154002 reported by Dennis A T
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Open Rails
Fix Released
Low
cjakeman

Bug Description

On a circular cab dial, DirIncrease ( ) indicates whether the needle should move clockwise or anticlockwise. This appears to be ignored in OR, the increase always being clockwise.

The attached pictures are from the default "Home Stretch" activity on the default "Settle Carlisle" route. The locomotive is the default UK Class 50.

Look at the duplex brake gauge on the extreme left. in MSTS the left hand needle moves clockwise and the right hand needle moves anticlockwise as they should. In OR the left hand needle moves clockwise correctly but the right hand needle also moves clockwise giving a weird effect on the instrument.

These duplex gauges are very common on UK locomotives, there are many examples of this bug.

I am using OR Release X.1477 but have noticed this bug on all releases for many months.

Tags: cabs
Revision history for this message
Dennis A T (dennisat) wrote :
Revision history for this message
Dennis A T (dennisat) wrote :
Revision history for this message
Dennis A T (dennisat) wrote :
Revision history for this message
Dennis A T (dennisat) wrote :
description: updated
Dennis A T (dennisat)
description: updated
Revision history for this message
Sid Penstone (penstone) wrote :

There is a related problem with the direction of needle movement when using Charlie Sibaja's EMD Cabviews that use a common dial with two needles to indicate motor driving current and dynamic braking current.

In OR, the motor current (white needle) is OK, but the second (red) needle for dynamic braking current is always at the end of the scale and does not move when dynamic braking is on. In MSTS, BOTH start at the left end of the scale, and whichever is active moves to the right as current magnitude increases.

Note that the value of the motor current is negative during dynamic braking, so the 0 or 1 value in the cvf file may be related to the sign (+ or -) of the current as well as the direction of needle movement.

I have attached an extract from a .cvf file that can be used with the default GP38.

Sid P.

cjakeman (cjakeman)
Changed in or:
status: New → In Progress
assignee: nobody → cjakeman (cjakeman)
cjakeman (cjakeman)
Changed in or:
importance: Undecided → Low
Revision history for this message
cjakeman (cjakeman) wrote :

Hi Dennis,

I believe I've fixed your bug but not committed yet as I'm still looking at Sid's comment.

Best wishes,

Chris

Revision history for this message
Dennis A T (dennisat) wrote :

Thanks Chris, I'll look forward to seeing it.

Dennis

tags: added: cabs
Changed in or:
milestone: none → 0.9
Revision history for this message
cjakeman (cjakeman) wrote :

Hi Sid,

I'm back again looking at unfinished business, including this report.

I now have a dial in the GP38 cab with 2 needles for dynamic braking - the white one going clockwise when the power is on and the red one going anticlockwise when the dynamic braking goes on.

However, as you point out, "the value of the motor current is negative during dynamic braking", so I had to change the file you posted from
  DirIncrease ( 1 )
to
  DirIncrease ( 0 )

I'm ready to commit except for this puzzle.

Best wishes,

Chris

Revision history for this message
Sid Penstone (penstone) wrote :

Hi Chris,
If you are working on a cabview with the dial inverted (I think that was the original comment) and you have it working OK in OR without changes, that would be great. The cabview data in "Trainset\Common.cab\Generic Eng Cabs\GP38 Comb" in MSTS has an inverted dial face. I have attached the load meter entries as a file. The red needle has a smaller range of movement, ending up pointing vertically down at 900 amps.

The .cvf file that I quoted from uses a single dial face with two needles, both of them rotate clockwise in MSTS. It works fine in MSTS (but I have some problems understanding the relationship between the angle range for the red needle). Changing the direction will upset MSTS use. Does the file work for you in OR? In my OR (X1492 +) the red needle does not move. This file belongs to a large set of photorealistic cabs, and it would be a problem for users who run both MSTS and OR to have the direction modified.

What confuses me in the emd file is not the direction value, but the two values for the angles defined as the scalerange for the red needle (dynamic). There seems to be a connection between the order of the entries and their value and the fact that the current being displayed is negative. Both needles start displayed at 319 degrees, and when they operate, rotate clockwise. The right hand end of the dial face is about 47 degrees, as specified for the white needle. But for the red needle, the scale range is ( 319 250 ) which puts the end below the starting position. The difference between the values also defines a sensitivity relationship to the total range of the meter. For example, changing the scalerange to ( 310 47 ) like the white needle, makes the red needle start at the left hand end, and rotate clockwise past the end of the dial.

Cheers,
Sid

Revision history for this message
cjakeman (cjakeman) wrote :

Hi Sid,

Thanks for responding, but I'm getting confused too :-)

First of all, I don't have a folder Common.cab in "D:\play\MSTS\TRAINS\TRAINSET", so I'm wondering whether I'm missing something in my MSTS installation. Do you know where this came from?

Secondly, I have replaced the default needle in "D:\play\MSTS\TRAINS\TRAINSET\GP38\CABVIEW\gp38.cvf"
  Dial (
   Type ( LOAD_METER DIAL )
   Position ( 565 272 6 41 )
   Graphic ( "NeedleWhite .ace" )
   Style ( NEEDLE )
   ScaleRange ( -800 1600 )
   ScalePos ( 270 180 )
   Units ( AMPS )
   Pivot ( 28 )
   DirIncrease ( 0 )
  )
with a pair of red and white needles
  Dial (
   Type ( LOAD_METER DIAL )
   Position ( 565 272 6 41 )
   Graphic ( "NeedleWhite .ace" )
   Style ( NEEDLE )
   ScaleRange ( 0 1600 )
   ScalePos ( 0 180 )
   Pivot ( 28 )
   DirIncrease ( 0 )
  )
  Dial (
   Type ( LOAD_METER DIAL )
   Position ( 565 272 6 41 )
   Graphic ( "NeedleRed.ace" )
   Style ( NEEDLE )
   ScaleRange (-800 0 )
   ScalePos ( 270 0 )
   Pivot ( 28 )
   DirIncrease ( 0 )
  )
I've changed OR so that the red needle now moves when dynamic braking is applied.

Thirdly, I've changed OR to respond to DirIncrease( 1 )

I've attached a copy so you can explore further. I hope you can tell me if I've got it right.

Thanks,

Chris

Revision history for this message
Sid Penstone (penstone) wrote :

Hi Chris,
Your modified cvf looks good!
 I had to add the line "Units ( AMPS )" to define the units for it to work correctly in MSTS.
 It works the same in OR and MSTS now!

 Replace the default single needle:
 Dial (
   Type ( LOAD_METER DIAL )
   Position ( 565 272 6 41 )
   Graphic ( "NeedleWhite .ace" )
   Style ( NEEDLE )
   ScaleRange ( -800 1600 )
   ScalePos ( 270 180 )
   Units ( AMPS )
   Pivot ( 28 )
   DirIncrease ( 0 )
  )
with a pair of red and white needles
  Dial (
   Type ( LOAD_METER DIAL )
   Position ( 565 272 6 41 )
   Graphic ( "NeedleWhite .ace" )
   Style ( NEEDLE )
   ScaleRange ( 0 1600 )
   ScalePos ( 0 180 )
   Units ( AMPS )
   Pivot ( 28 )
   DirIncrease ( 0 )
  )
  Dial (
   Type ( LOAD_METER DIAL )
   Position ( 565 272 6 41 )
   Graphic ( "NeedleRed.ace" )
   Style ( NEEDLE )
   ScaleRange (-800 0 )
   ScalePos ( 270 0 )
   Units ( AMPS )
   Pivot ( 28 )
   DirIncrease ( 0 )
  )

But notice that the counterclockwise meter is working correctly with a DirIncrease (0) - that usually means counterclockwise in other cvf files... But some other cvf files with double needles that I have looked at have ScalePos () values that seem quite different, and seem to involve mod(360) tricks. I'll try some other tricks with your file later.

Do you have a sample cvf to work on that uses a downward pointing needle?

Your "RunActivity.exe" will allow me to try some other two needle versions later.

BTW, the Common.Cabs folder gets created when almost any of the many downloadable alternate cabview files are installed. The original MSTS kept the .ace files in the locomotive Cabview folder, but a lot of the addon cabs only keep an alias .cvf file in the Cabview folder; it contains pointers to all of the .ace files in folders in the Common.Cab folder. That allows the same cabview to be used with multiple locos by just copying the alias .cvf file to their Cabview folder.

Regards,
Sid P.

Revision history for this message
Sid Penstone (penstone) wrote :

Hi Chris,
Good news-
I tried another MSTS Cabview file (Common.cab\Generic Eng Cabs\GP38 Comb\GenGP38-wdbcombined.cvf) for the GP38 that has an inverted meter (the two needles point downwards, and turn counter clockwise), and your "RunActivity.exe" works perfectly. So it look like you have fixed the bug.

Cheers,
Sid

Revision history for this message
cjakeman (cjakeman) wrote :

Hi Sid,

That's just what I wanted to hear - many thanks for being thorough.

I'll commit it today.

Best wishes,

Chris

cjakeman (cjakeman)
Changed in or:
status: In Progress → Fix Committed
Revision history for this message
Sid Penstone (penstone) wrote :

Hi Chris,
Found a problem!
I just tried the other double needle file that I was puzzled about, and the red needle is wrong in OR!
In MSTS it starts at about 320 degrees and rotates clockwise to about 0 degrees. In OR, the red needle starts at about 250 degrees and rotates to about 320.
Here is the code from EMD-GP38-BNSF-H1-AS.cvf:
  Dial (
   Type ( LOAD_METER DIAL )
   Position ( 423 159 5 31 )
   Graphic ( "..//..//SHR.CABS//EMD-STD-1-CAB//needleloadred.ACE" )
   Style ( POINTER )
   ScaleRange ( -900 0 )
   ScalePos ( 319 250 )
   Units ( AMPS )
   Pivot ( 27 )
   DirIncrease ( 1 )
  )
  Dial (
   Type ( LOAD_METER DIAL )
   Position ( 423 159 5 31 )
   Graphic ( "..//..//SHR.CABS//EMD-STD-1-CAB//needleloadwhite.ACE" )
   Style ( NEEDLE )
   ScaleRange ( 0 1600 )
   ScalePos ( 319 47 )
   Units ( AMPS )
   Pivot ( 27 )
   DirIncrease ( 0 )
  )

There is an additional relationship between the angle values that seems to be interpreted in MSTS that is still overlooked in OR.
This file is part of a large set of alternative Cabview files that have been downloaded by many MSTS users.
You should be able to put these segments into you GP38 cvf file to try it.

I have attached some pictures. emd-cvf-dynamic2 is MSTS with the dynamic brakes on.

The alternative cabview files that do work in OR that I referred to are available in the Trainsim.com library:
GP38 Cabview with downward pointing and dual needles)
gp38comb.zip (released 04-23-2005)
gp38cmb1.zip (update released 09-10-2006)
These work fine in your modified

Cheers,
Sid

Revision history for this message
Sid Penstone (penstone) wrote :

Chris - another attachment from the OR version:

Revision history for this message
Sid Penstone (penstone) wrote :

PS - I forgot to point out that the load meter in the two screen dumps that I posted today is the last one on the right.
Sid P.

Revision history for this message
Sid Penstone (penstone) wrote :

Hi Chris,
I'm sure many MSTS users already knew this - The values used in the double needle file that does not work properly in OR were inserted by the Cab Editor that is provided with MSTS. They are entered in a template (I have attached a screen capture for the red needle - dynamic braking). The selection of direction indicates that the needle will move counterclockwise for the current "increasing" (i.e. in the positive direction) - and clockwise for negative increase, and it does. But I am still baffled by the correspondence between the angles shown and the current values: -900 and 0 amps and 319 and 250 degrees. Why 250? The red needle actually moves towards 360 degrees from its starting position at 319.
The template for the positive needle is straightforward: values of 0 and 1600 amps and angles of 319 and 47 degrees; the needle does move between those values.
There is a simple rule that is interpreted by MSTS, but I must be too dense to see it. I will do some queries on the MSTS site.
Cheers,
Sid

Revision history for this message
cjakeman (cjakeman) wrote :

"There is a simple rule that is interpreted by MSTS, but I must be too dense to see it."

Me too. Not willing to add code into OR to mimic quirks (bugs) in MSTS.

The workaround is to create a special folder for the loco, e.g. GP38\openrails\ as a home for any OR-specific files such as GP38.cvf

Be interesting to see any insight from the MSTS site.

Best wishes,

Chris

Revision history for this message
Sid Penstone (penstone) wrote :

Chris -
The special folder sounds like a good fix for now. Is that feasible?
The only answers I have so far from MSTS do not contain solutions. I am pretty sure that there is an extra step interpreting the angles when there is a negative sign in the current and the needle is required to move in the same direction as the positive current needle.
What is interesting is how well your fix for the dual needles works on the inverted meter with dual needles, which I might have expected to require more complicated processing.
Well done!

Regards,
Sid.

Revision history for this message
cjakeman (cjakeman) wrote :

Hi Sid,

The \openrails\ folder is already implemented (although missing from the manual). I've just checked the code and OR searches for the *.eng and *.wag files in the folder which you specify but also looks into any sub-folder for an OR-specific version, e.g. to find TRAINSET\GP38\openrails\GP38.eng

However my tests show that this isn't carried through to other files like CABVIEW\GP38.cvf

Shame. I will report it as a new bug, although it is really a feature request.

Best wishes,

Chris

Revision history for this message
Sid Penstone (penstone) wrote :

Hi Chris,
Too bad that CABVIEW isn't included in the search, I have a hunch there may be other problems lurking. However, even if there is a problem, the .eng file contains the line defining which cabview .cvf file is to be used, and a modified .eng file in the openrails sub-folder can point to a different version of the cabview file. I'll try the implementation of the openrails subfolder here.

In the meantime, after some more conversation on the MSTS site, some one pointed out that it might be acceptable to have the red needle at the right hand end of the dial in the EMD cabview and rotate it left when dynamic braking. (The detail of the numbers on the dial is not too clear.) In this case, the setting of the angles matches what you use in OR. (And I understand them.)
So I tried it, setting the angles by trial and error, and it works fine in both MSTS and OR ! So that may be an acceptable fix for those who want to use any of this set of cabviews in both OR and MSTS.

So your present OR fix looks pretty good.

Regards,
Sid

Revision history for this message
Mervyn Burse (mervyn) wrote :

Hello all. I have been responding with Sid in the trainsim forums on this problem.

 Whilst I agree that the Dwight Mitchell cab now works in both MSTS and ORTS, the Charlie Sibaja early standard cabs do not work in either for me. Following the logic of the Dwight Mitchell cvf the Sibaja ones should work in the same way but they do not in either MSTS or ORTS. I do know through testing that the needle position directly relates to the amperage being produced and to a marked degree this is controlled by the dynamic brakes data in the eng file, and related to control position, speed and weight of the train.

As the Class 50 and the Dwight Mitchell cabs seem to be sorted out, the fix you have made is acceptable to me. I will carry on and see if I can get Charlie's cab to work for me in MSTS. If it will, then it should also work in ORTS with this fix.

Mervyn

Revision history for this message
cjakeman (cjakeman) wrote :

Hi Mervyn,

Thanks for posting this. Hope you can make some sense of Charlie's cab and let me know if OR falls short in any way.

Best wishes,

Chris

Revision history for this message
Mervyn Burse (mervyn) wrote :

Using this code in the cvf file
Type ( LOAD_METER DIAL )
   Position ( 423 159 5 31 )
   Graphic ( "..//..//SHR.CABS//EMD-STD-1-CAB//needleloadred.ACE" )
   Style ( POINTER )
   ScaleRange ( -3000 0 )
   ScalePos ( 319 15 )
   Units ( AMPS )
   Pivot ( 27 )
   DirIncrease ( 1 )
  )
I have managed to get the dynamic needle to behave properly in MSTS, both needles starting on the left and moving right/left according to amperage.

In OR however, the red needle starts on the right at 15 degrees and then shows the correct movement from that point

Revision history for this message
Mervyn Burse (mervyn) wrote :
Revision history for this message
cjakeman (cjakeman) wrote :

Mervyn,

Do you want the red needle to start on the left (319') at 0 amps and move to the right (15) at -3000 amps?

If so, I think you will need:

   ScaleRange ( -3000 0 )
   ScalePos ( 15 319 )
   Units ( AMPS )
   Pivot ( 27 )
   DirIncrease ( 1 )

The way I've coded OR, ScaleRange goes from MinValue to MaxValue. So does ScalePos. If you can explain why MSTS works differently in certain cases, I would love to know.

Best wishes,

Chris

Revision history for this message
Mervyn Burse (mervyn) wrote :

Chris,

If I use those figures, the red needle starts at 15 runs backwards in MSTS, if I keep that ScalePos and change the DirIncrease the needle starts in the right place and runs backwards in MSTS.

In ORTS the needle behaves as expected so it is looking like there will have to be a separate ORTS cvf for these engines. That is no big deal for me as I can move a copy of the cab folder and any engines set up to use them into my Open Rails Trainset folder.

I was however hoping that with the Dwight Mitchell cabs being fixed it would also apply to these. It seems that while the Mitchell and the class 50 dual needle gauges have the needles pointing down and now work properly in both MSTS and OR, the Sibaja cabs have a dual needle set that points the other way and do not work properly in OR with the standard MSTS data.

Regards
Mervyn

PS The -3000 in the ScaleRange is there until I figure out what is driving the needle because lower figures drive it way off the scale.

Revision history for this message
cjakeman (cjakeman) wrote :

Mervyn,

Thanks for this description and I'm glad OR is dong what I expected. I reckon it is MSTS that is quirky but I can't tell what is triggering this unexpected behaviour.

Yes, the best solution is to have OR-specific files.

P.S. Hope OR is keeping the needle within the scale. Let me know if it doesn't.

Best wishes,

Chris

Revision history for this message
Sid Penstone (penstone) wrote :

Hi,
I tried the openrails sub-folder method with the GP38 and Charlie's files and it works fine.

I have different entries for the red needle in two different cvf files in the regular "Trainset/GP38/Cabview" folder - one is the regular MSTS file, the other is modified for OR. There has to be a second gp38.eng file in the "Trainset/GP38/openrails/" subfolder with a Cabview( ) line to point to the OR version of the cvf file. I do not see a need to have an "openrails/Cabview" subfolder. Having an (almost) duplicate .eng file is not a big penalty, since it is a text file. If an entire set of graphics files were required in a second Cabview folder, that would be a bigger drawback.

I can now have both needles start at the left edge and increase to the right in both simulators, (or have the red needle start at the right, etc.)

My red needle entry for the OR .cvf file in the openrails subfolder is:
  Dial (
   Type ( LOAD_METER DIAL )
   Position ( 423 159 5 31 )
   Graphic ( "..//..//SHR.CABS//EMD-STD-1-CAB//needleloadred.ACE" )
   Style ( POINTER )
   ScaleRange ( -900 0 )
   ScalePos ( 30 319 )
   Units ( AMPS )
   Pivot ( 27 )
   DirIncrease ( 1 )
  )
I am using the regular generic file "EMD-GP38-GEN-AS.cvf" that came with Charlie's Hi-Def Cabviews for MSTS. (This file has the funny angle values.) The results look pretty close for the two simulators. There must be extra "If-Then-Else" in MSTS that does something with the combination of signs, directions and relative values of angles in this file.

Regards,
Sid

Revision history for this message
Sid Penstone (penstone) wrote :

Oops! The line "My red needle entry for the OR .cvf file in the openrails subfolder is:" should read:
"My red needle entry for the OR version of the cvf file in the Cabview folder is:

Revision history for this message
Mervyn Burse (mervyn) wrote :

Chris

Far as I can see there is no quirk in MSTS when it comes to reading gauge needle movements.
ScaleRange gives the working range of the needle which is driven by the physics. ScalePos gives the needle position on the dial for a given physics input. DirIncrease dictates the direction the needle will move when input is received.

The only difference between the Mitchell cvf and the Sibaja cvf is which range of the circle is used. Note that both run properly within MSTS. Mitchell along with the Class 50 uses the bottom half and moves counter-clockwise. Sibaja uses the top half and moves clockwise. In MSTS both sets use the same methods of determining which direction the needle moves and how far.

It is my feeling that the OR code is not right because it is unable to determine how to run a set which uses the top half of the circle and moves in a different direction.

The workaround of making an OR specific cvf to cater for this is fine for some. but there are also a lot who might expect to be able to move to OR without having to edit files.

Regards
Mervyn

Revision history for this message
cjakeman (cjakeman) wrote :

Hi Mervyn

Sid has shown that OR is not the same as MSTS (yet). If you can come up with a complete set of rules with examples to illustrate them, then I'll have a go at revising OR.

I thought that DirIncrease( 0 ) meant clockwise but you are suggesting, I think, that it means different things depending on where on the dial the MinValue is located.

In your test cases, please include one that spans 0, e.g. from -50 to +50.

Are you willing to have a go?

Chris

Revision history for this message
Mervyn Burse (mervyn) wrote :

Hello Chris

DirIncrease means different things dependent on three factors. ScalePos and DirIncrease will normally suffice to show which way a needle will move. However, in the case of the dynamic or red loadmeter needle this is further modified by including a negative figure in the ScaleRange data. This negative figure means that the needle will not move under normal load, but will move when the engine physics state this should happen.

Normal needle movement is controlled with
ScaleRange ( 0 1600 )
ScalePos ( 290 50 )
DirIncrease ( 0 ) indicates that the needle will move left to right through the top half of the dial. Change the DirIncrease to ( 1 ) and the needle will move counter-clockwise through the bottom half of the dial.

To get another needle in the same display to take on the same movement with a different physics set we introduce the negative value
ScaleRange ( -1600 0 )
ScalePos ( 290 50 )
DirIncrease ( 1 ) indicates that the needle will move clockwise as above from the same start point because of the negative value in ScaleRange.

The ScalePos data can be any two points of the 360 available so the needle could also be made to move up/down on either side of the dial.

Just to reiterate, the Mitchell and Sibaja cvf Loadmeter data is set up in the same way, with the exception that Mitchell goes left to right across the bottom of the circle, and Sibaja moves left to right across the top of the circle. To get that working in both cases, the DirIncrease for both needles is opposite in that the Mitchell cab uses DirIncrease ( 1 ) but Sibaja uses DirIncrease ( 0 ) and vice-versa because of the different direction due to the use of the opposite side of the circle.

To sum up, the simple assumption of DirIncrease ( 0 ) is always clockwise is wrong.

Revision history for this message
cjakeman (cjakeman) wrote :

Hi Mervyn,

So in your first example, changing DirIncrease( 0 ) to ( 1 ) changes the direction from clockwise to anti-clockwise.

But in the second example, a -ve value is detected, and so changing DirIncrease( 0 ) to ( 1 ) moves the 0 to the 290' position and the -1600 to the 50' position.

Are you saying that a -ve value has no effect with DirIncrease( 0 ), but reverses things with DirIncrease( 1 ) ?

Seems very strange,

Chris

Revision history for this message
Mervyn Burse (mervyn) wrote :

Hi Chris

Looking first of all at a pair of needles that use the top of a circle, a -ve value will alter the behaviour of both DirIncrease If you have two needles which both use the same data, but one has a -ve value in the ScaleRange, that needle will go in reverse, so to make it move in the same direction as the other needle you apply the DirIncrease ( 1 ) .

The -ve value is in there so that MSTS can display the correct information on the dial when that particular physics subset is invoked. The DirIncrease of 0 or 1 tells MSTS which direction to move the pointer in relation to the ScaleRange data.

If you look at the Mitchell cab that Sid was using and your fix has sorted out, those DirIncrease values are applied in reverse to the Sibaja cvf because the two cvf files are using opposites of the circle. Mitchell is using the bottom half and moves left to right whereas Sibaja is using the top half but also moves left to right.

Having taken a bit more time to consider how these three datasets interact I have the following observation
ScaleRange is the full extent of action resulting from the input from the physics engine.
ScalePos gives the two extremes of movement.
DirIncrease is the direction that the needle must follow to display correctly. With a -ve value in the ScaleRange the DirIncrease must be opposite to the other needle if both are to start from the same side of the dial.

Hope this makes sense.

Regards

Mervyn.

Revision history for this message
Dennis A T (dennisat) wrote :

I have tried quite a range of locos with OR X1565 and the problem I reported seems to have been cured.

Thanks very much for your efforts.

Revision history for this message
cjakeman (cjakeman) wrote :

Hi Dennis,

Thanks for reporting you're happy with OR X1565.

I think Mervyn has found a quirky behaviour which seems to reverse the direction only if the MaxValue == 0. I've not done anything about this yet, but we might explore it further if we can do that without breaking your models.

Sid, on the other hand, has created some OR-specific CVF files.

Best wishes,

Chris

Revision history for this message
Mervyn Burse (mervyn) wrote :

Chris

I don't think this is "quirky behaviour" with regard to how DirIncrease relates to ScaleRange. The Class 50 problem was with the brake pressure dial which has two needles moving the same direction in opposite sides of a circle, in this case running bottom to top, both responding to a brake pressure value which is the same for both needles.

The problem that Sid and I are referring to is slightly different in that the two needles are responding to two different sets of data. One is showing traction current, the other is showing braking resistance ( Dynamic ) current which runs in reverse to traction. In order for them to both start from the same position and move in the same direction the DirIncrease have to be opposites.

Now, what I am not able to understand is that one cab responds correctly to this and the other does not with the only visible difference being which segment of the circle is used for the display. The one which works is using the bottom half, the one which does not is using the top half.

There is a difference between the Class 50 brake dial and the two US load meter dials. Class 50 uses two POINTER for the Style line whereas the US load meters are using one POINTER and one NEEDLE, with the pointer being the Dynamic and NEEDLE being the Traction indicators. In both cases the indicators run left to right, so the one that works properly is running clockwise for both and the one that does not work properly has the indicators running counter clockwise

Mervyn

Revision history for this message
Mervyn Burse (mervyn) wrote :
Revision history for this message
cjakeman (cjakeman) wrote :

Hi Mervyn,

I'm pleased you're still interested in this, as I want to get it right. Don't think the distinction between POINTER and NEEDLE makes a difference though haven't tested that yet.

Over the weekend I'll make up a special version for indicators running counter clockwise for you to try if you wouldn't mind.

Best wishes,

Chris

Revision history for this message
Mervyn Burse (mervyn) wrote :

Chris

I too am not certain that NEEDLE and POINTER have any bearing on the problem. However, if you look at each set of dial info, the Class 50 which uses POINTER for both works correctly with indicators running in opposite directions.

The Mitchell LoadMeter which uses a POINTER for the Dynamic indication also works correctly using clockwise direction for both indicators.

The Sibaja LoadMeter traction indicator works normally but the Dynamic indication does not although the meter uses the same methodology but runs in the opposite direction to the Mitchell meter.

To sum up, we have three dials with six indicators. Five of those work normally but the sixth one does not.

I look forward to trying your new version when it is ready.

Mervyn

Revision history for this message
Sid Penstone (penstone) wrote :

Chris
While you and Mervyn are untangling meter directions, I stumbled across another meter puzzle. The GG-1 locomotive that belongs with the PRR route uses a different format of load meter - a horizontal needle that moves vertically in front of a rectangular meter panel. The motion is correct, but the needles are positioned well off to the right and below the correct position. The cabviews were done by Dwight Mitchell, I believe.
I have attached an image.
The loco files are in ztg1935.zip on the trainsim download site.

Cheers,
Sid

Revision history for this message
Mervyn Burse (mervyn) wrote :

Sid

That is the NALW cab. The Dwight Mitchell GG1 cab can be found with the GG1-4811.

Mervyn

Revision history for this message
Sid Penstone (penstone) wrote :

Chris

You are right. Dwight's GG1-4811 cabviews work fine in both OR and MSTS. Actually, I now realize that the NALW cabview's row of meters labelled "Ammeters" are actually voltmeters, and should not be related to traction motor current. So I would use Dwight's cabs, which have better resolution, too.

Sid.

Revision history for this message
Mervyn Burse (mervyn) wrote :

Sid

NALW got it right labelling those as ammeters. The Mitchell cab has those wrong and non-working. I would like to see if we can get the Sibaja GP/SD meter working first, then tackle the NALW ammeters. I have had a quick look at the cvf file, but will have to use the cab editor to make sense of them first. I am kind of leaning towards a merge of the best bits of both to make a new cab.

Mervyn

Revision history for this message
Sid Penstone (penstone) wrote :

Hi Mervyn,
Yes, I did a little more research and you are right - they are really ammeters. I see ( in http://ctr.trains.com/~/media/import/files/pdf/2/9/6/gg1_engineer_s_controls_classic_trains.pdf) that the GG1 had three sets of motors. So the NALW cab ammeters should be active in OR as load meters, after all. Add it to the TODO list...

Sid.

Revision history for this message
Mervyn Burse (mervyn) wrote :

Hello Chris

I never did see your revised code, but the Sibaja cab load meter is now working properly and has not affected any of the others adversely. GG1 to sort out now.

Mervyn

Revision history for this message
Sid Penstone (penstone) wrote :

Hello Mervyn,

Which Sibaja cab load meter file are you referring to? EMD-GP38-GEN-AS.cvf still has the load needle starting in the wrong place for me in X1587.

Chris - I also found another one that is somewhat similar to the GG problem -it is the Series2000 loco in the default MSTS. It has a vertical load scale with a needle that is supposed to move from bottom to top , but in OR it moves from top to bottom, and changing the direction from ( 1 ) to ( 0 ) has no effect. The default activity is "Short Passenger Run" on the default Tokyo-Hakone route, or the consist to try is "2000std.con".

Sid.

Revision history for this message
Mervyn Burse (mervyn) wrote :

Sid,
Good catch, I was looking at the wrong engine/cab. Not working yet. I have a GP38 with reversed Scalepos and an SD40 with normal Scalepos. Forgot which was which. Doh!

Looking at the vertical moving indicators, The series 2000 will be easier to check. The GG1 NALW cab has serious issues with pointer position in the cab editor.

Mervyn

Revision history for this message
Sid Penstone (penstone) wrote :

Mervyn,
Just tried X1605 - congratulations, the GG1 NALW cab ammeter needles are working in the correct locations!

Regards,
Sid.

James Ross (twpol)
Changed in or:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.