![]() |
#1
|
|||
|
|||
![]()
Early on, Devicelink was deemed too "exploitable" for use in multiplayer, which in my opinion killed most interest in implementing it. Both for 3rd parties and the devs.
Aside from UDPSpeed and UDPGraph, there are very few programs compatible with, let alone designed for, IL2 Devicelink. None of the simulator instrument manufacturers(FlightIllusion, SimKits, Simmeters, etc..) support it either. I bring it up for a simple, fairly selfish, reason; I'm looking to build a simpit for IL2. While it would be mostly generic, as is logical when the amount of flyable aircraft is this diverse, accurately implementable gauges are still a minimum requirement. When using a hardware cockpit, it makes little sense to view the instruments though a virtual onscreen cockpit, as this would simply shatter immersion. Therefore, I'm hoping Daidalos Team could consider expanding Devicelink functionality. I've already done some experimenting myself, and wrote a small app in C# to do the UDP communication. The external software side is not the problem here(I'm willing to figure it out). The biggest problem right now is that some(quite a few) gauges/values aren't implemented in Devicelink, even though they work in the virtual cockpit(Radio Altimeter, Oil Pressure, Fuel Pressure, OAT, Ammunition Indicators, etc..). Even things like flap position or prop pitch can only be read from the control setting, not the actual position. Some outputs produce odd, or no values at all such as Turn and Slip. In more than a few cases, the documentation doesn't include a description of unit the output value is in(Bar, Degrees, ...) Many of the switch values(Lights for example) can't be read out through Devicelink either. This makes implementing toggle switches impossible without them getting desyncronised with the sim. The onscreen messages(engine fire, fuel tank leak, ...) could also be made available. These have no gauge, but having a light or annunciator in the cockpit/simpit would break immersion much less than the flashing text onscreen(I know it can be turned off, but there's no real alternative to it AFAIK). Ideally, Devicelink could also support engine ID values for all setting relevant to engines(Feather Prop, Radiator, ...) without selecting engines first. Though having these controls available per engine though the control settings in the sim itself would be beneficial outside of Devicelink as well. Lastly, I would like to suggest a few things that might make online availability of Devicelink possible: Return semi random values during blackout/redout, making the gauges deviate wildly(I.E. if altitude is 2000, return values from 2500 to 1500). Or output nothing. Disable output when a non-cockpit view is selected. DeviceLink currently has an output for this(cockpit cur, 26), however using it is up to the designer. This could be coupled to an existing setting like speedbar, so implementing additional difficulty settings could be avoided. Don't output "true" values, only instrument readouts. This makes sure that DeviceLink instruments can't move faster than those displayed in the sim. Currently the variometer(and other gauges) output changes in value faster than the virtual gauge. Another benefit of this is authentic needle movement for anything using Devicelink. |
#2
|
|||
|
|||
![]()
Figured I'd bump this, as Devicelink seems to be getting more use thanks to apps like Yadeli.
In addition to my previous remarks I'd like to add that the documentation could use an update. Things like fuel weight without any means of converting to other units(how many kg in a liter?) and overload/shake_level which have no explanation at all could use clarification. I would also like to add the relatively recent support for Devicelink by hardware manufacturers like FlightIllusion and Opencockpits. Both developments driven by enthusiasts in the IL2 community, further proving not only the interest in IL2 itself, but cockpit building and Devicelink in particular. If anyone has anything they would like to see in Devicelink, I encourage you to post them here. I'm hoping a concrete list will help Team Daidalos make Devicelink that much more useful. Values to change: 44, beacon_azimuth This doesn't point to the current beacon, nor the course set on the compass. Does it point the the next waypoint? Function should vary depending on difficulty settings. Could be augmented or replace by features mentioned below. Values to add: Ammo Remaining, get(int - weapon idx), return: int [rounds/ordnance remaining] Would serve to replace "Weapon: Out of ammo" messages. Essential for building BF110(And other) cockpit ammo indicators. Flaps, get(), return: float There is a flaps variable(82), however this is only the control setting, not the actual deflection. When flaps are in transit or stuck this is required. Prop Pitch, get(int - engine idx), return: float Required for prop pitch gauge in numerous German aircraft. Should also work with auto pitch(As the real one does). Beacon Strength, get(), return: float The equivalent of the vertical scale on the AFN-1/2 Beacon Azimuth, get() return: float [degrees] The equivalent of the horizontal scale on the AFN-1/2 Marker Beacon, get() return: int (1/0) Red light when flying over marker beacons on ILS(Lorenz) approach. Compass Heading, get(), return: float [degrees] Compass Heading, set(float) Heading as set by pilot. Radio Altimeter, get(), return: float [meters] Used in some late war aircraft(Do-335, etc..). Radiator, get(int - engine idx), return: float (-1 - 1.00, negative for auto) Radiator, set(float) Current "Cowl or Armor Flaps"(171) method is obsolete due to improvements to this system. Engine On/Off, get(int - engine idx), return int (1/0) The simplification in IL2 makes this a weird value, but there is currently no real way to tell if an engine is set to on. Prop Pitch Auto, get() int (1/0) Prop Pitch Auto, set() Oddly absent, though old functionality. OTA(Outside Air Temperature), get(), return: float [degrees C] Gauge in cockpit, no corresponding Devicelink value. Oil Pressure, get(int - engine idx), return: float [bar] Gauge in cockpit, no corresponding Devicelink value. Hydraulic Pressure, get(), return: float [bar] Used in Do-335, gauge shows 0 if gear needs to be lowered manually. Never seen intermediate pressures so could also be int (1/0). Engine Fire, get(int - engine idx), return: int (1/0) Replaces onscreen message. Also used for Do-335 fire warning panel. Head Movement, set(float,float,float) Expands TrackIR method(11) already available for 6dof support. Mixture, get(int - engine idx), return: float Mixture, set(float) For new analog mixture in 4.12 Methods which have set toggle, but no get: Tinted Reticle Dimmer/Scope Cover, get(), return: int (1/0) Cockpit Lights, get(), return: int (1/0) Nav. Lights, get(), return: int (1/0) Landing Light, get(), return: int (1/0) Wingtip Smoke, get(), return: int (1/0) Toggle Map, get(), return: int (1/0) Speed Bar, get(), return: int (0 - 3 off, kph, mph ,knots) Bomb Sight Mode Auto, get(), return: int (1/0) Bomb Sight Distance, get(), return: float Bomb Sight Control Left/Right, get(), return: float Bomb Sight Altitude, get(), return: float Bomb Velocity, get(), return: float Methods for new control inputs: Beacon Next, set() Beacon Previous, set() Bomb Fuze mode, set() Compass Heading Plus, set() Compass Heading Minus, set() Jettison Stores, set() Additions? different opinion? Feel free to reply, I intend to keep this list up-to-date to inform TD as best as we can. |
#3
|
|||
|
|||
![]() Quote:
Agree totally with the Turn/Slip output values |
#4
|
|||
|
|||
![]() Quote:
![]() I should also add Simmeters officially supports IL2 now. |
#5
|
|||
|
|||
![]()
I would LOVE these improvements as well, with a server-side option to allow them in multiplayer. I'm building a sim pit right now, but hope to eventually build several and network them. Being able to drive gauges in all the pits while flying together would be FANTASTIC.
![]() |
#6
|
|||
|
|||
![]()
This need to be pushed up a little, and i would like to say that maybe some of the get commands for the gear (preferably 164) should show more variation in it's value as a float.
|
#7
|
||||
|
||||
![]() Quote:
I use flight illusion gauges and I concur......Devicelink Turn/slip output does not put out! My guess is Daidalos Team is probably my only hope to ever have use of my Slip/turn gauge. Could be an easy fix for someone who knows how and has access? FYI, here is flight illusions control program functions from IL-2 data for its G-step functios... 031, turn, position, gauge, 04, 036, 0, 0, 1, 1 031 = Flight Illusions plate type (just identifies file for asigning needle the gauge needle movement etc.) turn = Function name 04 = Not sure 036 = IL2 device link assigned key 0 = macro (I think) 0 = Pre-Add/Subtract (I think) 1 = Mulitiplier 1 = Divider In Their config software for the turn gauge they also have an entry for..... Minimum Value = -1000 Maximum Value = 1000 Data type = Float IL2-Devicelink looks like this............ slip 34 get() return:float [deg.] -45.00 +45.00 turn 36 get() return:float [Undefined] -1.00 +1.00 turn indicator One thing that stands out to me is the [Undefined] in the turn data? I tried editing the devicelink file as [deg.] but did not work? Sure would appreciate any information on the subject! Will there be a 4.14 down the road or possible fix for this error? Best Regards, WC |
#8
|
||||
|
||||
![]()
Actually the DeviceLink output is just fine.
A turn/slip indicator can use any range of values for turn and slip. IL2 uses the physical degree value for slip, which is reasonable. Furthermore IL2 uses a standard rate 1 turn for the turn indicator at 50%, which is reasonable too. This means that when the output for the turn indicator can have values from -1.0 to +1.0, then -1.0 means 6 degrees per second to the left, -0.5 is 3 degress per second to the left (rate 1 turn), 0 is straight, +0.5 is 3 degrees per second to the right and +1.0 is 6 degrees per second to the right. You will have to adjust the min/max values for your indicator like Minimum Value = -1 Maximum Value = 1 In case your turn indicator's maximum values are twice a standard turn as well, otherwise adjust the values so they match the maximim 6 degrees per second output from IL2. As long as Data type = Float is set, everything should be fine. Best regards - Mike
__________________
'Armor' is a fantasy invented by your C.O. to make you feel better. |
#9
|
||||
|
||||
![]()
Excellent reply Storebror, was hoping some one would throw the dog a bone!
I needed something to naw on! Now just need to figure out how to apply your information. I sent an e-mail to FI tech support, but unfortunately their tech support is not as good as their product! Hopefully they will reply. I have 9 gauges working, but the turn/slip one is a bit different. Here is what their software looks like for turn/slip...... [IMG] FI- had min value -1000 & max 1000 , I changed to -1 & 1 , but no joy. [IMG] [IMG] This is were the problem may be with understanding how to set values to needle movements!!!! Can use anywhere from 3 to 20 needle values. [IMG] Needle has position numbers , values per position? Last edited by Windturbin; 12-14-2015 at 06:16 PM. Reason: Links |
#10
|
||||
|
||||
![]()
Well, this is a bit hard to judge for someone who doesn't have the same piece of hardware.
Let's rule out the easiest thing first: Is DeviceLink putting out values for turn/slip yes or no? This can be answered first by taking a look into IL-2's code where it's plain to see that in online sessions this output will be suppressed. You should fly offline for your tests though. Next we can give it a try with a sample client app. I've made one for Android to check what I get back from DeviceLink and this is what I see flying offline: ![]() Slip Deg. and Turn Ind. show valid values which means "it works". Now we see these lines in your G-Step functions maintenance window: Code:
030, Slip, Position, Gauge, , 04, 034, 000, 0, 1, 1 031, turn, Position, Gauge, , 04, 036, 000, 0, 1, 1 The DeviceLink query parameters (34, 36) seem fine. Comparing this to other DeviceLink Parameters configured there, we see that these two lines have a "000" behind the DeviceLink Parameter, whereas others have "001" at that place. Can it be that there's a mistake here? Furthermore you once mentioned that the default config for turn gauge has value ranges of -1000 to +1000. How about applying a multiplier of 1000 to that gauge? In my book the line should look like this: Code:
031, turn, Position, Gauge, , 04, 036, 001, 0, 1000, 1
__________________
'Armor' is a fantasy invented by your C.O. to make you feel better. |
![]() |
|
|