Jump to content

=VG= SemlerPDX

VG Clan Member (Administrator)
  • Posts

    4,766
  • Joined

  • Last visited

Everything posted by =VG= SemlerPDX

  1. I'm sure now you all can understand how the VG Config Files are not at fault, and never were. We had known this, but were fighting an uphill battle to get others to believe that, something that should never happen. All drama aside, I'm glad we are making some progress with assembling data on a larger scale than Melon and I could have managed. Glad so many are helping out! I'm sure a pattern will emerge soon that will help point us in a new and productive direction. (better than playing the pessimist, anyway )
  2. This was one of the first troubleshooting steps we took. No, have not tested a deployment or custom combat zones scenario.
  3. First, you must traverse the cavern of pillars, and carry the glass of water to the altar without spilling a drop: Ahhh.... 80's movie references! So much fun! (but seriously, I have no idea, I would assume so.)
  4. @=VG= ciro make an account at the PR forums, then send me a friend request. I'll make you a server moderator and you'll have access to files as they distribute them But you can find a zip of the PR1.5 files that is not altered, somewhere on the server. (check documents/downloads folders of all user accounts like mine, my old one, etc.) ALWAYS MAKE BACKUPS FIRST! Move any current folders somewhere or copy them, so we have references and backups to any file or system in our PR Server folders. I'm sure you'll do this, just had to say it so I can rest easy.
  5. First, I want to say, I am not trying to call you out personally, BinkleDinkle. No offense is intended at all, I'm sure we all respect you as a valuable VG member and PR Admin. You are not the only person that has made this false statement so confidently in the past, not the only one this reply is directed at. But I would like misinformation such as this to stop right here and now. This is simply not true. Enough is enough, and no one on the Head Administration team at VG is a liar. When we say that we have experienced this bug on other PR COOP Server(s), it is a factual statement coming straight from an experience we had when we were actively hunting this bug and trying to get to the bottom of it all. When you say such things, you are essentially calling myself and/or Melon a liar. We have zero motivation to lie about this. Your peer and fellow admin (Binary) has just found for himself that this is untrue. When a statement like that is made, it is now essentially calling (Binary) a liar, too. Again, enough is enough. No longer does anyone need to blame VG, or Melon, or myself, as liars when we state with certainty that this is NOT only possible on the VG PR Server, when one of your own peers has experienced it, too. Not sure we ever found this on Deployment, so AFAIK, this is a COOP bug, it is painfully inconsistent, and maddeningly difficult to identify triggering factors. _ We cannot let our opinions about each other enter into these sorts of matters, we can't be treating each other this way and disbelieving each other, and acting as if there is a division between us who Administrate this community and everyone else, between those who regularly play on the server, and those of us who spend more time managing the servers and/or playing other games online, as if we are allowing this bug to perpetuate - we all have the same goal to run clean, stable, fun gaming servers at VG. Just because we aren't there daily doesn't mean we don't feel your pain. For many of us at VG, PR was/is our first love. If you feel people like myself and Melon have "given up", I'd like to remind you that weeks were spent on this with NO leads that paid out, and no serious progress whatsoever. If anything was gained, Melon found and/or ruled out a many number of reasons THAT DO NOT contribute to this issue. But that is truly the extent of it all. When you try something over and over for weeks straight with no results, no new ideas, and no new leads, you have to put it on the back burner or you'll go mad. To anyone with programming knowledge and experience, and a drive to eradicate this bug once and for all, we'd encourage you to apply to join the PR Dev team so that you would have access to files that VG is not in a position to share with the public, or even our PR Admins. Anyone wishing to hunt this bug needs to be armed with more than just our config files, they need full SA Forums & R-Dev Forums access, and ability to access compiled python files, something that is only available to PR Contributors and PR Developers. Thank you all for understanding, and for your help!
  6. People taking advantage of ANY known bug, exploit, or instability should get the same treatment as everyone: Warned for their actions, Kicked and/or Banned for subsequent/frequent abuse or ignorance if it is consistent or intentional! *Taking into account what Acro1 wrote in reply to your question. We gotta be damn sure, so we don't punish people unnecessarily.
  7. Not for Mumble, but TCAdmin already does this for PR... it's why the server restarts so quickly when it crashes (99% of the time) Quite. The server was even freshly installed and given a week without any serious VG modifications to any configs aside from PR Admin assignments and the maps to make it COOP. When the server demonstrated the "fly south bug" crash more than once (on more than one map), we were fairly certain the bug resides in the game. Melon has personally poured through pages of code chasing any lead as far as it would go, to no success. Really can't wait until this one gets wiped out - worst bug ever. It does seem to be specific to COOP mode.
  8. I had a bit more time to spend on this, so I played around with adding in a 3-way toggle switch as buttons, and also using a rotary encoder without interrupt pins. It's just not accurate enough, and that's probably why the interrupts are used for methods like this. But I did get a working example of the 3-way Toggle Switch for you. Works well, I've tested it. There is a debounce delay for the toggle, increase it slightly if the keypress is too fast, but it works for me as is. If you haven't already learned this, for the toggle you'll need to wire a voltage divider, long story short follow this image and you'll be good. The red wire goes to Ground, the yellow wire goes to an Analog pin on your board, and also a 10k Ohm resistor connects it to voltage 3V/5V, whatever. The blue wire goes through a 10k Ohm resistor to Ground. (See Black ground wire on rail / white voltage wire on rail) And here's the sketch with 3 Rotation Axes and the Toggle: https://pastebin.com/sJQEAA8a (click to reveal)/* Modified HSI Knobs Sketch for Falcon BMS / DCS / FSX * with additional 3rd Rotary Encoder (Z Axis) * also with a 3-way Toggle Switch as buttons * for Arduino Leonardo or equiv. clones * by SemlerPDX Sep2019 * VETERANS-GAMING.COM * ( in response to reply at: * https://veterans-gaming.com/index.php?/blogs/entry/32-diy-custom-game-controller-2-dial-hsi-course-and-heading-knobs/ ) * * Rotary Encoders need 2 Intterupt Pins Each - Choose a board that has enough like Arduino Leonardo (or clones) * info on Interrupts: https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/ * * Pins: * Rotary Encoder 1 - (OUTA-OUTB-SW) = Arduino Pins (0,1,15) * Rotary Encoder 2 - (OUTA-OUTB-SW) = Arduino Pins (2,3,6) * Rotary Encoder 3 - (OUTA-OUTB-SW) = Arduino Pins (9,10,7) * * Three-Way Toggle - (Center Post) = Analog Input (A1) * * Three-Way Toggle Switch Wiring Example: * https://veterans-gaming.com/uploads/monthly_2019_09/three_way_toggle_wiring_arduino.png.1524289e8f56690c7ff6d9f321904de9.png * * Encoder Library * https://www.pjrc.com/teensy/td_libs_Encoder.html * * Joystick Library * by Matthew Heironimus * https://github.com/MHeironimus/ArduinoJoystickLibrary */ #define ENCODER_USE_INTERRUPTS #define ENCODER_OPTIMIZE_INTERRUPTS #include <Encoder.h> #include <Joystick.h> //Three Way Toggle Init #define TOGGLE_PIN A1 int previousState; bool aToggled; //Rotary Encoder Push Button Pins // *further buttons added must increment after these (these are 0,1,2) (buttons 1,2 and 3 on controller) int buttonArray[3] = {15, 6, 7}; //Set Toggle Positions as Buttons* (buttons start at 0,1,2,3,4,5 for 6 buttons) int ToggleButton1 = 3; //button 4 on controller int ToggleButton2 = 4; //button 5 on controller int ToggleButton3 = 5; //button 6 on controller //Rotary Encoder Interrupt Pins int EncoderPin0 = 0; int EncoderPin1 = 1; int EncoderPin2 = 2; int EncoderPin3 = 3; int EncoderPin4 = 9; //*Must have board with 6 total interrupt pins int EncoderPin5 = 10; //*Must have board with 6 total interrupt pins //Tell the Encoder Library which pins have encoders Encoder axisXRotation(EncoderPin0, EncoderPin1); Encoder axisYRotation(EncoderPin2, EncoderPin3); Encoder axisZRotation(EncoderPin4, EncoderPin5); //Delay Time between loops int debounceDelay = 260; //Delay Time before button release int toggleDebounce = 10; //Variables to compare current to old values int oldX = 0; int oldY = 0; int oldZ = 0; int RxAxis_Value = 1; int RyAxis_Value = 1; int RzAxis_Value = 1; //Intervals for Jump/Warp Speed Rotations int JumpSpeed = 18; int WarpSpeed = 30; //Set generic joystick with id 42 with 6 buttons and 3 axes Joystick_ Joystick(0x42, 0x04, 6, 0, false, false, false, true, true, true, false, false, false, false, false); //Function to translate Three-way Toggle Analog Value int getToggleState(int aVal) { if(aVal < 100) { aVal = ToggleButton1; }else if(aVal < 900) { aVal = ToggleButton3; }else { aVal = ToggleButton2; } return aVal; } //Function to set Rotation value adjusted for the turning speed int speedVal(int dif, int val, int dir){ int increment = 1; if (dif >= WarpSpeed) { increment = WarpSpeed; }else if (dif >= JumpSpeed) { increment = JumpSpeed; } if (dir == 1) { val = val + increment; }else{ val = val - increment; } //Correct Rotation within 360 deg. if (val < 0) { val = val + 360; }else if (val >= 360) { val = val - 360; } return val; } void setup() { //Toggle Switch Setup previousState = 1000; aToggled = false; //Set Encoder Pins as Pullups pinMode(EncoderPin0, INPUT_PULLUP); pinMode(EncoderPin1, INPUT_PULLUP); pinMode(EncoderPin2, INPUT_PULLUP); pinMode(EncoderPin3, INPUT_PULLUP); pinMode(EncoderPin4, INPUT_PULLUP); pinMode(EncoderPin5, INPUT_PULLUP); //Loop through buttons and set them as Pullups for(int x = 0; x < sizeof(buttonArray); x++) { pinMode(buttonArray[x], INPUT_PULLUP); } //Set Range of custom Axes Joystick.setRxAxisRange(0, 359); Joystick.setRyAxisRange(0, 359); Joystick.setRzAxisRange(0, 359); // Initialize Joystick Library Joystick.begin(false); } void loop() { // Loop through button pin values & set to Joystick for (int x = 0; x < sizeof(buttonArray); x++) { byte currentButtonState = !digitalRead(buttonArray[x]); Joystick.setButton(x, currentButtonState); } //Read Three Way Toggle int analogValue = analogRead(TOGGLE_PIN); int actualState = getToggleState(analogValue); if(previousState != actualState) { //Set Toggle Switch input as Button Press Joystick.setButton(actualState, 1); previousState = actualState; aToggled = true; }else { //Reset button(s) to unpressed state if (aToggled) { aToggled = false; delay (toggleDebounce); for (int a = 3; a < 6; a++) { Joystick.setButton(a, 0); } } } // Read "Heading" X Axis Rotation Encoder Knob int newX = axisXRotation.read(); if (newX > oldX) { //Determine speed of increment & set output int difX = newX - oldX; RxAxis_Value = speedVal(difX, RxAxis_Value, 1); Joystick.setRxAxis(RxAxis_Value); axisXRotation.write(newX); oldX = newX; }else if (newX < oldX) { //Determine speed of decrement & set output int difX = oldX - newX; RxAxis_Value = speedVal(difX, RxAxis_Value, 0); Joystick.setRxAxis(RxAxis_Value); axisXRotation.write(newX); oldX = newX; } // Read "Course" Y Axis Rotation Encoder Knob int newY = axisYRotation.read(); if (newY > oldY) { //Determine speed of increment & set output int difY = newY - oldY; RyAxis_Value = speedVal(difY, RyAxis_Value, 1); Joystick.setRyAxis(RyAxis_Value); axisYRotation.write(newY); oldY = newY; }else if (newY < oldY) { //Determine speed of decrement & set output int difY = oldY - newY; RyAxis_Value = speedVal(difY, RyAxis_Value, 0); Joystick.setRyAxis(RyAxis_Value); axisYRotation.write(newY); oldY = newY; } // Read "QNH" Z Axis Rotation Encoder Knob int newZ = axisZRotation.read(); if (newZ > oldZ) { //Determine speed of increment & set output int difZ = newZ - oldZ; RzAxis_Value = speedVal(difZ, RzAxis_Value, 1); Joystick.setRzAxis(RzAxis_Value); axisZRotation.write(newZ); oldZ = newZ; }else if (newZ < oldZ) { //Determine speed of decrement & set output int difZ = oldZ - newZ; RzAxis_Value = speedVal(difZ, RzAxis_Value, 0); Joystick.setRzAxis(RzAxis_Value); axisZRotation.write(newZ); oldZ = newZ; } //Send Joystick info through USB Joystick.sendState(); delay(debounceDelay); }
  9. Hello and welcome! http://veterans-gaming.com/index.php?/falcon-bms-434/
  10. Dogfighting training is super simple: Press Instant Action, and get busy! You can worry about things like weight and balance later - first get familiar with the Dogfight mode systems and have fun with it. Seriously, though, it doesn't come up much, but it's good to practice. For setting controls and testing things, I always use Instant Action, and it's a turning game. Clean your monitor, cuz it's about finding that tiny bird on your tail and getting onto his tail. Cover the bits in the manual, learn the 330-440 rule (speeds for highest turning potential in CAT1) and watch your G's. The ACM of the Dogfight mode is a vertical slice for the turning battle, so it instantly locks onto a target in front, within 20 degrees. And EEGS is my favorite Guns mode, you can set this as well and test out the different modes in Instant Action much faster than a scheduled flight with RAMP/TAXI/ETC. The Guns funnel of the EEGS gives a great visual representation of where your cannon fire will go. Try for that one good short burst as you don't carry much ammo. Give it a try, you'll like it.
  11. I've taken an idea past the design phase and nearly to the patent phase before I decided the venture would end up rather out of my scope, requiring a manufacturing investment on my part greater than 50% to retain ownership of my own idea and product. In that time, I learned a lot about such projects. Namely, you can't do it alone, and you'll need to protect yourself as you go. First step would be to form (in your country/province) a simple company that can hold the ownership of the assets and ideas, to which you are the controller. In America, a limited liability company would be the way to go, setup fees and process are very simple and online resources abound. Find something like that for yourself. From there, you can start to get help from one or more consultants or contributors, and for that you really want to have them sign a non-disclosure, non-circumventing, non-competing agreement. This makes it possible for you to share information that is sensitive with people you need to help you along the way. You will want to review and tailor to your needs, but here is an example: sample-NDA-NCV-NCP.txt *You must have forms like this created correctly or they may not be legally binding, make sure all information is correct, and all should be well.
  12. Welcome to our website, @Blu3wolf! Very helpful & detailed info on combat flight training, thanks! @=VG= Kavelenko The difference with a real pilot vs. what we do is that we enjoy going out on whatever mission piques our interest, SEAD, Strike, Air Interdiction, CAP, CAS, etc. and in the real world, squadrons are built upon specialties in a majority of cases. Seems there are multi-role squadrons, but essentially, a majority of squadrons specialize in a specific task if I am not mistaken. This could get rather boring for the PC sim pilot, so it's good we're not so restricted, and also that VG is a very casual PvE COOP style group - frag whatever missions you want, and even severe losses of player controlled aircraft won't detract from the actual war effort significantly. A training track might start diverging near the end, while the beginning would be very streamlined. But having a couple different tracks for players to follow, what to read and when in the Dash1/Dash34 and Training Manuals, and references, would be very unique if they focused on giving the new player the essentials and offering those who want to know everything a deeper dive. If I wanted to train someone on the AIM-120C, in the F-16, they could breeze through the BVR training, or really get into it and even study a real world manual on the AIM-120C (I just looked around my PC and thought I had one of these, I remember diving deep in the training, but can't find that IRL slammer manual anywhere!). A training track for VG might include that deeper layer for those who want more, as well as self check tests, and maybe even some kind of formal public test with an already "certified" pilot at VG. We won't ever restrict who can fly at VG, but I agree that it would be nice to have a small flight school here, or at the very least an informal training track for people to follow to help guide them through the many manuals and aspects of flight training. _____ I had a mind to create several SOP's for the VG BMS Server, for regulars and newcomers alike, but I still have my own questions about how everything runs in this new version, so it's not the time for me personally to start creating instructional content, though I'd like to before too long. The materials already exist in the manuals, my only goal would be to make quick essentials guides heavy on info-graphics, leaving the deeper reading to those who want to know more. Fragging missions could be boiled down to a much more simple procedure, again leaving the details and nuanced bits for those who want to know more. It's really basic to right click on the map anywhere and add an Air Interdiction with one or three wingmen, I think it's the recon part that gets things complicated as well as the various types of missions. Fragging a CAP in Mig Alley requires far less recon and additional tasking vs. (for example) an OCA Strike Package, I hope that goes without saying. Someone might make a dirty 5 step guide to frag a CAP, for example, but might need at least 3 more steps for an OCA Strike due to the extra data on stationary targets, getting that info saved to the DTC, etc.
  13. lol - yea. You must have been away at the time. It's a standalone, so you don't uninstall 4.33.5 if you don't want to, for example I still have 4.32 and 4.33 and now 4.34 installed on my PC, and can fire up any of them and fly. But yea, we're on 4.34 now, and there have been some notable changes to the radios and the SOP for taxi/takeoff/departure/approach/landing/etc. The presets have changed and Jeffu's guide on Radios in 4.34 talks all about it. Of course, complete information is in the included docs folder. The cockpit looks a little different, too, IIRC with the T-ILS knob missing, gone digital or something. I had to retrain for that, threw me for a loop first time I tried to come in for a landing in 4.34
  14. I'd love to bring back the Medals and Ribbons module for this website. Was a great way to have a history of activity at VG over time, and gives us the ability to do things like that ensignia thingy if desired. I did it once for a series of game events, participants received campaign ribbons for their profile that included the date of the event, and a special one for those who all three parts of the event. I miss that. Thing is, I looked into it, and I don't want to pay for some IPS module that someone else did (annual renewal fees, ug!), so it would take some talent on our end to craft. PHP anyone? We'll see what's possible in time, just a thought.
  15. I tossed together this highly technical info-graphic to highlight the knowledge barrier that all sim pilots must bypass in order to proceed with flight training
  16. I have a curriculum I was working on many years ago, about the time a group created a website as a dedicated flight school for BMS. I figured they could do better, so it went off by the wayside. I could finalize it and assemble it into proper materials that anyone could direct a new player through. Key features included initial technical setup of controls, bindings, config, all the way through warning/threat sound training using the original TacRef from earlier versions of BMS that still had sounds to play, and of course, directing the player through the in-game Training Missions and Training Manual that accompanies it. I don't have the patience to be a trainer, I've done it a few times and I'd just about need a tranquilizer if I was to do it again. I'd rather write up materials, create instructional screenshots in PhotoShop, or short videos rather than sit in a pit and direct a new player around the cockpit.
  17. Now and then, other games hook me for a short while, but I always return to my absolute favorite. I told myself I'd retrain in 4.34, and I left off at LANTIRN and Maverick training missions. Wanted to also breeze through the ILS in bad weather, too, so I'll be online more in the coming weeks. Trying to force myself to be more regular, so might make a regular flight day just so I stop falling out of practice. Been doing this for nearly ten years, but whenever I take a few months off, I end up having to re-learn how to ride that bicycle See you at Angels 20 before long!! Thanks for flying at VG!
  18. *For your three way toggle switch, set it up as buttons in the same way the encoder buttons are set - give each pole a pin, follow the circuit diagram for where to put resistors/ground/etc., and play around with it until each flip of the switch causes a single button press of whatever 3 buttons that is set to. Read the instructions on the Joystick Library link, it shows the format for the VOID SETUP bit for setting a generic joystick with so many axes and so many buttons, and add three to the buttons count for your switch. Other than that, you will need to play around and learn a bit to get it to work as I'll be unavailable and you'll not want to wait for me to work it out for you. Tons of info on this on flight sim forums of cockpit builders, I'm not the best source for info on that. Cheers!
  19. @Arnaud Just a quick update for you: I have not had a lot of time to spend on this, I've been busy and I'm not really a pro at this stuff, so I'm far less helpful than posting these questions on one of the micro-controller discussion forums. BUT I have read a bunch of them, and I went back to review a few. There are others who've wanted to use tons of rotary encoders, even asking if it's possible to do them in a matrix array like a button board does. In the end, I think the most helpful page I landed on discussed changing any pin into an interrupt. Now, I've not fully wrapped my head around it yet, as I am again busy and when I'm done, I just want to veg and play mindless games for now, but I wanted to share this with you in case you have the drive to chase it down yourself. Aside from buying the proper board for the task, something with enough interrupt pins to work out of the box for the project, it might be possible to get creative, but it will require you to learn even more about this topic to make your idea work with your current gear. Here's the link - best wishes and good luck! I may not be able to help you finish your project, but if you have any simple questions, or need to know something else about my method, feel free to ask! https://playground.arduino.cc/Main/PinChangeInterrupt/
  20. YAAARRRRRRRR!!!!! :biggrin:
    YARRRR.PNG

     

    ...yar. :Alvarin_07:
    yarrr.PNG

  21. *Now that I thought about it, I wonder if you need all the functions of the HSI buttons (Warp Speed/Jump Speed) and could go analog with the QNH, 1 step at a time, with a different method. I'll think about it over the next few days. It's a matter of talking to the encoder library or joystick library in some way to enact a change, and within those two libraries there may be functions to get around the interrupts, I just didn't do it for my method. We'll see. Some additional reading I'll review, you might too, on Rotary Encoders: https://dronebotworkshop.com/rotary-encoders-arduino/
  22. Thanks for the heads up on the button array - I literally forgot to increment the size of the array. Didn't test (and it's late). I've edited my reply so we don't trip up the next guy who goes through all this. Cheers! If the new rotary isn't working then those pins are not Interrupt pins on that board (looks like the generic Pro Micro like I used), I literally took a shot in the dark based on what I now assume was an incorrect pinout on google images. I've looked it up proper now, and for the record, I was mistaken - there are only 5 interrupt pins on the pro-micro. 3 rotary encoders in the method I have used in my DIY would require 6 total. (quoted from: https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/hardware-overview-pro-micro ) There are other equally affordable boards that have more, this Pro Micro is just designed for much smaller projects. The name brand Arduino Micro shown in the top most image has 6 or 8 interrupts (off the top of my head), but is a bit pricey for a DIY at around $18. I've found a slightly cheaper version here that has 8 interrupt pins and could handle your modified sketch. Otherwise, if you bought a 3 pack of those just like I did in my DIY, you could get away with (if you have 2 usb ports open on your PC) doing 2 controllers to save money. You'd just use the same sketch but increment the Joystick ID from 0x42 to 0x43. But for $14, might as well do it right, it's up to you. Just remember for future, you can hang on to old gear for new projects later, you never know. https://www.amazon.com/Gowoops-Arduino-Leonardo-Controller-ATmega32u4/dp/B00J1X5B7Y/ *Leonardo would be required for the total of 3 rotary encoders, as it has enough interrupt pins for the task: https://www.amazon.com/Solu-Leonardo-Compatible-Revision-Atmega32u4/dp/B00R237VGO/
×
×
  • Create New...

Important Information

Terms of Use and Privacy Policy