Skip to content

软件包不同版本的适配说明 #1774

Closed
@kurisaW

Description

@kurisaW

由于不同主线版本不可避免会修改某些函数声明或数据类型,因此对应的软件包也需要尽可能同步适配,通过版本宏去做区分,下面是一个示例

如:
1.在主线版本5.0.2中,分离sensor框架为V1和V2两个版本
image
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>,在该头文件中,会根据宏开关包含对应的头文件,如下图:

image

参考PR:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions