SDT应用程序不记录日志

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support。我们将在未来几天修复bug /优化搜索和标记。
5个职位/ 0个新
最后发表
apdobaj
离线
最后看到:两个月三个星期前
加入:2020-10-15十六12
SDT应用程序不记录日志

我试图让SDT示例应用程序运行与DA14695-00HQDEVKT-RANG开发工具包。这是工具包的USB版本,我已经用SDT固件编写了两个单元。两者都在运行,并且都使用正确的UUID发布广告,但是从来没有启动日志记录。我没有使用树莓派,而是试图在液晶显示屏上显示区域报告。代码永远不会到达distance_sw_fsm.c中发生日志的2320行,它出现是因为从来没有收到日志任务通知,并且OS_TASK_NOTIFY_WAIT继续阻塞。有什么问题吗?我使用的是WiRa SDK版本10.440.8.6,按照说明打了补丁,并将VBUS跳线移动到J3引脚1和2。

设备:
PM_Dialog
离线
最后看到:2天15小时前
工作人员
加入:2018-02-08 11:03
嗨apdobaj,
apdobaj
离线
最后看到:两个月三个星期前
加入:2020-10-15十六12
好的,需要网关吗

网关是否需要通知SDT应用程序执行日志任务?在我们的应用程序中没有网关,因此如何强制SDT应用程序询问其他模块以确定区域是否已经更改?或者我应该回到WiRa应用程序并在那里实现区域逻辑?

PM_Dialog
离线
最后看到:2天15小时前
工作人员
加入:2018-02-08 11:03
嗨apdobaj,

嗨apdobaj,

日志机制不需要网关。通过日志记录,数据被存储在文件系统中,并且可以通过空中访问。其他模块是否支持BLE?如果是,您可以通过BLE发送数据

请检查以下部分:

http://lpccs-docs.dialog-semiconductor.com/wira_social_distancing_tag_example/logging.html

有一个具有4个特征的日志服务可用。

谢谢,PM_Dialog

apdobaj
离线
最后看到:两个月三个星期前
加入:2020-10-15十六12
我想访问日志

我想访问本地的日志数据,也就是说,在相同的设备上进行日志记录(不是通过空气),但正如我在最初的帖子中说的,日志记录从来没有开始。您说日志记录存储在文件系统中,我如何在本地访问文件系统中的日志记录数据(在进行日志记录的同一设备上)?我的问题清楚了吗?在下面的代码中,可以看到我在何处试图将区域信息写入LCD。

#if (sdt_loging_enable == 1) int8_t wdog_id;DBG_PRINTF((“日志任务开始"));wdog_id = sys_watchdog_register(假);for(;;) {OS_BASE_TYPE ret;uint32_t notif;/* sys_watchdog_notify(wdog_id);sys_watchdog_suspend (wdog_id);/* *等待所有通知位,然后清除所有通知位*/ ret = OS_TASK_NOTIFY_WAIT(0, OS_TASK_NOTIFY_ALL_BITS, ¬if, OS_TASK_NOTIFY_FOREVER);/*这必须永远阻塞,直到收到任务通知。因此,返回值必须是OS_TASK_NOTIFY_SUCCESS */ OS_ASSERT(ret == OS_TASK_NOTIFY_SUCCESS); /* Resume watchdog */ sys_watchdog_notify_and_resume(wdog_id); if(notif & LOG_DATA_READY_NOTIFY){ /* log the entry now */ log_entry log; /* Wait on data in the Queue */ //while (OS_QUEUE_GET(log_msgs, &log, 0) == OS_QUEUE_OK) { // Get an entry out of the queue. if(OS_QUEUE_GET(log_msgs, &log, 0) == OS_QUEUE_OK) { UINT readbytes; sys_watchdog_notify(wdog_id); /* Suspend watchdog while blocking on to write data in FLASH */ sys_watchdog_suspend(wdog_id); DBG_PRINTF(("Logging write start")); int status = LOG_WriteData(log.Zone, &log, sizeof(log), &readbytes); // apdobaj write zone to lcd char zone_char[5]; itoa(log.Zone, zone_char, 5); //sprintf(zone_char, "%d", log.Zone); hw_lcd_draw_string(*zone_char, *zone_char); DBG_PRINTF(("Logging write end")); exist_log_data = 1; /* Resume watchdog */ sys_watchdog_notify_and_resume(wdog_id); ASSERT_WARNING(LOG_STATUS_OK == status); } } } #endif }