The C client previously set a very short read timeout because it was required
by the plugin. To compensate for this on the client side, we would try to
read several times in a loop. Since the plugin no longer uses the C client for
networking, we can do away with the loops and set a proper timeout.
- Added global position drefs for multiplayer aircraft.
- Added checks for the "don't change" sentinel value to SetPosition, SetOrientation and SetFlaps.
- Reordered validation checks in SetGear to be consistent with the above methods.
- Removed some now redundant "don't change" value checks in the MessageHandlers class.
- Swaped names of openUDP and aopenUDP.
- openUDP is now the "automatic" version, requiring only the X-Plane IP address.
- aopenUDP is now the "advanced" version, requiring both the X-Plane port and a client port.
- Added support for passing NULL to sendTEXT.
- The Get method no longer assumes unknown drefs are floats.
- The Get method now properly accounts for the fact that the dref data type is a bitflag.
- Binary drefs are now properly read and packed into `values`.
- This is a rather inefficient process, as it quadruples the number of bytes we have to send out. Should look into better ways to do this in the future.
- The Set method now handles data types correctly.
- The Set method now supports binary datarefs.
- Improved logging of edge cases.
- Added a check to warn about setting read-only datarefs if verbose logging is enabled.
- openTest now validates that "localhost" resolves to "127.0.0.1".
- sendTEXTTest now sets and clears text. Note that since there is no way to externally verify the result of a TEXT command, the user must now step through this test using the debugger to fully verify functionality.
- requestDREFTest renamed to getDREFTest.
- getDREFTest now gets one dataref of each type except multidimensional arrays.
- sendDREFTest now sets one dataref of each type except mulidimensional arrays.
- sendDREFTest now attempts to set a read-only dataref. Need to work out how to test the result of this effectively.
- psendCTRLTest & sendCTRLTest now test multiple values, default values and sending only some parameters.
- Added psendPOSITest.
- psendPOSITest & sendPOSIest now test multiple values, default values and sending only some parameters.
- sendWYPTTest now clears waypoints before setting them.
- These tests create a great deal of duplicated work.
- The only errors caught by these tests would be errors that occur in the C client only when compiled by a C++ compiler.
- This error case is deemed unlikely enough that it is not worth the extra work to maintain two sets of tests.
Fix Bug- readUDP loop in getDREF Response only ran once no matter what.
This wasn’t enough time for the plugin to send a response.
Note: You can try increasing the timeout, but the plugin has to have a
socket with a timeout of 1ms or less. If the timeout is higher than
that a lag is introduced.