feat(protocan): добавь общий ABI для GUI
This commit is contained in:
@@ -27,7 +27,9 @@
|
||||
| `pcan_ring` | кольцевой буфер, отдаёт непрерывный участок для DMA |
|
||||
| `pcan_id` | упаковка и разбор 29-битного идентификатора ProtoCAN |
|
||||
| `pcan_gas` | общее адресное пространство: карта регионов, чтение/запись, мост к кадрам |
|
||||
| `pcan_abi` | стабильный C ABI для Python, JNI, Swift и других FFI |
|
||||
| `ports/stm32f4` | готовый порт USART + DMA (пакетная передача, кольцевой приём) |
|
||||
| `ports/android` | JNI и Kotlin-фасад; собирает `libsetcore.so` из этого же C99-кода |
|
||||
|
||||
## Кадр
|
||||
|
||||
@@ -93,6 +95,15 @@ size_t my_space(void *ctx);
|
||||
cmake -B build && cmake --build build && ctest --test-dir build
|
||||
```
|
||||
|
||||
Для desktop CMake дополнительно собирает shared library `setcore`
|
||||
(`setcore.dll`, `libsetcore.so` или `libsetcore.dylib`). Публичная граница
|
||||
для приложений описана в `include/pcan_abi.h`; внутренние структуры ядра через
|
||||
FFI не экспортируются. Python-обёртка находится в `python/protocan/native.py`.
|
||||
|
||||
Android-проект подключает `ports/android/Android.mk` и добавляет
|
||||
`ports/android/kotlin` в `sourceSets`. JNI-код занимается только преобразованием
|
||||
типов и временем жизни parser context, а правила кадра и CAN ID остаются в C.
|
||||
|
||||
Либо напрямую:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user