Belga Posted December 25, 2012 Report Share Posted December 25, 2012 Congratulations with the wonderful plane.The paint job, detail, flight characteristics are AWESOMEUnfortunately there seem to be some incompatibility problems with users who uses SAITEK Panels. The SAITEK PRO FLIGHT RADIO PANEL suppose to controlCom1, Com2, Nav1, Nav2, ADF, DME, XPDR.The displays show the correct frequencies but none of the frequencies can be changed using the Saitek Panel. (when turning the frequency knobs the frequency briefly changes but jumps back to it's previous setting) Notes:I have a slew of payware and freeware aircraft and besides the "Mentor", this is the only plane that doesn't want to "listen" to the Saitek frequency changes The SAITEK PRO FLIGHT MULTI PANEL suppose to control most of the autopilot functions.Besides Heading, the other functions do not work or work erratically. Thank you for looking in to this. Marc Quote Link to comment Share on other sites More sharing options...
Cameron Posted December 25, 2012 Report Share Posted December 25, 2012 Hi, Marc,It's likely a custom datarefs issue.As we do not have these Saitek panels and the custom programming is coded as necessary, I'm unsure if there's really anything more we can do here. Quote Link to comment Share on other sites More sharing options...
luckyluca Posted December 29, 2012 Report Share Posted December 29, 2012 (edited) i have the saitek panels too, i just purchased this wonderful aircraft but wasn't aware of the radios/ap behaviour argh:)Javier, this is probably going to be an issue for some people, i think xsaitekpanels, the plugin that allows the panels to run with xplane, supports custom datarefs already, perhaps something could be done easier than we think.A good starting point would be talking to sparker and taking a look at his wonderful xsaitekpanel plugin here ?oh and happy new year to you all!thanks L Edited December 29, 2012 by luckyluca Quote Link to comment Share on other sites More sharing options...
arb65912 Posted December 29, 2012 Report Share Posted December 29, 2012 Gentlemen, When I purchased JS32 I was terrified to find out that Saitek panels do not work but as Javier said he modelled things so most of the functions are controlled via cockpit, I have tried and after few hours now I have no problem changing the frequencies using radio knobs in the cockpit. Of course it would be nice to have Saitek Panels operational, we will see what Javier will say on that. Cheers, AJ Quote Link to comment Share on other sites More sharing options...
Japo32 Posted December 29, 2012 Report Share Posted December 29, 2012 the only I can say. Somebody has to program the saitek panels because it is controled via plugin. Because I don't own a saitek panel and don't know even how to start programming it, I cannot do it. I would say the datarefs used to control the radios. Quote Link to comment Share on other sites More sharing options...
luckyluca Posted December 30, 2012 Report Share Posted December 30, 2012 Thanks for releasing the list of custom datarefs for the autopilots/radios. regarding the radio knobs perhaps it's the js32 plugin preventing other inputs from controlling the radio knobs? i sent you a pm Quote Link to comment Share on other sites More sharing options...
sparker256 Posted December 30, 2012 Report Share Posted December 30, 2012 Hello, Name here is Bill (sparker) and the author of Xsaitekpanels. I have recieved a PM and a email about this issue and am thinking about a solution. The Current version 2.05 of my plugin supports all default aircraft in X-Plane 10.20+. Trying to cover every new addon aircraft is a task beyond what a free plugin should be asked to support. My manual clearly describes every datareference and command that I use so it is known to all who want to look. That all being said what I think a solution might be is to add remapability to the switches or buttons affected on the radio and multi panels. To do that since I do not own this aircraft I would need a list of all datareferences and commands used to even think of making this happen. My plugin is free but I do take donations and think this might help me find some time to help resolve this issue. Bill 2 Quote Link to comment Share on other sites More sharing options...
Japo32 Posted December 31, 2012 Report Share Posted December 31, 2012 Published a list of custom and normal datarefs used for some systems. http://forums.x-pilot.com/index.php/topic/4380-custom-datarefs/ Quote Link to comment Share on other sites More sharing options...
luckyluca Posted December 31, 2012 Report Share Posted December 31, 2012 Bill, thanks for your help and time, it's much appreciated.Javier, thanks for the datarefs, out of curiosity, what is the reason for using custom datarefs for the radio knobs and selectors instead of the default datarefs?Happy 2013 Quote Link to comment Share on other sites More sharing options...
Japo32 Posted December 31, 2012 Report Share Posted December 31, 2012 (edited) Right now I don't remember.. hahaha.. but always there is a reason! I think it was to separate the decimals from the numbers selection, and other important thing I don't remember. The logic was done in the seamax some time ago. Happy new year to everyone! Edited December 31, 2012 by Japo32 Quote Link to comment Share on other sites More sharing options...
sparker256 Posted December 31, 2012 Report Share Posted December 31, 2012 Javier, Thanks for the information and have been looking at it to see what is possible from a Xsaitekpanels point of view. It looks like most of the J32/xxx are datareferences and not commands but I am not clear on that. Example TuneLeftNumbers Com1: J32/Com1NumAct As I see no increase or decrease so I have to assume that is a datareference and you put a value in there. Am I thinking correctly? Thanks for your time and Happy Holidays Bill 1 Quote Link to comment Share on other sites More sharing options...
Belga Posted January 1, 2013 Author Report Share Posted January 1, 2013 Happy New Year !!! Would it be possible to release a version of the wonderful Jetstream with DEFAULT datarefs?There are quite a few users of SAITEK and other 3rd party Com/Nav controls who face the same problem.I spend “mega bucks” on my custom cockpit and the use of a mouse or keyboard is not practical and virtually impossible in my configuration. I wish there was some hint or symbol which would give the buyer a clue that an aircraft uses non-standard datarefs.This comment is not meant in a negative way ( I admire your work and attention to detail) but it becomes very frustrating that lately, some developers use custom datarefs /shortcuts /keystrokes for existing xPlane functions.I understand that sometimes it is a tossup in-between realism and functionality but in case of the Jetstream, the radio's should be able to be controlled by the default datarefs. I do agree that there might be cases that custom datarefs are needed for non-existing functions. v/r Marc Quote Link to comment Share on other sites More sharing options...
Neurus Posted January 2, 2013 Report Share Posted January 2, 2013 I also have Saitek panels and the Jetstream and was kinda disappointed :~( Is there something we can do as users? Can we help? 'm an Obj-C and Java developer, don't know if that helps, never done any plug-in or aircraft development before. Let me know, I can donate some time. Thanks. P.S.: I also speak fluent spanish. Quote Link to comment Share on other sites More sharing options...
Cameron Posted January 2, 2013 Report Share Posted January 2, 2013 ...but in case of the Jetstream, the radio's should be able to be controlled by the default datarefs. You are assuming things like the radio should be able to use default and not custom. In this case you are wrong. The rules developers follow are very simple: Use default datarefs if they do what you need them to. If they don't, custom is the only way. We will not be releasing a default only route. Given that custom plug-ins are the way for the future, perhaps it is time developers of hardware related plugins consider other options (like INI files that allow the dataref for which a product should listen/adjust for). This would at least standardize things a bit, so long as the developers agree to make CMD compatible add-ons. Quote Link to comment Share on other sites More sharing options...
sparker256 Posted January 2, 2013 Report Share Posted January 2, 2013 You are assuming things like the radio should be able to use default and not custom. In this case you are wrong.The rules developers follow are very simple: Use default datarefs if they do what you need them to. If they don't, custom is the only way.We will not be releasing a default only route. Given that custom plug-ins are the way for the future, perhaps it is time developers of hardware related plugins consider other options (like INI files that allow the dataref for which a product should listen/adjust for). This would at least standardize things a bit, so long as the developers agree to make CMD compatible add-ons.Xsaitekpanels already has some of that and I can add more if the need is there but I have a question asked in post #11 that is still unanswered. Example TuneLeftNumbers Com1: J32/Com1NumAct Is this a datareference or a command? If we are talking about commands then the issue is mute and will add remapability to all affected buttons and controls. If on the other hand they are datarefecences then I do not have a solution for that because my plugin is no different then a fancy joystick that cannot enter numbers either. So we are all aware of the current status of Xsaitekpanels it is 32/64 bit and already has remapabilty of the full switch panel. It also has partial remapabilty of the multi panel that is in the current version 2.05. I have just finished the remapping of the radio panel's Com 1 & 2 coarse and fine knobs and Nav 1 & 2 coarse and fine knobs over the holiday's and will be released as version 2.06 in the near future. Bill Quote Link to comment Share on other sites More sharing options...
cstrosser Posted January 2, 2013 Report Share Posted January 2, 2013 I was about to purchase this aircraft until I saw this thread. With most custom aircraft functionality, it is relatively simple to map hardware to custom datarefs. In fact, I created my XGoFlight plugin to deal with the fact that Sandy's plugin only addresses default functionality. As a person who buys most high-quality aircraft, I can say I'm fully committed to finding ways to ensure hardware works with ALL and ANY aircraft (e.g. CRJ2, Challenger 300, Peter's Airbus A380, FlyJSim 727/DH8D, etc.). This is probably my only red line. With the radios, everything gets trickier. The native 747 implements custom datarefs for radio frequencies, and for those of us with hardware, it only messes up the experience without adding any value. From what I've gathered, the 747 uses this methodology so that users can tune frequencies to the hundredth decimal place rather than relying on the hundredth decimal place intervals that X-Plane uses. If the CRJ2 and other aircraft at that level of complexity can find a way to make the radio frequencies work with standard datarefs, I don't see why we can't do the same in all cases. Honestly, I wish we could all agree to work within the constraints of the X-Plane COM/NAV frequencies. It just makes things unnecessarily complicated without adding much value. I'll follow this issue for a little longer b/c the aircraft looks stunning. I'd love the opportunity to add it to my vast collection in the future. 1 Quote Link to comment Share on other sites More sharing options...
Cameron Posted January 2, 2013 Report Share Posted January 2, 2013 I was about to purchase this aircraft until I saw this thread. With most custom aircraft functionality, it is relatively simple to map hardware to custom datarefs. In fact, I created my XGoFlight plugin to deal with the fact that Sandy's plugin only addresses default functionality. As a person who buys most high-quality aircraft, I can say I'm fully committed to finding ways to ensure hardware works with ALL and ANY aircraft (e.g. CRJ2, Challenger 300, Peter's Airbus A380, FlyJSim 727/DH8D, etc.). This is probably my only red line. With the radios, everything gets trickier. The native 747 implements custom datarefs for radio frequencies, and for those of us with hardware, it only messes up the experience without adding any value. From what I've gathered, the 747 uses this methodology so that users can tune frequencies to the hundredth decimal place rather than relying on the hundredth decimal place intervals that X-Plane uses. If the CRJ2 and other aircraft at that level of complexity can find a way to make the radio frequencies work with standard datarefs, I don't see why we can't do the same in all cases. Honestly, I wish we could all agree to work within the constraints of the X-Plane COM/NAV frequencies. It just makes things unnecessarily complicated without adding much value. I'll follow this issue for a little longer b/c the aircraft looks stunning. I'd love the opportunity to add it to my vast collection in the future. Perhaps I don't follow you here. Given you are a programmer and are capable of creating what you need with a list of datarefs, what's the problem? The list is here: http://forums.x-pilot.com/index.php/topic/4380-custom-datarefs/ Seems simple enough to me. One dataref to control bigger numbers knob, one dataref to control lower numbers knob. Quote Link to comment Share on other sites More sharing options...
Cameron Posted January 2, 2013 Report Share Posted January 2, 2013 Is this a datareference or a command? Datareference. I don't believe Javier opted for any commands on this aircraft. Quote Link to comment Share on other sites More sharing options...
Japo32 Posted January 2, 2013 Report Share Posted January 2, 2013 (edited) Hello, and first to say, Happy new year!Well the reason I didn't answer the question related about if my datarefs are just datarefs or also commands is because I am in the duty of being with family, travelling to visit my parents and have Christmass dinners, and food, and children etc etc.. so it is needed a vacations for the vacations. Sorry not to answer because I couldn't and wasn't in front of my computer to give you a reply.As said, more or less, all my custom datarefs, are just that. datarefs. Even I don't know right now how to program a custom command. For me is enough the datarefs, and I just use the commands when are defaults.When I use custom datarefs is because it is necesary. I hate type, so if I can safe some lines in C++ always I will use the default datarefs. The problem is in this case the default ones control all the decimals and numbers of a frequency in a whole number not separated by comma, so I had to split it, also because the round limits.. and another reason I don't remember.As someone said, I use more or less the same logic for radios in the 747. So if someone could make the 747 work with Saitek it can be done here also. The problem here is the radios are more complex, because it uses memory, and active change of the frequencies as the real one (well the real one has more memory options, but for sure this one is more complex than the default one...)So in case of the example Bill asked me I will tell. That is a dataref that controls the right part of the number of the frequency that goes (integers numbers. Not float):Com: 118 to 136decimals: 00 to 99Nav: 108 to 117decimals: 0 to 99adf: 0 to 9 left numbersright numbers: 0 to 99Transponder:left: 0 to 77right 0 to 77 (in 1.01) Edited January 2, 2013 by Japo32 Quote Link to comment Share on other sites More sharing options...
Japo32 Posted January 2, 2013 Report Share Posted January 2, 2013 (edited) IMPORTANT: I miss in one datarefs for the radios. I put the active ones to control the actives, but miss the normal way. Now is changed in the list of custom datarefs. Sorry, but I believe noone started the programming, if someone did, the change is easy, just delete the "Act" at the end of the numbers selections. All is explained with ranges in the dataref area. Sorry not to give support for saitek panel, because first I don't know how to do it, and because I don't own the saitek panels myself. I own an ComboII MCP that I wish to programm.. if I learn how. Edited January 2, 2013 by Japo32 Quote Link to comment Share on other sites More sharing options...
sparker256 Posted January 2, 2013 Report Share Posted January 2, 2013 Javier, Thanks for the added info and now fully understand the why of your newest creation which is just gorgeous from the video I have watched so far. I have downloaded your free manual and will be spending some time understanding this new aircraft a year in the making. In the info you have already provided I do not think it should be a issue to have Xsaitekpanels working with this aircraft. It will take some time and a few more questions from me to make sure I fully understand the datareferences but think reading the manual first is the correct step now. As I am a Ubuntu user I thought in one of the videos it said that there will not be a Linux version. I hope that is not true and if you need any help in porting to Linux feel free to contact me and will do what I can. Enjoying X-Plane more and more every day Bill Quote Link to comment Share on other sites More sharing options...
Japo32 Posted January 3, 2013 Report Share Posted January 3, 2013 Yes... maybe I will contact with you for porting to linux in future. I tried but was not success when I was in the Mentor. Don't remember quite well what I did.I own MCP Combo2 and wish also to make something to make it work with the plane (I also like to fly my planes) If someone can give me the clues to make the first steps I will try. Quote Link to comment Share on other sites More sharing options...
cstrosser Posted January 3, 2013 Report Share Posted January 3, 2013 (edited) Perhaps I don't follow you here.Given you are a programmer and are capable of creating what you need with a list of datarefs, what's the problem? The list is here: http://forums.x-pilot.com/index.php/topic/4380-custom-datarefs/Seems simple enough to me. One dataref to control bigger numbers knob, one dataref to control lower numbers knob.What I was saying was that it is not as easy as simply dealing with datarefs (not always, anyway). Take the 747... I created code that MOSTLY allowed Bill's plugin to work with the customized tuners, but something internal to the plugin stopped me dead in my tracks by causing a crash. Sure, we can change the datarefs with other plugins, but we can't control how the aircraft plugins react to that change. Again, if this aircraft allowed use of the native commands for tuning (CRJ2, Peter's Airbuses, ddenn's CL30, x737, etc. etc. etc.), that would solve compatibility for ALL hardware. There is no practical reason to stray from the norm for this particular feature, at least not that I've ever seen. Edited January 3, 2013 by cstrosser Quote Link to comment Share on other sites More sharing options...
cstrosser Posted January 3, 2013 Report Share Posted January 3, 2013 This is the code I used for the B744. If I remember correctly, I had to scrap it because I kept getting crashes whenever I tried to switch from active/standby. #include "loader.h"#include "aircraft-b744.h"Aircraft_B744* Aircraft_B744::instance = NULL;Aircraft_B744* Aircraft_B744::getInstance(){ if (!instance) { instance = new Aircraft_B744(); } return instance;}const char* Aircraft_B744::getICAO(){ return "B744";}Aircraft_B744_Radio_Com1* Aircraft_B744::getCom1(){ if (!com1) { com1 = new Aircraft_B744_Radio_Com1(); } return com1;}Aircraft_B744_Radio_Nav1* Aircraft_B744::getNav1(){ if (!nav1) { nav1 = new Aircraft_B744_Radio_Nav1(); } return nav1;}Aircraft_B744_Radio_Nav2* Aircraft_B744::getNav2(){ if (!nav2) { nav2 = new Aircraft_B744_Radio_Nav2(); } return nav2;}void Aircraft_B744_Radio::setFine(int fineValue){ XPLMSetDatai(getFineDataref(), fineValue);}int Aircraft_B744_Radio::getFine(){ return XPLMGetDatai(getFineDataref());}void Aircraft_B744_Radio::setCoarse(int coarseValue){ XPLMSetDatai(getCoarseDataref(), coarseValue);}int Aircraft_B744_Radio::getCoarse(){ return XPLMGetDatai(getCoarseDataref());}void Aircraft_B744_Radio_Com::fineUp(int fast){ int ComDec1Value = getFine(); if (fast) { ComDec1Value += 3; } else { ComDec1Value += 1; } if (ComDec1Value > 99) { ComDec1Value -= 100; } setFine(ComDec1Value);}void Aircraft_B744_Radio_Com::fineDown(int fast){ int ComDec1Value = getFine(); if (fast) { ComDec1Value -= 3; } else { ComDec1Value -= 1; } if (ComDec1Value < 0) { ComDec1Value += 100; } setFine(ComDec1Value);}void Aircraft_B744_Radio_Com::coarseUp(){ int ComNum1Value = getCoarse() + 1; if (ComNum1Value > 136) { ComNum1Value = 118; } setCoarse(ComNum1Value);}void Aircraft_B744_Radio_Com::coarseDown(){ int ComNum1Value = getCoarse() - 1; if (ComNum1Value < 118) { ComNum1Value = 136; } setCoarse(ComNum1Value);}void Aircraft_B744_Radio_Nav::fineUp(int fast){ int Nav1DecValue = getFine(); if (fast) { Nav1DecValue += 3; } else { Nav1DecValue += 1; } if (Nav1DecValue > 99) { Nav1DecValue -= 100; } setFine(Nav1DecValue);}void Aircraft_B744_Radio_Nav::fineDown(int fast){ int Nav1DecValue = getFine(); if (fast) { Nav1DecValue -= 3; } else { Nav1DecValue -= 1; } if (Nav1DecValue < 0) { Nav1DecValue += 100; } setFine(Nav1DecValue);}void Aircraft_B744_Radio_Nav::coarseUp(){ int Nav1NumValue = getCoarse() + 1; if (Nav1NumValue > 117) { Nav1NumValue = 108; } setCoarse(Nav1NumValue);}void Aircraft_B744_Radio_Nav::coarseDown(){ int Nav1NumValue = getCoarse() - 1; if (Nav1NumValue < 108) { Nav1NumValue = 117; } setCoarse(Nav1NumValue);}XPLMDataRef Aircraft_B744_Radio_Com1::getFineDataref(){ return XGF::LazyLoader::getDataref("747/ComDec1");}XPLMDataRef Aircraft_B744_Radio_Com1::getCoarseDataref(){ return XGF::LazyLoader::getDataref("747/Nav1Num");}XPLMDataRef Aircraft_B744_Radio_Nav1::getFineDataref(){ return XGF::LazyLoader::getDataref("747/Nav1Dec");}XPLMDataRef Aircraft_B744_Radio_Nav1::getCoarseDataref(){ return XGF::LazyLoader::getDataref("747/Nav1Num");}XPLMDataRef Aircraft_B744_Radio_Nav2::getFineDataref(){ return XGF::LazyLoader::getDataref("747/Nav2Dec");}XPLMDataRef Aircraft_B744_Radio_Nav2::getCoarseDataref(){ return XGF::LazyLoader::getDataref("747/Nav2Num");} Quote Link to comment Share on other sites More sharing options...
cstrosser Posted January 3, 2013 Report Share Posted January 3, 2013 And the header file... #ifndef AIRCRAFTB744_H#define AIRCRAFTB744_H#include "aircraft.h"#include "XPLMDataAccess.h"class Aircraft_B744_Radio{ public: void setFine(int fineValue); int getFine(); void setCoarse(int coarseValue); int getCoarse(); virtual void fineUp(int fast = 0) = 0; virtual void fineDown(int fast = 0) = 0; virtual void coarseUp() = 0; virtual void coarseDown() = 0; virtual XPLMDataRef getFineDataref() = 0; virtual XPLMDataRef getCoarseDataref() = 0;};class Aircraft_B744_Radio_Com : public Aircraft_B744_Radio{ public: void fineUp(int fast = 0); void fineDown(int fast = 0); void coarseUp(); void coarseDown();};class Aircraft_B744_Radio_Nav : public Aircraft_B744_Radio{ public: void fineUp(int fast = 0); void fineDown(int fast = 0); void coarseUp(); void coarseDown();};class Aircraft_B744_Radio_Com1 : public Aircraft_B744_Radio_Com{ public: XPLMDataRef getFineDataref(); XPLMDataRef getCoarseDataref();};class Aircraft_B744_Radio_Nav1 : public Aircraft_B744_Radio_Nav{ public: XPLMDataRef getFineDataref(); XPLMDataRef getCoarseDataref();};class Aircraft_B744_Radio_Nav2 : public Aircraft_B744_Radio_Nav{ public: XPLMDataRef getFineDataref(); XPLMDataRef getCoarseDataref();};class Aircraft_B744 : public Aircraft{ private: Aircraft_B744(){}; Aircraft_B744(Aircraft_B744 const&){}; Aircraft_B744 operator=(Aircraft_B744 const&){}; static Aircraft_B744* instance; protected: Aircraft_B744_Radio_Com1* com1; Aircraft_B744_Radio_Nav1* nav1; Aircraft_B744_Radio_Nav2* nav2; public: static Aircraft_B744* getInstance(); const char* getICAO(); Aircraft_B744_Radio_Com1* getCom1(); Aircraft_B744_Radio_Nav1* getNav1(); Aircraft_B744_Radio_Nav2* getNav2();};#endif // AIRCRAFTB744_H Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.