Update time!
MAUI is an interesting demon to play with. I am enjoying using it, but, the basically enforced usage of async functions is a bit annoying. I typically run everything into a separate thread regardless, but certain actions seem to still hang unless running as async which makes zero sense, it appears its almost hard coded to expect a async function to be used even if the correct handling is used on a separate thread with main UI invoking... regardless... I have updated all my imported code to async to keep it from having a mental break down.
Also have made some progress with communication using Bluetooth Low Energy (BLE). Originally I wanted to use bluetooth classic on android and BLE on iphones, but for the sake of simplicity, we are going with BLE.
Also, bluetooth classic was causing myself a heap of grief to implement which appears to be an issue with Maui. It seems data can be read from a port faster then if its actually received, resulting in receiving corrupted data, only way around this is adding in random delays to slow down reading process which isn't acceptable. I would check if bytes were available in the port before reading each individual byte, but still would have the same problem.
For simplicity, we are going with BLE since this means both android and iphones should be able to share the same 'core' coding for BLE handling. I still need to test with the iphone, but there shouldnt be differences other then permissions required for iphones.
Permission have to be the biggest pain in the ass ever, it took two 12hour days of trial and error to get a combination of permissions that actually allowed scanning for BLE devices with MAUI. All examples indicate adding the permissions to the android manifest.. which honestly.. did absolutely jack shit. With the correct permissions, we can scan for devices and then filter from there. Inbuilt filtering does not work, at least not with the plugin I am using, it should work... but... it doesnt... instead we get a list of all devices and just filter by name to show all OBDX Pro devices available.
So far BLE seems to be pretty quick, it does setup the tool and get some information from it (same as OBDXplorer does). Next is adding in a navigation menu to search between vehicles/options and finally the juicy stuff, actually testing full reflashing with BLE. Technically speaking, BLE is rated for 1Mbit/s, so.. this is twice as fast as highspeed canbus technically. We should be able to be transfer 128k bytes per second.. so any large 2000+ bytes should be fine. Now.. this is all theoretical until we try it
I expect results to show slower then expected above, purely due to the nature of wireless lag, but I think it will be acceptable.