⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at https://www.dialog-semiconductor.com/support . We’ll be fixing bugs / optimising the searching and tagging over the coming days.
5 posts / 0 new
Last post
apdobaj
Offline
Last seen: 9 months 6 days ago
Joined: 2020-10-15 16:12
SDT application not logging

I am trying to get the SDT example application running with the DA14695-00HQDEVKT-RANG development kit. This the USB version of the kit, and I have programmed both units with the SDT firmware. Both are running and both are advertising with the correct UUID, but logging never starts. I am not using a Raspberry Pi but instead am attempting to show the zone report on the LCD display. The code never reaches the line 2320 in distance_sw_fsm.c where the logging occurs, it appears because the logging task notification is never received and the OS_TASK_NOTIFY_WAIT continues to block. What could be the issue? I am using the WiRa SDK version 10.440.8.6, have patched it per the instructions and have moved the VBUS jumper to J3 pins 1 and 2.

Device: 
PM_Dialog
Offline
Last seen: 2 days 9 hours ago
Staff
Joined: 2018-02-08 11:03
Hi apdobaj,

Hi apdobaj,

The WIRA SDT documents explains the logging functionality :

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

Can you please check sections “Logging” and “Gateway reference implementation” ?

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

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

Thanks, PM_Dialog

apdobaj
Offline
Last seen: 9 months 6 days ago
Joined: 2020-10-15 16:12
OK, Is the gateway required

OK, Is the gateway required to notify the SDT application to perform a logging task? In our application there will be no gateway, so how can I force the SDT application to interrogate the other module to determine if the zone has changed? Or should I go back to the WiRa application and implement the zone logic there?

PM_Dialog
Offline
Last seen: 2 days 9 hours ago
Staff
Joined: 2018-02-08 11:03
Hi apdobaj,

Hi apdobaj,

The gateway is not required for the logging mechanism. With the logging, data is stored in the filesystem and can be accessed over the air. Does the other module support BLE? If yes, you can send the data over BLE.\

Please check the following section :

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

There is a logging service available with 4 characteristics.

Thanks, PM_Dialog

apdobaj
Offline
Last seen: 9 months 6 days ago
Joined: 2020-10-15 16:12
I want to access the logging

I want to access the logging data localy, that is, on the same device that is doing the logging (not over the air), but as I say in the original post, the logging never starts. You say the logging is stored in the filesystem, how do I gain access to the logging data in the filesystem locally (on the same device that's doing the logging)? Is my question clear now? In the code below see where I'm attempting to write the zone information to the LCD.

#if ( SDT_LOGGING_ENABLE == 1 )
        int8_t wdog_id;
        DBG_PRINTF(("Log Task Started"));

        wdog_id = sys_watchdog_register(false);

        for(;;)
        {
                OS_BASE_TYPE ret;
                uint32_t notif;

                /* Notify watchdog on each loop */
                sys_watchdog_notify(wdog_id);

                sys_watchdog_suspend(wdog_id);

                /*
                 * Wait on any of the notification bits, then clear them all
                 */
                ret = OS_TASK_NOTIFY_WAIT(0, OS_TASK_NOTIFY_ALL_BITS, &notif, OS_TASK_NOTIFY_FOREVER);
                /* This must block forever, until a task notification is received. So, the
                   return value must be 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
}