Closed
Description
由于不同主线版本不可避免会修改某些函数声明或数据类型,因此对应的软件包也需要尽可能同步适配,通过版本宏去做区分,下面是一个示例
如:
1.在主线版本5.0.2中,分离sensor框架为V1和V2两个版本
2.在主线版本5.1.0中,修改fetch_data函数声明为:
rt_ssize_t (*fetch_data)(struct rt_sensor_device *sensor, void *buf, rt_size_t len);
相关PR:
参考修改方式如下:
#include <rtthread.h>
#include <rtdevice.h>
#if defined(RT_VERSION_CHECK)
#if (RTTHREAD_VERSION >= RT_VERSION_CHECK(5, 0, 2))
#define RT_SIZE_TYPE rt_ssize_t
#else
#define RT_SIZE_TYPE rt_size_t
#endif
#endif
ps:原本对于sensor软件包需要包含头文件sensor.h或sensor_v2.h,我们替换为#include <rtdevice.h>,在该头文件中,会根据宏开关包含对应的头文件,如下图:
参考PR:
Metadata
Metadata
Assignees
Labels
No labels