Jump to content
The simFlight Network Forums

GoFlight MESM for Level-D 767


Recommended Posts

Hello all,

Finally last night I was able to configure and use the GoFlight MESM (Multi Engine Starter Module) and T8 module with the Level-D 767. I used FSCONV (Thanks to Nico Kaan) and registered FSUIPC v3.99 (Thanks Pete). I have FS9 running on Win 7 64bit.

I had no problems with the T8 module. Flawless.

Regarding the GF-MESM, during configuration, FSUIPC always detects the position of the switches while I rotate them around. However the GF-MESM selector switches for both engines are not always synchronized with the switches on the Level-D overhead. But most of the times 80% they are. I am rotating slowly also to make sure I'm not confusing the system.

My question is: Is the mis-synchronization a GoFlight, an FSUIPC, or an FSCONV issue? I'm sure many have tried the GoFlight MESM on Level-D 767 and I would like to know how it is flawlessly done.

Another question: I was refferred previously by a simmer to try using LUA to program GoFlight modules. I havent tried it yet as I cannt find a good source for beginners like me. Could you please direct me to some link or source for using LUA together with FSUIPC?

Thanks,

Fouad

Link to comment
Share on other sites

Regarding the GF-MESM, during configuration, FSUIPC always detects the position of the switches while I rotate them around. However the GF-MESM selector switches for both engines are not always synchronized with the switches on the Level-D overhead. But most of the times 80% they are. I am rotating slowly also to make sure I'm not confusing the system.

My question is: Is the mis-synchronization a GoFlight, an FSUIPC, or an FSCONV issue? I'm sure many have tried the GoFlight MESM on Level-D 767 and I would like to know how it is flawlessly done.

Sorry, not knowing anything about the Level-D 767 nor FSConv I can't really help. But test the switches on a default aircraft. All FSUIPC can do is detect the switch operation and allow you to make an assignment. The rest is exactly the same as assignments to any buttons or switches.

Another question: I was refferred previously by a simmer to try using LUA to program GoFlight modules. I havent tried it yet as I cannt find a good source for beginners like me. Could you please direct me to some link or source for using LUA together with FSUIPC?

There are references to good beginners books on the Lua website, which is referenced in the Lua documentation installed in your FSUIPC Documents folder (in the FS Modules folder). I'd recommend the first few chapters of "Programming in Lua" by Roberto Ierusalimschy, published by Lua.org. For application in FSUIPC the main reference for the Libraries added is the document in your FSUIPC documents folder, plus the numerous examples provided there too, and a lot more help in the User Contributions subforum here.

Regards

Pete

Link to comment
Share on other sites

Hi Fouad,

I use FSCONV to connect my VRInsight MCP hardware with the Level-D 767. The way FSCONV works with its regular scans of the Level-D components (of which it can do max. 12 parameters a second) could be the reason for the mismatch. I made sure that only the parameters I absolutely need for the MCP Combo are activated and I also read out once per second.

Try optimizing FSCONV by turning off all the parameters except the one for the MESM selectors (save your current profile in FSCONV under a different name first so you can recover the current settings) and try again - using a higher frequency for scanning. If your engine selectors do work properly you have found the reason. GoFlight hardware or FSUIPC are probably not the reason.

The Lua scripting is indeed an interesting option although you need some programming experience. There is a good support for GoFlight hardware with the gdf library offering scripted reading of GoFlight parameters. So, if optimizing FSCONV does not work, you could create a Lua script which reads the position of the switches on the MESM and makes sure that the Level-D get the same values...

Kosta

Link to comment
Share on other sites

Thank you Pete/Kosta,

Regarding FSCONV, I only activated the engine starters / fuel controls. And selected the 12 pars / second. Everything else is disabled. The case remains the same. Switching the MESM buttons either works correctly with the 767 or does not have any effect at all.

Nico Kaan has released a new version of Lekseecon v 8.0 which works without FSCONV and which I found very helpful. In fact I was able to configure the AUTO, CONT & FLT selectors on the GF-MESM and the synchronization is beautiful. However, I could not configure the GRD selector because FSUIPC doesnt detect it. Strange! There is where I need to use LUA. When I switch from the AUTO selector, LUA's job here is to detect whether the selector went to CONT or GRD and activate it.

I have gone through this LUA Programming and I found it pretty similar to any other programming language. Just another syntax. Its been a long time since I programmed anything but I can grasp it.

My next step now is to go through FSUIPC LUA Library PDF which I am already doing and try to find some example scripts. I will try out some lines when I get back from work.

I'll get there hopefully... :)

I'll update you on the progress, As you said its just a matter of detecting joystick activities and reflecting it on FSUIPC offsets.

Cheers mates...

Edited by Houphad
Link to comment
Share on other sites

Hello again with gr8 news :)

I wrote 2 small LUA scripts:

1st scrpt (name: LENG_AUTO_YES.lua) This script runs when the Left Engine OFF is selected on the GF-MESM (Repeat control while held) - Note I am using the MESM-OFF as AUTO on the 767.

ipc.clearbitsUB(0x905E, 0xFF) -- Clear the Lekseecon offset corresponding to GRD

ipc.clearbitsUB(0x905F, 0xFF) -- Clear the Lekseecon offset corresponding to AUTO

ipc.setbitsUB(0x905F, 0x01) -- Set the first bit of the Lekseecon offset corresponding to AUTO

ipc.clearbitsUB(0x9061, 0xFF) -- Clear the Lekseecon offset corresponding to CONT

ipc.clearbitsUB(0x9062, 0xFF) -- Clear the Lekseecon offset corresponding to FLT

2nd scrpt (name: LENG_AUTO_NO.lua) This script runs when the Left Engine OFF is de-selected on the GF-MESM

ipc.sleep(500) -- I gave 0.5 seconds just in case the OFF is de-selected to CONT or FLT

n=ipc.readUB(0x9061) -- Read Lekseecon Offset corresponding to CONT

m=ipc.readUB(0x9062) -- Read Lekseecon Offset corresponding to FLT

if n>0 or m>0 then -- If either CONT or FLT are selected after OFF

ipc.clearbitsUB(0x905E, 0xFF) -- Confirm that the GRD offset is cleared to zero

else

ipc.setbitsUB(0x905E, 0x01) -- Else if neither the CONT nor the FLT are selected then this means that the GRD is selected so I set the first bit of the GRD Lekseecon offset to 1 which in turn switches the Left Engine GRD selector on the 767 (Success!!)

end

The above is for the MESM-OFF (which I used as AUTO for the 767) selection and de-selection. As for the CONT and FLT I did not use LUA instead I just used the Offset Byte Set and Byte Clear with the Lekseecon offsets provided by Nico.

So, 100% success finally with the GF-MESM

And since this is my first 2 scripts please do comment on them as I believe there is alot of room for improvement.

Cheers,

Fouad

Edited by Houphad
Link to comment
Share on other sites

So, 100% success finally with the GF-MESM

Great!

Do you think you could re-post your solution in the User Contributions subforum, please? It will eventually scroll off out of sight here, but deserves to be retained for others in a reference place.

Thanks!

Pete

Link to comment
Share on other sites

Hi Fouad,

ipc.clearbitsUB(0x905F, 0xFF) -- Clear the Lekseecon offset corresponding to AUTO

And since this is my first 2 scripts please do comment on them as I believe there is alot of room for improvement.

Good to read lekseecon 8.0 is useful.

I know nothing of lua but i'd assume that it also has a clear byte command, or a setbyte to value 0? so you do not have to use clearbits.

And also setting the value 1 in a byte should be possible with a command other than setting bit 1.. ipc.setByte(0x905f, 1) ?

regards,

Nico Kaan

Link to comment
Share on other sites

I know nothing of lua but i'd assume that it also has a clear byte command, or a setbyte to value 0? so you do not have to use clearbits.

And also setting the value 1 in a byte should be possible with a command other than setting bit 1.. ipc.setByte(0x905f, 1) ?

Hi Nico.

Yes. The bit handling is by a mask with functions of byte, word or dword size to do setbits, clearbits and togglebits. Those of course all involve both reading and writing the addressed offset. For simple writing of values to offsets there are a set of write functions, for different types of offset and even structures. They are more efficient as they simply write to the offset, no prior read necessary.

These functions are part of the libraries added by FSUIPC and WideClient, not part of the Lua language as such.

Regards

Pete

Link to comment
Share on other sites

  • 2 months later...

Guys

I just purchased the MESM although I don't fly a 737 (yet icon_smile.gif) but wanted to see if I could use it for other twin engine jets. Could you please help me with some of the functions.

  1. What do the knob position descriptions mean?
    GROUND
    OFF (fairly obvious -- engine OFF right?)
    CONT
    FLT
  2. The center switch functions are pretty obvious -- starting either left, right, or both engines.
  3. I didn't see any corresponding actions in the BUTTONS/SWITCHES pull down menu in FSUIPC. Could you please help me here too?
  4. When I move the center switch from BOTH (center position) to LEFT FSUIPC detects the action but when I move from BOTH to RIGHT it doesn't. However moving it back from RIGHT to BOTH FSUIPC does detect it. Is there a particular way that I should be doing this so that all positions are detected?

Thanks

Alan

Link to comment
Share on other sites

could use it for other twin engine jets. Could you please help me with some of the functions.

  1. What do the knob position descriptions mean?
GROUND = engine start -- bleed air turns the rotors, the ignition starts automatically when you enable fuel (start levers on throttle quadrant)
OFF (fairly obvious -- engine OFF right?) No, starters off, used for all normal running.
CONT = continuous ignition, to avoid flame outs on take off, final approach and in some weather conditions
FLT = in-flight engine startThe center switch functions are pretty obvious -- starting either left, right, or both engines. = No, selects ignition coils. Both engines have a left and a right. Pilots use alternate ones each day so they know they workI didn't see any corresponding actions in the BUTTONS/SWITCHES pull down menu in FSUIPC. Could you please help me here too? = FS itself doesn't simulate much of it. There are starter controls which use a parameter to select position.When I move the center switch from BOTH (center position) to LEFT FSUIPC detects the action but when I move from BOTH to RIGHT it doesn't. However moving it back from RIGHT to BOTH FSUIPC does detect it. Is there a particular way that I should be doing this so that all positions are detected? = I answered this already in your similar post in "User Contributions".

Pete

Link to comment
Share on other sites

GROUND = engine start -- bleed air turns the rotors, the ignition starts automatically when you enable fuel (start levers on throttle quadrant)

OFF (fairly obvious -- engine OFF right?) No, starters off, used for all normal running.

CONT = continuous ignition, to avoid flame outs on take off, final approach and in some weather conditions

FLT = in-flight engine start[*]The center switch functions are pretty obvious -- starting either left, right, or both engines. = No, selects ignition coils. Both engines have a left and a right. Pilots use alternate ones each day so they know they work[*]I didn't see any corresponding actions in the BUTTONS/SWITCHES pull down menu in FSUIPC. Could you please help me here too? = FS itself doesn't simulate much of it. There are starter controls which use a parameter to select position.[*]When I move the center switch from BOTH (center position) to LEFT FSUIPC detects the action but when I move from BOTH to RIGHT it doesn't. However moving it back from RIGHT to BOTH FSUIPC does detect it. Is there a particular way that I should be doing this so that all positions are detected? = I answered this already in your similar post in "User Contributions".

Pete

Thanks for that explanation Pete. I guess the guys using this module in Level D 767 (which I assume is an add on aircraft) have those function available to program it.

Alan

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.