Jump to content
The simFlight Network Forums

CTRL+E+1/2 offset creation (FSX / FSUIPC4)


Recommended Posts

Dear Pete,

I trust you are well. Rather than explain all the ideas I have about how this could be done (from primary research and going through the FSUIPC programmers guide etc), I would like to ask if you see an easier way forward to this dilemma, I really am at my wits end with this, after asking Project Magenta for support, and working with the kind support of Thomas Richter, we made a lot of serious improvements to the situation but it still drags on. So I come to you asking for help. 

---

Problem:

I cannot get the engines to spool up. All I receive is (0-6pc-0 N2), using offsets 0892 and 092A. The start valve light on the EICAS illuminates for 1 second only. 

---

HW/SW:

HW= open cockpits engine starter switches. SW= SIOC 

Sim visuals SW: project magenta EICAS display (although i dont think this could have a bearing on it)

Sim system SW: TSR 737 System.

---

Background:

The starter SW worked well until a Project Magenta CDU update. After the update, the Project Magenta CDU would crash.  I do not want to roll back the update as I will loose all RNAV capability (it was quite a big jump up in capability).  I identified a conflicting SW (TSR EICAS display on another computer). As soon as I stopped using it, the CDU worked fine. Therefore I opted to use the Project Magenta EICAS display instead. However, upon installing it, I am presented with the starters only spooling to 6pc N2. Thomas Richter has kindly helped me but together we couldnt identify the correlation between TSR EICAS (of course its primary focus is display not systems) and the starters not functioning. 

After extensive trialling (3 months with this problem), I have found that the only way to start the engines is by modifying the SIOC script for the starter for GND position to combustion 0894 and 092C respectively. However of course this is not realistic, as the engine jumps from 0 to combustion in just one turn of the switch.

Then I found that if i try to start the engines using the FSX default CTRL+E solution they spool to 25 percent - which is exactly what I want. After 25pc i could then introduce fuel. 

---

Ask: What is the most efficient method to create a situation in which, I turn the Starter from OFF to GND and the engine start to spool using CTRL+E?

I presume the situation would look like this, but would certainly prefer your opinion.

1. turn engine 1 switch

2. sioc sees change in value, and accordingly activates an offset set to whatever CTRL+E+1 is. 

Thank you for any light you maybe able to share. 

Kind Regards

Nick

 

ps. I was thinking, maybe there is a a conflicting offset somewhere, maybe i should run your logger program to see?

 

 

 

Link to comment
Share on other sites

  • John Dowson changed the title to CTRL+E+1/2 offset creation (FSX / FSUIPC4)

I seem to recall that to keep the turbine turning you have to keep writing 1 to offset 0892 (etc). Else it reverts.  But I wouldn't swear to that.

6 hours ago, NicHer said:

Then I found that if i try to start the engines using the FSX default CTRL+E solution they spool to 25 percent - which is exactly what I want. After 25pc i could then introduce fuel. 

You can of course use the 0D70 to send whichever control the CTRL+E sends.  The choice of engine would be the parameter to go with it.

Pete

 

Link to comment
Share on other sites

Thank you for your response. Working from page 20 on your advanced users guide, could you kindly confirm this is correct ascii code for for CTRL+E? I then write the parameter as 1 or 2 depending on the engine to be started as you say.  

P1,3,K69,2 (ctrl plus e) 

So to recap, in my SIOC script, I add fsuipc out offset 0D70, and if the switch is pushed it sends parameter 1 (for engine 1 to this offset). But where do I put the above? 

Thank you 

 

 
 
 
Link to comment
Share on other sites

51 minutes ago, NicHer said:

Thank you for your response. Working from page 20 on your advanced users guide, could you kindly confirm this is correct ascii code for for CTRL+E? I then write the parameter as 1 or 2 depending on the engine to be started as you say.  

P1,3,K69,2 (ctrl plus e)

That is a settings (INI file) line to send Ctrl E on a button push. I thought you needed to work via Offsets?

And why send the Keystroke? All Ctrl+E does in the sim is cause it to look at its key assignments list and fire off a CONTROL!  You need to simply send the correct control with 1 or 2 as its parameter for the Engine. To do that via offsets please look at offset 3110 in the Offsets Status document provided with FSUIPC.

To get the control number to be used you could enable Event Logging in FSUIPC then Press Ctrl+E and see what is logged. Or just look for autostart in the List of Controls document also provided. I think it's called "Engine Auto Start".

Pete

 

 

 

 

Link to comment
Share on other sites

Thank you for your response. 

CONTROL NUMBERS

I have found the following control numbers, could you kindly identify which would be most appropriate? For me, it would be toggle starter 1 and toggle starter 2 , but perhaps you see it differently? I am mindful you talk of using parameter 1 to show the SW what engine we are talking about.

ENGINE AUTO START 66224

JET STARTER 65572

TOGGLE ALL STARTERS 66304

TOGGLE STARTER1 66300

TOGGLE STARTER2 66301

OFFSET 3110

I am mindful of your words "FSUIPC will fire the control when you write to 3110" and "You write the control number there as a 32-bit integer (i.e. length 4 bytes)" found on other threads.

This is the script I am trying to write in SIOC (the whole backbone of this discussion). Green is original, red is what will change according to your suggestion.

//

VAR 2701, LINK FSUIPC_OUT, OFFSET $5610 ($3310), LENGTH 4     // PM ENG START 1 SW // FSUIPC OFFSET

VAR 2702, LINK USB_ANALOGIC, DEVICE 3, INPUT 1, POSL 0, POSC 128, POSR 255      // ENG START 1 INPUT
  {
  IF V2702 > 230     // ENG START 1 GND ROT. . TURN POSITION OF POT
  {
    V2701 = 0   
(66300) // CONTROL NUMBER FOR ENG 1 SPOOL

  }
  }
  

 

VAR 2703, LINK FSUIPC_OUT, OFFSET $5610 ($3310), LENGTH 4     // PM ENG START 2 SW // FSUIPC OFFSET

VAR 2704, LINK USB_ANALOGIC, DEVICE 3, INPUT 2, POSL 0, POSC 128, POSR 255      // ENG START 2 INPUT
  {
  IF V2704 > 230     // ENG START 2 GND ROT . TURN POSITION OF POT
  {
    V2703 = 0   
(66301) // CONTROL NUMBER FOR ENG 2 SPOOL

  }
  }

 

//

Does this make sense? E.g for eng1 spool, move the switch. sioc interprets as a send of control number 66301 to offset 3310.

Am I missing something? 

Thank you 


 

Link to comment
Share on other sites

48 minutes ago, NicHer said:

Thank you for your response. 

CONTROL NUMBERS

I have found the following control numbers, could you kindly identify which would be most appropriate? For me, it would be toggle starter 1 and toggle starter 2 , but perhaps you see it differently? I am mindful you talk of using parameter 1 to show the SW what engine we are talking about.

ENGINE AUTO START 66224

JET STARTER 65572

TOGGLE ALL STARTERS 66304

TOGGLE STARTER1 66300

TOGGLE STARTER2 66301

As I said, I think Ctrl+E equates to Engine Auto Start. But yu can easily check that yourself using FSUIPC logging, as I also stated.

51 minutes ago, NicHer said:

I am mindful of your words "FSUIPC will fire the control when you write to 3110" and "You write the control number there as a 32-bit integer (i.e. length 4 bytes)" found on other threads.

You should refer to the Offsets Status document, as I said. 3110 is 8 bytes, not 4, with the parameter (in your case 1 or 2 for the engine) in the 2nd set of 4 bytes.

It says you should write all 8 bytes together, but you can if you wish write the engine number first to 3114 then the control number to 3110. It is the latter which fires the control.

Pete

 

Link to comment
Share on other sites

Thank you for your quick response.

LOGGING

Yes I explored this option (all IPC read and writes activated). It showed 100s of lines of offsets over 10 seconds. I was unable to narrow down exactly which line showed the starter switch movement. I would be pleased to send this log to you for an experts perusal, but perhaps a more efficient way is to just try it.   

So with your permission, lets assume Engine Auto Start = ctrl+e= 66224

SIOC

"It says you should write all 8 bytes together, but you can if you wish write the engine number first to 3114 then the control number to 3110. It is the latter which fires the control."

I appreciate SIOC is not your SW, but should you be in a position to peruse it and see if to you it makes sense I would greatly appreciate it. In essence, we turn the switch physically, then sioc sends fsuipc on offset 3114 parameter 1 (if we are discussing ENG1) , then on offset 3310 parameter 66224.

// ENG1

VAR 2701, LINK FSUIPC_OUT, OFFSET $3114, LENGTH 4     // FSUIPC OFFSET SETS ENG

VAR 2702, LINK FSUIPC_OUT, OFFSET $3310, LENGTH 4   // FSUIPC OFFSET FIRES OFF CONTROL 

VAR 2703, LINK USB_ANALOGIC, DEVICE 3, INPUT 1, POSL 0, POSC 128, POSR 255 // ENG START 1 INPUT
  {
  IF V2703 > 230     // ENG START 1 GND ROT. TURN POSITION OF POT
  {
    V2701 =
1    // IDENTIFIES ENG 1 

    V2702 = 66224 // FIRES OFF ENG AUTO START

  }
  }

 

// ENG2

VAR 2704, LINK FSUIPC_OUT, OFFSET $3114, LENGTH 4     // FSUIPC OFFSET SETS ENG

VAR 2705, LINK FSUIPC_OUT, OFFSET $3310, LENGTH 4    // FSUIPC OFFSET FIRES OFF CONTROL 

VAR 2706, LINK USB_ANALOGIC, DEVICE 3, INPUT 2, POSL 0, POSC 128, POSR 255 // ENG START 2 INPUT
  {
  IF V2703 > 230     // ENG START 2 GND ROT. TURN POSITION OF POT
  {
    V2701 =
2    // IDENTIFIES ENG 2 

    V2702 = 66224 // FIRES OFF ENG AUTO START

  }
  }

Thank you very much for your input.

Link to comment
Share on other sites

20 minutes ago, NicHer said:

Yes I explored this option (all IPC read and writes activated). It showed 100s of lines of offsets over 10 seconds. I was unable to narrow down exactly which line showed the starter switch movement. I would be pleased to send this log to you for an experts perusal, but perhaps a more efficient way is to just try it. 

I said to enable Event logging, NOT all IPC reads and writes!!!! Please do read more carefully or it will be a waste of effort on my part!

21 minutes ago, NicHer said:

I appreciate SIOC is not your SW, but should you be in a position to peruse it and see if to you it makes sense I would greatly appreciate it. In essence, we turn the switch physically, then sioc sends fsuipc on offset 3114 parameter 1 (if we are discussing ENG1) , then on offset 3310 parameter 66224.

Sorry, I've no idea how SIOC does things. You need to ask SIOC people.

Pete

 

Link to comment
Share on other sites

"I said to enable Event logging, NOT all IPC reads and writes!!!! Please do read more carefully or it will be a waste of effort on my part!"

NH- indeed you did my apologies.

I appreciate you do not work with SIOC. Forgetting SIOC could you confirm this flow is correct?:

 1.turn the switch physically,

2.sw registers this movement and sends fsuipc on offset 3114 parameter 1 (if we are discussing ENG1) ,

3. sw sends fsuipc on offset 3310 parameter 66224.

Does anything look wrong in this approach? 

Thank you for your swift and efficient responses.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • 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.