Skip to content

Conversation

@Koseng
Copy link
Contributor

@Koseng Koseng commented Jun 3, 2021

Moved to asyncio, including a sync wrapper. So everything should be compatible. Introduced async_get(...) next to get(...).

To call async functions, an event loop is necessary. This is provided by the helper thread in AsyncLoop. With that helper, a sync wrapper can be put on top of the async implementation.

Please test.

I also tried tried an implementation with asyncio Futures to replace the wait and sleep pattern. It is the asyncio way to wait for a callback. But it turned out to be much slower in the sync case, so I returned to the current implementation.

@Koseng Koseng mentioned this pull request Jun 3, 2021
@Koseng
Copy link
Contributor Author

Koseng commented Jun 4, 2021

Example async client test code:

import asyncio
from SimConnect import AircraftRequests, SimConnect

async def main():
        sm = SimConnect()
        aq = AircraftRequests(sm)
        while True:
            results = await asyncio.gather(
                        aq.async_get("RUDDER_DEFLECTION"),
                        aq.async_get("AMBIENT_PRESSURE"),
                        aq.async_get('RADIO_HEIGHT'),
                        aq.async_get("GROUND_ALTITUDE"),
                        aq.async_get("RUDDER_DEFLECTION"),
                        aq.async_get("AMBIENT_PRESSURE"),
                        aq.async_get('RADIO_HEIGHT'),
                        aq.PositionandSpeedData.async_get('PLANE_LATITUDE'),
                        aq.PositionandSpeedData.async_get('PLANE_LONGITUDE'),
                        aq.PositionandSpeedData.async_get('PLANE_ALTITUDE'),
                        aq.FlightInstrumentationData.async_get('KOHLSMAN_SETTING_HG'))
            print(results)
            await asyncio.sleep(0.3)

asyncio.run(main())

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant