<em id="vxn3k"></em>
  • <div id="vxn3k"></div>
    <em id="vxn3k"></em>
    1. <div id="vxn3k"><tr id="vxn3k"></tr></div>

          <div id="vxn3k"></div>
          
          
          <em id="vxn3k"></em>
          1. <optgroup id="vxn3k"><small id="vxn3k"><track id="vxn3k"></track></small></optgroup>
          2. <button id="vxn3k"><menu id="vxn3k"></menu></button>
          3. <delect id="vxn3k"></delect>

            英創Linux主板Python, C#實例之四 CAN總線

             2020/10/27    

              本文主要介紹在英創Linux工控主板(ESM8000、ESM7000和ESM6800H)上,采用Python和C#編程,實現對CAN總線接口的訪問。Python和C#實例,均采用Visual Studio Code作為基本的編程工具,其代碼可在主板 + ESMARC評估底板上運行,其基本的硬件環境采用采用ESM8000工控主板 + 評估底板構成,如下圖所示:


            英創Linux主板的Python, C#實例之四 CAN總線.png


              在Linux平臺,CAN總線接口設備已納入網絡的socket架構。英創的Linux主板有兩路CAN接口,網絡名稱為”can0”和”can1”。在本文后面的實例代碼中使用can0接口,評估底板上有相應的CAN驅動電路,與開發主機的CAN適配器連接,就可進行測試了。


              可選擇任何一款CAN調試模塊,如PCAN,作為CAN總線測試的對端,通過其APP可看到CAN數據幀的收發情況。


            Python應用實例


              Python支持can接口操作庫文件Python-CAN已經安裝在ESM8000板卡文件系統中,調用import can 即可調用API函數對于can接口進行讀寫操作。對于socketcan的操作模式,一般需要調用ip 命令來激活can接口,并設置相應的波特率。

              #>ip link set can0 type can bitrate 2500000

              #>ip link set can0 up


              Python CAN實例代碼如下:


            英創Linux主板的Python, C#實例之四 CAN總線.png


            C#應用實例


              C#的實例是來自第三方的開源案例:https://github.com/jormenjanssen/netcore-can-example。實例通過C#的InteropServices機制,直接調用Linux socket相關函數,并不依賴于libsocketcan庫。目前還只有.NETCore3.1能支持該實例的正常運行,.NET5.0的預發行版都還不能正常工作,希望在計劃的2020年11月的正式發布版中,微軟能解決System.Net.Sockets庫中的相關問題。


              運行程序前,需要通過Linux的ip link命令,讓can0接口up。具體操作參考Python實例中的說明。


              鑒于本程序代碼較多(包含6個C#文件),僅例出main函數。感興趣的客戶可與英創技術部門聯系,獲取完整代碼。


            英創Linux主板的Python, C#實例之四 CAN總線.png

            日本亚洲欧美国产日韩ay-欧洲亚洲色视频综合在线-午夜少妇性开放影院-蜜芽国内精品视频在线观看