本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用程序與串口外設(shè)的通信方法及裝置。
背景技術(shù):
Linux操作系統(tǒng)作為一款可免費(fèi)使用且穩(wěn)定性良好的操作系統(tǒng),廣泛適用于各類電子產(chǎn)品中,而串口通信作為一種基本的通信方式,亦廣泛應(yīng)用于串口外設(shè)與CPU的通信。
相關(guān)技術(shù)中,Linux操作系統(tǒng)配置的應(yīng)用程序在與串口外設(shè)進(jìn)行通信的過程中,需要Linux操作系統(tǒng)先加載串口驅(qū)動架構(gòu),然后,應(yīng)用程序執(zhí)行打開串口、設(shè)置屬性、讀寫串口、關(guān)閉串口等一系列動作,以實(shí)現(xiàn)與串口外設(shè)的通信。
相關(guān)技術(shù)雖然可以實(shí)現(xiàn)Linux操作系統(tǒng)配置的應(yīng)用程序與串口外設(shè)的通信,但是當(dāng)某一串口外設(shè)更改(例如,串口協(xié)議更改或串口屬性更改)時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改,從而導(dǎo)致Linux操作系統(tǒng)的穩(wěn)定性差,而且由于上述應(yīng)用程序執(zhí)行同步更改的過程需要相關(guān)人員通過人工配置來完成,因此,相關(guān)技術(shù)也會加重相關(guān)人員的配置負(fù)擔(dān)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種應(yīng)用程序與串口外設(shè)的通信方法及裝置,來解決相關(guān)技術(shù)中當(dāng)某一串口外設(shè)更改時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改導(dǎo)致的操作系統(tǒng)穩(wěn)定性差以及加重相關(guān)人員配置負(fù)擔(dān)的問題。
具體地,本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的:
本發(fā)明提供一種應(yīng)用程序與串口外設(shè)的通信方法,應(yīng)用于終端設(shè)備,所述終端設(shè)備的操作系統(tǒng)配置有驅(qū)動程序以及至少一個應(yīng)用程序,所述驅(qū)動程序預(yù)先與所述應(yīng)用程序以及串口外設(shè)分別建立連接,其中,所述串口外設(shè)更改時,所述驅(qū)動程序進(jìn)行同步更改,所述方法包括:
所述驅(qū)動程序接收到所述應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù);其中,所述應(yīng)用數(shù)據(jù)攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息;
所述驅(qū)動程序基于所述標(biāo)識信息確定所述目標(biāo)串口外設(shè),并針對所述應(yīng)用數(shù)據(jù)執(zhí)行解封裝;
所述驅(qū)動程序?qū)⑺鼋夥庋b后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將所述串口數(shù)據(jù)發(fā)送至所述目標(biāo)串口外設(shè)。
本發(fā)明同時提供另一種應(yīng)用程序與串口外設(shè)的通信方法,應(yīng)用于終端設(shè)備,所述終端設(shè)備的操作系統(tǒng)配置有驅(qū)動程序以及至少一個應(yīng)用程序,所述驅(qū)動程序預(yù)先與所述應(yīng)用程序以及串口外設(shè)分別建立連接,其中,所述串口外設(shè)更改時,所述驅(qū)動程序進(jìn)行同步更改,所述方法包括:
所述驅(qū)動程序接收到所述串口外設(shè)發(fā)送的串口數(shù)據(jù);其中,所述串口數(shù)據(jù)攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息;
所述驅(qū)動程序基于所述目標(biāo)應(yīng)用程序標(biāo)識信息確定目標(biāo)應(yīng)用程序,并針對所述串口數(shù)據(jù)執(zhí)行解封裝;
所述驅(qū)動程序?qū)⑺鼋夥庋b后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),并將所述應(yīng)用數(shù)據(jù)發(fā)送至所述目標(biāo)應(yīng)用程序。
本發(fā)明同時提供一種應(yīng)用程序與串口外設(shè)的通信裝置,應(yīng)用于終端設(shè)備,所述終端設(shè)備的操作系統(tǒng)配置有所述裝置以及至少一個應(yīng)用程序,所述裝置預(yù)先與所述應(yīng)用程序以及串口外設(shè)分別建立連接,其中,所述串口外設(shè)更改時,所述裝置進(jìn)行同步更改,所述裝置包括:
第一接收模塊,用于接收到所述應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù);其中,所述應(yīng)用數(shù)據(jù)攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息;
第一確定模塊,用于基于所述標(biāo)識信息確定所述目標(biāo)串口外設(shè),并針對所述應(yīng)用數(shù)據(jù)執(zhí)行解封裝;
第一發(fā)送模塊,用于將所述解封裝后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將所述串口數(shù)據(jù)發(fā)送至所述目標(biāo)串口外設(shè)。
本發(fā)明同時提供另一種應(yīng)用程序與串口外設(shè)的通信裝置,應(yīng)用于終端設(shè)備,所述終端設(shè)備的操作系統(tǒng)配置有所述裝置以及至少一個應(yīng)用程序,所述裝置預(yù)先與所述應(yīng)用程序以及串口外設(shè)分別建立連接,其中,所述串口外設(shè)更改時,所述裝置進(jìn)行同步更改,所述裝置包括:
第二接收模塊,用于接收到所述串口外設(shè)發(fā)送的串口數(shù)據(jù);其中,所述串口數(shù)據(jù)攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息;
第二確定模塊,用于基于所述目標(biāo)應(yīng)用程序標(biāo)識信息確定目標(biāo)應(yīng)用程序,并針對所述串口數(shù)據(jù)執(zhí)行解封裝;
第二發(fā)送模塊,用于將所述解封裝后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),并將所述應(yīng)用數(shù)據(jù)發(fā)送至所述目標(biāo)應(yīng)用程序。
在本發(fā)明中,終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,驅(qū)動程序可以接收到應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù),其中,應(yīng)用數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)串口外設(shè),并針對應(yīng)用數(shù)據(jù)執(zhí)行解封裝,在完成對應(yīng)用數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將該串口數(shù)據(jù)發(fā)送至目標(biāo)串口外設(shè);當(dāng)然,驅(qū)動程序也可以接收到串口外設(shè)發(fā)送的串口數(shù)據(jù),其中,串口數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)應(yīng)用程序,并針對串口數(shù)據(jù)執(zhí)行解封裝,在完成對串口數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),并將該應(yīng)用數(shù)據(jù)發(fā)送至目標(biāo)應(yīng)用程序。
在本發(fā)明中,當(dāng)串口外設(shè)更改,例如,串口協(xié)議或?qū)傩愿臅r,終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序可以進(jìn)行同步更改,由于串口外設(shè)以及驅(qū)動程序之間的更改不會影響到應(yīng)用程序與驅(qū)動程序之間的連接,因此,應(yīng)用程序不需要進(jìn)行同步更改,從而可以有效解決相關(guān)技術(shù)中當(dāng)某一串口外設(shè)更改時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改導(dǎo)致的操作系統(tǒng)穩(wěn)定性差以及加重相關(guān)人員配置負(fù)擔(dān)的問題。
附圖說明
圖1是示出的一個相關(guān)技術(shù)的應(yīng)用場景圖;
圖2是本發(fā)明一實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信方法的流程圖;
圖3是本發(fā)明另一實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信方法的流程圖;
圖4是是本發(fā)明另一實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信方法的流程圖;
圖5是本發(fā)明實(shí)施例中應(yīng)用程序與串口外設(shè)的通信裝置的硬件結(jié)構(gòu)框圖;
圖6是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信裝置的框圖;
圖7是本發(fā)明根據(jù)另一示例性實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信裝置的框圖。
具體實(shí)施方式
這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
在本發(fā)明使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本發(fā)明可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本發(fā)明范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。
請參見圖1,為示出的一個相關(guān)技術(shù)的應(yīng)用場景圖,其中,N、M和H皆為大于0的自然數(shù)。
圖1中,終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,其中,應(yīng)用程序可以通過驅(qū)動程序與至少一個串口外設(shè)建立基于若干個串口協(xié)議的連接。當(dāng)某個串口外設(shè)更改時,與該串口外設(shè)通信的所有應(yīng)用程序都需要進(jìn)行同步的更改,例如,可以假設(shè)串口外設(shè)1通過驅(qū)動程序與應(yīng)用程序1和應(yīng)用程序2均建立了連接,則當(dāng)串口外設(shè)1發(fā)生更改時,應(yīng)用程序1和應(yīng)用程序2都需要進(jìn)行同步的更改以保持與串口外設(shè)1的正常通信,當(dāng)與串口外設(shè)1進(jìn)行通信的應(yīng)用程序較多時,該多個應(yīng)用程序均需要隨著串口外設(shè)1的更改而進(jìn)行同步的更改,從而導(dǎo)致操作系統(tǒng)的穩(wěn)定性差,而且由于該多個應(yīng)用程序隨著串口外設(shè)1的更改而進(jìn)行同步更改的過程均需要相關(guān)人員通過人工配置來完成,因此,相關(guān)技術(shù)也會加重相關(guān)人員的配置負(fù)擔(dān)。
有鑒于此,本發(fā)明提供了一種應(yīng)用程序與串口外設(shè)的通信方法,來解決相關(guān)技術(shù)中當(dāng)某一串口外設(shè)更改時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改導(dǎo)致的操作系統(tǒng)穩(wěn)定性差以及加重相關(guān)人員配置負(fù)擔(dān)的問題。在本發(fā)明中,終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,驅(qū)動程序可以接收到應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù),其中,應(yīng)用數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)串口外設(shè),并針對應(yīng)用數(shù)據(jù)執(zhí)行解封裝,在完成對應(yīng)用數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將該串口數(shù)據(jù)發(fā)送至目標(biāo)串口外設(shè)。
在本發(fā)明中,當(dāng)串口外設(shè)更改,例如,串口協(xié)議或?qū)傩愿臅r,終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序可以進(jìn)行同步更改,由于串口外設(shè)以及驅(qū)動程序之間的更改不會影響到應(yīng)用程序與驅(qū)動程序之間的連接,因此,應(yīng)用程序不需要進(jìn)行同步更改,從而可以有效解決相關(guān)技術(shù)中當(dāng)某一串口外設(shè)更改時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改導(dǎo)致的操作系統(tǒng)穩(wěn)定性差以及加重相關(guān)人員配置負(fù)擔(dān)的問題。
請參見圖2,為本發(fā)明一實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信方法的流程圖,該實(shí)施例應(yīng)用于終端設(shè)備,包括以下步驟:
步驟201:所述驅(qū)動程序接收到所述應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù);其中,所述應(yīng)用數(shù)據(jù)攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息。
在本發(fā)明中,上述終端設(shè)備的操作系統(tǒng)可以為Linux操作系統(tǒng)、Windows操作系統(tǒng),也可以為Android操作系統(tǒng)、iOS操作系統(tǒng)等,本發(fā)明對此不做限制。
在本發(fā)明中,上述終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,其中,驅(qū)動程序可以預(yù)先與應(yīng)用程序以及串口外設(shè)分別建立連接,其中,當(dāng)串口外設(shè)更改時,驅(qū)動程序可以進(jìn)行同步更改。
在一個實(shí)施例中,上述驅(qū)動程序可以預(yù)先與應(yīng)用程序建立socket連接,具體地,可以建立host為127.0.0.1的socket連接;當(dāng)然,上述驅(qū)動程序和應(yīng)用程序也可以預(yù)設(shè)連接策略,并基于該預(yù)設(shè)的連接策略建立連接,其中,該預(yù)設(shè)的連接策略可以由相關(guān)人員自定義配置和更改。
在一個實(shí)施例中,上述驅(qū)動程序與串口外設(shè)預(yù)先建立的連接可以為基于現(xiàn)有的串口協(xié)議,如I2C(Inter-Integrated Circuit,兩線式串行總線)串口協(xié)議等,建立的連接;也可以為上述驅(qū)動程序與串口外設(shè)基于預(yù)設(shè)的連接策略建立的連接,本發(fā)明對此不做限制。
在一個實(shí)施例中,可以假設(shè)與上述驅(qū)動程序建立連接的某一串口外設(shè)發(fā)生了更改,例如,將波特率從300Bd/s更改為600Bd/s,則上述驅(qū)動程序可以進(jìn)行同步更改,即可以將已設(shè)置的對應(yīng)于與該串口外設(shè)的連接的波特率從300Bd/s更改為600Bd/s。
在本發(fā)明中,上述終端設(shè)備的操作系統(tǒng)配置的應(yīng)用程序可以通過已建立的連接向驅(qū)動程序發(fā)送應(yīng)用數(shù)據(jù),其中,該應(yīng)用數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息。
需要說明的是,本發(fā)明對上述用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息的內(nèi)容以及位置等不做限制,例如,該標(biāo)識信息可以為數(shù)值、字母等;可以位于應(yīng)用數(shù)據(jù)的數(shù)據(jù)頭或數(shù)據(jù)尾等。
步驟202:所述驅(qū)動程序基于所述標(biāo)識信息確定所述目標(biāo)串口外設(shè),并針對所述應(yīng)用數(shù)據(jù)執(zhí)行解封裝。
在本發(fā)明中,上述終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序可以在接收到應(yīng)用數(shù)據(jù)后,基于應(yīng)用數(shù)據(jù)攜帶的用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息確定目標(biāo)串口外設(shè)。
在一個實(shí)施例中,上述驅(qū)動程序可以對已建立連接的串口外設(shè)進(jìn)行編號,可以假設(shè)應(yīng)用數(shù)據(jù)攜帶的用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息為數(shù)值0010,則上述驅(qū)動程序可以基于該數(shù)值0010來確定目標(biāo)串口外設(shè)為編號為2的串口外設(shè)。
在本發(fā)明中,上述驅(qū)動程序可以對接收到的應(yīng)用數(shù)據(jù)執(zhí)行解封裝,其中,對應(yīng)用數(shù)據(jù)執(zhí)行解封裝的技術(shù)為現(xiàn)有技術(shù),故,本發(fā)明在此不再贅述。
步驟203:所述驅(qū)動程序?qū)⑺鼋夥庋b后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將所述串口數(shù)據(jù)發(fā)送至所述目標(biāo)串口外設(shè)。
在本發(fā)明中,終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,驅(qū)動程序可以接收到應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù),其中,應(yīng)用數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)串口外設(shè),并針對應(yīng)用數(shù)據(jù)執(zhí)行解封裝,在完成對應(yīng)用數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將該串口數(shù)據(jù)發(fā)送至目標(biāo)串口外設(shè)。
在本發(fā)明中,當(dāng)串口外設(shè)更改,例如,串口協(xié)議或?qū)傩愿臅r,終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序可以進(jìn)行同步更改,由于串口外設(shè)以及驅(qū)動程序之間的更改不會影響到應(yīng)用程序與驅(qū)動程序之間的連接,因此,應(yīng)用程序不需要進(jìn)行同步更改,從而可以有效解決相關(guān)技術(shù)中當(dāng)某一串口外設(shè)更改時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改導(dǎo)致的操作系統(tǒng)穩(wěn)定性差以及加重相關(guān)人員配置負(fù)擔(dān)的問題。
請參見圖3,為本發(fā)明另一實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信方法的流程圖,該實(shí)施例應(yīng)用于終端設(shè)備,包括以下步驟:
步驟301:所述驅(qū)動程序接收到所述串口外設(shè)發(fā)送的串口數(shù)據(jù);其中,所述串口數(shù)據(jù)攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息。
在本發(fā)明中,上述終端設(shè)備的操作系統(tǒng)可以為Linux操作系統(tǒng)、Windows操作系統(tǒng),也可以為Android操作系統(tǒng)、iOS操作系統(tǒng)等,本發(fā)明對此不做限制。
上述終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,其中,驅(qū)動程序可以預(yù)先與應(yīng)用程序以及串口外設(shè)分別建立連接,當(dāng)串口外設(shè)更改時,驅(qū)動程序可以進(jìn)行同步更改。
在本發(fā)明中,上述驅(qū)動程序可以接收到串口外設(shè)發(fā)送的串口數(shù)據(jù),其中,該串口數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息,該標(biāo)識信息可以為數(shù)值、字母等;可以位于串口數(shù)據(jù)的數(shù)據(jù)頭或數(shù)據(jù)尾等,本發(fā)明對此不做限制。
步驟302:所述驅(qū)動程序基于所述目標(biāo)應(yīng)用程序標(biāo)識信息確定目標(biāo)應(yīng)用程序,并針對所述串口數(shù)據(jù)執(zhí)行解封裝。
在本發(fā)明中,上述終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序可以在接收到串口數(shù)據(jù)后,基于串口數(shù)據(jù)攜帶的用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息確定目標(biāo)應(yīng)用程序。
在一個實(shí)施例中,可以假設(shè)串口數(shù)據(jù)攜帶的用于標(biāo)識應(yīng)用程序的標(biāo)識信息為字母c,則上述驅(qū)動程序可以基于該字母c來確定目標(biāo)應(yīng)用程序?yàn)榫幪枮?的應(yīng)用程序。
在本發(fā)明中,上述驅(qū)動程序可以對接收到的串口數(shù)據(jù)執(zhí)行解封裝,其中,對串口數(shù)據(jù)執(zhí)行解封裝的技術(shù)為現(xiàn)有技術(shù),故,本發(fā)明在此不再贅述。
步驟303:所述驅(qū)動程序?qū)⑺鼋夥庋b后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),并將所述應(yīng)用數(shù)據(jù)發(fā)送至所述目標(biāo)應(yīng)用程序。
在本發(fā)明中,上述驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),然后,將該應(yīng)用數(shù)據(jù)發(fā)送至目標(biāo)應(yīng)用程序。
在一個實(shí)施例子,上述驅(qū)動程序可以對已建立連接的應(yīng)用程序進(jìn)行編號,在接收到驅(qū)動程序發(fā)送的對應(yīng)于編號為3的目標(biāo)應(yīng)用程序的應(yīng)用數(shù)據(jù)后,上述驅(qū)動程序可以將應(yīng)用數(shù)據(jù)發(fā)送至編號為3的目標(biāo)應(yīng)用程序。
在本發(fā)明中,終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,驅(qū)動程序可以接收到串口外設(shè)發(fā)送的串口數(shù)據(jù),其中,串口數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)應(yīng)用程序,并針對串口數(shù)據(jù)執(zhí)行解封裝,在完成對串口數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),并將該應(yīng)用數(shù)據(jù)發(fā)送至目標(biāo)應(yīng)用程序。
在本發(fā)明中,當(dāng)串口外設(shè)更改,例如,串口協(xié)議或?qū)傩愿臅r,終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序可以進(jìn)行同步更改,由于串口外設(shè)以及驅(qū)動程序之間的更改不會影響到應(yīng)用程序與驅(qū)動程序之間的連接,因此,應(yīng)用程序不需要進(jìn)行同步更改,從而可以有效解決相關(guān)技術(shù)中當(dāng)某一串口外設(shè)更改時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改導(dǎo)致的操作系統(tǒng)穩(wěn)定性差以及加重相關(guān)人員配置負(fù)擔(dān)的問題。
請參見圖4,為本發(fā)明另一實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信方法的流程圖,該實(shí)施例通過終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序、應(yīng)用程序以及串口外設(shè)之間的數(shù)據(jù)交互來詳細(xì)說明本發(fā)明示出的一種應(yīng)用程序與串口外設(shè)的通信過程:
步驟401:驅(qū)動程序與至少一個應(yīng)用程序建立連接。
步驟402:驅(qū)動程序與至少一個串口外設(shè)建立連接。
其中,步驟402可以在步驟401之后,也可以在步驟401之前,也可以與步驟401同時進(jìn)行,本發(fā)明對此不做限制。
步驟403:應(yīng)用程序可以通過已建立的連接向驅(qū)動程序發(fā)送應(yīng)用數(shù)據(jù),其中,應(yīng)用數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息。
步驟404:驅(qū)動程序可以接收到應(yīng)用數(shù)據(jù),并基于應(yīng)用數(shù)據(jù)攜帶的用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息確定目標(biāo)串口外設(shè)。
步驟405:驅(qū)動程序可以針對應(yīng)用數(shù)據(jù)執(zhí)行解封裝。
步驟406:驅(qū)動程序可以在完成對應(yīng)用數(shù)據(jù)的解封裝后,將解封裝后的數(shù)據(jù)封裝為串口數(shù)據(jù)。
步驟407:驅(qū)動程序可以將串口數(shù)據(jù)發(fā)送至目標(biāo)串口外設(shè)。
步驟408:驅(qū)動程序可以接收到目標(biāo)串口外設(shè)發(fā)送的串口數(shù)據(jù),串口數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息,其中,該串口數(shù)據(jù)可以為響應(yīng)于步驟407中的串口數(shù)據(jù)的響應(yīng)數(shù)據(jù)。
步驟409:驅(qū)動程序可以基于串口數(shù)據(jù)攜帶的用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息確定目標(biāo)應(yīng)用程序;
步驟410:驅(qū)動程序可以針對串口數(shù)據(jù)執(zhí)行解封裝。
步驟411:驅(qū)動程序可以在完成對串口數(shù)據(jù)的解封裝后,將解封裝后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù)。
步驟412:驅(qū)動程序可以將應(yīng)用數(shù)據(jù)發(fā)送至目標(biāo)應(yīng)用程序。
需要說明的是,步驟408-步驟412可以在步驟401-步驟407之前,也可以在步驟401-步驟407之后,也可以與步驟401-步驟407同時進(jìn)行,本發(fā)明對此不做限制。
在本發(fā)明中,終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,驅(qū)動程序可以接收到應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù),其中,應(yīng)用數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)串口外設(shè),并針對應(yīng)用數(shù)據(jù)執(zhí)行解封裝,在完成對應(yīng)用數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將該串口數(shù)據(jù)發(fā)送至目標(biāo)串口外設(shè);當(dāng)然,驅(qū)動程序也可以接收到串口外設(shè)發(fā)送的串口數(shù)據(jù),其中,串口數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)應(yīng)用程序,并針對串口數(shù)據(jù)執(zhí)行解封裝,在完成對串口數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),并將該應(yīng)用數(shù)據(jù)發(fā)送至目標(biāo)應(yīng)用程序。
在本發(fā)明中,當(dāng)串口外設(shè)更改,例如,串口協(xié)議或?qū)傩愿臅r,終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序可以進(jìn)行同步更改,由于串口外設(shè)以及驅(qū)動程序之間的更改不會影響到應(yīng)用程序與驅(qū)動程序之間的連接,因此,應(yīng)用程序不需要進(jìn)行同步更改,從而可以有效解決相關(guān)技術(shù)中當(dāng)某一串口外設(shè)更改時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改導(dǎo)致的操作系統(tǒng)穩(wěn)定性差以及加重相關(guān)人員配置負(fù)擔(dān)的問題。
基于與上述方法同一的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了應(yīng)用程序與串口外設(shè)的通信裝置的實(shí)施例。
本發(fā)明應(yīng)用程序與串口外設(shè)的通信裝置可以應(yīng)用于終端設(shè)備上。其中,該應(yīng)用程序與串口外設(shè)的通信裝置可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在的處理器,將非易失性存儲器中對應(yīng)的計算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從應(yīng)用層面而言,如圖5所示,是本發(fā)明實(shí)施例中應(yīng)用程序與串口外設(shè)的通信裝置的硬件結(jié)構(gòu)框圖,除了圖5所示的處理器、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲器外,還可以包括其他硬件,如負(fù)責(zé)處理報文的轉(zhuǎn)發(fā)芯片等。
如圖6所示,為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信裝置的框圖。所述裝置包括:第一接收模塊610、第一確定模塊620以及第一發(fā)送模塊630。
其中,第一接收模塊610,用于接收到所述應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù);其中,所述應(yīng)用數(shù)據(jù)攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息;
第一確定模塊620,用于基于所述標(biāo)識信息確定所述目標(biāo)串口外設(shè),并針對所述應(yīng)用數(shù)據(jù)執(zhí)行解封裝;
第一發(fā)送模塊630,用于將所述解封裝后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將所述串口數(shù)據(jù)發(fā)送至所述目標(biāo)串口外設(shè)。
在一個可選的實(shí)現(xiàn)方式中,所述裝置與所述應(yīng)用程序預(yù)先建立的連接為socket連接。
在一個可選的實(shí)現(xiàn)方式中,所述裝置與所述應(yīng)用程序預(yù)設(shè)連接策略,并基于所述預(yù)設(shè)連接策略建立連接。
請參見圖7,為本發(fā)明根據(jù)另一示例性實(shí)施例示出的一種應(yīng)用程序與串口外設(shè)的通信裝置的框圖。所述裝置包括:第二接收模塊710、第二確定模塊720以及第二發(fā)送模塊730。
其中,第二接收模塊710,用于接收到所述串口外設(shè)發(fā)送的串口數(shù)據(jù);其中,所述串口數(shù)據(jù)攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息;
第二確定模塊720,用于基于所述目標(biāo)應(yīng)用程序標(biāo)識信息確定目標(biāo)應(yīng)用程序,并針對所述串口數(shù)據(jù)執(zhí)行解封裝;
第二發(fā)送模塊730,用于將所述解封裝后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),并將所述應(yīng)用數(shù)據(jù)發(fā)送至所述目標(biāo)應(yīng)用程序。
在本發(fā)明中,終端設(shè)備的操作系統(tǒng)可以配置有驅(qū)動程序以及至少一個應(yīng)用程序,驅(qū)動程序可以接收到應(yīng)用程序發(fā)送的應(yīng)用數(shù)據(jù),其中,應(yīng)用數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)串口外設(shè)的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)串口外設(shè),并針對應(yīng)用數(shù)據(jù)執(zhí)行解封裝,在完成對應(yīng)用數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為串口數(shù)據(jù),并將該串口數(shù)據(jù)發(fā)送至目標(biāo)串口外設(shè);當(dāng)然,驅(qū)動程序也可以接收到串口外設(shè)發(fā)送的串口數(shù)據(jù),其中,串口數(shù)據(jù)可以攜帶用于標(biāo)識目標(biāo)應(yīng)用程序的標(biāo)識信息,然后,驅(qū)動程序可以基于該標(biāo)識信息確定目標(biāo)應(yīng)用程序,并針對串口數(shù)據(jù)執(zhí)行解封裝,在完成對串口數(shù)據(jù)的解封裝后,驅(qū)動程序可以將解封裝后的數(shù)據(jù)封裝為應(yīng)用數(shù)據(jù),并將該應(yīng)用數(shù)據(jù)發(fā)送至目標(biāo)應(yīng)用程序。
在本發(fā)明中,當(dāng)串口外設(shè)更改,例如,串口協(xié)議或?qū)傩愿臅r,終端設(shè)備的操作系統(tǒng)配置的驅(qū)動程序可以進(jìn)行同步更改,由于串口外設(shè)以及驅(qū)動程序之間的更改不會影響到應(yīng)用程序與驅(qū)動程序之間的連接,因此,應(yīng)用程序不需要進(jìn)行同步更改,從而可以有效解決相關(guān)技術(shù)中當(dāng)某一串口外設(shè)更改時,與該串口外設(shè)進(jìn)行通信的所有應(yīng)用程序都需要執(zhí)行同步更改導(dǎo)致的操作系統(tǒng)穩(wěn)定性差以及加重相關(guān)人員配置負(fù)擔(dān)的問題。
上述裝置中各個模塊的功能和作用的實(shí)現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。
對于裝置實(shí)施例而言,由于其基本對應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本發(fā)明方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。