27 个版本 (17 个破坏性版本)
新 0.18.0 | 2024 年 8 月 17 日 |
---|---|
0.17.0 | 2024 年 5 月 28 日 |
0.16.1 | 2024 年 5 月 28 日 |
0.5.0 | 2024 年 3 月 31 日 |
#22 in 机器人
每月下载 424 次
在 8 个 crates 中使用 (7 个直接)
65KB
1K SLoC
vex_sdk
对 VEXos 用户跳转表函数的原始绑定。
此存储库作为 VEX V5 运行时 SDK (libv5rt.a) 的部分开源重新实现,但不一定旨在与 API 或 ABI 兼容。此 crate 的目的是作为构建块,用于在 V5 脑上运行高级 rust 工具,而无需以任何方式链接 C 库。
- 跳转表和固件地址偏移量主要来自 cetio 的 VEXAPI 研究存储库。
- 符号和函数签名来自公开来源,例如 PROS 内核和 v5rtmod 等项目。
[!WARNING] 这完全是未经授权的,与 VEX 机器人没有任何关联、认可、支持或创建。
稳定性
[!CAUTION] 由于
vex_sdk
仅提供固件地址偏移量的绑定,因此无法对这些 API 提供稳定性保证。使用此 crate 有风险 - 这些可能会在任何时候随着固件更新而更改(尽管可能不会以重大方式更改,因为这会破坏现有的用户程序)。
SDK 覆盖范围
此项目旨在覆盖在 v5_api
SDK 中公开可用的所有符号,以及任何已公开发布的私有符号(如 vexTaskAdd
)。
在 libv5rt
中存在但目前在 vex_sdk
中不存在的功能
- 除
v5_api.h
和v5_types.h
以外的大部分内容。这包括“用户函数”,这些函数基本上是传递端口索引的直接便捷方法(例如,vexImuReset
与vexDeviceImuReset
)。 vexSystemVersion
、vexStdlibVersion
、vexSdkVersion
、vexStdlibVersionLinked
和vexStdlibVersionVerify
,因为这些不是跳转表上的实际函数,只是地址上的数据。将来可能添加支持。- 大多数私有 API 符号*。
vexDeviceAiCamX
函数系列目前缺少绑定,但计划提供支持。
私有 API 符号
libv5rt中许多符号被保留为私有(即不包括在公共头文件中)。这通常是为了稳定性原因(VEX不想过早承诺稳定的API),或者是为了不暴露一些低级/调试函数。一般来说,这个仓库试图避免在私有API中暴露任何内容。例外情况是VEX或合作伙伴开发者为各种原因或演示而公开发布的功能。这包括以下功能:
vexTaskAdd
vexTaskGetCallbackAndId
vexTaskSleep
vexDeviceAdiAddrledSet
vexTasksRun
(在合作伙伴SDK中称为vexBackgroundProcessing
)vexDisplayClipRegionSetWithIndex
特别不鼓励使用这些API,因为它们可能会在任何时候因固件更新而中断。请谨慎使用(或者最好是根本不使用...)
依赖关系
~205KB