Jump to content
The simFlight Network Forums

Mouseviator

Members
  • Posts

    12
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Mouseviator

  1. Hi fellow pilots, I just would like to share with you my solution for working and independent reverse thrust control for Fenix A320 for MSFS using FSUIPC. I have been strugling with this for a long time. I couldn't find any solution that I would like. Migrating the settings that worked in MSFS config did not work using FSUIPC and even that (using sort of official steps from Fenix) was not separate control for each engine reverse thrust. And MSFS cannot switch profiles separately and it drove me crazy to have to switch controls profile in MSFS just for this single bird, when I have almost everything else configured using FSUIPC (call me old school if you want :)) But, back to the solution. I spend some time hunting events and axes to find out, that the Fenix does not respond to them. So, Lvars should do it, right? And they do. Bt which ones? After some other time, I found the right ones: A_FC_THROTTLE_LEFT_INPUT A_FC_THROTTLE_RIGHT_INPUT I guess I don't have to specify which one drives which throttle lever 🙂 Each of them, can have floating point value in the range 0.0 to 5.0, where each integer corresponds to one detent position of the lever: 0.0 – Full reverse thrust 1.0 – Idle reverse thrust 2.0 – Idle thrust 3.0 – CLB detent 4.0 – Flex MCT 5.0 – TOGA detent so, 0.5 for example equals half reverse thrust… I don’t have “axis” control for reverse thrust, I am using the Bravo throttle quadrant and here is how I set it up. Actually, some prerequisites first. I created the following macro to work with the mentiond Lvars using FSUIPC: FNXA320.mcr: [Macros] 1=L:A_FC_THROTTLE_LEFT_INPUT=Set 2=L:A_FC_THROTTLE_RIGHT_INPUT=Set 3=L:A_FC_THROTTLE_LEFT_INPUT=Inc 4=L:A_FC_THROTTLE_LEFT_INPUT=Dec 5=L:A_FC_THROTTLE_RIGHT_INPUT=Inc 6=L:A_FC_THROTTLE_RIGHT_INPUT=Dec Than, there are two butons on the throttle axis with Bravo throttle quadrant (if using the airline handle). One is the button that is triggered when pulling the lever all the way down to the detent. To continue with concrete example, for me, this button is number 25 on K joystick (K is letter for my Bravo Throttle Quadrant). What I've setup using FSUIPC, is this: Set the value of A_FC_THROTTLE_LEFT_INPUT to 1.0 when the buttons is pressed – thus IDLE REVERSE when I pull the left TQ lever to the down detent. Set the value of A_FC_THROTTLE_LEFT_INPUT to 2.0 when the buttons is relased – thus IDLE thrust when I move the left TQ lever outside the down detent. You can see that on the following picture from FSUIPC: The second buttons is the one that is activated when flipping the small lever on the “Bravo airliner lever extension”. I am sure you know what I mean. This one is little more complex, as it should change from idle reverse thrust to max reverse thrust, but I only wanted it to do so when the lever is physically in the down detent, so I cannot engage reverse thrust accidentally when I don’t want to. Ok, it is not that much of issue, if you ever tried compound button definitions within FSUIPC – you have to go to the ini file for that. The button which triggers these actions for me is number 9 (for left TQ lever) and this is how it is programmed: 332=CP(+K,25)K,9,CM4:4,0 -{Macro FNXA320: L:A_FC_THROTTLE_LEFT_INPUT dec}- 334=CU(+K,25)K,9,CM4:3,1 -{Macro FNXA320: L:A_FC_THROTTLE_LEFT_INPUT inc}- The above are lines from my FenixA320.ini profile file. They are compound button definitions. The first one says to decrease the value of A_FC_THROTTLE_LEFT_INPUT when button 9 and 25 are both pressed. Thus, when the left TQ lever is in down detent (button 25 is pressed) and when buttons for reverse thrust on left TQ (button 9) is pressed. The value will be decremented to the max value of 0 – the last parameter. Because in previous setup the value of A_FC_THROTTLE_LEFT_INPUT was set to 1.0 (by press of button 25), its value will actually decrement just by 1 from 1 to 0. But that means a command from idle reverse thrust to max reverse thrust. The change will not happen immediately, but within a couple of seconds (like about 2 literally :)). You could probably use the macro command to set the value instead of decrement, but I tested it first like that and it worked, so… The other line is the other way around for decreasing from maximum reverse thrust to idle reverse thrust. That is,when button 9 is released while button 25 is still being pressed. What happens is that the value of A_FC_THROTTLE_LEFT_INPUT will be incremented to the max of 1.0 – from non-idle reverse thrust to idle reverse thrust. Even here we could probably use just “set” value. If you move the lever from down detent with button 9 pressed – so full reverse thrust still commanded, the action for release of button 25 will still set the value A_FC_THROTTLE_LEFT_INPUT to 2.0 and bringing the throttle back to IDLE thrust. The reverse thrust for the right engine is set the same way. You can setup the first button in FSUIPC GUI, but the second one will need to be done in the ini file. Here’s mine: 333=CP(+K,26)K,10,CM4:6,0 -{Macro FNXA320: L:A_FC_THROTTLE_RIGHT_INPUT dec}- 335=CU(+K,26)K,10,CM4:5,1 -{Macro FNXA320: L:A_FC_THROTTLE_RIGHT_INPUT inc}- I attached the macro file and my FenixA320.ini profile file. It is not copy and paste setup, you need to know a little bit of FSUIPC background and here is not the place to explain the syntax of the lines. But, you most likely just need to change the joystick letter/number and line numbers in the lines provided above and it should work. So, it is not so much of a rocket science then 🙂 The FenixA320.ini profile is more likely for inspiration. Maybe that someone may find something helfull for him/her. It contains more stuff than just what I described, some are historical copied from other of my aircraft profiles. 🤷‍♂️ Hopy you will find it usefull and maybe someone will even write a script to map the Lvars to axis input for really smooth reverse thrust control. And maybe even forward thrust, but I left mine mapped to THROTTLE1_AXIS_SET_EX1 and THROTTLE2_AXIS_SET_EX1 events. fnx320_macro_and_profile.zip
  2. Hi, just wanted to let know all interested, that the SDK has been updated. Here is what changed (in short): Added: Some Junit tests. Added: Added the LuaHelper, MacroHelper and LVarHelper classes. Added: The FSUIPCLVarLuaMacroTest.java into the FSUIPCSimpleTest project to show the usage of the added classes and to test them. Added: isConnected function to the FSUIPC class. Fixed: Constructors of primitive data request that takes initial value (constructs WRITE data request) always ended with Exception due to missing command. I did not raise the version number, so the names of the zip on my web site still indicates version 1. The zip file that John and Pete includes in distribution of FSUIPC will be named like 1.1 however. But no matter from which source you get the SDK (with FSUIPC, my website, github), they all should be updated. Stay safe and happy flight-simming 😉
  3. Hello there. I am writing this post as I would like to share with you guys (girls also), an FSUIPC Java SDK that I wrote, recently. Wait, what? There is one already! A 32 bit one written by Mark Burton and 64 bit one amended by Paul Henty, which was released quite recently. Why another one? You are right. Short answer is, that I was studying the existing SDK and I found out, that the FSUIPC_Process function is being called for every data read/write from within the C++ wrapper libraries that serves as the bridge between FSUIPC and Java. That means, for every single value you want to read/write from/to some offset. That might be an issue if you would like to use it in an app that does multiple read/writes per second. I coded my SDK differently in a way that it reflect the approach the would be used when using C++. Register multiple read/write requests and then process them all in one call of the process function. Both, the 32 bit and 64 bit wrapper libraries have been modified. But also, due to the different approach, any existing code using the "old" SDK will not be compatible and will require rewriting. I am not saying the existing SDK is bad. It was a great starting point for me, thanks their authors for writing it. I am just offering alternative SDK here. It may also contain bugs or bad design... well, the more people who look at it...you know, more eyes, see more 🙂 Anyway, if you are interested, you can read more about it (and also download it) at my website here. Will be glad to hear your opinions, suggestions, bug reports... 😉 Update 25.9.2020 - I added the project to github: https://github.com/Mouseviator/FSUIPC-Java , in case anybody wants to co-develop the API further with (or without) me 🙂
  4. Hi again, thanks for explanation. I thought it might somehow "clog the connection". However, if I am not mistaken and remember what I have read in the Jeehell documentation, the Jeehell software does not need WideClient, it should talk to simulator using SimConnect. Wideclient I wanted to use because I could start/stop the programs using it. There probably would be some persmission issues, since the Jeehell suite required admin rights to run correctly (which should be ok even when started using Wideclient which has been run with admin rights too). Will try to post this also on mycockpit forums, maybe the author of Jeehell will have some idea.
  5. Hi, thanks for your reply and sorry I did not respond for a long ime. Have been quiet busy. I thought there would probably will not be any limit. Well, the programs do start, but they do not connect. I also tried start them all via wideclient, but the behavior is the same. I do not understand why, but that is not the first strange thing I came across around simulators :) I do not have any other time to spare investigating this issue. I just start it using scheduled task when computer starts and if something goes wrong, restart it manually. Just thought will be able to control it using your wonderful wideclient and keysend commands, but apparently not (and not because of wideclient)...
  6. Hi, not an issue that could not be "worked around", just wondered if anyone has similar experience. I am playing with Jeehell A320 FMGS, which is free software that simulates A320 cockpit. It has server part which does server for apps that runs on client. The software at all does not require FSUIPC, it uses SimConnect. But on client PCs, I use some other programs that utilize FSUIPC via WideClient. I thought I would start client programs using WideClient (so WideClient can close them when simulator is closed). The Jeehell FMGS suite uses Starter.exe application which starts the modules you define it to start. I start this app via WideClient. Now the strange thing is, if I start it using WideClient, only about half of the started programs will initiate connection with Jeehell FMGS Server application. If I start the Starter.exe application manually or by scheduled task (after login to system), it works without issues. Like if there is some SimConnect connection limit or something like that. Anyone have any idea why it might behave like this? Thanks for any reply. Oh, hope you all enjoyed Christmas and wish you all great simming year 2017.
  7. I am not any kind of FSUIPC guru (or flightsim at general) and I am not very sure I understand your problem correctly (we (mean people around here) would probably need to see some more details from your configuration (like FSUIPC.ini, the aircraft profiles...), but: Does this mean it behaves incorrectly, or your button assignments does not work? Assuming it is the second case, I had similar issue first time I switched from "everything in FSUIPC.ini" to "separate aircraft profiles in Profiles folder". Found out the generated profiles were missing the [Axes] section and I needed to copy it to these profiles to make it work. Might be wrong, it is about 2 years ago since I had this issue. Not sure if it is necessary to have [Axes] section in every profile (given the fact that mines are all the same - no different axis assignments for different aircrafts) - this would be question for Pete. I only vaguely remember that when I did not have [Axes] section in aircraft profile, the [Buttons] (button assignment) did not work for the respective profile (which makes sense, because if FSUIPC did not take [Axes] from FSUIPC.ini, it would not know what controller the buttons belongs to)
  8. Hello guys, this time not reporting an issue, just a short looooooong info about how did I setup GPS output on two (or more) programs (devices) using FSUIPC, WideFS and virtual serial ports. Just in case someone would find this helpful. What I had: A simulator server PC A client PC (an old notebook) with map application. I did setup a server pc to send out GPS data via network to client PC using FSUIPC and WideClient. Recently I got a new android phone... Now, what I wanted to have: Since I do not have blue-tooth on my server, I cannot use second GSPOut to send gps data to android phone. But I have blue-tooth on my old notebook, which is already receiving GPS data. So what I wanted to do, is to read GPS data on client PC (notebook) by two programs - a map application that is already working and a map application on android phone connected via blue-tooth to client PC. How did I do it: It is also important to say that: Both, the server and client runs on 64bit version of Windows 10. I want the solution based on freeware apps if possible. 1) Server config: Just as you could have seen many times, I need only to setup GPSOut in FSUIPC.ini: [GPSout] Port=WideFS Speed=19200 Interval=500 PosTo6Decimal=No Sentences=RMC,GGA, PGRMZ GPSoutEnabled=Yes SimModeIndicator=No 2) Client config: To receive GPS data with WideClient, we need something like this in WideClient.ini: [GPSout] Port=com4 Speed=19200 Now the tricky part comes in :) I need a virtual COM ports (since I do not have real ones). The problems are: a) It is not that easy to find freeware virtual COM ports for 64bit system. - But I found this: com0com b) Only one application can "access" a COM port at a time, thus a pair of COM ports is needed – so that one application can write to a COM port (WideClient writing GPS data) and the other can read a COM port (a map application). And also, it is required that the GPS data entering one COM port comes out exactly the same on the other COM port (side). - That is exactly what above com0com program does. It creates virtual COM port pairs like if we had two COM ports interconnected directly via a cable. c) I said I wanted to read the data with two applications, but com0com can only do pairs of COM ports - Ok, something like COM hub would come handy to share the data that are being written to one COM port by WideClient to be accessible on more than one COM ports. - Luckily, "HUB for communications", a part of com0com project does exactly this. So, first I downloaded com0com and installed it: https://sourceforge.net/projects/com0com Actual version right now is 3.0.0 After installing, I created these virtual COM pairs: COM4-COM5 COM10-COM11 as on following picture: Oh, make sure you run this Setup app As Administrator. All you need to do is click “Add Pair” button. A pair of COM ports should appear in the list. Make sure you have “use Ports class” and “emulate baud rate” selected for both COM ports and click Apply. The Setup might throw an exception at you after clicking Add Pair or Apply button, not sure when it did for me. But you can ignore this, close the program, open it again and your changes should be there. Confirm in Device manager that the COM ports are installed: If they show that yellow warning triangle, just right click on them and choose “Update Driver Software…”, than “Browse my computer for driver software” and navigate to the folder where com0com is installed (In my case, it is C:\com0com). In this folder there is only one INF file (a file with .inf extension) so select it and the driver should get updated and the warning triangle should go away. If you are going to use Android or other device connected by blue-tooth, you need to add one COM port for this too. It is described here: http://forum.simflight.com/topic/75481-sending-gps-data-to-android-apps-bluetooth/ but to make this tutor complete, here is how I did it on Windows 10: Go to: Settings → Devices → Bluetooth Turn on bluetooth Click “More Bluetooth options” Click the “COM Ports” tab Click “Add...” button Check “Incoming (device initiates the connection)” Click Ok A COM port should be added in the list, like COM9 in my case: No we have our COM ports, 5 of them to be precise. The last thing to get show going is to start the COM hub. Download hub4com from here: https://sourceforge.net/projects/com0com/files/hub4com/ and extract is somewhere, like C:\hub4com the you need to start the COM hub using a command like this: hub4com \\.\COM5 \\.\COM9 \\.\COM10 which a placed in batch file and running it along WideClient. It would be good if you take a look at the readme file for hub4com, to get a little familiar with the software. Ok, if everything done Ok, you should be able to read GPS data by two applications now (on port COM5 and COM10 in my case) Ok, what the hell? Why all those COM ports? Remember I wrote: only one application can access a COM port? If for example WideClient opens a COM port to write GPS data to it, no other application can use the COM port. To explain my setup: COM4 – WideClient writes GPS data here. COM4-COM5 is COM pair, thus like one COM port. Hub4com creates hub from COM5, COM9 and COM10, so the data that are on one of these ports are on all three ports. Hope I understand it right that, WideClient writes to COM5 (via COM4). COM9 is for blue-tooth, so once my Android device connects, it will find GPS data there. COM10 – is COM pair (COM10-COM11), so what is on COM10 is mirrored to COM11. COM11 – on this port my Windows map application can read GPS data. You cannot point your applications directly to COM5 or COM10, as these are open by hub4com. The COM9 used by blue-tooth is some sort of exception, which I cannot explain, but it works for me. On Android device, as described here: http://forum.simflight.com/topic/75481-sending-gps-data-to-android-apps-bluetooth/ you need to use something like “BluetoothGPS” https://play.google.com/store/apps/details?id=googoo.android.btgps - Pair your Android toy with PC - Allow “Mock positions” - Open BluetoothGPS app and connect to PC (there is a list of paired devices on the top of the screen) - If successfully connected, you should see GPS data on the screen...(FSX or Prepar3D must be running) - Leave BluetoothGPS and open whatever navigation or other GPS related app you want to use (most of them should be tricked it is real GPS connected via blue-tooth and should use the data). Hope you fellow flight simmers will find this helpful. Not saying this is the best solution, but is free and the best I found so far.
  9. Hi, in case you did not find it yet, I believe it is this one: https://play.google.com/store/apps/details?id=googoo.android.btgps
  10. Hi, thanks for answer. Unfortunatelly, still not able to make it work. Tried to set AutoShutdown=Yes in FSUIPC.cfg (actually, I already had that). Then I tried to vary AllowShutdown parameter on client PC via all values - ie: Yes, App, AppOnly and the apps on client PC were never closed after I closed P3D and WideClient lost connection. As I wrote before, if I initiate the action using "Close FS" button defined in WideClient on client PC, P3D is closed also as are the apps on clients, and WideClient.log contains a line saying that: Shutdown request received! (param=DCBA) This line is never there when I close P3D normally using Esc -> Exit Preapr3D. So I think the request is not being send as it should be. Well, I am sure there are more important issues that need to be solved and this one is actually not a big pain in the... fuselage, just hate these moments when I cannot figure things out :) Not saying that will not be happy for another suggestions, if anyone have any.
  11. I dare to disagree here :) One is AllowShutdown and the other is AutoShutdown. According to my understanding of the documentation (WideFS Technical.pdf), I set AllowShutdown=Yes - to allow flight sim server to be shutdown by clients (or just sim closed). and AutoShutdown=Apps - for WideServer (FSUIPC) to tell clients to close the "CloseReady" apps when Prepar3D is closed. It does, but for my setup, only on the first session. When I close Prepar3D, the apps are not closed and thus not started again on new session. Well I used notepad just for testing purposes as it is "simple" program. And it is in the system path so does not need to specify path. But thanks for pointing out mistyped Apps Only parameter, I could be looking at it thousand more times without noticing it. One char mistyped - programmers worst enemy. You usually need somebody else to find out these :) True. But Sim Physics, for example is the exception which requires it. Let's leave the fact that it is not much quality software aside, since I've already paid for it.... Can you suggest what the configs should look like then? I wanted to: On client 2, I have defined the "Close FS" and "Shutdown FS" buttons. Via these, I wanted to be able to close Prepar3D and apps on client PCs / or shutdown server pc and client 1 pc. Well, this works ok. Also, when I exit simulator using normal menu option - "Exit Prepar3D", this should send request to close the apps on client PCs - this does not work. Because I probably missing something here... Thanks
  12. Hello, I have a an issue with starting/closing apps using WideFS. Maybe I understand something wrong...but, I am out of ideas :( Here is to my configuration: Server PC: Running Windows 10 Home EN ********* FSUIPC4, Version 4.949k by Pete Dowson ********* Prepar3D.exe version = 3.2.3.16769 WideFS settings in FSUIPC.ini: [WideServer] Log=Errors+ WideFSenabled=Yes AdvertiseService=1 Port=8002 Port2=9002 !1=;Allow FS to be closed by clients. This allows to turn off the whole computer AllowShutdown=Yes !2=;This will send shutdown notification to clients when FS closes, telling them to close all apps they opened AutoShutdown=Apps RestartHotKey=78,11 ..... [buttons] .... 651=P64,22,Cx02003320,xDCBA 652=P64,23,Cx02003320,xABCD Client 1: Running Windows 10 Home EN This is from WideClient.ini [user] Log=Errors+ AllowShutdown=Yes RunReady1=c:\ASNext_P3D\ASNext.exe DelayReady1=5 CloseReady1=Yes RunReady2=C:\Sim Physics X_P3D\Sim Physics P3D.exe DelayReady2=5 CloseReady2=Yes RunReady3=C:\Program Files\Air Manager\airmanager.exe CloseReady3=Yes Client 2: Running Windows 10 Home EN WideClient.ini for Client2: ; ----------------------------------------------- [user] Log=Yes AllowShutdown=AppsOnly ButtonScreen=Yes RunReady1=notepad.exe CloseReady1=Yes [GPSout] Port=com4 Speed=19200 [buttonScreen] Size=9,5 Title1="===System Menu===" 0=G0r"Misc" 1=T"Pause" 2=T"Slew" 3=B"Clear\rWeather" 4=B"Toggle\rTraffic" 5=B"Refresh\rScenery" 6=B"Reload\rAircraft" 7=B"Escape" 8=B"Restart\rFlight" 9=G9r"Logging" 10=T"Weather" 11=T"IPC Writes" 12=T"IPC Reads" 13=T"Extras" 14=T"Button and Keys\r(Extended)" 15=T"VRI Comms" 16=T"com HID" 17=T"L:Vars" 18=T"Axes" 19=T"Events" 20=T"Button and Keys\r(Standart)" 21=T"Lua (separate)" 22=T"Log to console" 23=B"New log file" 24=U 25=U 26=U 27=G28r"Programs\rcontrol" 28=Ba"Close FS" 29=Ba"Shutdown FS" 30=U 31=U 32=U 33=U 34=U 35=U 36=U 37=U 38=U 39=U 40=U 41=U 42=U 43=U 44=U All software is executed with Admin rights (Prepar3D, WideClient etc.) Ok, according to documentation and my understanding of it, when I start Prepar3D (and when WideFS is ready), all the defined applications should be started on the client PCs. This works for the first time. When I exit Prepar3D (using menu - Exit Prepar3D), the applications on the client PCs should be turned off and WideClients should wait for another simulator session. Ok, but the programs does not close. If I close them manually, WideClient is not aware of it and when I start Prepar3D again, no program is started. When I close simulator using "Close FS" on Client 2 (from defined ButtonScreen), everything works as expected. Prepar3D is closed, as well as all apps started by WideClients and everything starts again with new simulator session. Is this how it is supposed to work or not? Thought the shutdown message should have been sent when closing Prepar3D, but is seems it is not. Maybe this has something to do with the fact that the menus are done with the Scaleform now, If I am not mistaken. Think this configuration worked with Prepar3D v 2, but maybe my memory fails me. Anyway, if anybody can point out something, would be great. Thanks for any reply. Happy flying
×
×
  • 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.