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:记录在中央设备上检测到的外围设备的数据。

Guru**** 2894990 points

Other Parts Discussed in Thread: CC2652R7, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1235748/cc2652r7-logging-the-data-of-the-peripheral-device-getting-detected-at-central-device

器件型号:CC2652R7
主题中讨论的其他器件: SysConfig

是否有方法可以将中央设备检测到的设备的信息保存在 txt 或 csv 文件中?

我尝试在  SimpleCentral_processAppMsg ()函数的 case SC_EVT_ADV_REPORT 下添加以下代码段-  

 char *文件名="test.txt";
file *fp = fopen (filename、"w");

fprintf (fp、"这是一个数字%d\n"、5);
fclose (fp);

我收到的错误是- 未知类型名称"file"。  

如果有更好的方法保存数据以用于分析目的、也请提出建议。

我希望检测几个特定的外设、并计算在特定的时间范围内从它们收到的广播数量以及它们的其他信息、例如时间戳、RSSI 值。

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

    您好、Garvit、  

    通过 CCS、您无法使用这些函数导出数据。 如果您在 CCS 中使用记录功能、则可以使用"Save data displayed in all current views"按钮导出数据。 此按钮将包含数据的.rod.json 文件导出到所需的文件夹。 如需更多信息、请访问以下链接:

    SimpleLink MCU SDK 驱动程序 API 参考(TI.com)

    dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_10_00_98/examples/rtos/CC26X2R1_LAUNCHXL/drivers/log/README.html

    谢谢。  

    艾萨克

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

    您好 Issac:

    是否有一些用于执行相同操作的示例代码? 我对此并不熟悉、举个例子可以帮助我更快地理解这个概念。  

    此外,我提到的方法是否适用于 CCS-theia ,因为它是基于视觉工作室代码?

    谢谢。

    加尔维特

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

    您好、Garvit、  

    首先、CC2652R7在 CCS-theia 上不受支持。 您可以 在此处的"支持的产品和硬件"下找到有关 CCS-theia 当前支持哪些器件的更多信息。 最后、如果您仍想使用 CCS 上的  日志、此链接将提供 CCS 内日志的示例。 示例位于 Examples>CC2652R7 >TI Drivers>Log 下。 此外、最后一个响应中显示的自述文件可以帮助进行设置。  

    谢谢。  

    艾萨克

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

    尊敬的 Isaac:

    我已经在 CCS 中导入了日志项目、但仍然无法将其配置为与简单的中央项目一同使用。 您能指导我如何合并这两个项目吗?

    谢谢。

    加尔维特

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

    您好、Garvit、  

    请参阅本 常见问题解答。 此常见问题解答适用于 CC23XX、但适用于 CC2652R7。 按照这些步骤操作时、请勿添加文件搜索路径。 该路径专门用于 CC23XX、并将阻止您的程序编译。 如需更多信息、请访问 BLE 5协议栈用户指南中的 API 说明日志驱动程序示例中的自述文件。  

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

    您好 Issac、

    感谢大家分享详细的流程。 我收到错误、如下图所示

    我已按照建议的方式添加了预定义符号、

    我给出的搜索路径如下

    我还尝试在"Properties">"Build">"Arm Compiler">"Include Options"下添加日志文件夹的路径。

    谢谢。

    加尔维特

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

    您好、Garvit、  

    我无法复制您收到的错误。 总结一下这些步骤、我将采取:


    1) 1)我将 ti_log_log_enable 添加到了工程属性中的预定义符号部分。

    2)我将两个日志模块添加到 SysConfig 中,位于 SysConfig->Logging->Log Modules。 此外,我还在 SysConfig->Logging->Log Modules->Global Parameters 中向全局参数添加了相同的日志级别配置。

    3) 3)将 include 添加到 main.c 和 simple_peripheral.c 中。

    4) 4)在 main 函数内的 main.c 文件中添加了 log_printf。  

    5)调试并开始运行项目。 打开运行时对象视图(ROV)、导航到 LogSinkBuf、并刷新源以查看日志条目。  

    (我还添加了文件搜索路径和您提供的包含选项、日志功能适用于包含或不包含这些内容)。  

    您能否向我提供导致该错误的步骤? 此外、您能否向我提供您正在使用的 SDK 版本?  

    谢谢。  

    艾萨克

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

    您好、Garvit、  

    下面的文件是 simple_peripheral 项目的工作日志示例。 这是在 SDK 7.10上。 日志函数针对此项目所执行的所有操作均输出"Hello World!" 日志中。  

    e2e.ti.com/.../5672.simple_5F00_peripheral_5F00_CC26X2R1_5F00_LAUNCHXL_5F00_tirtos7_5F00_ticlang.zip

    谢谢。  

    艾萨克  

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

    您好 Issac:  

    我无法解码错误的原因- 致命错误:未找到"TI/log/log.h"文件。 我在重复建议的所有步骤后仍然收到相同的错误。

    我需要确认的另一点是、在步骤2中、日志模块已添加到 log.syscfg、因此我们是否需要以某种方式将其链接到 simple_peripheral.syscfg 文件、因为我看不到其中的任何日志模块。

    是否还有其他方法可以将 log.h 头文件包含在项目中?

    我使用的是 CCS 版本 12.2.0.00009和 SDK 版本7.10。 连接的简单外设工程用于不同的开发板、因此它无法与我拥有的 CC2652R7板协同工作。

    谢谢。

    加尔维特

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

    您好、Garvit、  

    CCS 12.3开始支持日志记录功能。 您是否可以更新到最新的 CCS 版本、然后尝试使用记录功能?  

    谢谢。  

    艾萨克

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

    您好 Isaac:

    更新 CCS 后出现以下错误。

    谢谢。

    加尔维特

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

    您好、Garvit、  

    您能否仔细检查 SysConfig 中日志模块的名称是否与 Log_printf 函数中日志模块的名称匹配?  

     如果这样不起作用、您能否回复您在 SysConfig 中更改的所有内容、您的程序和项目属性的图片?

    谢谢。  

    艾萨克

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

    您好 Issac:

    我检查了日志模块的名称-  

    仍在持续。  

    SysConfig 和属性更改-  

    我使用的是 CC2652R7的简单外设工程示例、除了为激活日志记录建议的脚本之外、我并未对脚本进行任何其他更改。

    谢谢。

    加尔维特

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

    您好、Garvit、  

    我正在研究7.10 SDK 上的问题。 我明天会回到你的身边。 很抱歉给您带来不便。  

    谢谢。  

    艾萨克

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

    您好、Garvit、  

    只是为了进一步说明、您是使用 SDK 版本 7.10.01.24还是 SDK 版本 7.10.00.98? 请告诉我!

    谢谢。  

    艾萨克

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

    您好 Issac:

    感谢您付出的所有努力。 我使用的是7.10.00.98 SDK 版本。

    此致、

    加尔维特

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

    您好、Garvit、  

    我已经在 SDK 和 CC2652R7上的 simple peripheral 项目中实现了日志驱动程序。 我将把它附在这里。 请尝试导入并运行该工程。  

    e2e.ti.com/.../simpleperipheralCC2652R7.zip

    谢谢。  

    艾萨克

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

    您好 Issac:

    您共享的项目正在处理日志记录活动、但我仍然无法弄清为什么它不能更早地工作。 我已经尝试在 simple_central 代码中实现这些步骤、但仍然收到相同的错误。

    您是否以不同的方式针对此器件实施了它? 此外、我没有看到在您共享的 simple peripheral 项目的"文件搜索路径"选项中添加了任何其他路径。

    谢谢。

    加尔维特  

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

    您好、Garvit、  

    以下是简单中央的日志记录示例。  e2e.ti.com/.../simple_5F00_centralCC2652R7Log.zip

    请尝试此项目、如果它能清除您的问题、请告诉我。  

    此外、您能否向我发送您尝试实现登录的项目、以便我查看该项目并了解出现了什么问题?  

    谢谢。  

    艾萨克

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

    您好 Issac:  

    这是我正在进行的项目。

    e2e.ti.com/.../simple_5F00_central_5F00_LP_5F00_CC2652R7_5F00_tirtos7_5F00_ticlang.zip

    谢谢。

    加尔维特

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

    您好、Garvit、  

    感谢您发送给我您的项目。 让我知道我发送的项目是否为您工作!

    谢谢。  

    艾萨克

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

    您好 Issac:

    首先,非常感谢你提供的所有帮助,直到现在。

    您发送的中央项目能够记录 hello world、但我正在努力修改语法、以便为中央项目中发现的器件捕获器件的器件地址和 RSSI 值。

    我已经在  中央工程的"static void SimpleCentral_processAppMsg (scEvt_t * pMsg)"函数的"case SC_EVT_ADV_REPORT:"下添加了以下代码段-  

    {
    Scan_Evt_Adv R.pt_t* pAdvRpt =(Scan_Evt_Adv R.pt_t*)(pMsg->pData);

    //===解决方案[打印扫描结果]===
    //打印扫描响应数据或广播数据
    如果(pAdvRpt->evtType &= ADV_RPT_EVT_TYPE_SCAN_RSP)
    {
    Display_Print1 (dispHandle、4、0、"ScanResponseAddr:%s"、
    Util_convertBdAddr2Str (pAdvRpt->addr);
    Display_Print1 (dispHandle、5、0、"ScanResponseData:%s"、
    Util_convertBytes2Str (pAdvRpt->pData、pAdvRpt->dataLen));

    否则
    {
    Display_print2 (dispHandle、6、0、"Advertising Addr:%s RSSI:%d"、
    Util_convertBdAddr2Str (pAdvRpt->addr)、pAdvRpt->RSSI);

     Log_printf (Module_App RSS1、Log_info、"RSSI =%d 地址=%s "、pAdvRpt->RSSI、Util_convertBdAddr2Str (pAdvRpt->addr));

    Display_Print1 (dispHandle、7、0、"Advertising Data:%s"、
    Util_convertBytes2Str (pAdvRpt->pData、pAdvRpt->dataLen));

    代码构建没有错误、但 ROV 中记录的值是随机的、不等于终端上显示的值

    谢谢。

    加尔维特

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

    您好 Issac:

    等待您的响应。

    谢谢。

    加尔维特

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

    您好、Garvit、  

    很抱歉耽误你的时间。 日志驱动程序当前不允许使用%d 和/或%s 输出字符串。 如需输出大灯串、请参考 Log_Buf 功能。 如果您有任何问题、请告诉我。  

    谢谢。  

    艾萨克

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

    您好 Issac:

    我找不到您正在讨论的 Log_Buf 功能。 您分享的链接指向 BLE5堆栈用户指南、我曾尝试在各个子标题中查找与日志记录相关的信息、但无法找到它。 您能否提及标题和副标题以查找信息?

    谢谢。

    加尔维特

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

    您好、Garvit、  

    抱歉。 以下是 API 的更新链接。 如果您有任何问题、请告诉我。  

    TI 实用程序 API:日志界面

    谢谢。  

    艾萨克

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

    您好 Issac:

    我仍然无法使用 Log_Buf 记录设备的 RSSI 值和地址。 我尝试添加以下代码段-

    int8_t rsiValues ={pAdvRpt->RSSI};
    log_buf (451, Module_App Log_debug,"bufferToLog 的内容是:", rssiValues, sizeof(rssiValues);

    此语法也不能记录 RSSI 值。

    此外,您还提到-" 日志驱动程序当前不允许使用%d 和/或%s 输出字符串。" 但 RSSI 为 int8_t 数据类型。 为什么代码  Log_printf (rssi)(38.1、Log_info、"rssi =%d"、pAdvRpt->rssi)不能用于记录 Module_App 值?

    谢谢。

    加尔维特

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

    Garvit、您好、

    我希望你们做得好。 我将继续主持该主题。 很抱歉、我提出的问题之前在此主题中已有人提出、因为我仍在关注此主题。 让我们后退一步,检查 Log_printf()是否适用于任何变量。 您能不能用下面所示的代码来表示一些操作、并让我知道您是否能看到输出? 在转到 RSSI 功能之前、我想确保 printf 函数按预期工作。

    int myVar = 5;
    Log_printf(LogModule_App1, Log_DEBUG, "The contents of myVar is %d ",myVar);
    
    

    此致、

    1月

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

    大家好、Jan、

    Log_printf 按预期工作。 我可以看到输出为5。 问题是、我无法 在 简单中央代码的"SimpleCentral_processAppMsg"函数中打印结构"pAdvRpt"的元素、例如 RSSI 和器件地址。

    谢谢。

    加尔维特

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

    Garvit、您好、

    Log_printf 按预期工作。

    非常好! 感谢您的确认。

    问题是我无法打印结构"pAdvRpt"的元素 ,如 简单中央代码的"SimpleCentral_processAppMsg"函数中的 RSSI 和设备地址。

    您能否打开一个新主题来解释您的问题、以便我们可以让其他团队成员进行评论? 一般而言、为了提高讨论质量、最好将每个主题限制为一个问题。

    感谢您的理解。

    此致、

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

    当然、我可以这么做。

    以下是更新的链接- 记录问题

    谢谢。

    加尔维特