• 全國服務熱線 : 4000-020-230

    當前位置:首頁 > 技術支持 > 技術文章

    技術文章 產品知識 下載中心

    技術文章

    如何在歐視邁(OZEAM)全數字可視對講中實現internet校時
    發布日期:2012-01-18 11:58:03     作者:    已有  閱讀過本文

        摘要:本文闡述了在歐視邁(OZEAM)全數字可視對講系統中進行internet校時的必要性和實現途徑

        關鍵詞:internet校時全數字可視對講系統歐視邁OZEAMRFC-868

        Abstract:Thispaperexplainedthenecessityandtheimplementationtosynchronizethesystemclockoftheoutdoorunitandtheindooruintinthedigitalvideointercomsystem(brand:OZEAM)usinganNTP(networktimeprotocol)server.

        Keywords:timesynchronizing,NTP(networktimeprotocol),digitalvideointercomsystem,OZEAM.

        1.全數字可視對講系統校時的現狀

        目前全數字可視對講系統主要通過以下方法進行校時:

        (1)在安裝有管理中心的情況下,管理中心充當時間服務器,門口機和室內機與管理中心通訊,獲取當前時間來設置本機時間。

        (2)在沒有安裝管理中心的情況下,只能在門口機和室內機上手動設置本機時間。但一旦斷電,又恢復到初始時間。這給用戶帶來不便,特別是單家獨戶的別墅用戶,一般是不可能安裝管理中心的。

        沒有安裝管理中心但全數字可視對講門口機和室內機已連接互聯網,能不能通過互聯網進行自動校時?答案是肯定的。

        2.RFC-868時間協議

        本RFC規范了一個ARPAInternetcommunity上的標準。在ARPAInternet上的所有主機應當采用和實現這個標準。

        此協議提供了一個獨立于站點的,機器可讀的日期和時間信息。時間服務返回的是以秒數,是從1900年1月1日午夜到現在的秒數。

        設計這個協議的一個重要目的在于,網絡上的許多主機并沒有時間的觀念,在分布式的系統上,我們可以想一想,北京的時間和東京的時間如何分呢?主機的時間往往可以人為改變,而且因為機器時鐘內的誤差而變得不一致,因此需要使用時間服務器通過選舉方式得到網絡時間,讓服務器有一個準確的時間觀念。不要小看時間,這對于一些以時間為標準的分布運行的程序簡單是太重要了。

        這個協議可以工作在TCP和UDP協議下。下面是通過TCP協議工作的時間協議的工作過程:這里S代表服務器,C代表客戶。

        S:檢測端口37

        U:連接到端口37

        S:以32位二進制數發送時間

        U:接收時間

        U:關閉連接

        S:關閉連接

        服務器在端口37上監聽連接。當連接建立后,服務器返回一個32位的時間值,然后關閉連接。這個過程也不難,如果服務器不能決定現在是什么時間,服務器會拒絕連接或不發送任何數據而直接關閉連接。

        下面我們看看使用UDP協議的情況:這里S代表服務器,C代表客戶。

        S:檢測端口37

        U:發送一個空數據報到端口37

        S:接收這個空數據報

        S:發送包含32位二進制數(用于表示時間)的數據報

        U:接收時間數據報

        服務器在端口37上監聽數據包。當一個數據包來后,服務器返回一個包含32位的時間的數據包。這個過程也不難,如果服務器不能決定現在是什么時間,服務器會拋棄接收到的數據報而不作出任何應答。

        *時間

        時間是由32位表示的,是自1900年1月1日0時到當前的秒數,我們可以計算一下,這個協議只能表示到2036年就不能用了。(但是我們也知道計算機發展速度這么快,可能到時候就會有更好的協議代替這個協議,或者有已經想出有效的解決辦法了。)

        下面是些例子:

        thetime2,208,988,800correspondsto00:001Jan1970GMT,

        2,398,291,200correspondsto00:001Jan1976GMT,

        2,524,521,600correspondsto00:001Jan1980GMT,

        2,629,584,000correspondsto00:001May1983GMT,

        以及-1,297,728,000correspondsto00:0017Nov1858GMT. 

        3.Internet校時的程序實現

        下面是使用TCP協議的實現Internet校時的部分代碼。

        voidtime_internet_to_local(void*recv_buf)//接到的數據轉換為本地時間

        {

        assert(recv_buf);

        charp[4],*precv=((char*)recv_buf)+3;

        for(inti=0;i<4;i++)< p="">

        p[i]=*precv--;

        *(long*)p-=2208988800;

        SYSTEMTIMEst;

        tm*ptm=gmtime((time_t*)p);

        st.wYear=ptm->tm_year+1900;

        st.wMonth=ptm->tm_mon+1;

        st.wDay=ptm->tm_mday;

        st.wHour=ptm->tm_hour;

        st.wMinute=ptm->tm_min;

        st.wSecond=ptm->tm_sec;

        st.wMilliseconds=0;

        SetSystemTime(&st);

        }

        BOOLGetTimeFromServer(DWORD*lpdwTime)//TCP方式

        {

        *lpdwTime=0;

        BOOLbReturn=FALSE;

        SOCKETsSock=socket(AF_INET,SOCK_STREAM,0);

        if(INVALID_SOCKET!=sSock)

        {

        structsockaddr_insin;

        memcpy(&sin.sin_addr,&NISTSVRSARY[choice].addr,sizeof(in_addr));

        sin.sin_family=AF_INET;

        sin.sin_port=htons(IPPORT_TIMESERVER);

        wprintf(L"\n...waitingtolink...\n");

        if(0!=connect(sSock,(structsockaddr*)&sin,sizeof(structsockaddr_in)))

        {

        wprintf(L"Linked.Receivingdata...\n");

        intiResult;

        iResult=recv(sSock,(char*)lpdwTime,4,0);

        if(iResult==4)

        {

        *lpdwTime=ntohl(*lpdwTime);

        bReturn=TRUE;

          }

        else

        {

        wprintf(L"Failtogettime!iResult=%d\n",iResult);

        }

        }else

        wprintf(L"Failtolink,overtime!\n");

        closesocket(sSock);

        }

        returnbReturn;

        }

        4.結束語

        程序在EVC4.0編寫調試正確,并在WinCE5.0下運行正確。只要門口機或室內機連接Internet,則自動進行校時,無需手動設置,也無需安裝管理中心。

        Internet自動校時為歐視邁(OZEAM)全數字可視對講系統增色不少。


    返回
    上一篇  
    下一篇  語音導航操作在歐視邁(OZEAM)全數字可視對講系統中的應用
    【推薦閱讀】

    24小時全國服務熱線:4000-020-230

    關注我們:
    ?2016 廣州市歐智智能科技有限公司 版權所有.All Rights Reserved.      粵ICP備10043508號-1
    網絡支持:艾迪品牌策劃設計
    尊敬的客戶,您是第【{visits:all}】訪客
    業務服務
    客服電話

    4000-020-230

    国产精品一区二区久久精品涩爱_A级国产大片在线免费观看_久久性爱新福利视频_AV免费无码不卡