TW202040982A - 自助服務終端的操作方法及自助服務終端 - Google Patents

自助服務終端的操作方法及自助服務終端 Download PDF

Info

Publication number
TW202040982A
TW202040982A TW109113412A TW109113412A TW202040982A TW 202040982 A TW202040982 A TW 202040982A TW 109113412 A TW109113412 A TW 109113412A TW 109113412 A TW109113412 A TW 109113412A TW 202040982 A TW202040982 A TW 202040982A
Authority
TW
Taiwan
Prior art keywords
frame
control module
module
field
main part
Prior art date
Application number
TW109113412A
Other languages
English (en)
Inventor
孫寅
邵華
Original Assignee
美商益邏觸控系統公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商益邏觸控系統公司 filed Critical 美商益邏觸控系統公司
Publication of TW202040982A publication Critical patent/TW202040982A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/18Payment architectures involving self-service terminals [SST], vending machines, kiosks or multimedia terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0014Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/12Cash registers electronically operated
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Selective Calling Equipment (AREA)

Abstract

揭露了一種自助服務終端的操作方法。該方法包括:從應用模塊接收第一訊框;並判斷第一訊框是否有效,若有效則對該第一訊框的主體部分進行處理,否則不處理該第一訊框的主體部分,其中,該第一訊框的主體部分命令欄位,對該第一訊框的主體部分進行處理包括:解析該命令欄位以得到該第一訊框所針對的實體並根據該實體進行操作:若該實體為該裝置模塊中的一或複數裝置,則構造用於該一或複數裝置的第二訊框,並將該第二訊框發送給該一或複數裝置;以及若該實體是控制模塊,則基於該第一訊框的主體部分進行操作。

Description

自助服務終端的操作方法及自助服務終端
本揭露涉及自助服務技術領域,具體來說,涉及一種自助服務終端的操作方法及自助服務終端。
目前的自助服務,例如自助選購、自助下單、自助結帳、自助業務辦理等,通常要使用自助服務終端。
因此,存在對新技術的需求。
本揭露的目的之一是提供一種自助服務終端的操作方法及自助服務終端。
根據本揭露的第一方面,提供了一種自助服務終端的操作方法,該自助服務終端包括被配置為向用戶提供應用的應用模塊、包括複數裝置的裝置模塊、以及被配置用於該應用模塊和該裝置模塊之間的通訊的控制模塊,該方法包括由該控制模塊進行的如下操作:從該應用模塊接收第一訊框,其中該第一訊框包括主體部分;以及判斷該第一訊框是否有效,若有效則對該第一訊框的主體部分進行處理,若無效則不對該第一訊框的主體部分進行處理,其中,該第一訊框的主體部分包括命令欄位,對該第一訊框的主體部分進行處理包括:解析該命令欄位以得到該第一訊框所針對的實體,並根據該實體進行第一操作,其中該第一操作包括:若該實體為該裝置模塊中的一或複數裝置,則基於該第一訊框的主體部分以及該控制模塊與該一或複數裝置之間的預定規則構造用於該一或複數裝置的第二訊框,並將該第二訊框發送給該一或複數裝置;以及若該實體為該控制模塊,則根據該第一訊框的主體部分進行操作。
根據本揭露的第二方面,提供了一種自助服務終端的操作方法,該自助服務終端包括被配置為向用戶提供應用的應用模塊、包括複數裝置的裝置模塊、以及被配置用於該應用模塊和該裝置模塊之間的通訊的控制模塊,該方法包括由該應用模塊、該控制模塊、和該裝置模塊中的一或複數裝置中的任一第一實體進行的如下操作:接收第一訊框,該第一訊框包括訊框頭部分、主體部分和訊框尾部分;判斷該第一訊框的訊框頭部分是否正確,若正確則進行後續操作,若不正確則對該第一訊框不進行後續操作;以及判斷整個該第一訊框是否有效,若有效則對該第一訊框的主體部分進行處理,若無效則不對該第一訊框的主體部分進行處理。
根據本揭露的第三方面,提供了一種自助服務終端,包括被配置為向用戶提供應用的應用模塊、印表機、以及用於該應用模塊和該印表機之間的通訊的控制模塊,其中,該控制模塊被配置為:從該應用模塊接收第一訊框;以及判斷該第一訊框是否有效,若有效則對該第一訊框進行處理,若無效則不對該第一訊框進行處理,其中,該第一訊框包括指示該第一訊框所針對的一或複數實體和與該一或複數實體相關的一或複數操作的命令欄位、以及與該一或複數操作相關的資料欄位,對該第一訊框進行處理包括:解析該命令欄位以得到該一或複數實體和該一或複數操作,並進行根據該一或複數實體的如下操作:若該一或複數實體包括該印表機,則基於該一或複數操作、該資料欄位、以及該控制模塊與該印表機之間的預定規則,構造用於該印表機的第二訊框,並將該第二訊框發送給該印表機;以及若該一或複數實體包括該控制模塊,則根據該一或複數操作和該資料欄位進行操作。
通過以下參照附圖對本揭露的示例性實施例的詳細描述,本揭露的其它特徵及其優點將會變得清楚。
以下將參照附圖描述本揭露,其中的附圖示出了本揭露的若干實施例。然而應當理解的是,本揭露可以以多種不同的方式呈現出來,並不侷限於下文描述的實施例;事實上,下文描述的實施例旨在使本揭露的揭露更為完整,並向本領域技術人員充分說明本揭露的保護範圍。還應當理解的是,本文揭露的實施例能夠以各種方式進行組合,從而提供更多額外的實施例。
應當理解的是,本文中的用語僅用於描述特定的實施例,並不旨在限定本揭露。本文使用的所有術語(包括技術術語和科學術語)除非另外定義,均具有本領域技術人員通常理解的含義。為簡明和/或清楚起見,公知的功能或結構可以不再詳細說明。
在本文中,用語“A或B”包括“A和B”以及“A或B”,而不是排他地僅包括“A”或者僅包括“B”,除非另有特別說明。
在本文中,用語“示例性的”意指“用作示例、實例或說明”,而不是作為將被精確複製的“模型”。在此示例性描述的任意實現方式並不一定要被解釋為比其它實現方式優選的或有利的。而且,本揭露不受在上述技術領域、背景技術、發明內容或具體實施方式中所給出的任何所表述的或所暗示的理論所限定。
另外,僅僅為了參考的目的,還可以在本文中使用“第一”、“第二”等類似術語,並且因而並非意圖限定。例如,除非上下文明確指出,否則涉及結構或元件的詞語“第一”、“第二”和其它此類數字詞語並沒有暗示順序或次序。
還應理解,“包括/包含”一詞在本文中使用時,說明存在所指出的特徵、整體、步驟、操作、單元和/或組件,但是並不排除存在或增加一或複數其它特徵、整體、步驟、操作、單元和/或組件以及/或者它們的組合。
圖1所示為根據本揭露的一或複數示例性實施例的自助服務終端100的結構示意圖。自助服務終端100例如可以是自助售貨機、自助售票機、自助點餐機、自助結帳機、自助值機辦理機、自助掛號機、自助繳費機等。自助服務終端100包括應用模塊10、控制模塊20、以及裝置模塊30。
其中,應用模塊10被配置為向用戶提供應用。例如,用戶可以是消費者,應用模塊10可以向用戶提供自助選購、自助下單、自助結帳、自助業務辦理等的應用程序或人機交互介面。應用模塊10還可以不向用戶直接提供應用程序或人機交互介面而是僅提供用於應用程序或人機交互介面的資料介面,例如,應用模塊10向安裝在其他裝置(例如智慧型手機)上的應用程序提供資料介面,使得用戶可以通過安裝在其他裝置上的應用程序進行自助服務、以及操作自助服務終端100。再例如,用戶可以是管理人員,應用模塊10可以向用戶提供用於管理或維護的應用程序或人機交互介面、或者用於這樣的應用程序或人機交互介面的資料介面。
裝置模塊30可以包括複數裝置30-1、30-2……30-n,複數裝置中的一個或多個可以是用於自助服務終端100的輸入/輸出裝置。例如,裝置模塊30中的裝置可以是印表機、掃描器、圖形碼識別器、攝影機、POS機、銀行卡讀卡器、電/磁標籤檢測器、證件識別器、指紋識別器、多媒體播放器、指示燈、電源控制器、風扇、鍵盤、觸摸按鍵、觸控面板、顯示器、溫度計、濕度計、以及GPS定位裝置等。在本文中,當提及裝置模塊30時,依照上下文,其可以是指全部裝置30-1、30-2……30-n的整體,也可以是指裝置30-1、30-2……30-n中的一或複數裝置。
控制模塊20用於應用模塊10與裝置模塊30之間的通訊。控制模塊20與應用模塊10之間、以及控制模塊20與裝置模塊30可以通過各種有線或無線的通訊介面連接,包括但不限於USB介面、COM介面、UART介面、GPIO介面、SPI介面、I2C介面、藍牙介面等。除了用於應用模塊10與裝置模塊30之間的通訊之外,控制模塊20還可以被配置為自主發起對應用模塊10和/或裝置模塊30的通訊等。
圖2所示為適用於根據本揭露的一或複數示例性實施例的自助服務終端的操作方法的訊框結構200的示意圖。訊框結構為預定的在兩個通訊實體之間進行收發的格式。訊框結構200可以用於自助服務終端內部的實體之間進行通訊,例如,根據預定的規則應用在控制模塊20與應用模塊10之間,和/或控制模塊20與裝置模塊30之間。
訊框結構200包括訊框頭部分、主體部分和訊框尾部分。其中,訊框頭部分可以包括訊框標識欄位、訊框長欄位、以及訊框頭校驗欄位。訊框標識欄位可以是在兩個通訊實體之間預定的值,訊框長欄位表示整個訊框(從訊框結構200的訊框標識欄位到整訊框校驗欄位)的長度(例如可以是以字節為單位),訊框頭校驗欄位可以用於校驗訊框頭部分。在一具體的例子中,訊框標識欄位的長度可以是1個字節,在控制模塊20與應用模塊10之間、以及控制模塊20與裝置模塊30之間,預定的訊框標識欄位的值可以均為0x7E;訊框長欄位的長度可以是2個字節;訊框頭校驗欄位的長度可以是1個字節。在一些實施例中,訊框頭校驗欄位可以是訊框頭部分所包括的除訊框頭校驗欄位之外的所有其他內容進行逐字節累加的模2和,即訊框標識欄位和訊框長欄位進行逐字節模2累加的和,如此,在發送方生成訊框頭校驗欄位、以及在接收方通過訊框頭校驗欄位對訊框頭部分進行校驗的算法都很簡便,有助於提高處理速度。
主體部分可以包括命令欄位、訊框號欄位、以及資料欄位。命令欄位可以用來指示以下各項中的一或複數:該訊框所針對的一或複數實體、與該一或複數實體相關的一或複數操作、該一或複數實體的屬性(例如,實體的身份信息、實體所連接到的埠信息、以及實體在自助服務終端內部的位址信息中的一或複數)、該訊框是否為用於分段傳輸的訊框、以及在該訊框之前所發送的訊框的接收結果等。命令欄位的長度可以根據訊框將要承載的信息的多少在兩個互相通訊的實體之間預先定義。在一些實施例中,主體部分的命令欄位可以指示指向一段儲存器的位址,用來指示該訊框所針對的實體、與該實體相關的操作、該實體的屬性、該訊框是否為用於分段傳輸的訊框、以及在該訊框之前所接收的訊框的接收結果等的信息都可以儲存在該段儲存器中。訊框的發送方可以在這段儲存器中寫入這些信息,接收方可以根據命令欄位所指示的位址,從這段儲存器中讀出這些信息。
訊框號欄位指示該訊框的序號,可以用來識別重複收發的訊框,還以用來在分段傳輸的情況下對接收的複數相關聯的訊框進行排序。在一具體的例子中,訊框號欄位的長度為2個字節,其取值範圍為從0x0000至0xFFFF,循環使用。
資料欄位包括與該訊框所針對的實體的操作相關的資料,其長度可以是不定的,可以通過訊框長欄位所指示的整訊框的長度來計算出資料欄位的長度。在一些實施例中,主體部分的資料欄位可以是指向一段儲存器的位址,與該訊框所針對的實體的操作相關的資料都可以儲存在該段儲存器中。訊框的發送方可以在這段儲存器中寫入這些資料,接收方可以根據資料欄位所指示的位址,從這段儲存器中讀出這些資料。
訊框尾部分可以包括整訊框校驗欄位,其可以用於校驗整個訊框。整訊框校驗欄位的長度可以是1個字節,在一些實施例中,整訊框校驗欄位可以是整個訊框所包括的除整訊框校驗欄位之外的所有其他內容進行逐字節模2累加的和,即訊框標識欄位、訊框長欄位、訊框頭校驗欄位、命令欄位、訊框號欄位、以及資料欄位進行逐字節模2累加的和,如此,在發送方生成整訊框校驗欄位、以及在接收方通過整訊框校驗欄位對整個訊框進行校驗的算法都很簡便,有助於提高處理速度。
下面根據具體的示例來說明根據本揭露的一或複數示例性實施例的自助服務終端的操作方法。
示例一:應用模塊10指示裝置模塊30中的一或複數裝置進行特定的操作(如圖3所示)。一些示例性的場景可以是,應用模塊10向裝置模塊30中的印表機指示進行購物憑條的列印,應用模塊10指示裝置模塊30中的指示燈以特定的模式發出特定顏色的光並且指示多媒體播放器播放特定的聲音,應用模塊10指示裝置模塊30中的風扇加快轉速等。本領域技術人員應理解,這些列舉僅是示例性的,並不是窮舉性的或限制性的,本揭露的技術方案還可以應用於其他的場景。下面參照圖3以一具體的示例來說明在這些應用中自助服務終端的操作方法。
如圖3所示,應用模塊10構造(S310)一或複數用於指示裝置模塊中的裝置30-1進行操作的第一訊框,並將一或複數第一訊框發送(S320)給控制模塊20。第一訊框可以具有類似於如圖2所示的訊框結構200的結構。其中,第一訊框的主體部分的命令欄位可以指示第一訊框所針對的實體(在圖3所示的示例中為裝置30-1)、以及與該實體相關的一或複數操作。主體部分的資料欄位可以包括與該實體執行該操作相關的資料。在一具體的例子中,第一訊框可以是應用模塊10構造的用於指示印表機進行購物憑條列印的訊框,其中主體部分的命令欄位指示第一訊框所針對的實體為印表機,指示的與印表機相關的操作為列印,與該列印操作相關的資料攜帶在主體部分的資料欄位中。主體部分的訊框號欄位用來指示該第一訊框在應用模塊10和控制模塊20之間的通訊的訊框中的序號。在一具體的例子中,在應用模塊10和控制模塊20之間的通訊中,應用模塊10為主單元,控制模塊20為從單元,由主單元即應用模塊10來維護這兩個單元之間通訊的訊框號。此外,第一訊框還可以具有如訊框結構200中的訊框頭部分和訊框尾部分。
當與該實體執行該操作相關的資料的量較大,在一第一訊框裡不能全部攜帶時,可以使用複數第一訊框來傳輸這些資料,例如下文所說的“分段傳輸”。在這種情況下,應用模塊10在構造第一訊框時,需要增加指示該訊框為用於分段傳輸的訊框的信息,還可以增加指示本次分段傳輸一共分了多少個訊框進行傳輸的信息。這些信息可以在主體部分的命令欄位中體現。此外,在分段傳輸的情況下,主體部分的訊框號欄位還可以用來指示相關聯的複數第一訊框的排列順序,例如以訊框號欄位連續地正序或倒序排列,這樣控制模塊20在接收到本次資料分成的相關聯的複數第一訊框之後,可以根據訊框號欄位將這些第一訊框進行排序,還可以根據這些第一訊框的訊框號是否連續來判斷本次分段傳輸是否有漏收的第一訊框。
由於應用模塊10構造和發送的用於指示裝置30-1進行操作的第一訊框並不是直接發送給裝置30-1,而是發送給控制模塊20,因此,第一訊框中各個欄位的含義只需要符合應用模塊10和控制模塊20之間的預定的規則即可,而不需要符合裝置30-1所期望的格式。例如,可以在應用模塊10和控制模塊20之間預先定義命令欄位中的一部分字節用來指示第一訊框所針對的實體,一部分字節用來指示與該實體相關的操作,還可以預先定義這些字節的數值與所表示的內容的對應關係。這些預先定義的規則可以是與控制模塊20和裝置模塊30之間定義的規則不同的,例如,不需要符合裝置模塊30中的裝置30-1的產品介面手冊中所描述的規則。
控制模塊20接收並處理(S330)第一訊框,然後根據第一訊框的內容構造(S340)第二訊框,並將第二訊框發送(S350)給第一訊框所針對的實體,例如裝置模塊30中的裝置30-1。控制模塊20接收到第一訊框之後,可以先根據第一訊框的訊框頭部分和訊框尾部分對第一訊框進行校驗來判斷第一訊框是否有效(判斷第一訊框是否有效的具體方法的示例將在下文進行詳細描述),若有效則進行對第一訊框的主體部分進行處理,否則丟棄第一訊框,不對第一訊框進行後續處理也不構造和發送第二訊框。控制模塊20發送給裝置30-1的第二訊框的訊框結構需要遵循在控制模塊20和裝置30-1之間預先定義的規則,這樣的規則例如可以是裝置30-1的產品介面手冊中所描述的規則,或者如圖2所示的訊框結構200等。
控制模塊20對第一訊框的主體部分進行處理可以包括解析主體部分的命令欄位,以得到第一訊框所針對的實體,即裝置30-1。通常裝置模塊30包括複數裝置30-1、30-2……30-n,複數裝置30-1、30-2……30-n通過各自的介面連接到控制模塊20相應的埠上。控制模塊20通過解析命令欄位確定出第一訊框所針對的裝置30-1之後,可以經由裝置30-1所連接到的埠來向裝置30-1發送第二訊框。
此外,控制模塊20還通過解析主體部分的命令欄位來得到第一訊框中所指示的與裝置30-1相關的操作。控制模塊20至少根據其與裝置30-1之間預定的規則、以及第一訊框指示的與裝置30-1相關的操作來構造第二訊框的主體部分的命令欄位,使得第二訊框的主體部分的命令欄位以裝置30-1可以解析的規則來指示裝置30-1進行特定的操作。由於第二訊框是控制模塊20定向地發給裝置30-1,因此在命令欄位中不需要指示第二訊框所針對的實體,只需要指示裝置30-1所要進行的操作即可。
在一具體的例子中,第一訊框的主體部分的命令欄位指示第一訊框所針對的裝置30-1為印表機,控制模塊20通過解析第一訊框的命令欄位確定出第一訊框針對的是印表機,由於印表機連接在控制模塊20的一COM埠上,控制模塊控制構造出的第二訊框發送到該COM埠,從而發送給印表機。控制模塊20還通過解析第一訊框的命令欄位識別出第一訊框指示印表機進行的操作。例如,操作可以是:以默認方式列印、以特定的格式列印、以特定的語言列印、以特定的頁面寬度列印等。控制模塊20在構造第二訊框時需要在第二訊框中以與印表機預先定義的規則指示印表機進行第一訊框中所指示的操作。
指示印表機所列印的內容體現在第一訊框主體部分的資料欄位中。控制模塊20構造第二訊框還包括根據其與印表機(即裝置30-1)之間預定的規則以及第一訊框的主體部分的資料欄位的內容來構造第二訊框的主體部分的資料欄位。在控制模塊20與應用模塊之間定義的資料欄位的規則與控制模塊20與裝置30-1之間定義的資料欄位的規則相同的情況下,控制模塊20可以不對第一訊框的資料欄位進行處理,直接將來自第一訊框的主體部分的資料欄位打包到第二訊框的主體部分的資料欄位即可。在控制模塊20與裝置30-1之間預定的規則為主體部分的資料欄位是指向一段儲存器的位址的情況下,控制模塊20構造第二訊框還包括將與裝置30-1的操作相關的資料保存到裝置30-1能夠讀取的位址中,並在第二訊框的主體部分的資料欄位中攜帶該位址。
由於控制模塊20與應用模塊10之間的傳輸速率、以及控制模塊20與裝置模塊30之間的傳輸速率通常不匹配,在第一訊框為用於分段傳輸的訊框的情況下,控制模塊20可以不是接收到一條第一訊框就發送一條對應的第二訊框。例如控制模塊20可以是一方面緩存通過接收進程接收到的多條相關聯的複數第一訊框,而不管所對應的第二訊框的構造/發送情況。另一方面,控制模塊20可以通過發送進程將緩存的複數第一訊框按照訊框號欄位所指示的順序(例如正序或倒序)分別構造第二訊框之後逐條發送給裝置30-1而不管對應的那些第一訊框的接收情況。控制模塊20可以根據第一訊框的命令欄位是否指示了該第一訊框為用於分段傳輸的訊框、以及第一訊框的命令欄位中指示的本次分段傳輸一共分了多少個訊框進行傳輸的信息,來判斷哪些訊框是用於相同的分段傳輸的相關聯的訊框。
在第二訊框具有如圖2所示的訊框結構200的情況下,控制模塊20還要將訊框號欄位構造在第二訊框的主體部分。在一些實施例中,在裝置模塊30中的裝置30-1、30-2……30-n和控制模塊20之間的通訊中,裝置30-1、30-2……30-n為主單元,控制模塊20為從單元,由主單元即裝置30-1、30-2……30-n來維護這兩個單元之間通訊的訊框號。控制模塊20在構造發送給裝置30-1的第二訊框時,只需要將上一次與裝置30-1進行交互的訊框的訊框號加1即可作為第二訊框的訊框號。如果是初次向裝置30-1發送,則將第二訊框的訊框號欄位設置為預定的初始訊框號(例如0x0000、0x0001或oxFFFF等)即可。
裝置30-1接收並處理(S360)第二訊框,然後根據第二訊框中所指示的操作和與操作相關的資料執行(S370)操作。在第二訊框具有如圖2所示的訊框結構200的情況下,裝置30-1在接收到第二訊框之後,可以先根據第二訊框的訊框頭部分和訊框尾部分對第二訊框進行校驗來判斷第二訊框是否有效,若有效則進行對第二訊框的主體部分進行處理,以得到自己被指示將要進行的操作和與操作相關的資料,並根據得到的這些信息進行被指示的操作。在將複數相關聯的第二訊框用於同一分段傳輸的情況下,裝置30-1可以每收到一第二訊框就進行一次相關的操作(例如印表機可以接收到一部分資料就列印一部分資料),也可以當複數相關聯的第二訊框均接收完全後再進行相關的操作(例如印表機可以緩存複數相關聯的第二訊框,等這些第二訊框全部接收完畢後,再根據這些第二訊框的訊框號欄位來按照順序列印全部這些資料)。如此,可以完成應用模塊10指示裝置30-1進行特定操作的過程。
示例二:裝置模塊30向應用模塊10報告其信息,包括狀態、操作、屬性等(如圖4所示)。一些示例性的場景可以是,裝置模塊30中的溫/濕度計向應用模塊10報告其測量到的溫/濕度,裝置模塊30中的商品檢測器向應用模塊10報告其檢測到商品的識別碼,裝置模塊30中的印表機向應用模塊10報告其出現缺墨故障等。本領域技術人員應理解,這些列舉僅是示例性的,並不是窮舉性的或限制性的,本揭露的技術方案還可以應用於更多的場景。下面參照圖4以一具體的示例來說明在這些應用中自助服務終端的操作方法。
如圖4所示,裝置30-1構造(S410)一或複數向應用模塊10報告其狀態、操作、屬性等的第一訊框,並將第一訊框發送(S420)給控制模塊20。第一訊框的訊框結構需要遵循在控制模塊20和裝置30-1之間預先定義的規則,這樣的規則例如可以是裝置30-1的產品介面手冊中所描述的規則,或者如圖2所示的訊框結構200等。在第一訊框具有如圖2所示的訊框結構200的情況下,第一訊框的主體部分的命令欄位可以指示裝置30-1的狀態改變(例如溫度變化、發生故障等)、完成的操作(例如被用戶觸發(例如按鍵被按下、觸控螢幕被觸摸、檢測器檢測到商品等))等。主體部分的資料欄位可以包括與裝置30-1的狀態改變或完成的操作相關的資料,例如掃碼器所讀取的支付碼資料,用戶通過POS機輸入的密碼,溫濕度計所測量到的資料,裝置30-1發生的故障代碼等。主體部分的訊框號欄位用來指示第一訊框在控制模塊20和裝置30-1之間的通訊的訊框中的序號。在一些實施例中,在裝置30-1和控制模塊20之間的通訊中,裝置30-1為主單元,控制模塊20為從單元,由主單元即裝置30-1來維護這兩個單元之間通訊的訊框號。此外,第一訊框還可以具有訊框結構200的訊框頭部分和訊框尾部分。
當裝置30-1需要傳輸的資料量較大,在一第一訊框裡不能全部攜帶時,也可以分多次(即使用複數第一訊框)來傳輸這些資料。在這種情況下,裝置30-1在構造第一訊框時,需要增加指示該訊框為用於分段傳輸的訊框的信息,還可以增加本次分段傳輸一共分了多少個訊框進行傳輸的信息。這些信息可以在主體部分的命令欄位中體現。在分段傳輸的情況下,主體部分的訊框號欄位還可以用來指示相關聯的複數第一訊框的排列順序。
控制模塊20接收並處理(S430)第一訊框,然後根據第一訊框的內容構造(S440)第二訊框,並將第二訊框發送(S450)給應用模塊10。控制模塊20接收到第一訊框之後,可以先根據第一訊框的訊框頭部分和訊框尾部分對第一訊框進行校驗來判斷第一訊框是否有效(判斷第一訊框是否有效的具體方法的示例將在下文進行詳細描述),若有效則進行對第一訊框的主體部分進行處理,否則丟棄第一訊框,不對第一訊框進行後續處理也不構造和發送第二訊框。
控制模塊20對第一訊框的主體部分進行處理可以包括解析主體部分的命令欄位,以得到裝置30-1通過第一訊框所報告的與其相關的信息(例如狀態、操作、屬性等),然後基於裝置30-1報告的信息、以及在控制模塊20和應用模塊10之間預先定義的規則,來構造用於發送給應用模塊10的第二訊框。控制模塊20還要根據其與應用模塊10之間預定的規則,在第二訊框的命令欄位中指明與該信息的相關的實體,即裝置30-1。此外,控制模塊20還要將訊框號欄位構造在第二訊框的主體部分。由於訊框號由主單元即應用模塊10維護,控制模塊20在構造第二訊框時,只需要將上一次與應用模塊10交互的訊框的訊框號加1即可作為第二訊框的訊框號。如果是初次向應用模塊10發送,則將第二訊框的訊框號欄位設置為預定的初始訊框號(例如0x0000、0x0001或0xFFFF等)即可。
在將複數相關聯的第一訊框用於同一分段傳輸的情況下,控制模塊20可以每收到一第一訊框就構造並發送一第二訊框,也可以當複數相關聯的第一訊框均接收完全後再構造並發送複數相關聯的第二訊框。
應用模塊10接收並處理(S460)第二訊框,然後根據第二訊框中所指示的裝置30-1和裝置30-1的信息執行(S470)相應的操作。應用模塊10在接收到第二訊框之後,可以先根據第二訊框的訊框頭部分和訊框尾部分對第二訊框進行校驗來判斷第二訊框是否有效,若有效則進行對第二訊框的主體部分進行處理,從而可以得知裝置30-1的信息。例如,應用模塊10可以由此得知商品檢測器檢測到商品的識別碼從而可以做出例如獲取該商品的價格等相關的操作,或者由此得知溫度計測量的自助服務終端內的溫度從而可以據此控制終端內的風扇調整轉速,再例如由此得知印表機出現缺墨故障從而控制報警裝置發出報警或者通過安裝在用戶裝置上的應用程序來通知管理/維護人員等。如此,可以完成裝置30-1向應用模塊10報告其信息的過程。
示例三:應用模塊10指示控制模塊20進行特定的操作,控制模塊20指示裝置模塊30進行特定的操作,控制模塊20向應用模塊10報告其相關信息,或者裝置模塊30向控制模塊20報告其相關信息。在該示例三中,控制模塊20不是用於應用模塊10與裝置模塊30之間的通訊,而是作為自助服務終端內部的實體,獨立地與應用模塊10或裝置模塊30進行通訊。一些示例性的場景可以是,例如,應用模塊10指示控制模塊20進行軟體的版本更換或韌體代碼的版本更換;控制模塊20向應用模塊10報告其狀態、操作和/或屬性(例如軟體或韌體代碼版本、故障狀態等);溫度計向控制模塊20報告測量到的自助服務終端內部的溫度,然後控制模塊20不向應用模塊10報告而是直接控制風扇的轉速以調節終端內部的溫度。
在該示例三中,應用模塊10指示控制模塊20進行特定的操作的過程可以包括,應用模塊10構造一或複數用於指示控制模塊20進行特定操作的第一訊框,並將第一訊框發送給控制模塊20;控制模塊20接收並處理第一訊框,通過解析命令欄位得到第一訊框所針對的實體為控制模塊20,然後控制模塊20不會構造和發送第二訊框,而是根據第一訊框的內容執行相應的操作。
控制模塊20指示裝置模塊30進行特定的操作的過程可以包括,控制模塊20構造一或複數用於指示裝置模塊中的裝置30-1進行特定操作的第一訊框,並將第一訊框發送給裝置30-1;裝置30-1接收並處理第一訊框,並根據第一訊框的內容執行相應的操作。
控制模塊20向應用模塊10報告其相關信息的過程可以包括,控制模塊20構造一或複數用於向應用模塊10報告其相關信息的第一訊框,並將第一訊框發送給應用模塊10;應用模塊10接收並處理第一訊框,並根據第一訊框的內容執行相應的操作。
裝置模塊30向控制模塊20報告其相關信息可以包括,裝置30-1構造一或複數用於向控制模塊20報告其相關信息的第一訊框,並將第一訊框發送給控制模塊20;控制模塊20接收並處理第一訊框,並根據第一訊框的內容執行相應的操作。
示例四:裝置模塊30中的裝置30-1、30-2……30-n與控制模塊20的通訊交握程序。在裝置30-1、30-2……30-n上電之後,可以進行與控制模塊20的通訊交握程序。交握程序中實體之間的通訊可以使用如圖2所示的訊框結構200。例如,裝置30-1可以向控制模塊20發送第一訊框以將裝置30-1的身份信息(例如裝置30-1是什麼裝置)告知控制模塊20(以控制模塊20和裝置30-1之間預定的規則)。例如,裝置30-1可以通過第一訊框的主體部分的命令欄位(本領域技術人員應理解也可以是其他的欄位)將裝置30-1的身份信息(例如裝置30-1是印表機)告知控制模塊20;控制模塊20從自己的一特定埠(例如一USB埠)接收到該第一訊框,經過解析第一訊框的命令欄位後得知自己的該特定埠連接的裝置為印表機。這樣,當在交握程序完成之後,當應用模塊10需要通過控制模塊20指示印表機進行操作時,控制模塊20就知道如何將該指示轉發到印表機,即通過該特定USB埠。
在一些實施例中,控制模塊20還可以使用具有如圖2所示的訊框結構200的第二訊框將自己的該埠的埠信息告訴裝置30-1,這樣在交握程序之後的交互中,裝置30-1每次只需要在傳遞消息的訊框中向控制模塊20報告埠信息或裝置的身份信息中的一個,控制模塊20就可以得知該消息是來自哪個裝置。在一些實施例中,裝置30-1不需要知道自己連接到控制模塊20的哪個埠,只要在交握程序中告訴過控制模塊20自己的身份信息,控制模塊20就已經知道自己的哪個埠對應於那個裝置,在以後和這個裝置的消息收發中,只要通過該埠收發消息即可。
在一些實施例中,自助服務終端內部的各個實體可以通過區域網路彼此連接。例如裝置模塊30中的裝置30-1、30-2……30-n通過區域網路連接到控制模塊20。在這種情況下,控制模塊20與裝置30-1、30-2……30-n之間的交握程序中,可以用命令欄位(本領域技術人員應理解也可以是其他的欄位)將裝置30-1、30-2……30-n在自助服務終端內部的位址信息(例如在區域網路中的IP位址)通知給控制模塊20。在之後與控制模塊20的通訊中,裝置30-1、30-2……30-n可以用命令欄位將其位址信息告知控制模塊20。這樣,控制模塊20根據接收的訊框中的位址信息就可以確定該訊框的發送者是哪個裝置。
示例五:控制模塊20向伺服器上傳其儲存的資料。其中的伺服器可以是本地伺服器也可以是雲端伺服器。如圖5所示,自助服務終端100中的應用模塊10連接到伺服器40,控制模塊20連接到伺服器50,其中的伺服器40和伺服器50可以是相同的也可以是不同的伺服器。如果伺服器50是本地伺服器,則控制模塊20可以通過UART埠或USB埠等連接到伺服器50;如果伺服器50是雲端伺服器,則控制模塊20可以通過各種有線或無線網絡技術接入網際網路從而連接到伺服器50。由於與用戶操作相關的通訊資料(這裡所說的資料包括資料和指令)大都會經過控制模塊20,因此控制模塊20如果將經由其通訊的資料都進行儲存並上傳給伺服器,將有利於伺服器50做大資料分析,例如分析哪些商品更受消費者青睞等。
控制模塊20可以通過向伺服器50發送一或複數第一訊框來向伺服器50傳輸其保存的資料。第一訊框的訊框結構需要遵循在控制模塊20和伺服器50之間預先定義的規則,例如可以是如圖2所示的訊框結構200,也可以是TCP/IP協議中的訊框結構等。
在控制模塊20向伺服器50發送的第一訊框具有如圖2所示的訊框結構200的情況下,控制模塊20可以使用第一訊框的主體部分的資料欄位傳輸需要上傳的資料。在一些實施例中,控制模塊20還可以將指示自助服務終端的位址的信息構造在第一訊框的主體部分的命令欄位(本領域技術人員應理解也可以是其他的欄位)中,如此伺服器50就可以從第一訊框的內容中得知這些資料所對應的自助服務終端的位址信息。在一些實施例中,這樣的位址信息可以是自助服務終端接入網際網路的IP位址、也可以是自助服務終端被放置的物理位址。物理位址信息可以是控制模塊20通過連接在其上的定位裝置(例如GPS定位裝置)得到的,也可以由伺服器、上位機、或其他裝置配置為控制模塊20的。自助服務終端被放置的物理位址的精度級別可以是自助服務終端被放置的門店信息,也可以是自助服務終端被放置到某個門店的具體的位置(例如北門處、生鮮區、中部區域等)。這些位址信息與控制模塊20儲存的資料一起上傳到伺服器50,將有利於伺服器50分析不同地理位置的信息,例如哪些位置的客流量較大需要加裝自助服務終端等。
示例六:自助服務終端內部的各個實體之間通訊時進行訊框校驗,這樣的訊框校驗基於圖2所示的訊框結構200,應用模塊10、控制模塊20、裝置模塊30、伺服器40、50中的任何一實體均可以對其接收的訊框進行這樣的訊框校驗。在以下對示例六的描述中,以應用模塊10構造並向控制模塊20發送第一訊框、控制模塊20校驗此第一訊框為例進行描述,其他實體之間通訊時的過程與之類似,省略重複描述。
應用模塊10構造第一訊框包括將預定的訊框標識作為訊框標識欄位、指示第一訊框的長度的訊框長欄位、以及用於校驗第一訊框的訊框頭部分的第一校驗欄位佈置在第一訊框的訊框頭部分,將用於校驗整個第一訊框的第二校驗欄位佈置在第一訊框的訊框尾部分,以及將命令欄位、訊框號欄位、和資料欄位佈置在第一訊框的主體部分,如此,使得第一訊框具有如圖2所示的訊框結構200。其中,生成第一校驗欄位和第二校驗欄位的算法可以是任何校驗值的生成算法,只需要在發送方應用模塊10和接收方控制模塊20預先約定好即可。例如,生成第一校驗欄位和第二校驗欄位的算法可以是CRC校驗算法、MD5校驗算法、SHA1校驗算法等。在一些情況下,自助服務終端內部的各實體之間為近距離的有線通訊,考慮到這樣的通訊環境比較可靠,因此可以採用簡單的校驗值生成算法,例如,逐字節模2累加的和。如此,應用模塊10構造第一訊框時,將訊框頭部分所包括的除第一校驗欄位之外的其他內容進行逐字節的模2累加,累加的和(例如,和的長度為一個字節)作為用於校驗訊框頭部分的第一校驗欄位。類似地,應用模塊10將第一訊框所包括的除第二校驗欄位之外的內容進行逐字節的模2累加,累加的和(例如,和的長度為一個字節)作為用於校驗整個第一訊框的第二校驗欄位。
如圖6所示,控制模塊20接收(S610)該第一訊框,然後判斷(S620)第一訊框的訊框頭部分是否正確,若不正確則對第一訊框不進行後續操作;若正確,再判斷(S630)整個第一訊框是否有效,若有效則對第一訊框的主體部分進行處理(S640),若無效則不對第一訊框的主體部分進行處理。
在一些實施例中,判斷(S620)第一訊框的訊框頭部分是否正確可以包括依次進行的如下操作: 1)判斷訊框標識欄位是否屬於一或複數預定的訊框標識的值,若是,則進行後續操作,否則,判斷為訊框頭部分錯誤並對第一訊框不進行後續操作; 2)判斷訊框長欄位是否屬於一或複數預定的訊框長的值,若是,則進行後續操作,否則,判斷為訊框頭部分錯誤並對第一訊框不進行後續操作;以及 3)根據第一校驗欄位判斷訊框頭部分是否正確,例如,判斷第一校驗欄位是否為訊框頭部分包括的除第一校驗欄位之外的其他欄位進行逐字節模2累加的和,若是,則判斷為訊框頭部分正確,否則,判斷為訊框頭部分錯誤。
本領域技術人員應理解,依次進行的如上的操作只是本揭露的一些實施例中的方案,在另一些實施例中,判斷(S620)第一訊框的訊框頭部分是否正確可以包括以上操作中的任意一項或多項,例如可以僅包括操作3)、包括操作1)和3)、包括操作1)和2)、或包括操作2)和3)等。
以上描述中所稱的“後續操作”,包括在判斷(S620)第一訊框的訊框頭部分是否正確的一系列操作中的後續操作(例如,操作1)後續的操作2)和3)),也包括在判斷(S620)第一訊框的訊框頭部分是否正確的操作之後的操作(例如,判斷(S630)整個第一訊框是否有效的操作、以及對第一訊框的主體部分進行處理(S640)的操作等)。
在一些實施例中,判斷(S630)整個第一訊框是否有效可以包括:判斷第二校驗欄位是否為第一訊框包括的除第二校驗欄位之外的欄位進行逐字節模2累加的和,若是,則判斷為第一訊框有效,否則,判斷為第一訊框無效。
此外,在對第一訊框的主體部分進行處理(S640)的過程中也可以進行一些對第一訊框的校驗操作。在一些實施例中,在對第一訊框的主體部分進行處理(S640)的過程中對第一訊框進行校驗可以包括如下操作: 1)判斷命令欄位的數值範圍是否在預定的範圍內(例如,控制模塊20判斷該命令欄位是否是符合控制模塊20與應用模塊10之間預定的規則),若是,則進行後續操作,否則對第一訊框不進行後續操作以及 2)解析命令欄位以得到第一訊框所針對的實體,判斷實體是否屬一或複數預定的實體(例如,控制模塊20判斷該命令欄位所指示的第一訊框所針對的實體是否是符合控制模塊20與應用模塊10之間預定的規則),若是,則進行後續操作,否則對第一訊框不進行後續操作。
本領域技術人員應理解,在對第一訊框的主體部分進行處理(S640)的過程中對第一訊框進行校驗可以包括比以上所列出的操作1)和2)更少的操作,例如可以僅包括操作1)或2);還可以包括以上所列出的操作1)和2)更多的操作,例如判斷命令欄位所指示的發送方的狀態、操作、身份信息、埠信息、以及位址信息等是否是符合控制模塊20與應用模塊10之間預定的規則,若是,則進行後續操作,否則對第一訊框不進行後續操作。
以上描述中所稱的“後續操作”,包括在對第一訊框的主體部分進行處理(S640)的過程中對第一訊框進行校驗中的操作(例如,操作1)後續的操作2)),也包括在對第一訊框的主體部分進行處理(S640)的過程中對第一訊框進行校驗之後的操作(例如,對第一訊框的主體部分進行解析的操作等),以及對第一訊框的主體部分處理完成之後的操作(例如,執行第一訊框所指示的操作或者構造第二訊框等)。
示例七:自助服務終端內部的各個實體之間通訊時進行傳輸質量控制。傳輸質量控制可以包括:在接收方根據上述示例六進行訊框校驗之後,向發送方回饋該訊框的接收結果;若發送方收到接收方的接收錯誤的回饋,則發送方發送(可能是重新發送)該訊框;以及若接收方發現接收到的訊框號不連續,接收方可以要求發送方傳輸(可能是重新傳輸)與缺失的訊框號對應的訊框。應用模塊10、控制模塊20、裝置模塊30、伺服器40、50均可以進行這樣的傳輸質量控制。在以下對示例七的描述中,還是以應用模塊10和控制模塊20之間的通訊為例進行描述,其他實體之間通訊時的過程與之類似,省略重複描述。
應用模塊10構造並發送第一訊框給控制模塊20,控制模塊20可以根據上述示例六描述的方法判斷第一訊框的訊框頭部分是否正確,若正確則進行後續操作,若不正確則將第一訊框丟棄。在一些實施例中,控制模塊20在判斷判斷第一訊框的訊框頭部分不正確之後,可以向應用模塊10發送第二訊框以指示接收錯誤。在另一些實施例中,控制模塊20在判斷判斷第一訊框的訊框頭部分錯誤之後,不向應用模塊10發送第二訊框以指示接收錯誤,而僅僅是丟棄第一訊框,即不對第一訊框做任何的後續處理。
若判斷為第一訊框的訊框頭部分正確之後,控制模塊20可以根據上述示例六描述的方法判斷整個第一訊框是否有效,若有效則進行後續操作,若無效則將第一訊框丟棄不對第一訊框做後續處理,並且向應用模塊10發送第二訊框以指示接收錯誤。如果控制模塊20在對第一訊框的主體部分進行處理的過程中對第一訊框進行校驗時發現錯誤,則將第一訊框丟棄不進行後續處理,並且向應用模塊10發送第二訊框以指示接收錯誤。若對第一訊框的全部處理完成並沒有發現第一訊框的錯誤,則向應用模塊10發送第二訊框以指示接收正確。
這樣的用來指示接收結果為正確或錯誤的第二訊框也可以具有如圖2所示的訊框結構200,接收結果可以以通訊雙方預先定義的規則來體現,例如,可以在命令欄位中以特定位置的一個字節來體現,0x00表示接收正確,0xff表示接收錯誤等。
應用模塊10在向控制模塊20發送第一訊框之後,可以接收控制模塊20發來的指示接收結果的第二訊框。根據雙方預先定義的規則來解析第二訊框中對接收結果的指示,若指示接收正確,則不重新傳輸第一訊框;若指示接收錯誤,則重新傳輸第一訊框。在通訊雙方之間可以預先約定最大傳輸次數(或最大重傳次數),如果應用模塊10向控制模塊20傳輸第一訊框的次數超過了預定的最大傳輸次數(或者重新傳輸第一訊框的次數超過了預定的最大重傳次數),則即使再次收到控制模塊20發來的指示接收錯誤的第二訊框,應用模塊10也不再傳輸第一訊框。
第二訊框與第一訊框的對應關係可以通過訊框號欄位來體現,這種對應關係可以是在通訊雙方之間預先定義的,例如第二訊框的訊框號與對應的第一訊框的訊框號相同、或第二訊框的訊框號是對應的第一訊框的訊框號加1等。例如,控制模塊20接收的應用模塊10發來的第一訊框的訊框號欄位為0x1234,則用於指示第一訊框的接收結果的第二訊框的訊框號欄位也可以為0x1234。應用模塊10在接收到第二訊框後,根據第二訊框中的訊框號欄位就知道第二訊框中所指示的是哪一訊框的接收結果。
控制模塊20還可以根據第一訊框的訊框號欄位來判斷有沒有漏掉的來自應用模塊10的訊框,或者是不是重複接收了來自應用模塊10的訊框。
對於漏掉的來自應用模塊10的訊框的情況,在一些實施例中,控制模塊20和應用模塊10之間預先定義的規則為在這兩者之間傳輸的訊框的訊框號應當是連續的,而如果上一次接收的來自應用模塊10的訊框的訊框號為n,而本次接收的來自應用模塊10的第一訊框的訊框號為n+2,則控制模塊20可以請求應用模塊10發送(也可能是重新發送)訊框號被跳過的訊框,即訊框號為n+1的訊框。在另一些實施例中,也可以在控制模塊20和應用模塊10之間預先約定在這兩者之間傳輸的訊框的訊框號可以是不連續的,那麼當控制模塊20本次接收到的來自應用模塊10的第一訊框的訊框號與上一次接收到的來自應用模塊10的訊框的訊框號不連續時,控制模塊20不會請求應用模塊10發送訊框號被跳過的訊框。
對於重複接收來自應用模塊10的訊框的情況,控制模塊20判斷接收自應用模塊10的第一訊框的訊框號欄位是否與在第一訊框之前的預定時間內、或者預定個訊框內接收自應用模塊10的接收自應用模塊10的一訊框的訊框號欄位相同,若是,則判斷為第一訊框為重複接收的訊框,則對第一訊框不進行後續操作。需要注意的是,由於訊框號欄位的字長是有限的,因此訊框號欄位的值是可能重複的。例如,若訊框號欄位的長度為2個字節,兩個通訊實體之間預定的初始訊框號為0x0000,訊框號維護規則為每次遞增1。如果本次發送的訊框號欄位是0xFFFF,則下一次發送的訊框號欄位將會是0x0000,這就與初始訊框號重複了。因此,做是否重複接收的判斷時,必須限定訊框號相同的兩訊框是在預定時間內或者預定個訊框內。在正常收發情況下,該預定時間內或預定個訊框內訊框號不會重複。
在一些情況下,當應用模塊10需要發給控制模塊20的資料量較大在一第一訊框裡不能全部攜帶時,可以使用複數第一訊框來傳輸這些資料,例如本文所說的“分段傳輸”。在這些情況下,控制模塊20根據第一訊框判斷出其是用於分段傳輸的訊框,則在第一訊框和與第一訊框相關聯的用於同一分段傳輸的訊框全部接收完畢之後,判斷第一訊框和與第一訊框相關聯的訊框之間的訊框號欄位所指示的訊框號是否是連續的,若連續,則基於訊框號欄位對第一訊框和與第一訊框相關聯的訊框進行排序,例如可以根據訊框號正序或倒序排序以恢復出本次分段傳輸的全部資料;若不連續,則判斷缺少的訊框號,並根據缺少的訊框號構造第三訊框並向應用模塊10發送第三訊框(其中指示了缺少的訊框號),以指示應用模塊10傳輸(也可能是重新傳輸)與缺少的訊框號相關的訊框。應用模塊10接收到指示了缺少的訊框號的第三訊框之後,根據控制模塊20與應用模塊之間預先的約定,可以選擇只發送(也可能是重新發送)缺少的這一訊框資料,也可以選擇將用於本次分段傳輸的所有訊框全部發送(也可能是重新發送)。
雖然在示例七中描述的是有應答(即發送指示第一訊框的接收結果的第二訊框)的通訊模式,本領域技術人員應理解,在兩個互相通訊的實體之間還可以使用無應答回饋的通訊模式。例如,可以對命令欄位的值符合第一條件的訊框採用有應答回饋的通訊模式,對命令欄位的值符合第二條件的訊框採用無應答回饋的通訊模式。
本領域技術人員應理解,為簡便起見,在以上對各示例的具體描述中,相同或相似的描述被省略。
圖7是示意性地示出根據本揭露的一或複數示例性實施例的自助服務終端700的至少一部分的結構圖。自助服務終端700的至少一部分例如可以是上文所描述的以下各項中的一或複數:應用模塊10、控制模塊20、裝置模塊30、裝置30-1、30-2……30-n、以及伺服器40、50。在上文中描述的各種功能(包括上文所提及的方法、操作、過程、步驟、應用、程序等)均可以在硬體、軟體、韌體、或其任何組合中實現。如果在軟體中實現,則各種功能可以通過儲存在儲存器720例如計算機可讀介質上的一條或更多條指令721來實現。如果在韌體中實現,則各種功能可以由處理器710執行儲存在儲存器720中的指令721例如韌體代碼來實現。如果在硬體中實現,則各種功能可以通過處理電路來實現。
自助服務終端700的至少一部分,例如控制模塊20,包括一或複數處理器710和一或複數儲存器720,其中一或複數處理器710與一或複數儲存器720可通訊地連接。一或複數儲存器720中的一或複數可以經由總線、埠、或網絡連接至一或複數處理器710,和/或可以直接地連接至或併入一或複數處理器710中的任何一個中。一或複數儲存器720中的每一個可以儲存可由一或複數處理器710訪問的內容,包括可以由一或複數處理器710執行的指令721、以及可以由一或複數處理器710來檢索、操縱或儲存的資料722。
指令721可以是將由一或複數處理器710直接地執行的任何指令集,諸如機器代碼,或者間接地執行的任何指令集,諸如腳本。指令721可以儲存為目標代碼格式以便由一或複數處理器710直接處理,或者儲存為任何其他計算機語言,包括按需解釋或提前編譯的獨立源代碼模塊的腳本或集合。上文更加詳細地解釋了指令721的功能、方法和例程。
一或複數儲存器720可以是能夠儲存可由一或複數處理器710訪問的內容的任何臨時性或非臨時性計算機可讀儲存媒體,諸如硬碟機、記憶卡、ROM、RAM、DVD、CD、USB儲存器、能寫儲存器和唯讀記憶體等。一或複數儲存器720中的一或複數可以包括分布式儲存系統,其中指令721和/或資料722可以儲存在可以物理地位於相同或不同的地理位置處的複數不同的儲存裝置上。
一或複數處理器710可以根據指令721來檢索、儲存或修改資料722。儲存在一或複數儲存器720中的資料722可以包括上文所提及的接收到的訊框以及訊框中的各個欄位、接收到的用於分段傳輸的複數訊框、待發送的訊框、與一或複數裝置的一或複數操作相關的資料(例如從用戶處讀取的支付碼)等。本領域技術人員應理解,其他資料也可以被儲存在一或複數儲存器720中。舉例來說,雖然本文所描述的主題不受任何特定資料結構限制,但是資料722還可能儲存在計算機暫存器(未示出)中,作為具有許多不同的欄位和記錄的表格或XML文檔儲存在關係型資料庫中。資料722可以被格式化為任何計算裝置可讀格式,諸如但不限於二進制值、ASCII或統一代碼。此外,資料722可以包括足以識別相關信息的任何信息,諸如編號、描述性文本、專有代碼、指針、對儲存在諸如其他網絡位置處等其他儲存器中的資料的引用或者被函數用於計算相關資料的信息。
一或複數處理器710可以是任何常規處理器,諸如市場上可購得的中央處理單元(CPU)、圖形處理單元(GPU)、微處理器(MCU)等。可替換地,一或複數處理器710還可以是專用組件,諸如專用集成電路(ASIC)或其他基於硬體的處理器。雖然不是必需的,但是一或複數處理器710可以包括專門的硬體組件來更快或更有效地執行特定的計算過程,諸如對訊框的校驗等。
雖然圖7中示意性地將一或複數處理器710及一或複數儲存器720示出在同一個框內,但是一或複數處理器710或一或複數儲存器720可以實際上包括可能存在於同一物理殼體內或不同的複數物理殼體內的複數處理器或儲存器。例如,一或複數儲存器720中的一個可以是位於與一或複數處理器710中的每一個的殼體不同的殼體中的硬碟機或其他儲存媒體。因此,引用處理器或儲存器應被理解成包括引用可能並行操作或可能非並行操作的處理器或儲存器的集合。雖然以上描述的一些功能被指示為在具有單個處理器的單個計算裝置上發生,但是本文所描述的主題的各個方面均可以由複數處理器710例如通過網絡相互通訊來實現。
此外,雖然圖7中示意性地將一或複數處理器710及一或複數儲存器720分別以不同的框示出,但自助服務終端700的至少一部分可以被形成為一部件,例如把處理器710、儲存器720、以及各個外設介面(例如USB介面、A/D轉換介面、以及UART介面等)都整合在單一晶片上而形成的單晶片微電腦。
雖然已經通過示例對本揭露的一些特定實施例進行了詳細說明,但是本領域的技術人員應該理解,以上示例僅是為了進行說明,而不是為了限制本揭露的範圍。在此揭露的各實施例可以任意組合,而不脫離本揭露的精神和範圍。本領域的技術人員還應理解,可以對實施例進行多種修改而不脫離本揭露的範圍和精神。本揭露的範圍由所附請求項來限定。
10:應用模塊 20:控制模塊 30:裝置模塊 30-1、30-2、30-n:裝置 40、50:伺服器 100、700:自助服務終端 200:訊框結構 S310:應用模塊10構造 S320、S330、S340、S350、S360、S370、S420、S430、S440、S450、S460、S470、S610、S620、S630、S640:流程 S410:裝置30-1構造 710:處理器 720:儲存器 721:指令 722:資料
構成說明書的一部分的附圖描述了本揭露的實施例,並且連同說明書一起用於解釋本揭露的原理。 參照附圖,根據下面的詳細描述,可以更加清楚地理解本揭露,其中: 圖1是示意性地示出根據本揭露的一些示例性實施例的自助服務終端的至少一部分的示意圖。 圖2是示意性地示出適用於根據本揭露的一些示例性實施例的自助服務終端的操作方法的訊框結構的示意圖。 圖3是示意性地示出根據本揭露的一些示例性實施例的自助服務終端的操作方法的示意圖。 圖4是示意性地示出根據本揭露的一些示例性實施例的自助服務終端的操作方法的示意圖。 圖5示意性地示出根據本揭露的一些示例性實施例的自助服務終端的至少一部分與伺服器連接的示意圖。 圖6是示意性地示出根據本揭露的一些示例性實施例的自助服務終端的操作方法的示意圖。 圖7是示意性地示出根據本揭露的一些示例性實施例的自助服務終端的至少一部分的結構圖。 注意,在以下說明的實施方式中,有時在不同的附圖之間共同使用同一附圖標記來表示相同部分或具有相同功能的部分,而省略其重複說明。在一些情況中,使用相似的標號和字母表示類似項,因此,一旦某一項在一附圖中被定義,則在隨後的附圖中不需要對其進行進一步討論。
10:應用模塊
20:控制模塊
30-1:裝置
S310:應用模塊10構造
S320、S330、S340、S350、S360、S370:流程

Claims (20)

  1. 一種自助服務終端的操作方法,該自助服務終端包括被配置為向用戶提供應用的一應用模塊、包括複數裝置的一裝置模塊、以及被配置用於該應用模塊和該裝置模塊之間的通訊的一控制模塊,該方法包括由該控制模塊進行的如下操作: 從該應用模塊接收一第一訊框,其中該第一訊框包括一主體部分;以及 判斷該第一訊框是否有效,若有效則對該第一訊框的主體部分進行處理,若無效則不對該第一訊框的主體部分進行處理, 其中,該第一訊框的主體部分包括一命令欄位,對該第一訊框的主體部分進行處理包括: 解析該命令欄位以得到該第一訊框所針對的一實體,並根據該實體進行第一操作,其中該第一操作包括: 若該實體為該裝置模塊中的一或複數裝置,則基於該第一訊框的主體部分以及該控制模塊與該一或複數裝置之間的預定規則構造用於該一或複數裝置的一第二訊框,並將該第二訊框發送給該一或複數裝置;以及 若該實體為該控制模塊,則根據該第一訊框的主體部分進行操作。
  2. 如請求項1所述的方法,其中,該第一操作進一步包括: 若該實體為該裝置模塊中的一或複數裝置,解析該命令欄位以得到該第一訊框中所指示的與該一或複數裝置相關的一或複數操作,並基於該一或複數操作以及該控制模塊與該一或複數裝置之間的預定規則構造該第二訊框。
  3. 如請求項1所述的方法,其中,該方法還包括由該控制模塊進行的如下操作: 從該裝置模塊中的第一裝置接收一第三訊框,其中該第三訊框包括主體部分;以及 判斷該第三訊框是否有效,若有效則對該第三訊框的主體部分進行處理,若無效則不對該第三訊框的主體部分進行處理, 其中,該第三訊框的主體部分包括一命令欄位,對該第三訊框的主體部分進行處理包括: 解析該命令欄位以得到該第三訊框所針對的一實體,並根據該實體進行第二操作,該第二操作包括: 若該實體為該應用模塊,則基於該第一訊框的主體部分以及該控制模塊與該應用模塊之間的預定規則構造用於該應用模塊的一第四訊框,並將該第四訊框發送給該應用模塊;以及 若該實體為該控制模塊,則根據該第三訊框的主體部分進行操作。
  4. 如請求項3所述的方法,其中,該第二操作進一步包括: 若該實體為該應用模塊,解析該命令欄位以得到該第三訊框中所指示的與該第一裝置相關的一信息,並基於該信息、以及該控制模塊與該應用模塊之間的預定規則構造該第四訊框。
  5. 如請求項4所述的方法,其中,信息包括以下各項中的一項或多項: 狀態、操作、版本、用於識別該第一裝置的身份信息、指示該第一裝置所連接到的該控制模塊的埠的埠信息、以及指示該第一裝置在該自助服務終端內部的位址的位址信息。
  6. 如請求項1所述的方法,其中,構造該第二訊框包括: 將用於校驗該第二訊框的校驗欄位佈置在該第二訊框中;以及 將指示與該第二訊框所針對的一或複數裝置相關的一或複數操作的命令欄位佈置在該第二訊框的主體部分。
  7. 如請求項3所述的方法,其中,構造該第四訊框包括: 將用於校驗該第四訊框的校驗欄位佈置在該第四訊框中;以及 將向該應用模塊指示與該控制模塊相關的信息的命令欄位佈置在該第四訊框的主體部分。
  8. 如請求項7所述的方法,其中,該信息包括以下各項中的一項或多項:狀態、操作、版本、以及在該自助服務終端內部的位址。
  9. 如請求項1所述的方法,其中,該控制模塊還被配置為與該自助服務終端外部的伺服器通訊,該方法還包括由該控制模塊進行的如下操作: 構造一第五訊框,包括: 將用於校驗該第五訊框的校驗欄位佈置在該第五訊框中;以及 將向該伺服器指示該自助服務終端的物理位址的命令欄位佈置在該第五訊框的主體部分;以及 將該第五訊框發送給該伺服器。
  10. 如請求項9所述的方法,其中,構造該第五訊框還包括: 將包括向該伺服器傳輸的資料的資料欄位佈置在該第五訊框的主體部分。
  11. 一種自助服務終端的操作方法,該自助服務終端包括被配置為向用戶提供應用的一應用模塊、包括複數裝置的一裝置模塊、以及被配置用於該應用模塊和該裝置模塊之間的通訊的一控制模塊,該方法包括由該應用模塊、該控制模塊、和該裝置模塊中的一或複數裝置中的任一第一實體進行的如下操作: 接收一第一訊框,該第一訊框包括訊一框頭部分、一主體部分和一訊框尾部分; 判斷該第一訊框的訊框頭部分是否正確,若正確則進行後續操作,若不正確則對該第一訊框不進行後續操作;以及 判斷整個該第一訊框是否有效,若有效則對該第一訊框的主體部分進行處理,若無效則不對該第一訊框的主體部分進行處理。
  12. 如請求項11所述的方法,其中,該方法還包括由該第一實體進行的如下操作: 若無效則向該第一訊框的發送方發送一第二訊框以指示接收錯誤。
  13. 如請求項11所述的方法,其中,該訊框尾部分包括用於校驗整個該第一訊框的一第二校驗欄位,判斷整個該第一訊框是否有效包括: 根據該第二校驗欄位判斷整個該第一訊框是否有效。
  14. 如請求項11所述的方法,其中,該第一訊框的主體部分包括一訊框號欄位,對該第一訊框的主體部分進行處理包括: 判斷該第一訊框的訊框號欄位是否與在該第一訊框之前接收自該第一訊框的發送方的的預定個數的訊框中的一訊框的訊框號欄位相同,若是則對該第一訊框不進行後續操作;和/或 根據該訊框號欄位判斷該第一訊框的訊框號與該第一訊框的前一訊框的訊框號是否連續,若不連續,則確定缺少的訊框號,根據該缺少的訊框號構造一第三訊框,並向該第一訊框的發送方發送該第三訊框,以指示該第一訊框的發送方傳輸與該缺少的訊框號對應的訊框。
  15. 如請求項11所述的方法,其中,該第一訊框的主體部分包括一命令欄位和一訊框號欄位,對該第一訊框的主體部分進行處理包括: 解析該命令欄位以確定該第一訊框是否為用於分段傳輸的訊框,若是,則在該第一訊框和用於與該第一訊框相關聯的分段傳輸的一或複數訊框接收完畢之後,判斷由該第一訊框和該一或複數訊框中的訊框號欄位所指示的訊框號是否連續, 若連續,則基於該訊框號欄位按照預定的順序對該第一訊框和該一或複數訊框進行操作;以及 若不連續,則判斷缺少的訊框號,根據該缺少的訊框號構造第三訊框,並向該第一訊框的發送方發送該第三訊框,以指示該第一訊框的發送方傳輸與該缺少的訊框號對應的訊框。
  16. 如請求項11所述的方法,該方法還包括由該第一實體進行的如下操作: 接收一第四訊框,該第四訊框包括一主體部分;以及 判斷該第四訊框是否有效,若有效則對該第四訊框的主體部分進行處理,若無效則不對該第四訊框的主體部分進行處理, 其中,該第四訊框的主體部分包括一命令欄位,對該第四訊框的主體部分進行處理包括: 解析該命令欄位以得到在接收該第四訊框之前所發送的一第五訊框的接收結果,若該接收結果指示接收錯誤,則再次發送該第五訊框。
  17. 如請求項16所述的方法,其中,該第四訊框的主體部分還包括一訊框號欄位,對該第四訊框的主體部分進行處理還包括: 基於該訊框號欄位來確定該命令欄位所針對的該第五訊框。
  18. 如請求項16所述的方法,其中,對該第四訊框的主體部分進行處理還包括: 若該接收結果指示接收錯誤並且該第五訊框的傳輸次數達到了預定值,則不再發送該第五訊框。
  19. 一種自助服務終端,包括被配置為向用戶提供應用的一應用模塊、一印表機、以及用於該應用模塊和該印表機之間的通訊的一控制模塊,其中,該控制模塊被配置為: 從該應用模塊接收一第一訊框;以及 判斷該第一訊框是否有效,若有效則對該第一訊框進行處理,若無效則不對該第一訊框進行處理, 其中,該第一訊框包括指示該第一訊框所針對的一或複數實體和與該一或複數實體相關的一或複數操作的命令欄位、以及與該一或複數操作相關的資料欄位,對該第一訊框進行處理包括: 解析該命令欄位以得到該一或複數實體和該一或複數操作,並進行根據該一或複數實體的如下操作: 若該一或複數實體包括該一印表機,則基於該一或複數操作、該資料欄位、以及該控制模塊與該印表機之間的預定規則,構造用於該印表機的一第二訊框,並將該第二訊框發送給該印表機;以及 若該一或複數實體包括該控制模塊,則根據該一或複數操作和該資料欄位進行操作。
  20. 如請求項19所述的自助服務終端,還包括一圖形碼識別器,該控制模塊還用於該應用模塊和該圖形碼識別器之間的通訊,其中,該控制模塊還被配置為: 從該圖形碼識別器接收一第三訊框;以及 判斷該第三訊框是否有效,若有效則對該第三訊框進行處理,若無效則不對該第三訊框進行處理, 其中,該第三訊框包括指示該圖形碼識別器所識別到的資料的一資料欄位,對該第三訊框進行處理包括: 基於該控制模塊與該應用模塊之間的預定規則構造用於該應用模塊的一第四訊框,其中,該第四訊框包括指示與該第四訊框相關的實體為該圖形碼識別器、和與該實體相關的操作為資料已經被識別的一命令欄位、以及指示該圖形碼識別器識別到的資料的一資料欄位;以及 將該第四訊框發送給該應用模塊。
TW109113412A 2019-04-25 2020-04-22 自助服務終端的操作方法及自助服務終端 TW202040982A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910336406.X 2019-04-25
CN201910336406.XA CN110084971A (zh) 2019-04-25 2019-04-25 自助服务终端的操作方法及自助服务终端

Publications (1)

Publication Number Publication Date
TW202040982A true TW202040982A (zh) 2020-11-01

Family

ID=67416568

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109113412A TW202040982A (zh) 2019-04-25 2020-04-22 自助服務終端的操作方法及自助服務終端

Country Status (5)

Country Link
US (1) US20220182181A1 (zh)
CN (1) CN110084971A (zh)
DE (1) DE112020001606T5 (zh)
TW (1) TW202040982A (zh)
WO (1) WO2020219485A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110996079A (zh) * 2019-11-20 2020-04-10 浪潮金融信息技术有限公司 利用投影技术显示货物的无显示屏自助售货装置及方法
CN111934941A (zh) * 2020-10-16 2020-11-13 浙江大学 一种用于时间敏感网络的数据切片方法和***

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10355877B2 (en) * 2009-02-23 2019-07-16 Tillster, Inc. Kiosk device management in quick service restaurant environments
CN102055727B (zh) * 2009-10-30 2013-06-26 华为技术有限公司 多业务传送网中的数据封装方法、封装设备和支路单元
CN103378931A (zh) * 2012-04-26 2013-10-30 国民技术股份有限公司 数据发送方法、数据接收方法及信号处理模块
CN103427945B (zh) * 2012-09-07 2016-07-20 万高(杭州)科技有限公司 同步串行通信接口的通信方法及该同步串行通信接口
US20150170136A1 (en) * 2013-12-18 2015-06-18 PayRange Inc. Method and System for Performing Mobile Device-To-Machine Payments
JP6391532B2 (ja) * 2015-05-20 2018-09-19 キヤノン株式会社 通信装置、通信方法、及びプログラム
CN105119691B (zh) * 2015-07-21 2018-08-24 中国航天科工集团第三研究院第八三五七研究所 一种以太网点到点可靠传输的方法
CN105162734B (zh) * 2015-08-05 2018-08-28 武汉森岩科技有限公司 基于Zigbee网络的多源数据传输***
US10362150B2 (en) * 2015-09-09 2019-07-23 Sony Corporation Communication device and communication method
CN106453489A (zh) * 2016-08-31 2017-02-22 成都市和平科技有限责任公司 一种具有自动计费功能的自助碎纸***、装置及方法
CN107134050A (zh) * 2017-01-13 2017-09-05 上海链庄数据技术有限公司 自选式智能自动售货机***
CN107016787A (zh) * 2017-04-12 2017-08-04 上海机商实业有限公司 一种全自动售货机及其售货方法
CN107633598A (zh) * 2017-09-22 2018-01-26 合肥众驰天下网络科技有限公司 一种无人售货机管理***
CN107527430A (zh) * 2017-09-22 2017-12-29 合肥众驰天下网络科技有限公司 一种无人售货机管理***
CN108109268B (zh) * 2018-01-15 2019-05-24 青岛亿联信息科技股份有限公司 一种共享商品服务自助终端设备及***
CN108646990A (zh) * 2018-05-09 2018-10-12 安徽天斯努信息技术股份有限公司 一种云打印客户端管理***
CN109102625B (zh) * 2018-07-11 2021-11-26 深圳友宝科斯科技有限公司 自动售货***及其服务器

Also Published As

Publication number Publication date
US20220182181A1 (en) 2022-06-09
CN110084971A (zh) 2019-08-02
WO2020219485A1 (en) 2020-10-29
DE112020001606T5 (de) 2022-04-07

Similar Documents

Publication Publication Date Title
US8621489B2 (en) Universal medical device driver adapter
TW202040982A (zh) 自助服務終端的操作方法及自助服務終端
US9158648B2 (en) Reporting product status information using a visual code
CN103646044A (zh) 移动终端鉴别方法及装置
US20070113133A1 (en) System and method for testing a serial port
US20150032641A1 (en) System and method for obtaining indication information
CN101022473B (zh) 一种在交换机中自动识别板卡配置并且生成局数据的方法
CN107729209A (zh) 用于服务器的信息监测方法、装置、设备和存储介质
CN115134236A (zh) 一种智能网卡管理的方法、装置、设备及可读介质
CN104883611B (zh) 电视屏的调试方法和***
CN108293199A (zh) 提供事件管理服务的电子装置和方法
JP2020515997A (ja) Rfidエンコーダアタッチメントを使用してrfidラベルを生成するための方法及びシステム
US9356836B2 (en) Administration device, administration control method, and program
CN115543755B (zh) 一种性能监管方法、装置、***、设备和介质
CN116931829A (zh) 一种磁盘信息传输方法、装置、设备、存储介质
US11216424B2 (en) Dynamically rendering an application programming interface for internet of things applications
KR102266491B1 (ko) 센서 인증 기반 데이터 수집 시스템
US10810390B2 (en) Transmitting a data record
US11825299B2 (en) Customized code bundle to enable secure communication from internet of things devices at wireless networks
CN108765085A (zh) 车辆订单审核方法、装置及可读存储介质
KR101403519B1 (ko) 센싱 정보 수신 장치, 센싱정보 수신방법 및 센서 관리 시스템
CN116719608A (zh) 一种k8s集群的故障监测***和方法
US20150201032A1 (en) Proxy server and network communication method thereof
CN115499422A (zh) 基于远程控制指令的多设备串行通信方法及***
CN117411956A (zh) 上位机与下位机的交互方法和***