---
# System prepended metadata

title: NR Handover(omnet++)

---

# 依照公共筆記安裝SIm5G

## 之後會將實作push到github

### 使用standalone_multicell去修改 新建資料夾CHO

### 程式修改
#### 1. CHO 中的omnetpp.ini
 - 新增基站、位置以及X2App數量![image](https://hackmd.io/_uploads/SyZSgFfdp.png)

- UE的位置以及Mobility方式![image](https://hackmd.io/_uploads/rkYc-KM_a.png)

- 為了加入mobility亦須修改在inet4.5/src/inet/mobility/single。
LinearMobility.ned。在第29行，此為出發角度，預設為隨機，更改為固定180度，向左水平移動
![image](https://hackmd.io/_uploads/SJpqGtzOa.png)
- 在NR/networks/MultiCell_Standalone.ned，修改X2的連接口以及連上iupf
![image](https://hackmd.io/_uploads/By0KNFf_6.png)

- 每新增基站就必須幫她上圖片
![image](https://hackmd.io/_uploads/rkWRVYzOa.png)

- 即可執行 ./run 選擇1UE DL模式![image](https://hackmd.io/_uploads/H1gRrFzOp.png)

- 可以去result看結果(正在理解輸出)
- HO相關/home/shao/5G/omnetpp-6.0/Simu5G/src/stack/han


## HO 相關
- Simu5G/src/common/binder/Binder.cc
這裡有初始化結點跟一些相關的要讀
![image](https://hackmd.io/_uploads/r1lvYUYu6.png)
- handovertrigger
![image](https://hackmd.io/_uploads/ByS75Ut_p.png)
- 1115 算SINR的程式碼

- Simu5G/src/stack/phy/layer/LtePhyUe.cc 處理是否HO 
- 函式handoverHandler
主要功能和邏輯：

設置控制信息：

將接收到的廣播訊框（frame）中的目的地ID設置為本地節點ID（nodeId_）。
判斷手動切換是否啟用：

如果未啟用手動切換（enableHandover_為假），則進行必要的報告集計算後直接返回。
計算RSSI：

如果收到的廣播來自當前主eNodeB（masterId_），則調用das_>receiveBroadcast計算RSSI。
如果廣播來自非主eNodeB，則通過primaryChannelModel_->getSINR計算RSSI。
RSSI評估和手動切換邏輯：

如果收到的信號來自當前主eNodeB且RSSI強於候選主eNodeB，則更新當前主eNodeB的RSSI。
如果收到的信號來自其他eNodeB且RSSI足夠強，則將該eNodeB設置為新的候選主eNodeB，並安排handoverStarter_消息，以在所有廣播消息到達後評估手動切換參數。
處理信號過弱或失去連接的情況：

如果信號過弱或失去與當前主eNodeB的連接，則觸發與候選主eNodeB的分離和（如果有）新的連接。
清理：

最後刪除接收到的訊框和控制信息。