新四季網

進程間的通信方法和通信系統的製作方法

2023-07-18 19:55:41

專利名稱:進程間的通信方法和通信系統的製作方法
技術領域:
本發明涉及計算機的數據處理技術,尤其涉及進程間的通信方法和通信系統。
背景技術:
進程間通信(IPC, Interprocess Communications)就是在不同進程之間傳播或交換信息,這就需要不同進程之間存在一個雙方都可以訪問的介質,共享內存就是用於進程之間進行通信的介質。所謂共享內存,是指同一塊物理內存被映射到進程A、B各自的進程地址空間,可以被A、B進程同時訪問,達到交換數據的目的。圖1為現有技術中的基於共享內存的IPC方法的示意圖。參見圖1,現有的基於共享內存的IPC方案會在進程內部使用緩存,在這種機制中,發送進程A的應用線程在發送數據時會先將數據包拷貝到內部緩衝區中,然後由發送線程從內部緩衝區拷貝到共享內存上;接收進程則先由接收線程將數據從共享內存拷貝到內部緩衝區,再返回給上層的應用線程。由此可見,數據在傳輸過程中需要在共享內存和內部緩衝區之間進行兩次數據分配、拷貝、釋放操作,這些操作所帶來的計算資源開銷(如CPU以及內存開銷)是非常大的,進程間的通信吞吐量也較低。

發明內容
有鑑於此,本發明的主要目的在於提供一種進程間的通信方法和通信系統,以降低計算資源開銷,提升進程間通信的吞吐量。本發明的技術方案是這樣實現的:一種進程間的通信方法,該方法在進程間使用共享內存隊列收發數據,包括:在所述共享內存中標記讀寫地址,包括預讀頭地址PrepareHead、已讀頭地址ActualHead、預寫尾地址PrepareTail和已寫尾地址ActualTail ;發送進程在發送數據時,根據當前的讀寫地址和欲發數據包長度判斷所述共享內存是否有可寫入該數據包的空間,當判定有可寫入該數據包的空間時在共享內存中以所述PrepareTail為開頭寫入數據包,並根據所發送數據包的長度更新所述PrepareTail,當寫入完畢後將該數據包的寫入地址放入發送進程的句柄池;發送線程依次讀取該句柄池中的寫入地址,每讀一個寫入地址則根據該寫入地址對應的數據包長度更新所述ActualTail,並通知接收進程接收數據;接收進程收到接收數據的通知後,根據所述PrepareHead和ActualTail判斷所述共享內存是否有數據包可讀,當判定有數據包可讀時將所述PrepareHead放入接收進程的句柄池中,並根據該PrepareHead開始的數據包長度更新該PrepareHead ;接收進程依次讀取該句柄池中的PrepareHead,並從共享內存的該PrepareHead處開始讀取數據包,每讀取完畢一個數據包則根據該已讀數據包長度更新所述ActualHead。一種進程間的通信系統,包括:共享內存,用於以隊列形式存儲進程間的通信數據,其中設置有共享內存讀寫地址的標記,包括預讀頭地址PrepareHead、已讀頭地址ActualHead、預寫尾地址PrepareTail 和已寫尾地址 ActualTail ;設置在發送進程中的預發送模塊、發送應用線程、已發送模塊、發送句柄池以及發送線程,其中:所述預發送模塊用於當發送應用線程在發送數據時,根據所述PrepareTail和ActualHead判斷所述共享內存是否有可寫入欲發送數據包的空間,當判定有可寫入欲發送數據包的空間時通知所述發送應用線程在共享內存中以所述PrepareTail為開頭寫入數據包,並根據該數據包的長度更新所述PrepareTail ;所述發送應用線程在每寫入完畢一個數據包後觸發所述已發送模塊,所述已發送模塊用於將所發送數據包的寫入地址放入所述發送句柄池;所述發送線程用於依次讀取該發送句柄池中的寫入地址,每讀一個寫入地址則根據該寫入地址對應的數據包長度更新所述ActualTail,並通知接收進程接收數據;設置在接收進程中的預接收模塊、接收線程、接收句柄池、接收應用線程以及已接收模塊;其中:所述接收進程在收到接收數據的通知後喚醒接收線程,接收線程利用所述預接收模塊根據所述PrepareHead和ActualTail判斷所述共享內存是否有數據包可讀,當判定有數據包可讀時將所述PrepareHead放入所述接收句柄池中,並由所述預接收模塊根據該PrepareHead開始的數據包長度更新該PrepareHead ;所述接收應用線程依次讀取該接收句柄池中的PrepareHead,並從共享內存的該PrepareHead處開始讀取數據包,每讀取完畢一個數據包則觸發已接收模塊根據該數據包長度更新所述ActualHead。與現有技術相比,本發明的基於共享內存IPC方案,沒有採用緩存技術,而是在共享內存中標記讀寫地址,並在發送進程和接收進程中分別設置句柄池,用於暫存每次的讀寫地址,使得發送進程和接收進程能夠直接讀寫共享內存,協調數據包的接收和發送速度,從而在整體上達到了把傳統的緩存和傳統共享內存整合在一起的效果。因此,本發明減少了緩存機制,減少了數據在傳輸過程需要在共享內存和內部緩衝區之間進行的兩次數據分配、拷貝、釋放操作,從而降低了計算資源開銷,如CPU以及內存開銷,並可以提升進程間通信的吞吐量。


圖1為現有技術中的基於共享內存的IPC方法的示意圖;圖2為本發明所述進程間的通信系統的一種組成示意圖;圖3為本發明所述共享內存的存儲結構的一種示意圖。
具體實施例方式下面結合附圖及具體實施例對本發明再作進一步詳細的說明。圖2為本發明所述進程間的通信系統的一種組成示意圖。參見圖2,該進程間通信系統包括:共享內存200,用於以隊列形式存儲進程間的通信數據,其中設置有共享內存讀寫地址的標記,包括預讀頭地址(PrepareHead)、已讀頭地址(ActualHead)、預寫尾地址(PrepareTail)和已寫尾地址(ActualTail),並在發送進程和接收進程中分別設置句柄池。
所述進程間通信系統還包括設置在發送進程中的預發送模塊(PrepareSendPacket) 211、發送應用線程212、已發送模塊(SendPacket) 213、發送句柄池(handle buffer) 214以及發送線程215,其中:所述預發送模塊211用於當發送應用線程212在發送數據時,根據共享內存200中的所述Pi^pareTail和ActualHead判斷該共享內存200是否有可寫入欲發送數據包的空間,當判定有可寫入欲發送數據包的空間時通知所述發送應用線程212在共享內存200中以所述PrepareTail為開頭寫入數據包,並根據該數據包的長度更新所述PrepareTail ;所述發送應用線程212在每寫入完畢一個數據包後觸發所述已發送模塊213,所述已發送模塊213用於將所發送數據包的寫入地址放入所述發送句柄池214 ;所述發送線程215用於依次讀取該發送句柄池214中的寫入地址,每讀一個寫入地址則根據該寫入地址對應的數據包長度更新共享內存200中的所述ActualTail,並通知接收進程接收數據。所述進程間 通信系統還包括設置在接收進程中的預接收模塊(卩1'印&代1^(^ &01 ^)221、接收線程222、接收句柄池223、接收應用線程224以及已接收模塊(RecvPacket) 225 ;其中:所述接收進程在收到接收數據的通知後喚醒接收線程222,接收線程222觸發所述預接收模塊221根據所述共享內存200中的PrepareHead和ActualTail判斷該共享內存200是否有數據包可讀,當判定有數據包可讀時將所述PrepareHead放入所述接收句柄池223中,並由所述預接收模塊221根據該PrepareHead開始的數據包長度更新該PrepareHead ;所述接收應用線程224依次讀取該接收句柄池223中的PrepareHead,並從共享內存200的該PrepareHead處開始讀取數據包,每讀取完畢一個數據包則觸發已接收模塊225根據該數據包長度更新共享內存中的所述ActualHead。為了方便管理,本發明所述共享內存中的最小操作粒度是數據包(Packet),其中成員變量TotalLength,用於標識本數據包的長度;還有成員變量即讀寫狀態標記(PacketState),用於標識本數據包可能存在的四個狀態:PREPARESEND (預寫),SENDED (已寫入),PREPARERECV (預讀),RECVED (已讀取)。圖3為本發明所述共享內存的存儲結構的一種示意圖。參見圖3,在該種實施例中,所述共享內存的大小在整個生命期內是固定的,為了能夠被反覆讀寫,在該實施例中所述共享內存還被設計為循環隊列,並在共享內存的頭部(Head)處維護了 5個標記,除了上述的 PrepareHead、ActualHead、PrepareTail^P ActualTail,還進一步維護了一個折返地址標記(ReversalPosition),這5個標記相當於5個句柄,用於同步發送端和接收端的訪問,發送端調用所述PrepareSendPacket操作時則更新PrepareTail ;調用SendPacket操作時更新ActualTail ;接收端調用PrepareRecvPacket時更新PrepareHead,調用RecvPacket 時更新 ActualHead。所述的更新是指即沿共享內存的隊列方向移動一個所發數據包的長度,當需要折返時則從共享內存的起始地址重新更新。以移動PrepareTail為例,所述具體的更新操作為:根據數據包的長度調整PapareTail的值,如果發送的數據包長度為100則將PrepareTail的值增加100。所述ReversalPosition是循環隊列的折返位置,如果PrepareTail增加後的值超過了共享內存的最大容量則從O開始增加100,並且ReversalPosition的值設置為PrepareTail移動前的PrepareTail的值。例如假設PrepareTail在移動前值為950,共享內存的最大容量假設為1000,欲發送的數據包長100,950加100超過了共享內存的最大容量1000,則需要折返,折返後的PrepareTail應該是從O開始加100,且如果折返後的PrepareTail小於AcutalHead,貝U更新PrepareTail的值為100 (即從O開始加100),所述ReversalPosition的值更新為950。本發明所述的Prepare SendPacket> PrepareRecvPacket兩個模塊的操作用來取代原來從堆上分配內存的行為,達到把傳統緩存和傳統共享內存整合在一起的效果。下面以圖2所述的發送進程和接收進程之間的數據包發送接收為例對本發明所述的進程間的通信方法進行說明。發送進程在發送數據時,根據當前的讀寫地址和欲發數據包長度判斷所述共享內存是否有可寫入該數據包的空間,當判定有可寫入該數據包的空間時在共享內存中以所述PrepareTail為開頭寫入數據包,並根據所發送數據包的長度更新所述PrepareTail,當寫入完畢後將該數據包的寫入地址放入發送進程的句柄池(handle buffer);發送線程依次讀取該句柄池中的寫入地址,每讀一個寫入地址則根據該寫入地址對應的數據包長度更新所述ActualTai I,並通知接收進程接收數據。具體實現時,發送進程發送數據時包括預發送操作(PrepareSendPacket)、寫入操作(即發送操作)、和已發送操作(SendPacket)。其中,預發送操作過程的具體操作過程包括下述步驟311至步驟315:步驟311、發送進程的發送應用線程監測是否有新的數據包欲發送,如果有新的數據包要發送則調用所述PrepareSendPacket執行步驟312。步驟312、通過調用PrepareSendPacket獲取當前欲發送數據包在共享內存的寫入地址,即讀取共享內存頭部的PrepareTail標記的值,該值就是該數據包在共享內存的寫入地址,並讀取共享內存頭部的ActualHead標記的值,以及獲取當前欲發送數據包的長度(totallength)。步驟313、由於本實施例中用到是循環隊列的共享內存,因此需要進程折返判斷。即從共享內存頭部讀取ReversalPosition,並判斷:ActualHead是否小於等於PrepareTail、並且 PrepareTai 1+total length > ReversalPos it ion,,如果是則需要折返處理,執行步驟315 ;否則不需要折返處理,執行步驟314。步驟314、判斷 PrepareTai 1+total length 是否小於 ActualHead,如果是則判定所述共享內存可以寫入當前欲發送的數據包,向上層的發送應用線程返回位置為PrepareTail 的內存地址,並且按照公式 PrepareTail = PrepareTai 1+total length 更新Pr印areTail,同時可設置該數據包的PacketState為PREPARESEND (預寫狀態),之後返回步驟311 ;否則判定共享內存隊列已滿,沒有可寫入當前欲發送數據包的空間,此時PrepareSendPacket向上層的發送應用線程返回空值,該空值表示共享內存隊列已滿。步驟315、判斷共享內存隊列的頭地址(本實施例中為O)加上totallength是否小於ActualHead,如果是則判定所述共享內存可以寫入當前欲發送的數據包,此時先按照公式 ReversalPosition = PrepareTail 更新 ReversalPosition,再按照公式 PrepareTail=O+totallength更新PrepareTail,向上層應用返回位置O的內存地址,設置該數據包的PacketState為PREPARESEND (預寫),返回步驟311 ;否則判定共享內存隊列已滿即不能寫入當前欲發送的數據包,此時PrepareSendPacket向上層應用返回空值,該空值表示共享內存隊列已滿。
所述寫入過程由上層的發送應用線程執行,如果上層的發送應用線程收到的PrepareSendPacket的返回值是內存地址,則在該內存地址寫入數據包,如果收到的是空值,則說明共享內存隊列已滿,上層的發送應用線程根據自身邏輯需要進行處理,具體的處理過程與上層應用的自身應用邏輯有關,本發明並不限定。已發送操作的具體操作過程包括下述步驟321至步驟323:步驟321、上層的發送應用線程在共享內存中寫入數據包後,調用SendPacket將該數據包對應的寫入地址作為句柄放入一發送句柄池中,激活發送線程。步驟322、所述發送線程判斷句柄池中是否有句柄(每一個句柄就是共享內存的一個寫入地址),如果是則執行步驟323,否則等待SendPacket的下一次激活操作。步驟323、讀取句柄池中的一個最早的句柄,獲取該句柄處的數據包(即以該句柄標識的共享內存地址為開頭的數據包)的長度totallength,並設置該數據包的PacketState為SENDED (已寫入)。讀出該句柄後從所述句柄池中將該句柄移除,以免重複讀取。步驟323、讀取所述共享內存的ActualTail,按照公式ActualTail =ActualTail+totallength(步驟323所獲取的數據包長度)更新ActualTail,通知接收進程接收數據,如果更新後的ActualTail等於ReversalPosition則將ActualTail重置為O,返回步驟321。接收進程在收到發送進程的接收數據通知後喚醒(接收線程),喚醒後開始進行接收數據的處理,主要包括預接收操作(PrepareRecvPacket)、讀取操作(即接收操作)、和已接收操作(RecvPacket)。其中,預接收操作的具體過程包括下述步驟331至步驟334:步驟331、接收線程判斷共享內存的所述PrepareHead是否等於ActualTail,如果是則判定共享內存的隊列中沒有可讀取的(即可接收的)數據包,此時不進行操作,否則判定有可讀取的數據包,執行步驟332。步驟332、接收線程將PrepareHead的值判定為當前欲接收數據包在共享內存的讀取地址;將獲取的讀取地址作為一個句柄,放入接收進程的句柄池(handle buffer)中。步驟333、確定共享內存中從PrepareHead起始的數據包的長度totallength,按照公式 PrepareHead = PrepareHead+totallength 更新 PrepareHead,並設置設置該數據包的PacketState為PREPARERECV (預讀),如果更新後的PrepareHead等於ReversalPosition 則將 PrepareHead 重置為 O,返回步驟 331。讀取操作和已接收操作(RecvPacket)的具體過程包括下述步驟341至步驟343:步驟341、上層接收應用線程判斷接收進程的句柄池中是否有句柄(每一個句柄就是共享內存的一個讀取地址),如果是則執行步驟342,否則重複本步驟繼續判斷。步驟342、上層接收應用線程讀取句柄池中的一個最早的句柄,從該句柄標識的共享內存的讀取地址讀取對應的數據包。讀出該句柄後從句柄池中將該句柄移除,以免重複讀取。步驟343、RecvPacket確定當讀取的數據包的長度totallength,按照公式ActualHead = ActualHead+totallength 更新 ActualHead,設置該數據包的 PacketState為 RECVED (已讀取),如果更新後的 ActualHead 等於 ReversalPosition 則將 ActualHead重置為所述共享內存的頭地址(此實施例中為O),返回步驟341。與傳統的通過緩存的IPC方案相比,本發明通過將本地的緩存退化為句柄池,不管每次發送多少數據,都只有2個句柄的冗餘開銷。以32位機器上一個句柄佔用4個字節為例,則只需要8個字節的冗餘開銷,而傳統的IPC方案需要完整拷貝整塊數據兩次,從而大大提升了通信吞吐量。同時,本發明的PrepareSendPacket操作還可以及早發共享內存的循環隊列是否已滿的問題(當發送速度大於接收速度時可能發生),並立即處理,而傳統的IPC方案在循環隊列已滿時沒有很好的解決方案,重傳或者丟包都可能無法滿足上層應用需求。另外,本發明中的操作需要加鎖的範圍僅限於共享內存頭部的所述5個標記,與具體數據無關,降低了加鎖開銷,並減少了鎖競爭的可能性。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
權利要求
1.一種進程間的通信方法,該方法在進程間使用共享內存隊列收發數據,其特徵在於,包括: 在所述共享內存中標記讀寫地址,包括預讀頭地址PrepareHead、已讀頭地址ActualHeacU預寫尾地址PrepareTail和已寫尾地址ActualTail ; 發送進程在發送數據時,根據當前的讀寫地址和欲發數據包長度判斷所述共享內存是否有可寫入該數據包的空間,當判定有可寫入該數據包的空間時在共享內存中以所述PrepareTail為開頭寫入數據包,並根據所發送數據包的長度更新所述PrepareTail,當寫入完畢後將該數據包的寫入地址放入發送進程的句柄池;發送線程依次讀取該句柄池中的寫入地址,每讀一個寫入地址則根據該寫入地址對應的數據包長度更新所述ActualTail,並通知接收進程接收數據; 接收進程收到接收數據的通知後,根據所述PrepareHead和ActualTaiI判斷所述共享內存是否有數據包可讀,當判定有數據包可讀時將所述PrepareHead放入接收進程的句柄池中,並根據該PrepareHead開始的數據包長度更新該PrepareHead ;接收進程依次讀取該句柄池中的PrepareHead,並從共享內存的該PrepareHead處開始讀取數據包,每讀取完畢一個數據包則根據該已讀數據包長度更新所述ActualHead。
2.根據權利要求1所述的方法,其特徵在於,所述根據當前的讀寫地址和欲發數據包長度判斷所述共享內存是否有可寫入該數據包的空間的具體方法為: 判斷PrepareTail加上當前數據包的長度totallength是否小於ActualHead,如果是則所述共享內存有可寫入該數據包的空間,否則沒有可寫入該數據包的空間。
3.根據權利要求1所述的方法,其特徵在於,所述根據所述PrepareHead和ActualTail判斷所述共享內存是否有數據包可讀的具體方式為: 判斷所述PrepareHead和ActualTail是否相等,如果是則判定沒有數據包可讀,否則判定有數據包可讀。
4.根據權利要求1所述的方法,其特徵在於,所述根據所發送數據包的長度更新所述PrepareTail的具體方式為J^PrepareTail值增加所發送數據包的長度; 所述根據所述寫入地址對應的數據包長度更新所述ActualTail的具體方式為:將ActualTail的值增加所寫入地址對應的數據包的長度; 所述根據所述PrepareHead開始的數據包長度更新該PrepareHead的具體方式為:將PrepareHead的值增加該PrepareHead開始的數據包的長度; 所述根據已讀數據包長度更新所述ActualHead的具體方式為^fActualHead的值增加該已讀數據包的長度。
5.根據權利要求1所述的方法,其特徵在於,所述共享內存的隊列為循環隊列,且在所述共享內存中標記折返地址;並在發送進程判斷所述共享內存是否有可寫入欲發送數據包的空間之前進一步包括: 判斷ActualHead是否小於等於PrepareTail,並且PrepareTail加上當前欲發送數據包的長度是否大於所授予折返地址,如果是,則需要折返,否則,不需要折返; 在需要折返時,通過判斷共享內存隊列的頭地址加上欲發送數據包的長度是否小於ActualHead來判斷共享內存是否有可寫入欲發送數據包的空間,如果是則判定有可寫入欲發送數據包的空間,否則沒有可寫入該數據包的空間;在判定有可寫入欲發送數據包的空間後、更新所述PrepareTail之前,進一步包括將所述折返地址更新為當前PrepareTail,之後再更新所述PrepareTail,具體的更新方式為:將該PrepareTail更新為共享內存隊列的頭地址加上欲發送數據包的長度;並且以共享內存隊列的頭地址為開頭寫入欲發送的數據包; 在分別更新所述ActualTai1、PrepareHead、以及ActualHead之後進一步分別包括:判斷更新後的值是否等於所述折返地址,如果是則將更新後的值重置為所述共享內存的頭地址。
6.根據權利要求1所述的方法,其特徵在於,該方法進一步包括: 在所述數據包中設置讀寫狀態標記; 當以所述PapareTail為開頭寫入數據包時,將該數據包中的讀寫狀態標記設置為預與狀態; 當發送線程從所述句柄池中每讀一個寫入地址則將寫入地址對應的數據包的讀寫狀態標記設置為已寫入狀態; 當所述接收進程將所述PrepareHead放入所述句柄池中時將該PrepareHead開始的數據包的讀寫狀態標記設置為預讀狀態; 當讀取完畢一個數據包時則將該數據包的讀寫狀態標記設置為已讀取狀態。
7.—種進程間的通信系統,其特徵在於,包括: 共享內存,用於以隊列形式存儲進程間的通信數據,其中設置有共享內存讀寫地址的標記,包括預讀頭地址Pr epareHead、已讀頭地址ActualHead、預寫尾地址PrepareTail和已寫尾地址ActualTail ; 設置在發送進程中的預發送模塊、發送應用線程、已發送模塊、發送句柄池以及發送線程,其中:所述預發送模塊用於當發送應用線程在發送數據時,根據所述PrepareTail和ActualHead判斷所述共享內存是否有可寫入欲發送數據包的空間,當判定有可寫入欲發送數據包的空間時通知所述發送應用線程在共享內存中以所述PrepareTail為開頭寫入數據包,並根據該數據包的長度更新所述PrepareTail ;所述發送應用線程在每寫入完畢一個數據包後觸發所述已發送模塊,所述已發送模塊用於將所發送數據包的寫入地址放入所述發送句柄池;所述發送線程用於依次讀取該發送句柄池中的寫入地址,每讀一個寫入地址則根據該寫入地址對應的數據包長度更新所述ActualTail,並通知接收進程接收數據; 設置在接收進程中的預接收模塊、接收線程、接收句柄池、接收應用線程以及已接收模塊;其中:所述接收進程在收到接收數據的通知後喚醒接收線程,接收線程利用所述預接收模塊根據所述PrepareHead和ActualTail判斷所述共享內存是否有數據包可讀,當判定有數據包可讀時將所述PrepareHead放入所述接收句柄池中,並由所述預接收模塊根據該PrepareHead開始的數據包長度更新該PrepareHead ;所述接收應用線程依次讀取該接收句柄池中的PrepareHead,並從共享內存的該PrepareHead處開始讀取數據包,每讀取完畢一個數據包則觸發已接收模塊根據該數據包長度更新所述ActualHead。
8.根據權利要求7所述的通信系統,其特徵在於,所述共享內存的隊列為循環隊列,且所述共享內存中標記有折返地址。
全文摘要
本發明公開了一種進程間的通信方法和系統,在進程間使用共享內存隊列收發數據,並在所述共享內存中標記預讀頭地址(PrepareHead)、已讀頭地址(ActualHead)、預寫尾地址(PrepareTail)和已寫尾地址(ActualTail);同時在發送進程和接收進程中分別設置句柄池,用於暫存每次的讀寫地址,使得發送進程和接收進程能夠直接讀寫共享內存,協調數據包的接收和發送速度,從而在整體上達到了把傳統的緩存和傳統共享內存整合在一起的效果。利用本發明,可降低計算資源開銷,如中央處理器(CPU)以及內存開銷,並可以提升進程間通信的吞吐量。
文檔編號G06F9/54GK103150220SQ201110403299
公開日2013年6月12日 申請日期2011年12月7日 優先權日2011年12月7日
發明者遊晶 申請人:騰訊科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀