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.

[参考译文] LAUNCHCC3235MOD:tirtos 是否允许用户获取时间、使用哪个函数

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1276311/launchcc3235mod-does-tirtos-let-one-get-the-time-what-function-to-use

器件型号:LAUNCHCC3235MOD

tirtos 是否告知用户时间、要使用的函数。 我可以使用本地 网络时间服务器吗?

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

    您好!

    是的、您有一个 local_time 示例、它利用 SNTP 从服务器获取时间、并将其设置回设备。

    此致、

    什洛米

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

    上电时、tirtos 是否同步时间?

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

    tcpEcho 中有一个事件处理程序 SimpleLinkNetAppEventHandler、它似乎 与 local_time 中的事件处理程序冲突。

    似乎我需要找到两者使用的所有不同的 SimpleLink 函数、并根据被调用者使用正确的代码进行合并。 必须有一个更好的方法?

    //tcpEcho platform.c
    void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *pNetAppEvent)
    {
        int32_t             status = 0;
        pthread_attr_t      pAttrs;
        struct sched_param  priParam;
    
        if(pNetAppEvent == NULL)
        {
            return;
        }
    
        switch(pNetAppEvent->Id)
        {
            case SL_NETAPP_EVENT_IPV4_ACQUIRED:
            case SL_NETAPP_EVENT_IPV6_ACQUIRED:
    
                /* Initialize SlNetSock layer with CC3x20 interface                      */
                status = ti_net_SlNet_initConfig();
                if(0 != status)
                {
                    Display_printf(display, 0, 0, "Failed to initialize SlNetSock\n\r");
                }
    
                if(mode != ROLE_AP)
                {
                    Display_printf(display, 0, 0,"[NETAPP EVENT] IP Acquired: IP=%d.%d.%d.%d , "
                                "Gateway=%d.%d.%d.%d\n\r",
                                SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Ip,3),
                                SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Ip,2),
                                SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Ip,1),
                                SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Ip,0),
                                SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Gateway,3),
                                SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Gateway,2),
                                SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Gateway,1),
                                SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Gateway,0));
    
                    pthread_attr_init(&pAttrs);
                    priParam.sched_priority = 1;
                    status = pthread_attr_setschedparam(&pAttrs, &priParam);
                    status |= pthread_attr_setstacksize(&pAttrs, TASK_STACK_SIZE);
                    status = pthread_create(&tcpThread, &pAttrs, (void *(*)(void *))tcpHandler, (void*)TCPPORT);
                    if(status)
                    {
                        printError("Task create failed", status);
                    }
                }
                break;
            default:
                break;
       }
       
       
       local_time.c
    void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *pNetAppEvent)
    {
        if(pNetAppEvent == NULL)
        {
            return;
        }
    
        switch(pNetAppEvent->Id)
        {
        case SL_NETAPP_EVENT_IPV4_ACQUIRED:
            LOCALTIME_SET_STATUS_BIT(LocalTime_CB.status, STATUS_BIT_IP_ACQUIRED);
            UART_PRINT("IPv4 acquired: IP = %d.%d.%d.%d\n\r",
                      (uint8_t)SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Ip,3),
                      (uint8_t)SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Ip,2),
                      (uint8_t)SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Ip,1),
                      (uint8_t)SL_IPV4_BYTE(pNetAppEvent->Data.IpAcquiredV4.Ip,0));
            break;
    
        case SL_NETAPP_EVENT_DHCPV4_LEASED:
            LOCALTIME_SET_STATUS_BIT(LocalTime_CB.status, STATUS_BIT_IP_LEASED);
            break;
    
        case SL_NETAPP_EVENT_DHCPV4_RELEASED:
            LOCALTIME_CLR_STATUS_BIT(LocalTime_CB.status, STATUS_BIT_IP_LEASED);
            break;
    
        default:
            break;
        }
    }
    
    }

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

    您好!

    忽略我的建议、因为集成 SNTP 有一种更简单、更直接的方法。

    看一下等效 tcpechotls 示例、该示例需要时间(以验证证书过期)。

    它具有 startsntp(),它使用 SNTP 库来获取时间。

    此致、

    什洛米

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

    谢谢。 我正在尝试连接到 tcpechotls,但我认为最后一个问题是项目中提供的认证中的"虚拟"文件,以使 Python 脚本连接?

    #define ROOT_CA_CERT_FILE     "?.pem"  //"DummyCA"
    #define PRIVATE_KEY_FILE      "?.pem"   //"DummyKey"
    #define TRUSTED_CERT_FILE     "?.pem"  //"DummyTrustedCert"