# gr-modtool 先行安裝modtool依賴套件 * clang-format ## 開始建立 使用`sudo gr_modtool newmod try1`就會建立名為gr-try1的OOT架構模塊 ![](https://hackmd.io/_uploads/rkRlXO4A3.png) 使用`gr_modtool add ieo`來生成我們要撰寫block的相關檔案(這裡生成名字為ieo的新block) 那要分別輸入: block type Language copyright holder Add Python QA code 使用python生成ctest測試檔案 Add C++ QA code ![](https://hackmd.io/_uploads/Hk_VmONCn.png) 由於之前新增過block 所以需要多這一步驟(修改文件也需要,唯有只建立一個block不需要) 輸入`gr_modtool bind ieo` ![](https://hackmd.io/_uploads/HJio8dVRh.png) 接下來lib就會新增 ieo_impl.cc&.h grc會新增 try1_ieo.block.yml python會多 qa_ieo.py 那分別對其編譯 ieo_impl.cc block type為general 寫了一個in=out ![](https://hackmd.io/_uploads/rJO5myrCn.png) 那yml的部分也要自行更改,設置parameters,input,output ![](https://hackmd.io/_uploads/r18pHkrC3.png) 編寫測試程序(python),將測試數據輸入,若輸入=輸出即可pass ![](https://hackmd.io/_uploads/HJvNpkH0n.png) 那最後進行makeinstall程序即可 mkdir build cd build cmake .. make ctest 測試結果 ![](https://hackmd.io/_uploads/ry5dakr02.png) sudo make install sudo ldconfig 打開gnu radio即可看到新增的block ![](https://hackmd.io/_uploads/SkcK1gHA3.png) 實際測試 aa 為out=in^3 aa2 為out=in^2 ieo 為out=in ![](https://hackmd.io/_uploads/ryXPegSR2.png) ![](https://hackmd.io/_uploads/B10cggHR2.png) 綠色為原始信號 ![](https://hackmd.io/_uploads/SJrAlgHCn.png) ![](https://hackmd.io/_uploads/B17ybgr0n.png) ![](https://hackmd.io/_uploads/Sy9xZeSA2.png)