0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數據可視化工具:FreeMASTER v3.0發(fā)布評測

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-10-30 03:48 ? 次閱讀

FreeMASTER 是一個界面友好的,可用于實時觀察目標系統(tǒng)中變量內容的數據可視化軟件??梢酝ㄟ^多種通信方式將 PC 機和微控制器電路板連接,實時捕獲和配置微控制器中(存放變量)的內存信息,并顯示在 PC 機的軟件窗口中。


FreeMASTER 軟件最早用于汽車電子相關的軟件開發(fā)中,后被廣泛應用在多種開發(fā)環(huán)境,用以提供友好的人機交互界面。


從筆者的開發(fā)經歷中,特別是分析例如觸摸感應等模擬傳感器信號時,常用 FreeMASTER 實現一個簡易的示波器,將單片機中實時采集的傳感器信息繪制成時域曲線,顯示在電腦界面上,從而便于分析數據,尋找其中的變化規(guī)律,進而提取特征信息用于特定的模式匹配。在進行最近比較火熱的嵌入式 AI 開發(fā),在海量的數據處理過程中,通過 FreeMASTER 的可視化界面,監(jiān)控計算過程中間某些關鍵變量的變化過程,簡直不要太方便了,就是在給領導和客戶演示的時候也是逼格滿滿 .


筆者之前在本公眾號中,發(fā)表過一篇關于基本使用 FreeMASTER 的短文,可以幫助嵌入式工程師在 5 分鐘內上手使用 FreeMASTER v2.0 工具,見: 使用 FreeMASTER 捕獲采樣記錄并導出重現曲線。


近期,NXP 官方發(fā)布了 FreeMASTER v3.0,據說進行了很大的更新,在本文中,筆者對新版本的 FreeMASTER 進行了試用,并同大家分享使用體驗。


安裝過程
下載頁面中還能看到,官網仍然開放了歷史版本 v2.0 和 v2.5 的下載鏈接。筆者常用的是 v2.0 版本。



比較驚喜的是,FreeMASTER 終于開始能夠跨平臺了,本次更新提供了 Linux 系統(tǒng)的安裝包。但是根據說明,在 Linux 上只支持 FreeMASTER Lite 服務和相關的文檔,大家熟悉的桌面版沒有提供 Linux 平臺的支持。


從安裝包的大小來看,新版的安裝包整整增大了一個數量級,從 v2.x 的 40MB 左右,一下子劇增到近 300MB,筆者不禁腦補了一下,最近到底給它喂了些什么。


安裝
下載之后雙擊安裝包安裝。安裝過程也是全新的,用了 InstallAnywhere 打包工具對整個軟件包進行打包。界面看起來更可愛一些,但略顯簡單。筆者作為一個資深的嵌入式系統(tǒng)工程師,還是更喜歡之前版本使用 InstallShell 打包工具簡潔干練的工業(yè)風。



這里特別注意,在安裝過程中,如果不是明確需要使用"FreeMASTER Lite 服務",而只是使用原有大家熟悉的使用 FreeMASTER 桌面版提供的功能,可以在安裝過程中勾選掉相關的選項。否則會需要提供專門的激活碼 .


一開始安裝的時候由于疏忽跳過了激活碼,由于不知道怎樣獲得"激活碼",本打算先安裝試用部分功能,但沒想到沒有激活碼竟然直接回滾安裝,FreeMASTER 的基本功能也被卸載了。后來詢問其它同事才知道,這個激活碼是在安裝過程中自動創(chuàng)建申請的,最關鍵的,它是免費的。然后筆者重新安裝,注意到了安裝過程中的一個頁面的一段說明:



之前安裝到這個步驟的時候,自動彈出了一個網頁,但是被筆者想當然地給關掉了。


現在看來是自動發(fā)出的申請激活碼的請求。但之前戳"NO"的時候直接回滾了整個安裝,這次選"YES"。


彈出網絡瀏覽器并訪問 NXP 官網,需要 NXP 注冊賬戶授權,然后在網頁中確認軟件使用許可聲明。



最后獲得激活碼。



PS: 筆者仔細閱讀了一下這個激活碼的回單,發(fā)現激活碼是根據 PC 的某種"機器識別碼"生成的,也就是說,它是綁定在 PC 上的。好吧,反正是 free 的,如果換臺電腦就再申請一次就好。


后續(xù)的安裝還出現了不少提示說重復復制文件的問題,這可能是使用新的部署工具沒有處理好文件的解壓順序導致的,不影響最終的安裝功能。另外,安裝過程后來還是通過網絡執(zhí)行了一遍在線激活過程。


安裝之后查了一下安裝根目錄,再一次被驚呆了,FreeMASTER 竟然專門包含了一個 JRE(Jave 運行時環(huán)境),不必自行匹配相應的軟件版本了。



特別注意,如果需要安裝 FreeMASTER Lite 功能,必須確保電腦已經聯(lián)網,并且能夠順利訪問到 nxp.com 的官網。


試用
從 pmp 到 pmpx
按照筆者們對已經熟悉的老版本 FreeMASTER 的使用步驟,創(chuàng)建工程,導入 MCU 端的可執(zhí)行文件解析符號表,根據符號表項創(chuàng)建變量,創(chuàng)建示波器頁面,在示波器頁面中加載變量,開始采樣。一頓操作猛如虎,最終正常工作。這說明新版本確實是能做到兼容老版本用戶的使用習慣。


筆者注意到,v3.0 版本創(chuàng)建工程的擴展名是".pmpx",而不是原來的".pmp",多了一個"x"。難道這是學了 MS Office 套件升級文件擴展名的思路? 筆者用 sublime text 打開工程文件查看其源代碼,果不其然,新版本的工程文件已經換用可讀的 xml 檔案組織格式了,而老版本的工程文件是無法查看源代碼的。這就意味著,在使用新版本的 FreeMASTER 時,可以以修改源文件的方式精細配置工程,這對于開發(fā)工程師來講絕對是一個"有良心"的設計。



另外,筆者還試著在新版的軟件窗口中導入原有二進制編碼的 pmp 工程文件,同老版使用完全一樣,無縫完全兼容??磥?FreeMASTER 的開發(fā)人員在歷史兼容性上下了很大的工夫。(實際上這個變更在 v2.5 中就已經實現了).


ActiveX 控件
FreeMASTER 的 ActionX 控件應該是它在基本功能外的另一個亮點。ActiveX 控件是 Microsoft Windows 系統(tǒng)中的應用功能擴展庫,可用于互聯(lián)網的很小的程序,有時稱為插件程序。


通過使用 ActiveX 控件,在 FreeMASTER 運行框架下,可以使用網頁作為界面,訪問到單片機中內存中的變量。FreeMASTER 的 ActiveX 控件僅提供面向電路板的內存訪問服務,而網頁 UI 的呈現則完全由用戶自由發(fā)揮,這就為創(chuàng)建豐富的 UI 創(chuàng)造了靈活的平臺。


雖然 FreeMASTER 的手冊中幾乎沒有提到如何將 ActiveX 控件用于用戶產品設計的說明,但憑借筆者極強的想象力,還是摸索出一套可行的用法。


實際上,FreeMASTER 安裝包中提供了一個通過 JavaScript 在 htm 網頁中調用 ActiveX 控件的例子。位于"FreeMASTER 3.0/FreeMASTER/examples/scripting/JavaScript-ActiveX"目錄下的"example.htm"文件。但是為了把這個代碼運行起來,需要一波神操作。


首先,從 MCUXpresso SDK 中導出一個 hello_world 工程(基于 lpcxpresso55s69 開發(fā)套件),之后在源代碼中創(chuàng)建全局變量"var16","var16inc"及"arr16"并確保它們不會被編譯器的自動優(yōu)化掉。

volatile uint16_t var16 = 0u;

volatile uint16_t var16inc = 0;

volatile uint16_t arr16[10] = {0,1,2,3,4,5,6,7,8,9};


復制代碼

之后編譯下載工程工程到開發(fā)板。


然后就是 FreeMASTER 的操作了。創(chuàng)建 FreeMASTER 工程,導入之前編譯好的可執(zhí)行程序文件,之后在 FreeMASTER 中創(chuàng)建對應的"var16","var16inc"及"arr16"變量。將 FreeMASTER 安裝目錄下的"example.htm"文件復制到新創(chuàng)建的 FreeMASTER 用戶工程目錄下,然后在 FreeMASTER 工程中引用這個文件:



此時,可以看到網頁上有一些按鈕和一些內容框,試著戳了幾下,會報錯,顯示沒有有效連接。



此時,啟動 FreeMASTER 工程,按這些按鈕,就能讀到和寫入位于單片機內存中的變量了。



查看"example.htm"文件的源代碼可以看到 FreeMASTER 的 ActiveX 讀寫遠程變量基本函數的用法:


function read_variable(name,span_id)


{


/* ReadVariable uses FreeMASTER variable object from current project。Use


* ReadUIntVariable to access the memory directly using a symbol name。*/


if(pcm.ReadVariable(name))


document.getElementById(span_id).innerHTML = pcm.LastVariable_vValue;


else


on_error("Error when reading variable " + name + "。" + pcm.LastRetMsg);


}

function write_variable(name,input_id)


{


var val = document.getElementById(input_id).value;

/* WriteVariable uses FreeMASTER variable object from current project。Use


* WriteUIntVariable to access the memory directly using a symbol name。*/


if(pcm.WriteVariable(name,val))


document.getElementById("status").innerHTML = "Write of the " + name + " succeeded.";


else


on_error("Error when writting variable " + name + "。" + pcm.LastRetMsg);


}


復制代碼

JSON-PRC 輕量級遠程調用協(xié)議
這里暫時略過對 JSON-PRC 協(xié)議的介紹。從實用角度看,它是用于替換 ActiveX 的,同樣能夠提供從網頁到電路板的訪問服務。
在新版 FreeMASTER 的手冊中,將 JSON-PRC 稱之為一種"現代的"技術,特別要配合 Chromium 引擎使用。而 Chromium 引擎就是 Google 旗下大名鼎鼎的 Chrome 瀏覽器使用的內核。相對應地,ActiveX 對應使用的是 Microsoft IE 瀏覽器技術。



同 ActiveX 相似,FreeMASTER 的安裝目錄中也有 JSON-PRC 的樣例代碼,位于"FreeMASTER 3.0/FreeMASTER/examples/scripting/JavaScript-JSON-RPC"目錄下。


將這個目錄整個復制到新創(chuàng)建的 FreeMASTER 工程目錄下。之后在 FreeMASTER 工程中創(chuàng)建一個新的頁面"JS-JSON-PRC"并引用 JSON-PRC 版本的"example.htm"網頁文件。此時啟動 FreeMASTER 工程后會報錯,因為缺少一個關鍵的步驟。


將 FreeMASTER 工程的網頁解釋器換成 Chromium 引擎。選中"project" -> "option",在"option"對話框中,選中"使用 Chromium 引擎"的選項。注意,切換到 Chromium 引擎后,基于 IE 的 ActiveX 控件就不能使用了。



此時再啟動 FreeMASTER 工程,就能看到之前使用 ActiveX 控件實現的操作單片機內存變量的網頁, 戳戳看也能正常讀寫內存了。從功能上看,使用 Chromium 引擎實現的網頁同之前使用 ActiveX 幾乎完全一樣,但是顯示效果看起來好很多,字體比較圓潤。考慮到 Chromium 引擎已經成為眾多流行瀏覽器內核的事實,FreeMASTER 在技術上需要與時俱進,這可能也是 v3.0 的設計初衷吧。



看一下 JSON-PRC 版的示例網頁源碼,可以看到在 javascript 腳本部分引用的關鍵組件:


復制代碼


這是同 ActiveX 方式的關鍵區(qū)別,對應地,在 ActiveX 版的樣例代碼中,在網頁顯示部分引用了 ActiveX 組件:


復制代碼


當然,對變量讀寫函數的使用方式上也有一些不同:


function read_variable(name,span_id)


{


/* ReadVariable uses FreeMASTER variable object from current project。Use


* ReadUIntVariable to access the memory directly using a symbol name。*/


return pcm.ReadVariable(name)


.then((value) => {


document.getElementById(span_id).innerHTML = value.data;


})


.catch((err) => {


on_error(err.msg);


});


}

function write_variable(name,input_id)


{


var val = document.getElementById(input_id).value;


/* WriteVariable uses FreeMASTER variable object from current project。Use


* WriteUIntVariable to access the memory directly using a symbol name。*/


pcm.WriteVariable(name,val)


.then(() => {


document.getElementById("status").innerHTML = "Write of the " + name + " succeeded.";


})


.catch((err) => {


on_error(err.msg);


});


}


復制代碼


FreeMASTER Lite 服務


FreeMASTER Lite 是 v3.0 新增的獨立組件,用于脫離經典的 FreeMASTER 框架提供從桌面到電路板的數據訪問。


實際上,這幾乎是一個并列于 FreeMASTER 桌面版的全新軟件包。它以"服務"的形式運行在系統(tǒng)后臺,提供了 JSON-PRC 接口用于訪問遠程連接的電路板。就像大多數操作系統(tǒng)服務的運行方式一樣,FreeMASTER Lite 沒有用戶窗口,通過命令行和配置文件傳入參數。根據手冊的描述,FreeMASTER Lite 在操作系統(tǒng)中像一個標準的網頁服務器一樣,一方面同遠程的電路板交互,另一方面可以接收來自 python 或者 node.js 腳本中的請求。


由于時間關系,筆者還沒有仔細研究如何使用這個 FreeMASTER Lite 的功能,以后有時間再做介紹。


總結

FreeMASTER v3.0 兼容了經典 FreeMASTER 的所有功能,新增了 Chromium 引擎和 JSON-PRC 協(xié)議組件,用于作為 IE 引擎和 ActiveX 的換代產品。首次引入了 FreeMASTER Lite 軟件包,用于提供命令行版本的連接 PC 機網頁和電路板的服務。


新版的 FreeMASTER 定位于提供運行某些新的 FreeMASTER 應用工程的運行時環(huán)境,而沒打算讓用戶在這個平臺上進行二次開發(fā),設計自己的 FreeMASTER 應用工程。


經過試用,筆者個人建議,經典 FreeMASTER 用戶不用著急遷移到新平臺上。如果你一定想使用 Chromium 引擎,在你的 UI 界面中增加一些炫酷的特效,那么可以試試桌面版的 FreeMASTER v3.0。


如果只是簡單地使用一個數據可視化的工具,v2.5 仍是目前的最佳選擇。(沒錯,借著試用 v3.0 的興致,筆者也試用了 v2.5,然后決定把用了多年的 v2.0 更新到 v2.5 版本)。

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數據可視化
    +關注

    關注

    0

    文章

    466

    瀏覽量

    10267
收藏 人收藏

    評論

    相關推薦

    什么是大屏數據可視化?特點有哪些?

    大屏數據可視化是指通過大屏幕展示大量數據和信息,以直觀、可視化的方式幫助用戶理解和分析數據。這種展示方式通常用于展示復雜的
    的頭像 發(fā)表于 12-16 16:59 ?179次閱讀

    Minitab 數據可視化技巧

    數據分析領域,數據可視化是一種將數據以圖形或圖像的形式展示出來的技術,它可以幫助我們更直觀地理解數據,發(fā)現
    的頭像 發(fā)表于 12-02 15:40 ?306次閱讀

    智慧能源可視化監(jiān)管平臺——助力可視化能源數據管理

    博達可視化大屏設計平臺在智慧能源領域的價值體現在實時監(jiān)控、數據可視化、決策支持和效率提升等方面。借助該平臺,企業(yè)可以輕松搭建智慧能源類可視化大屏,更加精確和高效地管理生產和生活,實現能
    的頭像 發(fā)表于 11-29 10:00 ?303次閱讀
    智慧能源<b class='flag-5'>可視化</b>監(jiān)管平臺——助力<b class='flag-5'>可視化</b>能源<b class='flag-5'>數據</b>管理

    智慧園區(qū)數據可視化優(yōu)勢體現在哪些地方

    、地圖、儀表盤等形式呈現數據,使復雜的數據變得直觀易懂,幫助用戶更快速、準確地理解數據。 2.實時監(jiān)控與反饋:數據可視化工具可以實時監(jiān)測園區(qū)
    的頭像 發(fā)表于 11-15 10:30 ?179次閱讀
    智慧園區(qū)<b class='flag-5'>數據</b><b class='flag-5'>可視化</b>優(yōu)勢體現在哪些地方

    毫米波演示可視化工具

    電子發(fā)燒友網站提供《毫米波演示可視化工具.pdf》資料免費下載
    發(fā)表于 11-13 14:24 ?0次下載
    毫米波演示<b class='flag-5'>可視化工具</b>

    大屏數據可視化 開源

    在當今信息爆炸的時代,數據已經成為各個行業(yè)決策制定和業(yè)務發(fā)展的關鍵。為了更直觀、準確地理解和利用海量數據, 大屏數據可視化 成為一種強大的工具
    的頭像 發(fā)表于 06-27 16:06 ?412次閱讀
    大屏<b class='flag-5'>數據</b><b class='flag-5'>可視化</b> 開源

    微軟發(fā)布智能辦公工具OfficePLUS V 3.0版本

    近日,微軟發(fā)布了智能辦公工具 OfficePLUS V 3.0 版本。全新升級的 OfficePLUS V
    的頭像 發(fā)表于 06-27 09:26 ?768次閱讀

    大屏數據可視化的作用和意義

    大屏數據可視化是指利用大屏幕設備展示數據信息,通過圖表、圖像、動畫等視覺化手段將數據呈現出來,以便用戶能夠直觀、清晰地理解數據背后的含義和關
    的頭像 發(fā)表于 06-03 17:56 ?673次閱讀

    PCB特性阻抗-影響特性阻抗因素V3.0

    PCB特性阻抗-影響特性阻抗因素V3.0 圖文說明 ? ? ? ? ? 審核編輯 黃宇
    的頭像 發(fā)表于 06-03 15:41 ?528次閱讀
    PCB特性阻抗-影響特性阻抗因素<b class='flag-5'>V3.0</b>

    Tebo ICT 騰博V3.0測試軟件分享介紹

    Tebo ICT V3.0 是一款專業(yè)的 ICT(In-Circuit Test,在線測試)和 ATE(Automatic Test Equipment,自動測試設備)以下是關于 Tebo ICT
    發(fā)表于 04-23 17:45

    態(tài)勢數據可視化技術有哪些

    智慧華盛恒輝態(tài)勢數據可視化技術是一種將復雜、動態(tài)的態(tài)勢數據以直觀、易于理解的方式展現出來的技術手段。以下是幾種主要的態(tài)勢數據可視化技術: 網
    的頭像 發(fā)表于 04-22 15:17 ?405次閱讀

    賊拉好用的一個嵌入式數據可視化工具

    相關內容。SerialStudio概述SerialStudio從名稱就可以看的出來,它是一款串口(Serial)可視化(Studio)工具:主要用于嵌入式開發(fā)者的跨平臺數據可視化工具
    的頭像 發(fā)表于 03-07 08:09 ?499次閱讀
    賊拉好用的一個嵌入式<b class='flag-5'>數據</b><b class='flag-5'>可視化工具</b>

    一個嵌入式數據可視化工具——Serial Studio

    Serial Studio從名稱就可以看的出來,它是一款串口(Serial)可視化(Studio)工具:主要用于嵌入式開發(fā)者的跨平臺數據可視化工具(應用軟件,或上位機軟件)。
    的頭像 發(fā)表于 03-04 10:12 ?6754次閱讀

    QE for Motor V1.3.0發(fā)布說明

    電子發(fā)燒友網站提供《QE for Motor V1.3.0發(fā)布說明.pdf》資料免費下載
    發(fā)表于 02-19 09:35 ?0次下載
    QE for Motor <b class='flag-5'>V</b>1.3.0<b class='flag-5'>發(fā)布</b>說明

    數據可視化的未來:2024 年及以后

    隨著我們進入數據驅動決策的下一個時代,數據可視化領域即將迎來一場變革性革命。隨著信息的不斷涌入和數據的復雜性不斷增加,傳統(tǒng)的可視化方法需要幫
    的頭像 發(fā)表于 01-25 11:52 ?549次閱讀