http://www.swiftmq.com/products/router/swiftlets/sys_routing/reconnect/index.html
Keepalive Mechanism
If a routing connection is established and one side disconnects, the other side (the other router) might not detect it. That's not a problem of SwiftMQ but one of the TCP protocol. To detect this invalid connections, SwiftMQ uses a keepalive mechanism on routing connections which works as follows:
If a connector of one router connects to a listener of another router, both sides pass different stages (connect, authentication, recovery, etc) until they reach the final delivery stage in which the actual message exchange takes place. The keepalive mechanism is started at the beginning of the delivery stage. Previous stages are protected by timers which ensure that such a stage will not stuck by waiting for a reply which will never happen due to a disconnect during that stage. If the timers are fired and the stage is in waiting mode, the connection will be disconnected.
The time after which such an "early" stage becomes invalid can be specified via attribute "stage-valid-timeout". Default is 15 seconds. Another attribute "reject-disconnect-delay" specifies the time after which a rejected connection (e.g. routername already connected, authentication failed) is closed. Both attributes are dependend on each other. If a connector connects to a listener, it initializes a timer with the value of "stage-valid-timeout". This ensures that the stages becomes invalid if no reply arrives. Say, the router name is already connected so the listener rejects the connection and sends a negative reply. The listener initializes a timer with the value of "reject-disconnect-delay" which leads to a physical close when the timer is fired.
The keepalive mechanism consists of keepalive messages which are sent from both sides of the connection in the interval specified in attribute "keepalive-interval" of the routing listener. This value is passed over to the connector during the connect stage. Each side has a counter which is initialized with 5. If a keepalive message is received, the counter is incremented. If a keepalive message is sent, the counter is decremented. If the counter reaches 0, the connection is probably invalid and is closed physically.
A routing connection is valid before the keepalive counter reaches 0. However, it might be already disconnected at one end and that router tries to reconnect which, in turn, will be rejected, because a given router can only be connected once. The other router is able to reconnect after the routing connection has been closed due to the keepalive mechanism. Therefore, the maximum time a router has to wait until it is able to reconnect is 5 *
2009年6月30日 星期二
[Network][COPY]Keepalive Mechanism
[BMP][COPY]EVT_APP_START_WINDOW
http://brewforums.qualcomm.com/showthread.php?t=20140
EVT_APP_START_WINDOW is the event introduced for support of windowed application.
BREW sends EVT_APP_START_WINDOW before EVT_APP_START. An application can start in windowed mode by handling EVT_APP_START_WINDOW. If app handles the event, app is started as windowed app
If you are not handling this event, return FALSE for this event and the application will get EVT_APP_START.
https://brewmobileplatform.qualcomm.com/bmpforum/posts/listByUser/20601.page
When an app is started, EVT_APP_START_WINDOW is sent before EVT_APP_START is sent. If your app handles EVT_APP_START_WINDOW and return TRUE, then EVT_APP_START will not be sent and app will be in the background state. If your app doesn't handle EVT_APP_START_WINDOW(return FALSE), then EVT_APP_START will be sent to your app and app can handles it.
2009年6月29日 星期一
[C/C++][COPY] call by value, address, reference
http://www3.eyny.com/archiver/tid-3023432.html
call by value就是你傳值進去時,它會複製一份,比如說你手上有個單機遊戲存檔,你複製了一份給你的朋友,你朋友在他電腦上玩了之後把存檔覆蓋掉,但這並不會影響你電腦中的存檔。
call by reference就是幫你傳進去的變數取一個暱稱,比如說你有個朋友王小明,他暱稱叫大頭,某天王小明被車撞了,就代表大頭也被車撞了,因為大頭就是王小明,他們是同一個人。
call by address就是你傳地址進去,比如說,你知道王小明的msn是[email=HitByCar@iamflying.com]HitByCar@iamflying.com[/email],所以你可以在msn上跟他對話,現在你有另一個朋友想認識王小明,你就把王小明的msn帳號丟給他,那麼他就可以透過msn跟王小明對話了。
以上如果看不是很懂,請看以下:
你在函式外有個變數,記憶體位址假設是1(把它想成1號保險箱),它在這塊記憶體中存了個數字,假設是10(把它想成一張上面寫了10的紙條放在1號保險箱中),那麼call by value時,函式會向記憶體要求一個新的變數,記憶體位址假設是2(把它想成2號保險箱),然後把1號保險箱中的10複製過來(想成將紙條拿去影印,把影印出來的新紙放到2號保險箱中),現在不管你把2號保險箱中的紙條怎麼亂塗亂改,1號保險箱中的紙條是不受影響的。
你在函式外有個變數A(想成是王小明),記憶體位址假設是1(王小明是1號保險箱使用者),你把它call by reference傳給函式,那麼函式就會有個變數B(想成是王小明的老婆),記憶體位址一樣是1(他老婆一樣可以使用1號保險箱),那麼現在王小明的老婆在1號保險箱中那張紙條上畫了個愛心,等王小明也來開保險箱時就會看到那個愛心。王小明(函式外的變數A)跟他老婆(函式內的變數B)現在是共用了一個保險箱(記憶體位址),任何一方去對此保險箱(位址)中的紙條(值)做改變,另一方都會看到。
你在函式外有個變數A(王小明),它的記憶體位址假設是1(1號保險箱),它裡面存了個值是5,因為A是指標,所以5是代表某個記憶體位址(可以想成1號保險箱中存放的是5號保險箱的鑰匙),你用*A就可以去存取記憶體位址5的值(拿鑰匙來用就可以打開5號保險箱對其中的物品做處理)。你現在把它call by address傳入函式,函式會向記憶體要求一個新變數B(王小明的哥哥:王大明),它的記憶體位址假設是2(2號保險箱),它會把變數A中的值複製過來(王大明找王小明把鑰匙借來,拿去找鎖匙行打了一份備用的),現在你2號保險箱中就會也有一份5號保險箱的鑰匙,只要使用*B就可以存取記憶體位址5的值(王大明也可以拿他的備份鑰匙去打開5號保險箱了),那麼,王大明使用*B在5號保險箱的紙條上寫說「請你不要再被車撞了」,等王小明使用*A時就會看到5號保險箱中的留言。而如果王大明把2號保險箱中的鑰匙給換掉,換成6號保險箱的鑰匙時(把B的值改成6),王小明不會知道,也不會受影響,只是王大明以後拿2號保險箱中的鑰匙只能打開6號保險箱罷了,5號就變成王小明專用的了,哪天要是王小明也把1號保險箱中的鑰匙給丟了(把A的值改掉),那麼5號保險箱就再也沒人可以打開了(在某些情況下,這就是造成記憶體漏洞memory leak的原因)。
http://sandwichc-life.blogspot.com/2007/10/cc-pointer-reference.html#two
http://www.evanlin.com/blog/archives/000119.html
2009年2月16日 星期一
沒送出去的禮物
地圖包、女錶、考試吃的藥,
不想造成多餘的困擾,
所以就一直留在身邊了,
可能是我太遜...
只希望心情趕快平復下來。
希望你快樂,
也許是我不夠好,
不懂得表達,
但衷心祝你幸福,
至少是我能做到的,
我也要早日開看點^^
2009年1月22日 星期四
[GPS][Copy]GPS参数中的dBW和dBm
Copy from http://publish.it168.com/2004/1025/20041025503301.shtml
GPS参数中的dBW和dBm[收藏此页] [打印] [推荐] [挑错]作者:ET 2004-10-25 内容导航:GPS参数中的dBW和dBm 第1页: GPS参数中的dBW和dBm 【IT168 资讯】在GPS的说明书中我们常常可以看到类似于下面两张图一样的参数:
让我们看看信号灵敏度(Tracking Sensitivity),哇~两个相差好多啊,再仔细一看,一个写的是dBW,一个写的是dBm,原来是这样啊。但是,这是一项很关键的参数,对于不同的单位我们应该怎样换算呢?这里我们就来谈谈射频电平单位dBW、dBm、dBmV、dBμV的关系
当需要表示系统中的一个功率(或电压)时,可利用电平来表示。系统中某一点的电平是指该点的功率(或电压)对某一基准功率(或电压)的分贝比
显然,基准功率(即P=P0)的电平为零。对同一个功率,选用不同基准功率P0(或电压U0)所得电平数值不同,后面要加上不同的单位。
若以1W为基准功率,功率为P时,对应的电平为10lg(P/1W),单位记为dBW(分贝瓦)。例如功率为1W时,电平为0dBW;功率为100W时,电平为20dBW;功率为100dBW时,对应的电平为
已知系统中某点的电压,也可用dBW来表示该点的电平。例如某输入端的电压为100mV,则其输入功率
对应的电平为
若以1mW为基准功率时,则功率为P时对应的电平为10lg(P/1mW),单位记为dBmW(分贝毫瓦)。例如功率为1W时,电平为30dBm;功率为1mW时,电平为0dBm;功率为1uW时,电平为-30dBm;电压为1mV时,对应的功率
对应的电平为
若以1mV作为基准电压,则电压为U时对应的电平为20lg(U/1mV),单位记为dBmV(分贝毫伏)。例如电压为1V时,对应的电平为60dBmV;电压为1uV时,对应的电平为-60dBmV;功率为1mW时,电压
对应的电平为
若以1uV为基准电压,则电压为U时对应的电平为20lg(U/1uV),单位记为dBuV(分贝微伏)。例如电压为1mV时,电平为60dBuV;电压为100mV时,电平为100dBuV;功率为1mW时,电压
对应的电平为
上面的计算步骤是不是看了又点头大,实际上由上面的公式推导,我们可以知道电平的四个单位dBW、dBm、dBmV、dBμV之间有一定的换算关系,如下表所示,我们可以看到,左边的原单位变换为上边的新单位时,需要增加的数值。
利用表可以方便地把电平由一种单位化为另一种单位。例如要把115dBuV化为其它单位表示,可利用表中最后一行:化为dBW时用第一列数-138.75,即用原来的数加-138.75得-23.75,说明115dBμV相当于-23.75dBW;类似地,115dBuV相当于115-108.75=6.25dBm;相当于115-60=55dBmV。若把dBmV化为其它单位,则应用第三行;若把dBm化为其它单位,则应用第二行;若把dBW化为其它单位,则应用第一行。
dBW(新单位)
dBm(新单位)
dBmV(新单位)
dBμV(新单位)
dBW(原单位)
0
+30
+78.75
+138.75
dBm(原单位)
-30
0
+48.75
+108.75
dBmV(原单位)
-78.75
-48.75
0
+60
dBμV(原单位)
-138.75
-108.75
-60
0
再回到开头的两幅GPS接收器技术规格的截图,我们再用上表的公式计算一下,-145dBm-30=-175dBW,由此可以得出,两个GPS的信号灵敏度其实是一样的。
2009年1月21日 星期三
[Wireless][Copy]全球行動通訊系統(Global System for Mobile Communications)
Copy fromhttp://zh.wikipedia.org/w/index.php?title=%E5%85%A8%E7%90%83%E7%A7%BB%E5%8A%A8%E9%80%9A%E4%BF%A1%E7%B3%BB%E7%BB%9F&variant=zh-hant
全球行動通訊系統
維基百科,自由的百科全書
跳轉到: 導航, 搜索
汉漢▼▲為了閱讀方便,本文使用標題手工轉換。
轉換標題為:简体:全球移动通讯系统;繁體:全球行動通訊系統;
實際標題為:全球移动通信系统;當前顯示為:全球行動通訊系統
為了閱讀方便,本文使用全文手工轉換。轉換內容:
以下採用通訊學組全文轉換 [編輯]
Communication:简体:通信;繁體:通訊; 當前語言下顯示→通訊
Convolution:简体:卷积;繁體:摺積; 當前語言下顯示→摺積
Signal-to-noise ratio, SNR:繁體:訊雜比;简体:信噪比; 當前語言下顯示→訊雜比
Signal:繁體:訊號;简体:信号; 當前語言下顯示→訊號
Digital:繁體:數位;简体:数字;香港:數碼; 當前語言下顯示→數位
Analog:简体:模拟;繁體:類比; 當前語言下顯示→類比
Noise:繁體:雜訊;简体:噪声; 當前語言下顯示→雜訊
Euler:简体:欧拉;繁體:尤拉; 當前語言下顯示→尤拉
x:繁體:取樣定理;简体:采样定理; 當前語言下顯示→取樣定理
Transform:简体:变换;繁體:轉換; 當前語言下顯示→轉換
x:简体:调制;繁體:調變; 當前語言下顯示→調變
x:简体:残余边带;繁體:殘邊帶; 當前語言下顯示→殘邊帶
x:简体:幅度;繁體:振幅; 當前語言下顯示→振幅
PSK:繁體:相位移鍵;简体:移相键控; 當前語言下顯示→相位移鍵
PSK:繁體:行動通訊;简体:移动通信;香港:流動通訊; 當前語言下顯示→行動通訊
Cell:繁體:細胞;简体:蜂窝;香港:蜂窩; 當前語言下顯示→細胞
Time division:香港:時分;简体:时分;繁體:分時; 當前語言下顯示→分時
Frequency division:香港:頻分;简体:频分;繁體:分頻; 當前語言下顯示→分頻
Code division:香港:碼分;简体:码分;繁體:分碼; 當前語言下顯示→分碼
TDMA:香港:時分多址;简体:时分多址;繁體:分時多工; 當前語言下顯示→分時多工
FDMA:香港:頻分多址;简体:频分多址;繁體:分頻多工; 當前語言下顯示→分頻多工
CDMA:香港:碼分多址;简体:码分多址;繁體:分碼多工; 當前語言下顯示→分碼多工
GSM:繁體:全球行動通訊系統;简体:全球移动通信系统; 當前語言下顯示→全球行動通訊系統
iDEN:繁體:整合數位強化網路;简体:集成数字增强网络; 當前語言下顯示→整合數位強化網路
x:繁體:通用封包無線服務;简体:通用分组无线服务; 當前語言下顯示→通用封包無線服務
Packet:繁體:封包;简体:分组; 當前語言下顯示→封包
Bit:繁體:位元;简体:比特; 當前語言下顯示→位元
Slot:繁體:時槽;简体:时隙; 當前語言下顯示→時槽
error correcting code:简体:纠错码;繁體:錯誤更正碼; 當前語言下顯示→錯誤更正碼
diversity:简体:分集;繁體:多樣; 當前語言下顯示→多樣
x:简体:数字电视;繁體:數位電視;香港:數碼電視; 當前語言下顯示→數位電視
DVB-H:简体:手持地面无线;繁體:手持式數位視訊廣播; 當前語言下顯示→手持式數位視訊廣播
DVB-H:简体:视频;繁體:視訊; 當前語言下顯示→視訊
顯示↓關閉↑附加說明(對轉換結果有疑問時)
字詞轉換是中文維基的一項自動轉換,目的是通過電腦程式自動消除繁簡、地區詞等不同用字模式的差異,以達到閱讀方便。
字詞轉換包括全局轉換和手動轉換,本說明所使用的標題轉換和全文轉換技術,都屬於手動轉換。
由於技術所限,字詞轉換有時會不穩定,在剛增加標題轉換時,由於緩存原因標題不一定馬上顯示轉換後的正確結果。你可以嘗試單擊這裡進行強制刷新。行動通訊標準
0G
PTT
MTS
IMTS
AMTS
0.5G
Autotel/PALM
ARP
1G
NMT
AMPS
Hicap
CDPD
Mobitex
DataTac
GSM / UMTS (3GPP) 家族
2G
全球移動通訊系統(GSM)
iDEN
D-AMPS
IS-95
PDC
CSD
PHS
2.5G
通用分組無線服務(GPRS)
高速電路交換數據(HSCSD)
WiDEN
2.75G
CDMA2000 1xRTT
改進數據率GSM服務(EDGE)
3G
W-CDMA
通用移動通訊系統(UMTS)
FOMA
CDMA2000 1XEV-DO
TD-SCDMA
3.5G
高速下行分組接入(HSDPA)
3.75G
高速上行分組接入(HSUPA)
4G
Frequency bands
SMR
Cellular
PCS
全球行動通訊系統(Global System for Mobile Communications),即GSM,是當前應用最為廣泛的移動電話標準。全球超過200個國家和地區超過10億人正在使用GSM電話。GSM標準的廣泛使用使得在移動電話運營商之間簽署「漫遊協定」後用戶的國際漫遊變得很平常。GSM 較之它以前的標準最大的不同是他的信令和語音信道都是數位的,因此GSM被看作是第二代(2G)移動電話系統。GSM標準當前由3GPP組織負責制定和維護。
從用戶觀點出發, GSM的主要優勢在於提供更高的數位語音質量和替代呼叫的低成本的新選擇(比如短信)。從網絡運營商角度看來,其優勢是能夠部署來自不同廠商的設備,因為GSM作為開放標準提供了更容易的互操作性。而且,標準就允許網絡運營商提供漫遊服務,用戶就可以在全球使用他們的移動電話了。
GSM標準在發展的同時(例如包數據能力在Release '97版本的標準中通過GPRS被加入進來),保持與原始的GSM電話向後兼容。更高速度的數據傳輸是用EDGE在Release '99版標準中引入的。
目錄 [隱藏]
1 歷史
2 市場狀況
3 無線電接口
4 語音編碼
5 網絡結構
6 身份識別模塊
7 GSM安全
8 相關條目
9 外部連結
10 註釋
[編輯] 歷史
1980年代初,第一代移動電話技術開始應用,當時存在眾多互不兼容的標準。僅在歐洲,就有北歐的NMT,英國的TACS,西德等國使用的C-450, 法國的Radiocom 2000和意大利RTMI等。用戶的手機無法在其他標準的網絡上使用,造成很大的不便。由於這個原因,西歐國家開始考慮制定一個統一的下一代移動電話標準,以便能夠提供更多樣的功能和使用戶漫遊更加容易。最開始標準起草和制定的準備工作由歐洲郵電行政大會〔CEPT〕負責管理。具體工作由1982年起成立的一系列「移動專家組」負責。GSM的名字即是移動專家組(法語:Groupe Spécial Mobile)的縮寫。後來這一縮寫的含義被改變為「全球移動通訊系統」,以方便GSM向全世界的推廣。
1987年5月GSM成員國達成一致,確定了GSM最重要的幾項關鍵技術。1989年, 歐洲電信標準協會〔ETSI〕從CEPT接手標準的制定工作。1990年第一版GSM標準完成。1992年1月,芬蘭的Oy Radiolinja Ab成為第一個商業運營的GSM網絡。亞洲最早的GSM運營網絡是香港電訊CSL,。GSM的推出推動了移動通信的普及,用戶持續快速增長。1995年,全球用戶達到1千萬,1998年,達到一億,2005年已經超過15億。[1][2]
1998年,目標為制訂接替GSM的第三代行動電話(3G)規範的3GPP啟動。3GPP也接受了維護和繼續開發GSM規範的工作。ETSI是3GPP的成員之一。
在發展的過程中,GSM系統的功能不斷得到豐富,從而能夠提供更多樣的服務。由GSM系統首先引入的短信息服務(SMS)提供了一種新穎、便捷、廉價的通訊方式。1994年,GSM實現了基於電路交換的數據業務和傳真服務。1999年,WAP協議使得用戶可以通過手機訪問互聯網。2000年後開始商用的通用分組無線服務(GPRS)使得GSM系統能夠以效率更高的分組方式提供數據通訊。2003年, EDGE技術開始商用,提供了接近3G的數據通訊能力。
目前,3GPP組織還在發展GSM標準,以便利用已經大量部署的GSM基礎設施,平滑地向3G技術演進。
[編輯] 市場狀況
到2005年全球有超過10億人使用GSM電話,使GSM成為主導的移動電話系統,佔到全球市場份額的70%。當前WCDMA並沒有展現出全部的功能,而GSM的主要競爭CDMA2000(主要在北美、日本、中國和韓國使用)在全球獲得作為3G標準過渡的有限的增長。因為WCDMA網絡建設已經起步(至少在高密度的市場),GSM的正在緩慢消亡,但這將持續相當時間。
在1998到2000年之間導致GSM用戶增長的主要原因是移動運營商推出預付費電話服務。它允許那些不能或者不想跟運營商簽署合同的的人們使用移動電話服務。這種服務在歐洲的移動運營商之間競爭也比較激烈,即使沒有長期的合同,人們也可以從運營商那裡以很低廉的價格買到一款手機。
[編輯] 無線電接口
GSM系統在無線接口上採用時分復用技術(TDMA),語音或數據信號採用高斯最小頻移鍵控(GMSK)方式進行調製。信道編碼主要採用卷積碼。每個GSM載頻的頻寬為200KHz,在時間上以4.615ms(更準確的說是60/13ms)為一幀,每一幀又順序劃分為8個時隙。時隙是GSM無線接口上資源的最小單位。
作為GSM系統數據傳輸性能提升的EDGE系統, 調製方式採用了效率更高的8進制相移鍵控(8PSK)。開發中的EDGE演進技術則將採用32 或16進制正交幅度調製(32或16QAM),每載頻的數據傳輸能力可接近1Mbps。
為適應各國無線電頻率分配的不同情況,GSM系統可以在多個不同的頻段工作。 最初的GSM標準定義了900MHz,1800MHz,和1900MHz頻段。此後又補充了850MHz和450MHz,以適合部分地區的需求。世界大部分地區採用900M和1800M頻段。美洲的一些運營商使用850M和1900M頻段。 400-450M頻段則僅局限於北歐國家的運營商。此外,歐盟為鐵路調度通信需要以GSM為基礎制定的GSM-R系統, 它的工作頻率也在900M頻段。GSM上下行信號為頻分雙工,上下行信號採用不同的頻率, 但對於不同的頻點,上下行頻率之間保持固定的間隔。各頻段的具體頻率範圍和信道號如下:
頻段 名稱 信道號 上行(MHz) 下行(MHz) 其他
GSM 850 GSM 850 128 - 251 824,0 - 849,0 869,0 - 894,0 美國, 南美洲國家 和 亞洲部分國家。
GSM 900 P-GSM 900 1-124 890,0 - 915,0 935,0 - 960,0 GSM最先實現的頻段,也是使用最廣的頻段。
E-GSM 900 975 - 1023 880,0 - 890,0 925,0 - 935,0 900M擴展頻段
R-GSM 900 n/a 876,0 - 880,0 921,0 - 925,0 鐵路GSM(GSM-R),為鐵路調度通信系統開發的特殊版本。
GSM1800 GSM 1800 512 - 885 1710,0 - 1785,0 1805,0 - 1880,0 適用於對信道容量需求大的市場,應用範圍僅次於900M。
GSM1900 GSM 1900 512 - 810 1850,0 - 1910,0 1930,0 - 1990,0 主要用於美洲國家,由於有頻率重疊,與1800M系統不兼容。
GSM網絡一共有4種不同的蜂窩單元尺寸:宏蜂窩,微蜂窩,微微蜂窩和傘蜂窩。覆蓋面積因不同的環境而不同。宏蜂窩可以被看作那種基站天線安裝在天線桿或者建築物頂上那種。微蜂窩則是那些天線高度低於平均建築高度的那些,一般用於市區內。微微蜂窩則是那種很小的蜂窩只覆蓋幾十米的範圍,主要用於室內。傘蜂窩則是用於覆蓋更小的蜂窩網的盲區,填補蜂窩之間的信號空白區域。
蜂窩半徑範圍根據天線高度、增益和傳播條件可以從百米以下到數十公里。GSM規範設計的最大小區半徑,一般情況下為35公里。如果採用擴展蜂窩的技術,則可以達到120公里以上,適用於一些傳播條件極好的情況。
GSM還支持室內覆蓋,通過功率分配器可以把室外天線的功率分配到室內天線分佈系統上。這是一種典型的配置方案,用於滿足室內高密度通話要求,在購物中心和機場十分常見。然而這並不是必須的,因為室內覆蓋也可以通過無線信號穿越建築物來實現,只是這樣可以提高信號質量減少干擾和回聲。
一般在界定無線電介面,會以信道(Channel)來分,分為邏輯信道(Logical Channel)跟物理信道(Physical Channel)。首先在物理信道定義了實體網路的傳輸單元。
[編輯] 語音編碼
GSM系統最早的語音編碼方案採用規則脈衝激勵長時預測編碼(REP-LTP)技術。它產生的編碼速率為13Kbps,每20ms一個話音幀。話音質量平均意見分值(MOS)可達到3.6。這一方案被稱作全速率編碼(Full Rate,FR)。在FR的基礎上,通過改進算法推出了增強型全速率編碼(Enhanced Full Rate,EFR);在不改變編碼速率的條件下,實現了更好的話音質量。同時也引入了編碼速率為6.5Kbps的半速率編碼(Half Rate,HR),這樣在犧牲話音質量的前提下,系統的容量可以提高一倍。1998年, 3GPP又採納了自適應多速率編碼(Adaptive Multi-Rate,AMR)作為語音編碼的增強。AMR包括14種不同速率的編碼算法,其中8種為全速率和6種為半速率,碼率介於12.2Kbps至4.75Kbps之間。系統在通話過程中根據信道條件和誤碼率實時地選擇最佳的編碼速率。在理想情況下,AMR 12.2Kbps的語音MOS可達4.14。
[編輯] 網絡結構
GSM網絡結構GSM系統後面的網絡被人們看作是極其龐大和複雜的,這樣就可以提供所有的所需的服務。它被分成很多的部分,每一部分負責其中的一個功能。
基站子系統 (基站及其控制器).
網絡和交換子系統 (這一部分和固定網絡最為相似) 有時也被叫做核心網。
GPRS核心網 (可選部分,用於基於報文的互聯網連接)。
所有的系統元素組合出許多的類似語音通話和短信這樣的GSM服務。
[編輯] 身份識別模塊
GSM的一個關鍵特徵就是用戶身份模塊 (SIM), 也叫 SIM卡。SIM卡是一個保存用戶數據和電話本的可拆卸智能卡IC。用戶就可以更換手機後還能保存自己的信息。換句話說用戶也可以使用現在的手機而使用不同運營商的SIM卡。 有些運營商為了防止用戶轉換到別的網絡在手機上做手腳,使得它只能用一個特定的SIM卡,或者同一個網絡的SIM卡,這就是眾所周知的 SIM卡加密, 這在某些國家並不合法。
在美國和歐洲,大部分運營商鎖定他們銷售的移動電話,這樣做是因為移動電話的價格一般因為簽訂長期合同大幅減少(例如在歐美市場很多手機可以通過簽約以原價格幾十分之一的價格購買),而運營商試圖避免客戶的流失。用戶一般可以通過與運營商聯繫付一定費用來解除鎖定(俗稱解碼),或者通過一個專門服務或者從互聯網上搜索相關軟件來解碼。 如果用戶簽署在一段時期有效地合同(合同帳戶),某些美國運營商例如T-Mobile和Cingular,就會解除對電話的鎖定。第三方的解碼方法比起運營商的來一般更快而且也更便宜。在大多數國家解除鎖定是合法的。
[編輯] GSM安全
GSM 被設計具有中等安全水平。系統設計使用共享密鑰用戶認證。用戶與基站之間的通訊可以被加密。演進的 UMTS引入可選的USIM-使用更長鑒別密鑰保證更好的安全以及網絡和用戶的雙向驗證。GSM只有網絡對用戶的驗證 (而不是雙向驗證)。雖然安全模塊提供了保密和鑒別功能,但是鑒別能力有限而且可以偽造。
GSM為了安全使用多種加密算法。A5/1和A5/2兩種串流密碼用於保證在空中信息的保密性。 A5/1是在歐洲範圍使用的強力算法,而A5/2則是在其他國家使用的弱強度算法。在兩種算法中嚴重漏洞都已經被發現, 例如一個單一密文攻擊可能實時的中斷掉A5/2. 但是系統支持多個不同算法,這樣運營商就可以換一個安全等級更強的。
[編輯] 相關條目
核心技術: 2G -- 2.5G -- 3G
結構元素: 基站控制器 -- 基站子系統 -- HLR -- 移動電話交換中心 -- SIM -- VLR
無線電: GSM頻率範圍
服務: 蜂窩電話業務 -- GSM定位 -- GSM服務 -- MMS -- SMS -- WAP
標準: ETSI -- 智能網 -- 增值
公用術語: IMEI -- IMSI -- MSISDN -- 切換
相關技術: GSM-R (GSM-Railroads)
[編輯] 外部連結
3GPP:當前可用自由GSM標準實現
OMA The current standardisation body for services aspects of mobile networks - 部分開放標準可用.
ETSI 原始GSM標準實現
GSM協會-GSM運營商概覽 (官方站點) - 包括全體成員的網絡覆蓋情況
GSM用戶數量
GSM網絡參數縮寫列表 按照首字母順序
GSM概述 作者John Scourias
Bryte.net的GSM指南
GSM可視化指南
GSM 概念、起源和里程碑-一個挪威人的觀點 Telenor的技術雜誌
Telektronikk.Com
GSM服務和三波段國際漫遊FAQ
蜂窩電話安全
電話網絡列表
GSM呼叫流程圖
美國用戶在歐洲使用GSM蜂窩電話的條款 and ROW
[編輯] 註釋
^ http://www.cellular.co.za/gsmhistory.htm
^ http://www.gsmworld.com/about/history.shtml
取自"http://zh.wikipedia.org/w/index.php?title=%E5%85%A8%E7%90%83%E7%A7%BB%E5%8A%A8%E9%80%9A%E4%BF%A1%E7%B3%BB%E7%BB%9F&variant=zh-hant"
4個分類: 音頻編碼 | 行動電話 | 移動通信標準 | 通信技術
張貼者:
roger
位於
上午 5:59
0
意見
此文章的連結
標籤: [Wireless]
[Windows][Font][Copy]Windows CE下中文输入法编辑器简介
Copy fromhttp://dev.21tx.com/2004/11/09/11732.html
Windows CE下中文输入法编辑器简介http://dev.21tx.com 2004年11月09日 天极网 付林林
-
CE包含了一种简体中文输入法编辑器,如果不想编写自己的输入法编辑器,那么可以直接调用默认的。在讲解中文输入法编辑器之前顺便提一下国际化(Internationalization),中文输入法及输入法编辑器只是国际化组件的一小部分。国际化是编写面向不同语言用户的软件过程中一个重要环节,CE的国际化组件包含很多小的组件,下表描述了组件的名称、功能:
名称 功能
Agfa字体压缩 支持字体压缩
字体版本 因为东亚字体占据内存较大,此组件提供了用于选择不同大小字体文件的选项
手写识别 手写识别引擎
多语言用户界面 提供给最终用户用于切换语言种类
National Language System 国家语言支持(包括日期、时间、数字、货币格式)
Transcriber应用程序 识别英语、法语、德语的手写识别程序
Unicode码支持 能够处理和显示Unicode码
日语IME 日语输入法编辑器
韩语IME 韩语输入法编辑器
简体中文IME 简体中文输入法编辑器
Shuang Pin IM 简体中文双拼输入法
GB18030 转换器 在GB18030到CE编码之间的转换
繁体中文IME 繁体中文输入法编辑器
在定制内核的时候常会遇到这些组件,尤其是字体版本,选择不同的字体对于整个内核的大小影响很大。在定制内核的时候,选择PB提供的字体版本应该参照标题为“Font Versions”的帮助文档,在这个文档中详细的列举了东亚语言字体的文件名称、内容、正常大小和压缩大小。除了选择合适的字体版本外,还应该采用Agfa字体压缩技术,Agfa字体压缩技术的优点是能够减小字体占用的ROM和RAM空间,另外能够保证在压缩和解压缩后数据不丢失。如果采用字体压缩,Agfa压缩技术将字体压缩成TrueType格式,并另存为扩展名为“.ac3”的文件,那么CE在使用字体的时候首先寻找扩展名为“.ac3”的文件。如果不采用字体压缩,CE将使用非压缩字体,如扩展名为“.ttf”“.ttc”的文件。下面讲述关于简体中文输入法编辑器的相关知识。
CE的输入法系统由下列几个部分组成:
IME(输入法编辑器)内核。包括和用户输入的语言相关的内容,比如输入法、文字库等
IME界面。包括状态窗口、写作窗口、候选窗口、指南窗口
IMM(输入法管理器)。负责在CE系统、应用程序、IME之间通信
输入上下文。包括用户输入状态等
IME控制窗口。负责发送未处理的IME消息到IME
输入法系统的工作机制如下:
当输入法系统启动后,用户按键盘,键盘消息被IMM发送到IME。IME处理消息内容,根据键盘消息的内容或者产生用于写作的字符,或者产生命令。当IME处理键盘消息后,它发送通知消息到当前获得焦点的窗口,如果这个窗口不能处理IME通知消息,那么通知消息被发送到IME控制窗口,控制窗口将消息返回到IME,IME做默认的处理工作(IME提供了完整的用户接口)。对于能够处理IME通知消息的窗口,被称之为IME-aware窗口,相反不能处理IME通知消息的窗口,被成为IME-unaware窗口。能够处理IME通知消息的窗口通过IMM 函数能够实现自定义的输入法编辑器。
输入上下文:
输入上下文存储了IME的状态信息,它是IME的内部结构。对于每一个线程,系统创建和分配了一个默认的输入上下文,在线程内的每个窗口都共享输入上下文的内容。具体输入上下文的结构体定义包含在标题为“INPUTCONTEXT”的帮助文档中。从文档中看出,输入上下文包含对应窗口句柄、写作窗口和候选窗口和状态窗口的位置、字体、消息缓冲区等等。用函数ImmGetContext可以得到指定窗口对应的输入上下文的句柄。用ImmReleaseContext释放指定的输入上下文。如果不希望一个线程内的窗口都共享同一个输入上下文,那么可以调用函数ImmCreateContext来创建一个新的上下文,并调用函数ImmAssociateContext将新创建的输入上下文与指定的窗口关联。当不用这个新创建的上下文时,调用ImmDestroyContext来释放内存。调用函数ImmLockIMC能够得到一个指定的输入上下文的指针,通过这个指针可以访问输入上下文的数据。访问结束后调用函数ImmUnlockIMC,ImmUnlockIMC减少计算锁数量,直到释放句柄。关于输入上下文的例子代码如下:
HIMC hIMC = ImmCreateContext(); ///创建新的上下文
LPINPUTCONTEXT lpIC;
lpIC = ImmLockIMC(hIMC);
.................... ///使用lpIC访问上下文数据
ImmUnlockIMC(lpIC);
ImmAssociateContext(hWnd, hIMC); ///与窗口关联
ImmDestroyContext(hIMC); ///最后释放上下文
下面是调用中文输入法的例子代码:
HIMC hIMC = ImmGetContext(hWnd); ///hWnd为当前窗口句柄
POINT pt;
pt.x = 300;
pt.y = 200;
ImmSetStatusWindowPos(hIMC, &pt); ///设置状态窗口位置
ImmSetOpenStatus(hIMC, TRUE); ///打开中文输入法
ImmReleaseContext(hEdit, hIMC); ///最后释放上下文
我在开发过程中发现并非所有Imm函数都有效,通过对Pocket IME源码分析后证实了我的发现。但上述的函数都能够实现功能,对于只要能够打开并使用中文输入法的要求还是可以满足的。
張貼者:
roger
位於
上午 5:52
0
意見
此文章的連結
標籤: [Windows][Font]