javiersan Posted August 13, 2023 Report Posted August 13, 2023 Hello, I am using Prepar3d v5.3 and Mobiflight 9.7.1, I want to know where I can get the list of the Free FSUIPC OffSet that I can use, I understand that the range goes from 66C0 to 66FF but I don't understand what the consecutive list would be, it is say 66C0, 66C1, 66C2 or 66A0, 66A1....., I would like to know what is the maximum number of Free OffSets that I can use. I ask this because there are some free Offsets in which I can store and manipulate LVAR variables, for example in the Offset 0x66C0, but there are other Offsets in which the values generate errors such as Offset 0x66C1 or 0x66D2. The Objective is to be able to store and manipulate the value of 200 LVAR Variables correctly in Outputs like Led, Stepper, Servos and many others. Many regards to everybody.
John Dowson Posted August 14, 2023 Report Posted August 14, 2023 18 hours ago, javiersan said: I want to know where I can get the list of the Free FSUIPC OffSet that I can use All offsets are documented in the FSUIPC Offset Status document. The ones you can use are documented as "Free for general use" in this document. 18 hours ago, javiersan said: I understand that the range goes from 66C0 to 66FF but I don't understand what the consecutive list would be, it is say 66C0, 66C1, 66C2 or 66A0, 66A1....., I would like to know what is the maximum number of Free OffSets that I can use. The offset area starting at 66C0 is free for general use and is 64 bytes in size. it is up to you how you use this - you can divide this up as you see fit. Just remember that you need to respect byte boundaries, so if you are storing a 2-byte integer (short), then that needs to be on a 2-byte boundary (i.e. last digit must be 0,2,4,6,8,A,C or E), a 4-byte value (e.g. int) must be on a 4-byte boundary (last digit must be 0,4,8 or C), etc. 18 hours ago, javiersan said: I would like to know what is the maximum number of Free OffSets that I can use. There is no maximum - you can use all of the offset areas designated as free for general use. You can also use any offset area allocated to 3rd-party aircraft or utilities that you do not use, e.g. you can use the PMDG offset area starting at 0x6420 (512 bytes) if not using PMDG aircraft or the PMDG data broadcasts. 18 hours ago, javiersan said: I ask this because there are some free Offsets in which I can store and manipulate LVAR variables, for example in the Offset 0x66C0, but there are other Offsets in which the values generate errors such as Offset 0x66C1 or 0x66D2. The Objective is to be able to store and manipulate the value of 200 LVAR Variables correctly in Outputs like Led, Stepper, Servos and many others. What do you mean by 'generate errors'? If an lvar value can be stored in a byte (in range 0-255 or -127 - +127) then you can store in consecutive bytes. However, all lvars are, by default, 8 bytes - although you can treat/convert them to byte values (usually for Boolean 0/1) or 4-byte values (for standard integers), but would usually need 8 bytes for storing floating point values. So the size of the offset would be dependent on the data that it is holding. So, for example, to store 4 lvars that hold integers, you would use (for example) 0x66C0, 0x66C4, 0x66C8 & 0x66CC.
javiersan Posted August 14, 2023 Author Report Posted August 14, 2023 4 hours ago, John Dowson said: All offsets are documented in the FSUIPC Offset Status document. The ones you can use are documented as "Free for general use" in this document. The offset area starting at 66C0 is free for general use and is 64 bytes in size. it is up to you how you use this - you can divide this up as you see fit. Just remember that you need to respect byte boundaries, so if you are storing a 2-byte integer (short), then that needs to be on a 2-byte boundary (i.e. last digit must be 0,2,4,6,8,A,C or E), a 4-byte value (e.g. int) must be on a 4-byte boundary (last digit must be 0,4,8 or C), etc. There is no maximum - you can use all of the offset areas designated as free for general use. You can also use any offset area allocated to 3rd-party aircraft or utilities that you do not use, e.g. you can use the PMDG offset area starting at 0x6420 (512 bytes) if not using PMDG aircraft or the PMDG data broadcasts. What do you mean by 'generate errors'? If an lvar value can be stored in a byte (in range 0-255 or -127 - +127) then you can store in consecutive bytes. However, all lvars are, by default, 8 bytes - although you can treat/convert them to byte values (usually for Boolean 0/1) or 4-byte values (for standard integers), but would usually need 8 bytes for storing floating point values. So the size of the offset would be dependent on the data that it is holding. So, for example, to store 4 lvars that hold integers, you would use (for example) 0x66C0, 0x66C4, 0x66C8 & 0x66CCC. Hi John, I want to thank you for your answer, your answer is very well explained, better impossible. The error was in the bad syntax in my LUA code
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now