Jump to content
The simFlight Network Forums

bojote

Members
  • Content Count

    22
  • Joined

  • Last visited

Community Reputation

0 Neutral

About bojote

  • Rank
    Member
  1. Hi Dario, I would love to try this! I had my TQ replaced but I still get a bit of noise on the throttles, I hate it when they go to 100% when taxing! annoying. Can you post the final version or send it to jaltuve@gmail.com? Gracias!
  2. bojote

    Help with Axis Noise

    Yes, thats what I suspected, I just tested my brother's saitek throttle quadrant and it works perfectly fine! so it is definitely a hardware problem, thanks Pete, will contact Saitek to see if this is still under warranty.
  3. Hi Pete, I have a question, is not FSUIPC related, but you are problably the most qualified person to answer it. My problem is strictly hardware related, nothing to do with FSUIPC, but... you probably have a suggestion for me on how to fix this using FSUIPC. I have the Saitek Pro Flight Yoke and Throttle quadrant. The yoke axes are VERY stable, If I check them with the windows calibration tool you'll notice noise is non exitent, zero! However... the throttle quadrant is quite the opposite. The two 'outer' levers and EXTREMELY sensitive, they tend to jump a lot. I noticed FSUIPC has options to control spikes for Rudder, Elevators and Ailerons (I assume the spikes are noise spikes) but I don't see an option to do this for the other axis (such as the one in my throtte quadrant) I've tried everything... Setting them to Direct, reducing the usable range, but this noise is simply very strong! Is there a way to reduce this with FSUIPC? I'm looking for a setting to apply the 'reduce spikes' option to an individual axis but I'm not sure this exists. Thanks and enjoy the holidays!
  4. Hi Pete, It's actually not a big problem, but I'm puzzled as to what might be causing this, let me describe it very briefly: After a long flight it seems that 'some' of my USB controllers assignments become 'unresponsive' in FSX, yet.. if I pause FSX and open the control panel device panel I do see the controller there and it will work if you move the axis and use the buttons, so, fact #1: The controller IS connected and working and not in a sleep state. The easy way to 'fix' this little annoyance is to simply go into the FSX top menu, select the FSUIPC option and when the FSUIPC dialog opens up I simply press 'OK' to return back to FSX, that does it. So, it seems that FSUIPC is doing some 'refreshing' that make the controllers work again. Any idea what this is or what can I do to prevent this from happening? Now, the above is not really a problem unless it happens on final, I'm just wondering if you might know why this happens even when my computer is still seeing the USB devices operating normally outside of FSX. All of my controllers AXIS assignments are configured exclusively for use with FSUIPC (in direct mode) and are 'disabled' in the native FSX axis assignment screen, meaning that if I were to 'remove' FSUIPC I could not use any controller AXIS in FSX. So i'm pretty sure this is an FSUIPC issue. Probably if I re-enable native controller assignments in the FSX configuration screen it will fix things, but what I'm experiencing should not be happening, thats why I believe it to be some kind of glitch under my very specific configuration/scenario. EDIT: The above information is related to AXIS assiggments and mouse macros ONLY! regular buttons in my controllers that are mapped natively inside FSX DO work perfectly fine. Thanks Pete!
  5. Hi Darren, The 'module' I posted at the SB forum is not neccesary anymore. Like Peter said, he implemented this in FSUIPC back in June (check the interim versions) I've been using the latest FSUIPC with this modification made by Pete for 2+ months now.. works like a charm.
  6. bojote

    Transponder

    Excelent news! I'll take a look at the beta later today... busy friday :)
  7. bojote

    Transponder

    I completely re-wrote, cleaned and optimized everything :) intead of using the 1sec event to write to the client area waiting until SB is up I decided to use SimConnect_RequestClientData and On a detected change I write the data, no more 1sec events, clean code now, also included custom private events for the shortcuts, but my choice of keys is not the best :) Also, you don't see CreateClientArea because I do not write one, thats up to the SB4 main program, I simply hook to it using its name (which is Squackwbox Data) and mapping it via SimConnect_MapClientDataNameToID then I just need that ID to Set or Request data from the client area (the main SB program) This zip includes, source, dll and readme.txt. feel free to use it anyway you want. http://www.venetubo.com/XPND.zip //Copyright (c) Jesus Altuve 2010. All rights reserved. // Set Transponder modes via menu or shortcuts #include "stdafx.h" #include "simconnect.h" // Define our global handle HANDLE g_hSimConnect; // Our shortcut keys (you can use any combination eg. ctrl+shft+a) use the actual keystroke char setCharly[] = "F8\0"; // Sets Transponder mode Charly by pressing the F8 key char setStby[] = "F9\0"; // Sets Transponder mode Stby by pressing the F9 key char sendIdnt[] = "F3\0"; // Send IDENT by pressing the F3 key // Transponder modes bool c_mode = false; bool stby_mode = true; int x_ident = 2; // Menu Array for our menu selections. char szMenuText1[] = "SquawkBox Transponder\0Select a transponder action/mode:\0Charly (or press the 'F8' key)\0Standby (or press the 'F9' key)\0IDENT (or press the 'F3' key)\0Close Window\0"; // Menu confirmation/responses char charly_set[] = "SquawkBox mode has been set to Charly\0"; char stby_set[] = "SquawkBox mode has been set to StandBy\0"; char ident_sent[] = "Ident sent\0"; // My Client Area ID's typedef enum { SQUAWKBOX_CLIENT_ID, } CLIENT_ID; // My Data definition ID's typedef enum { DATA_DEFINITION_0, DATA_DEFINITION_1, DATA_DEFINITION_2, DATA_DEFINITION_3, DATA_DEFINITION_4, DATA_DEFINITION_5, DATA_DEFINITION_6, DATA_DEFINITION_7, DATA_DEFINITION_8, DATA_DEFINITION_9, DATA_DEFINITION_10, } DATA_DEFINITION_ID; // A basic structure for a single item of returned data (used to request SB data) struct StructOne { bool xpnd_mode; }; // My Request ID's typedef enum { SB_DATA_REQUEST_ID, } REQUEST_ID; // My System Event ID's typedef enum { KEY_1 = 100, KEY_2, KEY_3, MENU_SELECTION_1 = 500, MAIN_MENU = 600, } EVENT_ID; // My Input group ID's typedef enum { GROUP_0, } GROUP_ID; // My Input ID's typedef enum { INPUT_1, } INPUT_ID; // My functions // Map all my system events (the ones that require keyboard/controller input) void mapMyEvents() { // Shortcuts (define the actual client event) leave the EventName blank for private client events or enter the event name for FSX events SimConnect_MapClientEventToSimEvent(g_hSimConnect, KEY_1); SimConnect_MapClientEventToSimEvent(g_hSimConnect, KEY_2); SimConnect_MapClientEventToSimEvent(g_hSimConnect, KEY_3); // Add all the defined client events to a notification group so we are notified of the actual keystroke SimConnect_AddClientEventToNotificationGroup(g_hSimConnect, GROUP_0, KEY_1); SimConnect_AddClientEventToNotificationGroup(g_hSimConnect, GROUP_0, KEY_2); SimConnect_AddClientEventToNotificationGroup(g_hSimConnect, GROUP_0, KEY_3); // now, an input ID, the actual key stroke and the event they are associated with SimConnect_MapInputEventToClientEvent(g_hSimConnect, INPUT_1, setCharly, KEY_1); SimConnect_MapInputEventToClientEvent(g_hSimConnect, INPUT_1, setStby, KEY_2); SimConnect_MapInputEventToClientEvent(g_hSimConnect, INPUT_1, sendIdnt, KEY_3); // now turn ON simconnect for all events on the INPUT_1 group. SimConnect_SetInputGroupState(g_hSimConnect, INPUT_1, SIMCONNECT_STATE_ON); } // Sends Simconnect client data with a true/false switch for xpndr modes. void setTransponderMode(bool toggle) { SimConnect_SetClientData(g_hSimConnect, SQUAWKBOX_CLIENT_ID, DATA_DEFINITION_2, NULL, 0, 1, &toggle); } // Sends ident void transponderIdent(int ident) { SimConnect_SetClientData(g_hSimConnect, SQUAWKBOX_CLIENT_ID, DATA_DEFINITION_4, NULL, 0, 1, &ident); } void OnRecvOpen (SIMCONNECT_RECV_OPEN *pOpen) { HRESULT hr; // create menu title SimConnect_MenuAddItem(g_hSimConnect, "SquawkBox Transponder", MAIN_MENU, 0); // We need to know the client area 'name' and map it to a client ID SimConnect_MapClientDataNameToID(g_hSimConnect, "SquawkBox Data", SQUAWKBOX_CLIENT_ID); // Let's register the data structures we plan on using (values were taken from the simconnect debug output of sbtrans10.dll) Offset and size are defined here. SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_0, 1, 1); SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_1, 2, 1); SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_2, 17, 1); // Transponder Modes SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_3, 18, 1); SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_4, 19, 1); // Ident toggle SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_5, 20, 1); SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_6, 21, 1); SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_7, 22, 1); SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_8, 24, 1); SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_9, 25, 1); SimConnect_AddToClientDataDefinition(g_hSimConnect, DATA_DEFINITION_10, 26, 1); // Map all my custom client events mapMyEvents(); // Request the data from SB only when its changed and only ONCE so we don't have to run a 1sec event to get/set this info ;) hr = SimConnect_RequestClientData(g_hSimConnect, SQUAWKBOX_CLIENT_ID, SB_DATA_REQUEST_ID, DATA_DEFINITION_2, SIMCONNECT_CLIENT_DATA_PERIOD_ON_SET, SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_CHANGED, 0, 0, 1); } // This will proccess al the received data structures void OnRecvClientData (SIMCONNECT_RECV_CLIENT_DATA *pData) { switch(pData->dwRequestID) { case SB_DATA_REQUEST_ID: { StructOne *pS = (StructOne*)&pData->dwData; // Now, process the simple data structure we defined earlier. // assign the xpnd_mode variable we defined in the simple struct above and the confirmation message. bool current = pS->xpnd_mode; char init_msg[] = "When connecting to VATSIM your transponder will automatically be set to STBY mode."; // If the transponder is set to CHARLY mode, we set it to STBY, but only if this is the first time a // simconnect session has been established, that way if SB crashes and we open it again is will be set to // CHARLY and controllers won't bug us. Also NOTIFY the user of this mode change. if (current == false) { setTransponderMode(stby_mode); SimConnect_Text(g_hSimConnect, SIMCONNECT_TEXT_TYPE_SCROLL_WHITE, 8.0f, 0, sizeof(init_msg), init_msg); } } break; } } // This will proccess al the received events void OnRecvEvent (SIMCONNECT_RECV_EVENT *pEvent) { switch (pEvent->uEventID) { // process menu key events case KEY_1: { setTransponderMode(c_mode); } break; case KEY_2: { setTransponderMode(stby_mode); } break; case KEY_3: { transponderIdent(x_ident); } break; case MAIN_MENU: { SimConnect_Text(g_hSimConnect, SIMCONNECT_TEXT_TYPE_MENU, 0.0f, MENU_SELECTION_1, ARRAYSIZE(szMenuText1), szMenuText1); } break; // process item selection from menu #1 case MENU_SELECTION_1: { switch (pEvent->dwData) { case SIMCONNECT_TEXT_RESULT_MENU_SELECT_1: { // Set Charlie setTransponderMode(c_mode); SimConnect_Text(g_hSimConnect, SIMCONNECT_TEXT_TYPE_SCROLL_WHITE, 3.0f, 0, sizeof(charly_set), charly_set); } break; case SIMCONNECT_TEXT_RESULT_MENU_SELECT_2: { // Set Standby setTransponderMode(stby_mode); SimConnect_Text(g_hSimConnect, SIMCONNECT_TEXT_TYPE_SCROLL_WHITE, 3.0f, 0, sizeof(stby_set), stby_set); } break; case SIMCONNECT_TEXT_RESULT_MENU_SELECT_3: { // Send IDENT (probably need to send it more than once? test test test!) transponderIdent(x_ident); SimConnect_Text(g_hSimConnect, SIMCONNECT_TEXT_TYPE_SCROLL_WHITE, 3.0f, 0, sizeof(ident_sent), ident_sent); } break; } } break; } } // This callback processes all SimConnect related messages // It is similar to the call in the dispatch handler (message pump) in a windows application // But the interesting part is that no message pump is required for the dll void CALLBACK SimConnectProcess(SIMCONNECT_RECV *pData, DWORD cbData, void *pContext) { // process SIMCONNECT_RECV_ID_XXX values here as needed switch(pData->dwID) { // Process HRESULT return structure when opening connection for the first time case SIMCONNECT_RECV_ID_OPEN: OnRecvOpen((SIMCONNECT_RECV_OPEN*)pData); break; // Process HRESULT return structures for Events case SIMCONNECT_RECV_ID_EVENT: OnRecvEvent((SIMCONNECT_RECV_EVENT*)pData); break; // Process HRESULT return structures for data case SIMCONNECT_RECV_ID_CLIENT_DATA: OnRecvClientData((SIMCONNECT_RECV_CLIENT_DATA*)pData); break; } } void DLLStart(void) { // open connection to local SimConnect server SimConnect_Open(&g_hSimConnect, "SquawkBox Alternative Transponder", NULL, 0, NULL, SIMCONNECT_OPEN_CONFIGINDEX_LOCAL); // register callback routine for message processing SimConnect_CallDispatch(g_hSimConnect, SimConnectProcess, NULL); } void DLLStop(void) { // close connection to local SimConnect server SimConnect_Close(g_hSimConnect); } Cheers,
  8. bojote

    Transponder

    Norman, I think we are all aware of the efforts (you) and proably others (Pete) trying to get Joel to jump on this issue. I guess the code I posted is my way of taking the matter into our own hands :) Part of the 'confusion' with SB/FSUIPC is that there are lots of things not documented which makes trying to adapt/integrate SB really hard. Anyway, I guess things look good now :)
  9. bojote

    Transponder

    No prob! Cockpit builders will be VERY happy if you add the facility ;) Cheers,
  10. bojote

    Transponder

    Done! I'll not be sharing the actual DLL, but the source code. feel free to use it/modify it/adapt it anyway you want. This sets the transponder modes correctly when using SB4 and FSX via Menu, evidently the step missing is adding 'shortcut keys' to integrate with your hardware.. but my C++ skills are rusty and I already spent a considerably amount of time trying to understand how to set the modes over the network! //Copyright (c) Jesus Altuve 2010. All rights reserved. //Sets Transponder modes via menu #include "stdafx.h" #include "simconnect.h" typedef enum { MAIN_MENU = 1, SUB_MENU_1= 100, MENU_SELECTION_1 = 200, } EVENT_IDS; HANDLE hSimConnect = NULL; HANDLE g_hSimConnect; bool stby_mode = 1; bool c_mode = 0; int x_ident = 2; void OnRecvOpen (SIMCONNECT_RECV_OPEN *pOpen) { // create menu items SimConnect_MenuAddItem(g_hSimConnect, "Bojote's FSX Tools", MAIN_MENU, 0); SimConnect_MenuAddSubItem(g_hSimConnect, MAIN_MENU, "SquawkBox Hack", SUB_MENU_1, 0); // Shared Client Data (values taken from the simconnect debug output) SimConnect_SubscribeToSystemEvent(g_hSimConnect, 0, "1sec"); SimConnect_MapClientDataNameToID(g_hSimConnect, "SquawkBox Data", 0); // Register data structures (values were taken from the simconnect debug output of sbtrans.dll) SimConnect_AddToClientDataDefinition(g_hSimConnect, 0, 1, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 1, 2, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 2, 17, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 3, 18, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 4, 19, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 5, 20, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 6, 21, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 7, 22, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 8, 24, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 9, 25, 1, -1); SimConnect_AddToClientDataDefinition(g_hSimConnect, 10, 26, 1, -1); // Sets transponder mode to SBTY (but is not working why?) SimConnect_SetClientData(g_hSimConnect, 0, 2, 0, 0, 1, &stby_mode); } char szMenuText1[] = "SquawkBox\0Select a transponder mode:\0Charly\0Standby\0IDENT\0Close Window\0"; void OnRecvEvent (SIMCONNECT_RECV_EVENT *pEvent) { switch (pEvent->uEventID) { // process menu items case SUB_MENU_1: { SimConnect_Text(g_hSimConnect, SIMCONNECT_TEXT_TYPE_MENU, 0.0f, MENU_SELECTION_1, ARRAYSIZE(szMenuText1), szMenuText1); } break; // process item selection from menu case MENU_SELECTION_1: { switch (pEvent->dwData) { case SIMCONNECT_TEXT_RESULT_MENU_SELECT_1: { // Set Charlie SimConnect_SetClientData(g_hSimConnect, 0, 2, 0, 0, 1, &c_mode); } break; case SIMCONNECT_TEXT_RESULT_MENU_SELECT_2: { // Set Standby SimConnect_SetClientData(g_hSimConnect, 0, 2, 0, 0, 1, &stby_mode); } break; case SIMCONNECT_TEXT_RESULT_MENU_SELECT_3: { // Send IDENT (probably need to send it more than once?) SimConnect_SetClientData(g_hSimConnect, 0, 4, 0, 0, 1, &x_ident); } break; } } break; } } // This callback processes all SimConnect related messages // It is similar to the call in the dispatch handler (message pump) in a windows application // But the interesting part is that no message pump is required for the dll void CALLBACK SimConnectProcess(SIMCONNECT_RECV *pData, DWORD cbData, void *pContext) { // process SIMCONNECT_RECV_ID_XXX values here as needed switch(pData->dwID) { case SIMCONNECT_RECV_ID_OPEN: OnRecvOpen((SIMCONNECT_RECV_OPEN*)pData); break; case SIMCONNECT_RECV_ID_EVENT: OnRecvEvent((SIMCONNECT_RECV_EVENT*)pData); break; } } void DLLStart(void) { // open connection to local SimConnect server SimConnect_Open(&g_hSimConnect, "SquawkBox_Transponder", NULL, 0, NULL, SIMCONNECT_OPEN_CONFIGINDEX_LOCAL); // register callback routine for message processing SimConnect_CallDispatch(g_hSimConnect, SimConnectProcess, NULL); } void DLLStop(void) { // close connection to local SimConnect server SimConnect_Close(g_hSimConnect); }
  11. Hi Pete, when you get back I would like to discuss something with you... you can start by opening the file g2d.dll in the root folder of FSX. Search the string HIGHMEMFIX and look around the variables... I have my own theory, I have tried to contact some people at microsoft without success, so I was thinking that maybe because I don't have an NDA with them they simply ignore me.. In case you are wondering, HIGHMEMFIX=1 prevents (100% of the time) texture corruption/dissapearing in FSX in cases where there is high video memory utilization. I'm sure you are probably the person with the most intimate knowledge of FSX internals, so I was hoping you would at least have a clue of what MS meant or 'what' they were trying to FIX... I'm leaning towards a backward compatiblity/texture addressing modes issue in WDDM, but, thats just a theory.. any help would be appreciated ;) specially, trying to speak to someone at Redmond. Have a good one.
  12. Very clear explanation Pete, thanks. I guess my confusion comes from the fact that you CAN set the flag when building a DLL and the FSX DLL's have all the large address aware flag. Thanks for clarifying.
  13. Pete, I won't deny it, the 'effect' is cool as hel :) however, a 60kts gust TILTING a 767? I freaked out! it looked as if it was rolling to the side, too much :) but worse than that was 'trying' to taxi! (I use the little thumb stick in my CH Thottle as the steering tiler) and it was driving me crazy, I can't imagine it works like that in real life, a 767 its a massive aicraft, will a 30kts wind be noticeable in a 767 to the point it affects taxing? Yeah, I use global mode in ASE (they call it direct wind control i Think) it works fine, but I haven't tried the surface winds limiter, because it is not clear if surface means, SURFACE like, 0 AGL or a 'layer' and it will completely defeat the purpose on crosswind landings :)
  14. Hi, I'm not sure if this is the right place to ask the question, but tried searching the docs and didn't see anything. Are weathervaning effects way exaggerated in FSX or it is just me??? today, Boston and New York were incredible!! winds gusting to 60! now.. in the 'air' it felt ok, but ground handling felt very unrealistic, so I was wondering the following: Does the taxi wind control present in the FS2004 FSUIPC versions 'ease' the weathervaning effects? and most importanly, why is that FSX doesn't have that option! It was driving me nuts today, I just want to know if I'm the only one experiencing this and if anyone any solutions to 'ease', solve or aliviate the problem. I have FSX and use exclusively. Thanks,
  15. Hi Pete, not a problem, JUST a question: most of the FSX SP2 .exe and .dlls were compiled with the large address aware flag. However, FSX modules (like FSUIPC) don't have this flag set. I said its not a problem, because I don't have any, I was just wondering if there is any reason for this. Thanks,
×

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.