This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2652R7:为 TI CC2652R7构建接触式传感器应用

Guru**** 2460850 points
Other Parts Discussed in Thread: CC2652R7, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1229899/cc2652r7-building-the-contact-sensor-app-for-ti-cc2652r7

器件型号:CC2652R7
"Thread: SysConfig"中讨论的其他器件

您好!

我们已成功使用在 TI 的 CC2652R7 (repo branch v1.0-ti-branch)上运行的 Matter-TI ./examples/lock-app/cc13x2x7_26x2x7。

根据 TI 硬件、我们现在想切换到另一个示例。 特别是、我们必须了解 Contact-sensor-app 如何呈现给 HomeKit 用户、并注意 Matter-sensor-app 确实存在于 Matter-TI 树中、但它打算在./examples/contact-sensor-app/nxp/k32w/k32w0硬件上而不是 TI 硬件上运行、这一点非常重要。

您有没有什么一般性建议可以帮助我更改 Matter-TI lock-app 以使其代表接触式传感器?

我们知道将会遇到以下问题:

对于 TI Lock-app、将 lock-app 添加到 HomeKit 所需的 QR 代码数据为"MT:8IXS122C00KA0648G00"
它由 QR 代码图像表示: project-chip.gitHub.io/.../qrcode.html

如何学习"MT:……" 将联系人-传感器-应用程序添加到 HomeKit 所需的 QR 码数据?

是否有任何安全证书障碍或其他您可以预见的事情可能会阻碍我们尝试在 CC2652R7上运行并添加到 HomeKit 中(通过 QRcode 扫描)的正常工作的接触传感器应用?

提前感谢、
Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Steve、您好!

    您有没有什么一般性建议可以帮助我更改 Matter-TI lock-app 以替代联系人传感器?

    我想先在 contact-sensor-app 内部为 cc13x2x7_26x2x7创建一个新目录、 然后 将 lock-app/cc13x2x7_26x2x7的内容复制/粘贴到该目录中。

    然后检查 build.gn 文件、以将任何引用更改为"lock"。

    其他步骤将包括移植这些文件:

    并相应地修改 chip.syscfg。

    Unknown 说:
    如何学习"MT:……" 将联系人-传感器-应用程序添加到 HomeKit 所需的 QR 代码数据?

    我们的示例传递到 QR 代码中的信息如下: maty/AppTask.cpp at v1.0-ti-branch·TexasInstruments/Matter·GitHub

    这包括产品 ID、供应商 ID 和鉴别器-足够的信息、以便调试器(如 iOS Home App)可以建立一个安全通道(ASE over BLE)来共享(Thread)网络凭证。

    这些信息可在此处找到:

    是否存在任何安全证书障碍或您可以预见到的其他事情可能会阻碍我们在尝试让一个可正常运行的联系人传感器应用程序在 CC2652R7上运行并添加到 HomeKit 中(通过 QRcode 扫描)?

    我认为 PID 和 VID 的测试值应该仍然有效、但对于实际产品、您需要从 CSA (或其他机构)获得官方 VID/PID。

    谢谢。
    待机

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Toby:

    我的,这将给我一个伟大的开端! 我非常感谢。 谢谢你。

    Steve。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Toby:

    我的工作开始顺利、准备好开始构建 cc2652R7 contact-sensor-app、但我立即遇到难题。

    我已经在以下位置为一个新示例创建了源文件:

    /examples/contact-sensor-app/cc13x2x7_26x2x7

    我使用的 args.gni 和 build.gn 文件与我在构建锁应用程序时当前使用的文件相同。 正如你所建议的那样、我针对新的/examples/contact-sensor-app/cc13x2x7_26x2x7.编辑了 build.gn 我已经完成了这项工作、但有一个地方我不确定应该如何编辑。 build.gn 中的这个点

    …μ A 在 lock-app 的 build.gn 中为:
    TI_simplelink_SDK ("SDK"){
     include_dirs =["${project_dir}/include"]
     public_configs =[":lock_app_config"]
    }

    …μ A 对于新的 contact-sensor-app、build.gn 中的内容如下:
    TI_simplelink_SDK ("SDK"){
     include_dirs =["${project_dir}/include"]
     public_configs =[":contact_sensor_app_config"]
    }

    我不知道"contact_sensor_app_config"是否需要与整个构建树的某些其他部分匹配、或者与什么匹配。 例如、不知道它是如何与其他任何东西连接的。

    我感到怀疑的主要原因是我遇到了无法解释的构建故障。 这:

    $ CD $TI_MatterBaseDir/examples/contact-sensor-app/cc13x2x7_26x2x7
    $ gn gen out/debug --args=ti_sysconfig _root="/Users/Kranz/ti/sysconfig_1.14.0 "
    命令行"--args":1:19上的警告:build 参数无效。
    TI_SYSCING_ROOT="/Users/Kranz/ti/sysconfig_1.14.0 "
                     ^----------------
    变量"ti_sysconfig _root"设置为生成参数
    但从未出现在任何 buildfile 中的 declation_args()块中。

    要查看所有可能的参数,请运行"gn args --list" "

    编译继续进行、就像未指定该参数一样。

    停止更新。 在682ms 内从288个文件创建了5759个目标

    我知道这只是一个警告、但尝试进入构建的下一阶段(ninja -v -C out/debug)绝不会编译新的源文件。

    请注意、如果我在工作中的锁定应用程序中运行命令、我不会遇到此类错误。 此示例:

    $ CD $TI_MatterBaseDir/examples/lock-app/cc13x2x7_26x2x7
    $ gn gen out/debug --args=ti_sysconfig _root="/Users/Kranz/ti/sysconfig_1.14.0 "
    停止更新。 在431ms 内从116个文件中创建了137个目标

    你有什么想法吗?

    谢谢。
    Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Steve、

    您能否提供您正在处理的 build.gn?  在尝试构建之前、您是否确保删除了任何现有的输出/调试文件夹?  

    在稍微相关的方面、我最近能够将 cc13x2x7_26x2x7文件夹从 mater\examples\lock-app 复制到 mater\examples\light-switch-app 并替换 附加的文件、从而将 lock-app 移植到 light-switch-app。  也许您可以比较 build.gn、并对任何观察到的差异(除了 应用/项目命名约定外)进行注释

    e2e.ti.com/.../matter_5F00_modify_5F00_lock_2D00_app_5F00_to_5F00_light_2D00_switch_2D00_app.zip

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    很抱歉响应延迟。 以下是您提出的两个问题的答案:

    1.是的,我先删除了 out/debug 文件夹。

    2.$ cat build.gn.

    #版权所有(c) 2020 Project CHIP 作者
    #
    #根据 Apache 许可证,版本2.0许可("许可证");
    #您不能使用此文件,除非符合许可证。
    #您可以从获得许可证的副本
    #
    # www.apache.org/.../LICENSE-2.0
    #
    #除非适用法律要求或书面同意,软件
    #根据许可证分发的是按"原样"分发的,
    #没有任何形式的保证或条件,无论是明示的或暗示的。
    #请参阅许可以了解特定语言管理权限和
    #限制在许可证下。

    导入("//build_overrides/build.GNI")
    import ("//build_overrides/chip.GNI")
    导入("//build_overrides/openthread.GNI")
    import ("//build_overrides/ti_simplelink_sdk.ni")

    导入("${build_root}/config/defaults.gni ")

    导入("${CHIP_ROOT}/src/platform/device.gni ")

    导入("${ti_simplelink_sdk_build_root}/ti_simplelink_executive.gi")
    导入("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gi")

    断言(CURRENT_OS ="FreeRTOS")

    project_dir ="${chip_root}/examples/contact-sensor-app/cc13x2x7_26x2x7

    TI_simplelink_SDK ("SDK"){
     include_dirs =["${project_dir}/include"]
     public_configs =[":contact_sensor_app_config"]
    }

    TI_SysConfig ("SysConfig"){
     源=["${project_dir}/puzL.syscfg"]

     输出=[
       "TI_RADIO_CONFIG.c"、
       "TI_RADIO_CONFIG.h"、
       "TI_DRIVERS_CONFIG.c"、
       "TI_DRIVERS_CONFIG.h"、
       "TI_ble_config.c"、
       "TI_ble_config.h"、
       "TI_dmm_application_policy.c"、
       "TI_dmm_application_policy.h"、

       #被禁用,直到上行生成对齐
       #"tiop_config.h"、
       #"tiop_config.c"、

       #不是传统的源文件
       #"ti_utils_build_linker.cmd.genlibs"、
       #"syscfg_c.ROV.xs"、
       #"ti_utils_runtime_model.gv"、
       #"ti_utils_runtime_Makefile"、
       #"ti_ble_app_config.opt"、
       #"ti_build_config.opt"、
     ]

     public_configs =[":SDK_DMM_config"]

     CFLAGS =[
       "-无注释"、
       "@"+ rebase_path ("${target_gen_dir}/sysconfig/ti_ble_app_config.opt)"、
                         root_build_dir)、
       "@"+ rebase_path ("${target_gen_dir}/sysconfig/ti_build_config.opt)"、
                         root_build_dir)、
     ]
    }

    ti_simplelink_executable ("contact_sensor_app"){
     output_name ="chip-${ti_simplelink_board}-contact-sensor-example.out"

     源=[
       "${CHIP_ROOT}/examples/providers/DeviceInfoProviderImpl.cpp "、
       "${CHIP_ROOT}/src/platform/cc13x2_26x2/CC13X2_26X2DeviceAttestationCreds.cpp "、
       "${CHIP_ROOT}/src/platform/cc13x2_26x2/CC13X2_26X2DeviceAttestationCreds.h "、
       "${project_dir}/src/AppTask.cpp "、
       "${project_dir}/src/ZclCallbacks.cpp "、
       "${project_dir}/src/main.cpp "、
     ]

     DEPS =[
       ":SDK"、
       ":SysConfig"、
       "${CHIP_ROOT}/examples/contact-sensor-app/contact-sensor-common "、
       "${CHIP_ROOT}/src/lib "、
     ]

     如果(CHIP_OPENTHREAD_FTD){
       deps +=["${chip_root}/third_party/openthread/repo:libopenthread-FTD"]
     }其他{
       deps +=["${chip_root}/third_party/openthread/repo:libopenthread-MTD"]
     }

     include_dirs =[
       "${project_dir}"、
       "${CHIP_ROOT}/examples/providers /"、
     ]

     CFLAGS =[
       "-Wno-immin-fallthrough"、
       "-wno-sign-compare"、
       "-Wconversion"、
     ]

     output_dir = root_out_dir
    }

    GROUP ("cc13x2x7_26x2x7"){
     DEPS =[":contact_sensor_app"]
    }

    组("默认"){
     DEPS =[":cc13x2x7_26x2x7"]
    }

    如果您发现我应该更改的任何内容、请告知我。 谢谢!

    Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    ... 除了我之前的回复外、我还想补充一点、我之前导入了您提供的 Matter_modify_lock-app_to_light-switch-app.zip

     事实证明,我遇到了与我描述的接触传感器应用程序相同的问题。 换言之:

    $ gn gen out/debug --args=ti_sysconfig _root="/Users/Kranz/ti/sysconfig_1.14.0 "
    命令行"--args":1:19上的警告:build 参数无效。

    谢谢、Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Steve、您好!

    感谢您提供整个 build.gn 文件。  我看不到任何明显的构建问题指标。  持续警告表示编译环境存在差异。  请注意、我使用最新的 TI Matter 存储库和 SysConfig 1.15作为构建参数。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    是的、也许您是对的。 我正在使用 TI-Matter 分支"v1.0-ti-branch"、我很好奇您使用的是哪一个? 此外,是否有一种方法,我可以自己学习到一个新的 repo 版本是可用的,然后可以看未来的?

    谢谢、Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这里是 所有提交的历史记录 、您可以选择"Watch"按钮查看通知选项。   应针对最新推荐的 SysConfig 版本更新自述文件。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Ryan、我将从一棵新树开始、这些是我上次使用的步骤、现在我已经再次尝试了。 希望这是正确的(我还将转换到 SysConfig 1.15)。

    $ mkdir ~μ C/TI-Matter
    $ git clone --递归 se-submodules github.com/.../matter.git
    $ CD ~/TI-Matter/matter
    $ git 子模块 update --init

    $ git 状态
    在分支 v1.0-ti-branch 中
    您的分支机构已更新为"origin/v1.0-ti-branch"。
    没有要提交的内容,工作树干净

    $ git log -n 1.
    提交8a3ca52165e54701bac483c37d83f6da79c63e16
    合并:ae743eb aad19cd
    作者:adabreuti <76965454+ adabreuti@users.noreply.github.com
    日期:  4月13日星期四16:31:21 2023 -0500
    从 adabreuti/v1.0.0.2下游合并拉动请求#15
    更新照明应用 PID

    我将尝试生成我的 contact-sensor-app、看看我是否可以越过此帖子的最初问题。


    Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    我们采纳了您的建议、并迁移到了最新版本的 TI-Matter 存储库。 我们希望能解决./examples/contact-sensor-app/cc13x2x7_26x2x7构建问题。 我们可能在取得进展、但我们现在似乎遇到了与以前不同的错误。 `仍然无法完成 μ s gn 生成/调试…` 步骤。 我在下面提供了详细信息:有什么想法吗?

    //毒性
    机器:MacBook Pro
    芯片: 四核英特尔酷睿 i7
    MacOS:Monterey 12.6.6

    // REPO 设置。
    $ mkdir ~μ C/TI-Matter
    $ git clone --递归 se-submodules github.com/.../matter.git
    $ CD ~/TI-Matter/matter
    $ git 子模块 update --init
    $ git 状态
     在分支 v1.0-ti-branch 中
     您的分支机构已更新为"origin/v1.0-ti-branch"。
     没有要提交的内容,工作树干净
    $ git log -n 1.
     提交8a3ca52165e54701bac483c37d83f6da79c63e16
     合并:ae743eb aad19cd
     作者:adabreuti <76965454+ adabreuti@users.noreply.github.com
     日期:  4月13日星期四16:31:21 2023 -0500
     从 adabreuti/v1.0.0.2下游合并拉动请求#15
     更新照明应用 PID

    $源脚本/ activate.sh   
    $源脚本/ bootstrap.sh

    $ mkdir ~/TI-Matter/matter/examples/contact-sensor-app/cc13x2x7_26x2x7
    $ CD ~/TI-Matter/matter/examples/contact-sensor-app/cc13x2x7_26x2x7
    …我把我的文件集放在这里,并按照 Lock-app…中的模型建模

    $ gn gen out/debug --args=ti_sysconfig _root="/Users/Kranz/ti/sysconfig_1.15.0 "
    无法解析依赖项时出错。
    //:cc13x2x7_26x2x7 (//third_party/connectedhomeip/build/toolchain/arm_gcc:arm_gcc)
     需要//:contact_sensor_app (//third_party/connectedhomeip/build/toolchain/arm_gcc:arm_gcc)

    注:
    我们可以在此 TI-Matter 存储库中构建其他合理的东西、例如 lock-app/cc13x2x7_26x2x7、但不能在 contact-sensor-app/cc13x2x7_26x2x7中构建。
    我们怀疑问题可能出在 contact-sensor-app/cc13x2x7_26x2x7/build.gn 的底部。 具体而言、这些行:

    GROUP ("cc13x2x7_26x2x7"){
     DEPS =[":contact_sensor_app"]  <—这是正确的值吗?
    }

    以下是我们的完整文件:
    $ cat contact-sensor-app/cc13x2x7_26x2x7/build.gn
    #版权所有(c) 2020 Project CHIP 作者
    #
    #根据 Apache 许可证,版本2.0许可("许可证");
    #您不能使用此文件,除非符合许可证。
    #您可以从获得许可证的副本
    #
    # www.apache.org/.../LICENSE-2.0
    #
    #除非适用法律要求或书面同意,软件
    #根据许可证分发的是按"原样"分发的,
    #没有任何形式的保证或条件,无论是明示的或暗示的。
    #请参阅许可以了解特定语言管理权限和
    #限制在许可证下。

    导入("//build_overrides/build.GNI")
    import ("//build_overrides/chip.GNI")
    导入("//build_overrides/openthread.GNI")
    import ("//build_overrides/ti_simplelink_sdk.ni")

    导入("${build_root}/config/defaults.gni ")

    导入("${CHIP_ROOT}/src/platform/device.gni ")

    导入("${ti_simplelink_sdk_build_root}/ti_simplelink_executive.gi")
    导入("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gi")

    断言(CURRENT_OS ="FreeRTOS")

    project_dir ="${chip_root}/examples/contact-sensor-app/cc13x2x7_26x2x7

    TI_simplelink_SDK ("SDK"){
     include_dirs =["${project_dir}/include"]
     public_configs =[":contact-sensor_app_config"]
    }

    TI_SysConfig ("SysConfig"){
     来源=["${project_dir}/src/puzL.syscfg ]

     输出=[
       "TI_RADIO_CONFIG.c"、
       "TI_RADIO_CONFIG.h"、
       "TI_DRIVERS_CONFIG.c"、
       "TI_DRIVERS_CONFIG.h"、
       "TI_ble_config.c"、
       "TI_ble_config.h"、
       "TI_dmm_application_policy.c"、
       "TI_dmm_application_policy.h"、

       #被禁用,直到上行生成对齐
       #"tiop_config.h"、
       #"tiop_config.c"、

       #不是传统的源文件
       #"ti_utils_build_linker.cmd.genlibs"、
       #"syscfg_c.ROV.xs"、
       #"ti_utils_runtime_model.gv"、
       #"ti_utils_runtime_Makefile"、
       #"ti_ble_app_config.opt"、
       #"ti_build_config.opt"、
     ]

     public_configs =[":SDK_DMM_config"]

     CFLAGS =[
       "-无注释"、
       "@"+ rebase_path ("${target_gen_dir}/sysconfig/ti_ble_app_config.opt)"、
                         root_build_dir)、
       "@"+ rebase_path ("${target_gen_dir}/sysconfig/ti_build_config.opt)"、
                         root_build_dir)、
     ]
    }

    ti_simplelink_executable ("contact-sensor_app"){
     output_name ="chip-${ti_simplelink_board}-contact-sensor-example.out"

     源=[
       "${CHIP_ROOT}/examples/providers/DeviceInfoProviderImpl.cpp "、
       "${CHIP_ROOT}/src/platform/cc13x2_26x2/CC13X2_26X2DeviceAttestationCreds.cpp "、
       "${CHIP_ROOT}/src/platform/cc13x2_26x2/CC13X2_26X2DeviceAttestationCreds.h "、
       "${project_dir}/src/AppTask.cpp "、
       "${project_dir}/src/ZclCallbacks.cpp "、
       "${project_dir}/src/main.cpp "、
     ]

     DEPS =[
       ":SDK"、
       ":SysConfig"、
       "${CHIP_ROOT}/examples/contact-sensor-app/contact-sensor-common "、
       "${CHIP_ROOT}/src/lib "、
     ]

     如果(CHIP_OPENTHREAD_FTD){
       deps +=["${chip_root}/third_party/openthread/repo:libopenthread-FTD"]
     }其他{
       deps +=["${chip_root}/third_party/openthread/repo:libopenthread-MTD"]
     }

     include_dirs =[
       "${project_dir}"、
       "${CHIP_ROOT}/examples/providers /"、
     ]

     CFLAGS =[
       "-Wno-immin-fallthrough"、
       "-wno-sign-compare"、
       "-Wconversion"、
     ]

     output_dir = root_out_dir
    }

    GROUP ("cc13x2x7_26x2x7"){
     DEPS =[":contact_sensor_app"]
    }

    组("默认"){
     DEPS =[":cc13x2x7_26x2x7"]
    }

    谢谢。
    Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否能够顺利构建我的光开关应用程序?  您是否愿意 与我分享~/TI-Matter/matter/examples/contact-sensor-app/cc13x2x7_26x2x7的内容,以便我尝试复制并从我的结尾确认?  您的计算机上是否存在 n ü~/TI-Matter/matter/examples/contact-sensor-app/cc13x2x7_26x2x7/third_party/connectedhomeip/build/toolchain/arm_gcc 目录?

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    感谢您继续深入了解这一点。 以下是您请求的回复。

    1.是,以下文件确实存在:
    /examples/contact-sensor-app/cc13x2x7_26x2x7/third_party/connectedhomeip/build/toolchain/arm_gcc

    2.可以,我可以成功构建 lighting-app/cc13x2x7_26x2x7。

    3.这是一个可以用来重现问题的 tar 文件。 我确认这个极小的示例足以说明这个问题。

    https://www.dropbox.com/s/ds7no51jnap2wfd/cc13x2x7_26x2x7.tar?dl=0

    $ tar TF cc13x2x7_26x2x7.tar
    cc13x2x7_26x2x7/
    cc13x2x7_26x2x7/args.ni.
    cc13x2x7_26x2x7/build.gn
    cc13x2x7_26x2x7/.gn
    cc13x2x7_26x2x7/chip.syscfg
    cc13x2x7_26x2x7/third_party/
    cc13x2x7_26x2x7/BUILD_OVERRIDE
    cc13x2x7_26x2x7/main.cpp
    cc13x2x7_26x2x7/third_party/connectedhomeip

    T 应安装在此处:
    $ CD 示例/contact-sensor-app
    $ tar XF cc13x2x7_26x2x7.tar

    它打算采用以下组件进行构建:
    $ cd ./examples/contact-sensor-app/cc13x2x7_26x2x7
    $ gn gen out/debug --args="ti_sysconfig _root="\"$HOME/ti/sSysConfig_1.15.0\"
    $ echo "ninja -v -C 输出/调试"

    谢谢。
    Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    2.我是指我5月30日提供的定制的光开关 app 实现。

    3.谢谢,但我没有看到 src 文件夹或项目文件,我希望包含在其中。  这是否有意为之?

    此 build.gn 可行、请尝试使用"contact_sensor_app"而不是"contact-sensor_app"(第33行和第73行)

    # Copyright (c) 2020 Project CHIP Authors
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    # www.apache.org/.../LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    import("//build_overrides/build.gni")
    import("//build_overrides/chip.gni")
    import("//build_overrides/openthread.gni")
    import("//build_overrides/ti_simplelink_sdk.gni")
    
    import("${build_root}/config/defaults.gni")
    
    import("${chip_root}/src/platform/device.gni")
    
    import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni")
    import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni")
    
    assert(current_os == "freertos")
    
    project_dir = "${chip_root}/examples/contact-sensor-app/cc13x2x7_26x2x7"
    
    ti_simplelink_sdk("sdk") {
      include_dirs = [ "${project_dir}/include" ]
      public_configs = [ ":contact_sensor_app_config" ]
    }
    
    ti_sysconfig("sysconfig") {
      sources = [ "${project_dir}/chip.syscfg" ]
    
      outputs = [
        "ti_radio_config.c",
        "ti_radio_config.h",
        "ti_drivers_config.c",
        "ti_drivers_config.h",
        "ti_ble_config.c",
        "ti_ble_config.h",
        "ti_dmm_application_policy.c",
        "ti_dmm_application_policy.h",
    
        # disabled until upstream generation is aligned
        #"tiop_config.h",
        #"tiop_config.c",
    
        # not traditional source files
        #"ti_utils_build_linker.cmd.genlibs",
        #"syscfg_c.rov.xs",
        #"ti_utils_runtime_model.gv",
        #"ti_utils_runtime_Makefile",
        #"ti_ble_app_config.opt",
        #"ti_build_config.opt",
      ]
    
      public_configs = [ ":sdk_dmm_config" ]
    
      cflags = [
        "-Wno-comment",
        "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt",
                          root_build_dir),
        "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt",
                          root_build_dir),
      ]
    }
    
    ti_simplelink_executable("contact_sensor_app") {
      output_name = "chip-${ti_simplelink_board}-contact-sensor-example.out"
    
      sources = [
        "${chip_root}/examples/providers/DeviceInfoProviderImpl.cpp",
        "${chip_root}/src/platform/cc13x2_26x2/CC13X2_26X2DeviceAttestationCreds.cpp",
        "${chip_root}/src/platform/cc13x2_26x2/CC13X2_26X2DeviceAttestationCreds.h",
        "${project_dir}/src/main.cpp",
      ]
    
      deps = [
        ":sdk",
        ":sysconfig",
        "${chip_root}/examples/contact-sensor-app/contact-sensor-common",
        "${chip_root}/src/lib",
      ]
    
      if (chip_openthread_ftd) {
        deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ]
      } else {
        deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ]
      }
    
      include_dirs = [
        "${project_dir}",
        "${chip_root}/examples/providers/",
      ]
    
      cflags = [
        "-Wno-implicit-fallthrough",
        "-Wno-sign-compare",
        "-Wconversion",
      ]
    
      output_dir = root_out_dir
    }
    
    group("cc13x2x7_26x2x7") {
      deps = [ ":contact_sensor_app" ]
    }
    
    group("default") {
      deps = [ ":cc13x2x7_26x2x7" ]
    }

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    1.是的,我故意省略了 src 目录的小例子。

    2.是的,通过修改 build.gn,我可以避免错误。 谢谢!

    $ cd ./examples/contact-sensor-app/cc13x2x7_26x2x7

    $ gn gen out/debug --args=ti_sysconfig _root="/Users/Kranz/ti/sysconfig_1.15.0 "
    停止更新。 在387ms 内从207个文件中创建了248个目标

    再次感谢! Steve K.