**epoll 心得** 2022/5/6 由於Epoll 只有在linux底下才可以運行,所以我花了一小段時間到處詢問怎麼樣啟動。 最後我使用的方法為:啟用Windows Subsystem for Linux(WSL)才可以運行。 經過GCC 編譯之後,我終於可以使用epoll。首先就是這個是一個小型的Server 可以在Server端存入 Client端的input,並且在Clinet端可以重新顯示輸入的自串。 首先我開了一個Server端![](https://i.imgur.com/rfrCrvz.png) 以及一個Client端![](https://i.imgur.com/JVy1CIO.png) 以下為程式碼的解析: epoll 利用 s和c 字元來表示是Client端或是Server端,![](https://i.imgur.com/qh1n41a.png)利用opt()來取得用戶資訊。 接下來為server_run(),實際上程式碼並沒有很難,實際上就是follow三大步驟 **<Connect with Client and output-> Determine what kind of event happened-> Output input data/unexpeted/connection closed>** 詳細的實作需要再另外看linux manuscript 但大致流程為如此 同理,接下來為client_run(),流程如下: **<Check connection event-> Connect with server->Echo>** 利用write(),將buffer中資料寫入Server中,接下來就只是簡單的字串處理。 而以上就是我對於epoll-example 的理解。 ------------------------------------------------------------------------------ **LiDAR-Enhanced Connected Infrastructures Sensing and Broadcasting High-Resolution Traffic Information Serving Smart Cities 閱讀心得** ``` 首先是部分名詞解釋 CV(Connected Vehicle):為一種概念型的車子,意旨路上的車子可以藉由Message Exchange 來達到安全、省油...ETC優點的技術。 ITS(Intelligent Transportation System):智慧城市中想要達到的目標。 DSRC(Dedicated_Short_Range_Communication):一種車聯網的短程連接技術。 SPaT(Signal Phase and Timing):一種狀態描述的機制。 LiDAR(Light Detection and Rangnin):一種自動偵測周遭環境的技術。 HRMTD(High Resolution Micro Traffic Data):也是一種資料紀錄、存取的方法,其中包括速度、地點、方向等。 ``` 知道上述名詞的意義之後,就可以開始探討這篇論文到底在闡述的東西了。 首先就是這篇文章的主旨: ==主要是在講LiDAR這個技術可以智慧城市帶來何種貢獻,以及部分技術(大部分都點到為止,並沒有詳談),另外就是部分研究的公式,讓後續研究可以參考的數學公式== 首先來談談在Introduction對智慧城市的看法,以及我對於自此技術的看法: ==首先,這個技術在未來勢必是一定要實裝在各城市首都,此舉可以大大降低路上行人被撞的機率,除此之外,因為資料紀錄的特性,若發生車禍,必要時也可以從資料庫中找到資料來獲取對應的資料進而歸究責任。再來,由於實際在每個十字路口裝置此裝置的成本過於龐大,以及在論文中有提到的**Potential Vandalism**(為我比較在意的片段),這些都有可能導致實裝面的機率大大降低。== 再來討論技術面: ==這份文章討論的技術並沒有我想像中的多,首先就是**Background Filtering**(我猜應該是採用greedy 演算法去排除所有在單位時程內出現太多次的點),非常人性化,畢竟出現太多次,那應該就是背景了吧,但這邊我就想要問問看,如果有人故意在一段時間內都沒有任何動作呢?,當然這又是另外的問題了。== ==再來是部分後面提到的Vector Machine, Random Forest等ML模型,這邊沒有探究,所以我當下讀的時候有點不清楚在幹嘛。反正就是利用ML模型去篩選出真正的行人,以Random Forest的成功率、效率為最高。== 接下來就是討論硬體面以及實作面,他們選用藍芽來進行短程資料交流,也因為資料交流講求效率,所以資料需要被切割成小型的封包再來傳送,![](https://i.imgur.com/hLRJNm2.png)這邊所講的數學公式都是用來計算封包在何種大小,以及長度在間隔在多長的狀況下可以有最高的傳輸效力,而最高也代表著傳輸必須要成功,所以也包括了資料傳輸失敗的機率,![](https://i.imgur.com/qWfPAE1.png) 藉由這些圖表可以發現封包越大,傳輸Delay越高(理所當然)。 而間隔在20ms以下或40ms以上的delay會越嚴重。![](https://i.imgur.com/CFbHyma.png) 以上為我對於此論文的理解以及心得。 ------------------------------------------------------------------ 最後是了解 SAE Standrad 定義的 J2735 及 J2945 規範: ``` IEEE 802.11p 是一種規範系統傳輸資料的規格 >是802.11的延伸,必須提供無線傳輸以及車聯網的服務 >強調OSI中實體層以及DataLink Layer中的MACLayer IEEE802.11 and 1609 1609.0 Overview of the system 1609.2 More secure ”data exchange” 1609.3 Only support WSMP and IPv6 1609.4 Enhance 802.11 mac to support multi-channel operations 1609.12 Identifier allocations SAE J2735 一、 一種規範車聯網互相傳送訊息的資料規範 二、 值得注意的一點是,利用ASN.1來進行規範的資料結構。 三、 Some objects in a message are Mandatory and some are Optional這句話我並不了解哪種訊息是一定需要的,而那些又不需要,這邊可能要再跟學長請教。 PSM(personalSafetyMessage) 可以利用小型裝置例如:手機、腳踏車裝置、或是部分身上的裝置來提醒車子有弱小物品前來。 PVD(ProbeVehicleData) 利用照片(snapshots)來提供RSU物體的行為以及事件。 PDM(ProbeDataManagment) 上述資料結構的管理程序,規範蒐集資料的時間以及距離。 SSM(SignalStatusMessage) 藉由RSU廣播出優先佇列以及插隊要求 SRM(SignalRequestMessage) 藉由車子本身要求優先權以及插隊需求 TIM(TravelerInformationMessage) RSU發出的道路狀態,其中包括: 彎道速度警告 作業區域:通知使用者地形 出口通知 ``` J2945,這邊主要都是在說除了J2735之外,額外的SPEC,Performance Requirements 我需要請問學長NHTS NPRM我需要在哪裡讀到J2945/1 J2945/2 新增了以下功能: 緊急車輛警報、路邊警報、安全警訊。 J2945/9 更新了 VRU 以及車輛的安全訊息(資料傳輸) 在最後 InBallot我不太清楚是甚麼意思 J2945/10 還在開發中,不過主要利用SPaT和地圖資訊提供嚮導。 ------------------------------------ 最後為USDOT提供的服務 >ODE(Operational Data Environment) >SDC(Situational Data Clearinghouse) >SDW(Situational Data Warehouse) >SCMS(Security Credential Management System) >J2735 Map Tool