bri3d / esp32-isotp-ble-bridge

ESP32-IDF based BLE<->ISO-TP bridge targeting Macchina A0 hardware
Other
31 stars 28 forks source link

feat: add ability for wifi station instead of only wifi access point + support multiple ISO-TP links + add 0x02 / 0x03 SPP commands to support 4096 byte ISO-TP payloads #5

Closed brandonros closed 3 years ago

brandonros commented 3 years ago

Dear bootmod3,

brandonros commented 3 years ago

Using a WebSocket from an HTTPS page ended up being a bust due to web browser HTTPS -> HTTP protection built into all current major browsers. Looking into WebBLE for iOS non-native app approach.

bri3d commented 3 years ago

data sent over ble is optionally buffered using write_packet in “prep mode” and then sent up the stack using exec_write. https://github.com/bri3d/esp32-isotp-ble-bridge/blob/0893f15e1f3c5f62ac5f897cd2c45efa6e4bb7cf/main/ble_server.c#L479

On Sat, Aug 21, 2021 at 2:17 PM Brandon Ros @.***> wrote:

@.**** commented on this pull request.

In main/ble_server.c https://github.com/bri3d/esp32-isotp-ble-bridge/pull/5#discussion_r693396712 :

@@ -327,21 +323,24 @@ void send_task(void *pvParameters) free(event.buffer);

hypothetically, would this work for really long messages? like can the bluetooth characteristic descriptor really handle being say... 0x100 bytes long? 0x1000?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bri3d/esp32-isotp-ble-bridge/pull/5#pullrequestreview-735519120, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABTO2M62LAQJRERSEX5LZLT6ACWFANCNFSM5CSBZ7LA .

Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

brandonros commented 3 years ago

got performance over 6k-7k bytes per second flash wise, can totally handle 0xFFD byte chunk sizes (the max supported by ISO-TP + UDS)

brandonros commented 3 years ago

@bri3d ready to merge if you are ok with it. it's beefy, i know. but... it can flash an MED17 OBD about as fast as a Tactrix hooked up to a PC can :)

bri3d commented 3 years ago

the pull request description is great :)

it's interesting to me that the queued writes (is_prep / execute_write pair) didn't work to send long messages so you had to implement a custom command layer instead. I'm not mad about it and it's probably more compatible than trying to rely on queued writes anyway - when I was starting in on some client drivers it seemed that support for them was spotty. and you didn't really alter the is_prep/execute_write attempt so I'm not worried about the extra functionality.

bri3d commented 3 years ago

also, this is awesome - you took a crappy hack project I made and turned it into something useful.