色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發-OpenHarmony輕量系統之獲取當地時間

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-01-22 17:48 ? 次閱讀

在輕量設備里面,我們常常需要獲取本地時間,用于時間顯示,log記錄,幫助RTC芯片糾正時間等等。我們在之前設計了一個智慧時鐘,需要使用到本地當前時間,因此本篇文章想在OpenHarmony上實現SNTP獲取本地時間,并將此功能集成為一個模塊,便于我們的主程序調用。

環境

OpenHarmony3.1 潤和hispark_pegasus Hi3861開發板 DevEco Device Tool 串口調試助手

SNTP介紹

SNTP(Simple Network Time Protocal簡單網絡時間協議),用于跨廣域網或局域網同步時間的協議,主要用來同步因特網中的計算機時鐘,具有較高的精確度(幾十毫秒)。

SNTP協議相對于NTP,優化了網絡傳播延時的影響,同時也能保證時間達到一定的精確度。

SNTP協議采用客戶端/服務器的工作方式,可以采用單播(點對點)或者廣播(一點對多點)模式操作。SNTP服務器通過接收 GPS信號或自帶的原子鐘作為系統的時間基準。單播模式下,SNTP客戶端能夠通過定期訪問 SNTP服務器獲得準確的時間信息,用于調整客戶端自身所在系統的時間,達到同步時間的目的。

時間戳

SNTP發送回來的時間戳是NTP時間戳。 NTP時間戳和UTC時間戳的主要區別在于它們的起始時間: NTP時間戳的起始點是1900年1月1日00:00:00。 UTC時間戳(Unix時間戳)的起始點是1970年1月1日00:00:00。

軟件設計流程

流程圖

文件樹狀圖

.
├── include  //sntp庫
│   └── lwip
│       └── apps
│           ├── sntp.h
│           └── sntp_opts.h
├── src     //sntp源文件
│   ├── BUILD.gn
│   ├── sntp.c
│   ├── sntp_debug.c
│   ├── sntp_port.c
│   └── sntp_port.h
└── test    //模塊主代碼
    ├── BUILD.gn
    ├── sntp_test.c //模塊源代碼
    ├── sntp_test.h //模塊接口、wifi配置
    ├── wifi_connecter.c    //wifi連接庫
    └── wifi_connecter.h

使用方法

  1. 下載源碼
  2. 將SNTP文件夾放入applications/sample/wifi-iot/app路徑下
  3. 在applications/sample/wifi-iot/app/BUILD.gn的features內添加以下代碼
"sntp/src:sntp",
"sntp/test:sntp_test",
  1. 在自己的主程序中引用sntp_test.h文件,調用set_sntp_init()函數初始化,隨后即可通過訪問sntp_time_sec變量獲取當前時間(NTP時間戳0時區)

流程介紹

連接WIFI

連接的WIFI需要可以訪問互聯網,否則設備無法聯網獲取時間

WIFI當前設置為:(配置在/sntp/test/sntp_test.h)

  • SSID:M20P
  • PSK:12345678

設置SNTP服務器

常用SNTP服務器有以下四個:

"cn.ntp.org.cn", // 中國 NTP 快速授時服務

"ntp.ntsc.ac.cn", // 國家授時中心 NTP 服務器

"time.pool.aliyun.com", // 阿里云公共 NTP 服務器

"cn.pool.ntp.org", // 國際 NTP 快速授時服務

在本文章中,SNTP_SERVER_DNS默認為0,因此我們使用IP進行配置SNTP服務器

#if SNTP_SERVER_DNS
static const char* g_ntpServerList[] = {
    // refers from https://dns.icoa.cn/ntp/#china
    "cn.ntp.org.cn", // 中國 NTP 快速授時服務
    "ntp.ntsc.ac.cn", // 國家授時中心 NTP 服務器
    "time.pool.aliyun.com", // 阿里云公共 NTP 服務器
    "cn.pool.ntp.org", // 國際 NTP 快速授時服務
};
#define SNTP_SERVERS ARRAY_SIZE(g_ntpServerList)

void SntpSetServernames(void)
{
    for (size_t i = 0; i < SNTP_SERVERS; i++) {
        sntp_setservername(i, g_ntpServerList[i]);
    }
}

#else

ip4_addr_t g_ntpServerList[SNTP_MAX_SERVERS];

void SntpSetServers(void)
{
    IP4_ADDR(&g_ntpServerList[0], 114, 67, 237, 130); // cn.ntp.org.cn
    IP4_ADDR(&g_ntpServerList[1], 114, 118, 7, 163);  // ntp.ntsc.ac.cn
    IP4_ADDR(&g_ntpServerList[2], 182, 92, 12, 11); // time.pool.aliyun.com
    IP4_ADDR(&g_ntpServerList[3], 193, 182, 111, 12); // cn.pool.ntp.org
#define SNTP_SERVERS 4
    for (size_t i = 0; i < SNTP_SERVERS; i++) {
        sntp_setserver(i, (ip_addr_t*)&g_ntpServerList[i]);
    }
}
#endif

void set_sntp_init(void)
{
/****************************/
#if SNTP_SERVER_DNS
    ip4_addr_t dnsServerAddr;
    IP4_ADDR(&dnsServerAddr, 192, 168, 1, 1);
    dns_setserver(0, (struct ip_addr *)&dnsServerAddr);
    dns_init();

    SntpSetServernames();
#else
    SntpSetServers();
#endif
/****************************/
}

SNTP初始化以及獲取時間

sntp_setoperatingmode(SNTP_OPMODE_POLL);
    sntp_init();

    printf("sntp_enabled: %drn", sntp_enabled());
    for (size_t i = 0; i < SNTP_SERVERS; i++) {
        printf("sntp_getreachability(%d): %drn", i, sntp_getreachability(i));
    }

    osDelay(500);
    for (size_t i = 0; i < SNTP_SERVERS; i++) {
        printf("sntp_getreachability(%d): %drn", i, sntp_getreachability(i));
    }

時間顯示

本樣例源碼僅作為一個底層模塊,因此尚未有主程序。可以自行創建一個主程序進行測試獲取時間,或者按照以下方式修改源碼: 在sntp/test/sntp_test.c的SntpSetServers函數末尾添加以下代碼(顯示獲取到的時間):

time_t ut;
ut = (unsigned int)((unsigned int)sntp_time_sec + ((unsigned int)2085978496L)); //轉換成UTC時間(0時區)
struct tm *now_time = gmtime(&ut);
printf("%d %d %dn", now_time- >tm_hour, now_time- >tm_min, now_time- >tm_sec);

在sntp/test/sntp_test.c末尾添加以下代碼(開機自啟動):

SYS_RUN(set_sntp_init);

本文主要是對鴻蒙開發技術OpenHarmony中的輕量系統-獲取當地時間; 更多的鴻蒙實戰開發可以去主頁閱讀,或找我保存一下鴻蒙開發技術文檔

鴻蒙開發技術分布路線圖如下,高清完整版找我保存

最后結果

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    50936

    瀏覽量

    424671
  • RTC
    RTC
    +關注

    關注

    2

    文章

    541

    瀏覽量

    66705
  • sntp
    +關注

    關注

    0

    文章

    5

    瀏覽量

    3704
  • 鴻蒙
    +關注

    關注

    57

    文章

    2369

    瀏覽量

    42900
  • OpenHarmony
    +關注

    關注

    25

    文章

    3728

    瀏覽量

    16395
收藏 人收藏

    評論

    相關推薦

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發板演示

    本文介紹瑞芯微主板/開發板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發板演示。搭載了瑞芯微RK3566四核處理器,樹莓派卡片電腦設計,支持開
    的頭像 發表于 12-30 10:08 ?110次閱讀
    <b class='flag-5'>OpenHarmony</b>源碼編譯后燒錄鏡像教程,RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示

    開源鴻蒙OpenHarmony系統下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處
    的頭像 發表于 12-24 11:46 ?210次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示

    戈帥《OpenHarmony系統從入門到精通50例》開發板與傳感器配置說明

    戈帥《OpenHarmony系統從入門到精通50例》開發板與傳感器配置說明,請查看附件*附件:《Op
    發表于 12-03 15:46

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發板來演示

    本文介紹開源鴻蒙OpenHarmony系統下,修改產品屬性信息的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新
    的頭像 發表于 11-27 09:31 ?192次閱讀
    <b class='flag-5'>OpenHarmony</b>屬性信息怎么修改?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板來演示

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發板演示

    本文介紹開源鴻蒙OpenHarmony系統下,開啟/關閉SELinux權限的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新
    的頭像 發表于 11-18 19:03 ?368次閱讀
    如何在開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>開啟SELinux模式?RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示

    【開源鴻蒙】使用QEMU運行OpenHarmony系統

    本文將會介紹如何從源碼安裝QEMU 6.2.0,以及如何使用QEMU運行OpenHarmony系統。通過本文,你將會對QEMU和OpenHarm
    的頭像 發表于 09-14 08:51 ?627次閱讀
    【開源<b class='flag-5'>鴻蒙</b>】使用QEMU運行<b class='flag-5'>OpenHarmony</b><b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>

    瑞芯微RK3566鴻蒙開發OpenHarmony標準系統應用兼容性測試指導

    本文OpenHarmony標準系統應用兼容性測試指導,適用鴻蒙系統軟件開發測試的新手入門學習課程,設備為觸覺智能的瑞芯微RK3566開發板,
    的頭像 發表于 09-10 11:56 ?412次閱讀
    瑞芯微RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板<b class='flag-5'>OpenHarmony</b>標準<b class='flag-5'>系統</b>應用兼容性測試指導

    鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發

    4.1學習之旅了嗎?快來加入我們,一起探索鴻蒙4.1系統的無限魅力吧! 【北京迅為】OpenHarmony學習開發系列教程(第1期 北向基礎篇一) P0_先導課 P1_
    發表于 07-23 10:44

    開源鴻蒙 編譯OpenHarmony系統QEMU RISC-V版本

    本文將介紹如何為QEMU RISC-V虛擬平臺構建OpenHarmony系統。得益于QEMU的CPU指令集模擬執行能力,該方法可以在沒有開發
    的頭像 發表于 07-15 10:36 ?1113次閱讀
    開源<b class='flag-5'>鴻蒙</b> 編譯<b class='flag-5'>OpenHarmony</b><b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>QEMU RISC-V版本

    鴻蒙開發系統基礎能力:ohos.systemTime 設置系統時間

    本模塊用來設置、獲取當前系統時間,設置、獲取當前系統日期和設置、獲取當前
    的頭像 發表于 06-27 09:43 ?870次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>系統</b>基礎能力:ohos.systemTime 設置<b class='flag-5'>系統</b><b class='flag-5'>時間</b>

    鴻蒙OpenHarmony【標準系統編寫“Hello World”程序】 (基于RK3568開發板)

    源碼],創建RK3568開發板的源碼工程。 示例目錄 拉取openharmony項目代碼,在代碼根目錄創建sample子系統文件夾,在子系統目錄下創建hello部件文件夾,hello文
    的頭像 發表于 04-24 17:32 ?846次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【標準<b class='flag-5'>系統</b>編寫“Hello World”程序】 (基于RK3568<b class='flag-5'>開發</b>板)

    介紹一種OpenAtom OpenHarmony系統適配方案

    本文在不改變原有系統基礎框架的基礎上, 介紹了一種OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)
    的頭像 發表于 03-05 09:24 ?1217次閱讀
    介紹一種OpenAtom <b class='flag-5'>OpenHarmony</b><b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>適配方案

    鴻蒙實戰項目開發:【短信服務】

    ://gitee.com/openharmony/applications_app_samples.git git pull origin master ? 最后呢,很多開發朋友不知道需要學習那些鴻蒙技術?
    發表于 03-03 21:29

    2024款鴻蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    了有關華為鴻蒙的課程,包括清華大學、武漢大學、哈爾濱工業大學等等。據香港《南華早報》報道,當地時間1月3日,加拿大市場研究與咨詢機構TechInsights發布按照操作系統(OS)劃分的全球智能手機銷售
    發表于 02-28 10:29

    鴻蒙開發OpenHarmony組件復用案例

    ) } }, item => item) } } } 本文主要是對鴻蒙開發基礎當中的OpenHarmony技術組件復用示例, 更多鴻蒙開發
    發表于 01-15 17:37
    主站蜘蛛池模板: 97午夜理论片影院在线播放| 一本大道手机在线看| 精品无码一区二区三区中文字幕| 超碰免费视频在线观看| 最近高清中文字幕无吗免费看| 亚洲国产精品一区二区三区在线观看| 手机免费毛片| 色偷偷91综合久久噜噜| 青青青青草原国产免费| 欧美久久综合性欧美| 美女强奷到抽搐在线播放| 九色终合九色综合88| 精品国产乱码久久久久久乱码 | 被公疯狂玩弄的漂亮人妻| 99久久亚洲精品日本无码| 18岁末年禁止观看免费1000个| 最近中文字幕MV高清在线| 2022国产麻豆剧传媒剧情| 91黄色大片| caoporn 超碰在线视频| a国产成人免费视频| youjizz怎么看| 成人久久欧美日韩一区二区三区| 草莓AV福利网站导航| 二级毛片免费观看全程| 凤楼app| 国产精品一国产精品免费| 国产在线视频在线观看| 激情丛林电影完整在线| 久久国产36精品色熟妇| 麻豆精品传媒卡一卡二传媒短视频 | 最近免费视频中文2019完整版| 伊人久久中文| 19不插片免费视频| free18sex性自拍裸舞| 丰满的大白屁股ass| 国产精品免费小视频| 精品视频免费在线| 男女午夜性爽快免费视频不卡 | WWW国产精品人妻一二三区| 成年人视频在线免费看|