fsd-doc icon indicating copy to clipboard operation
fsd-doc copied to clipboard

Pilot position updates - (num1) and (num2) fields

Open norrisng opened this issue 6 years ago • 5 comments

What does (num1) and (num2) represent? It's present in both IVAO and VATSIM variants, but isn't present in the original FSD spec.

  • (num1) is a number of up to 10 digits. It seems to begin with 4.
  • (num2) is an integer. There seems to be a wide range of values, anywhere between 1 and 3 digits, and can be positive or negative.

norrisng avatar Apr 18 '19 23:04 norrisng

(num1) = pitch / bank / heading / onground value a decimal sent as string whose value is the following unsigned 32bits binary number:

 3         2         1         0
10987654321098765432109876543210
<  pitch ><  bank  ><heading >OU
  • U bit:
    • unused
  • O bit:
    • Aircraft onground indicator.
  • heading 10bits field:
    • aircraft current heading, in degree
    • values range [0, 1023] (unsigned 10 bits number)
    • 1 = 360/1024 degree
    • 0 = magnetic north
  • bank 10bits field:
    • aircraft current bank / roll angle, in degree
    • values range [-511, 512] (signed 10 bits number),
    • 1 = 180/512 degree,
    • negative value = right wing banking.
  • pitch 10bits field:
    • aircraft current pitch angle, in degree
    • values range [-511, 512] (signed 10 bits number)
    • 1 = 90/256 degree
    • 0 = aircraft is at level
    • 256 = aircraft pitch is 90 degree up (aka skyrocket!)
    • negative value = down pitch

Onground aircrafts have usually 0 degree pitch and bank angles, their (num1) value is mostly heading encoded, a small value, very stable until they start taxiing.

On the contrary, airborne aircrafts have rarely perfect 0 degree pitch and banking angles, leading to big (num1) values.

phoudoin avatar Aug 14 '19 22:08 phoudoin

(num2) = difference between Above Ground Level altitude (AGL) and Above Mean Sea Level (AMSL) altitude, as reported by aircraft barometric altimeter

Unit is feet, obviously.

phoudoin avatar Aug 14 '19 22:08 phoudoin

(num1) = pitch / bank / heading / onground value a decimal sent as string whose value is the following unsigned 32bits binary number:

 3         2         1         0
10987654321098765432109876543210
<  pitch ><  bank  ><heading >OU
  • U bit:

    • unused
  • O bit:

    • Aircraft onground indicator.
  • heading 10bits field:

    • aircraft current heading, in degree
    • values range [0, 1023] (unsigned 10 bits number)
    • 1 = 360/1024 degree
    • 0 = magnetic north
  • bank 10bits field:

    • aircraft current bank / roll angle, in degree
    • values range [-511, 512] (signed 10 bits number),
    • 1 = 180/512 degree,
    • negative value = right wing banking.
  • pitch 10bits field:

    • aircraft current pitch angle, in degree
    • values range [-511, 512] (signed 10 bits number)
    • 1 = 90/256 degree
    • 0 = aircraft is at level
    • 256 = aircraft pitch is 90 degree up (aka skyrocket!)
    • negative value = down pitch

Onground aircrafts have usually 0 degree pitch and bank angles, their (num1) value is mostly heading encoded, a small value, very stable until they start taxiing.

On the contrary, airborne aircrafts have rarely perfect 0 degree pitch and banking angles, leading to big (num1) values.

I do thank you and must be grateful for it. This problem has been troublesome for me for totally 5 years.

gtxzsxxk avatar Feb 12 '21 15:02 gtxzsxxk

(num1) = pitch / bank / heading / onground value a decimal sent as string whose value is the following unsigned 32bits binary number:

 3         2         1         0
10987654321098765432109876543210
<  pitch ><  bank  ><heading >OU
  • U bit:

    • unused
  • O bit:

    • Aircraft onground indicator.
  • heading 10bits field:

    • aircraft current heading, in degree
    • values range [0, 1023] (unsigned 10 bits number)
    • 1 = 360/1024 degree
    • 0 = magnetic north
  • bank 10bits field:

    • aircraft current bank / roll angle, in degree
    • values range [-511, 512] (signed 10 bits number),
    • 1 = 180/512 degree,
    • negative value = right wing banking.
  • pitch 10bits field:

    • aircraft current pitch angle, in degree
    • values range [-511, 512] (signed 10 bits number)
    • 1 = 90/256 degree
    • 0 = aircraft is at level
    • 256 = aircraft pitch is 90 degree up (aka skyrocket!)
    • negative value = down pitch

Onground aircrafts have usually 0 degree pitch and bank angles, their (num1) value is mostly heading encoded, a small value, very stable until they start taxiing. On the contrary, airborne aircrafts have rarely perfect 0 degree pitch and banking angles, leading to big (num1) values.

I do thank you and must be grateful for it. This problem has been troublesome for me for totally 5 years.

Hello, I've been trying to decode the Indicated Heading from the 10 bits number but have been unable to do so, how did you manage to extract the Aircraft heading? For example this is the number for 0 pitch 0 bank and a heading of 080, "12575602" How do I extract the information I need from it? Thanks.

OdiasUkcamaj avatar Jul 27 '21 23:07 OdiasUkcamaj

Use the bit operate to get the specific bit in the pbh value. That means the pbh value should be discussed at the binary level. Here is the demo code in JavaScript. The other value can be read in the same way.

var heading = Math.round(((parseInt(pbh) & 4092) >> 2) / 1024 * 360);

dextercai avatar Jul 28 '21 14:07 dextercai