天天看點

日志工具 BnisLog 1.0.0

BnisLog日志工具下載下傳位址:  https://download.csdn.net/download/wabil/12671597

BnisLog日志工具版本: V1.0.0 Release at Jul 29 2020 20:17:56

1.工具采用極簡風格來設計,主界面的控件盡量的少 (綠色軟體無需安裝)。

2.工具最主要的功能是日志調試,包括序列槽調試,網絡調試,程式開發調試。

3.日志儲存和智能過濾等功能是比較好用的日常開發調試測試功能。

4. 缤紛的主題色, 可清新護眼, 可炫酷深沉 。 

 設定主題顔色 Menu -> Display color set. 内置5個主題色,使用者也可以自定義顔色風格。

日志工具 BnisLog 1.0.0

4.1 相容Linux終端風格的printf (主要用于區分不同類别輸出,如:_Warn,_Error,_Info...)

char buf[100]={0};
	sprintf(buf,"\033[44;37m===藍背景,白字型===\n  \033[0m");
	_printf( buf ); //将字元串發送到UART序列槽
	sprintf(buf,"\033[40;32m===黑背景,綠字型===\n  \033[0m");
	_printf( buf ); //将字元串發送到UART序列槽
	sprintf(buf,"\033[43;35m===黃背景,紫字型===\n  \033[0m");
	_printf( buf ); //将字元串發送到UART序列槽
           
日志工具 BnisLog 1.0.0
日志工具 BnisLog 1.0.0

5.日志過濾功能 Menu(Ctrl+M) ->Filter data(F2) .

日志工具 BnisLog 1.0.0

>上圖可以看出,Filter 欄1的(使用者定義)關鍵字是 PC2MCU ,将日志裡帶有此字的資料行轉到上面。 第2欄的關鍵字是 MCU2 。這種設計友善上下位機的日志資料互動清楚的看到,如上面的是上位機-->下位機的資料,下面是下位機-->上位機的資料 一目了然。有時候可以結合時間點查到問題的所在。

>在Filter界面按Ctrl+S 快捷鍵可儲存這此過濾的結果。

>注意:過濾的關鍵字還會帶邏輯功能,比如:使用者想要過濾 PC2MCU 同時需帶有字元 18 , 那麼關鍵字就是 PC2MCU&18 .

比如:使用者想要過濾 PC2MCU 同時需不能含有字元 18 , 那麼關鍵字就是 PC2MCU!18 .

>在Filter界面輕按兩下過濾的結果,軟體會自動跳到首頁面的對應行,友善使用者定位問題,和查找上下文。

>若ShowNumLine打勾,則用于顯示---00---05--10--15---(内容可以修改)在每隔五個日志前添加,友善檢視 日志資料的位數,比如第10位,立刻就能認出,不需要使用者挨個數。 

>日志序列槽端的波特率,逾時等在 Menu->Uart parameter set 中設定,使用者可輸入波特率,或者選擇系統内置的。

>當使用者将log檔案拖到主界面(或者菜單->Open log file), 軟體會自動加載顯示出來,同時也會過過濾到Filter界面!! 這個操作友善使用者重制資料的發生過程.

6.日志的發送功能

>單個字元串發送,Single send data (Ctrl+WIN)

日志工具 BnisLog 1.0.0

>此對話框可以發送字元串,16進制或者ascII, 可以發送檔案,點選>>則選擇需發送的檔案,也可以直接将檔案拖動進來 .

>下拉清單主要是,發送檔案資料的間隔設定,None代表無延時,下面有每多少個位元組延時多少毫秒.

>此對話框具有發送曆史記錄儲存功能, 通過鍵盤Up,Dn上下檢視記錄(類似Linux/Dos指令記錄)

>Cleaned打鈎時,發送完字元串就會清空輸入框.

>\r\n打鈎代表,回車時,字元串字尾添加的資料.Txd:為發送的資料數量.

>多個字元串發送,Mutiple send data (Ctrl+Z)

日志工具 BnisLog 1.0.0

  >EnSendTimer使能定時器,後面是定時的間隔,機關ms,TimerCycle是循環發送. Cycle_order:為發送的順序,比如使用者隻想循環的發送第3,5,7行的輸入,那麼Cycle_order就輸入 3,5,7就可以了。不填(空白)為全部都循環發送.

>smart_paste是智能黏貼, 将使用者複制的内容分行添入各個行。

>輕按兩下edit框可修改按鈕作為注釋。

>該界面下快捷鍵盤Ctrl+1等于點選發送1,Ctrl+2等于點選發送2  ... ...

7.日志開發跟蹤功能

  此功能主要針對PC軟體程式開發中使用,一般開發過程中需要内部輸出日志,比如列印一下變量,函數運作狀态等等,像printf(),OutputDebugString(), TRACE() 等等。這些函數隻能在IDE運作時才能用,缺點是脫離IDE則無法調試。

本軟體采用複制粘貼闆機制來實作和目标exe的通訊。使用方法是先設定一個程式标題, Menu->LogTitle。如xxx。 那麼程式的标題就會變成 BnisLog#xxx ,這時,你需要調用以下函數就能實作你的pc軟體列印日志到本軟體. (注意xxx是任意定義的,但是WND_TITLE 要和本軟體的标題一緻!!)

#define  WND_TITLE   "BnisLog#xxx" //注意要和日志工具的标題欄一緻!

void BnisLog(char* str,int len ){
 COPYDATASTRUCT cpd;
 cpd.cbData =  len;
 cpd.lpData =   (void*) str;
 HWND hWndRcv=::FindWindowA("#32770",WND_TITLE);
 ::SendMessage(hWndRcv,WM_COPYDATA,(WPARAM)len,(LPARAM)&cpd);
 return; 
}

void PrintLog(char* fmt, ...){
 const int BUFFER_SIZE  = 10240;
 char* buf=new char[BUFFER_SIZE];
 memset(buf,0,BUFFER_SIZE);
 va_list args;
 va_start(args,fmt);
 vsprintf_s(buf,BUFFER_SIZE, fmt, args);
 va_end(args);
 BnisLog(buf,strlen(buf)+1);
 free(buf);
}
           
日志工具 BnisLog 1.0.0

>在VS中的測試效果如上圖,一個win32程式的用PrintLog函數就能擴充輸出到本軟體,PrintLog函數代碼可以點選Menu後再點選版本号就會彈出一個About對話框 ,再點選Code the code就可以粘貼到您的程式代碼裡運作調試.有些開發環境需要添加<Windows.h> <stdlib.h> 等頭檔案

日志工具 BnisLog 1.0.0

8.日志再向外擴充日志.

 這個功能和使用者顯示屏不夠用,需要拉擴充屏原理一樣,就是将本軟體的顯示内容,再通過PrintLog函數發送到另外一個日志工具,(同時打開兩個BinsLog),但是擴充的工具的标題需要設定成BnisLog#Enable_ExternLog. 而且本軟體要菜單下點選成#Enable_ExternLog.

日志工具 BnisLog 1.0.0

如上圖,為了區分,兩個軟體設定了不同的主題顔色. 黑色的Logger作為被擴充的,是以标題設定成BnisLog#Enable_ExternLog,綠色Logger菜單需要設定成#Enable_ExternLog ,注意黑色Logger那邊不需要設定#Enable_ExternLog, 可以看到綠色Logger打開COM1收到了3行資料,它同時将這些資料擴充到黑色Logger(日志的時間點可以看到同時性).這個功能的用途是後面做過濾和腳本比較友善.

9.日志儲存,查找功能

 >直接在首頁快捷鍵Ctrl+S即可儲存.在提示的對話框中可以直接修改logger日志檔案名.

 >File auto save功能為日志内容自動每小時儲存一次,用于長運測試.長期幾天測試,後面再通過查日志資料追蹤定為問題

>在Filter過濾界面按Ctrl+S 快捷鍵也可儲存這此過濾的結果。

>快捷鍵F5,為清空首頁日志和過濾頁面的日志. 點選界面上的"RECV:"也可以清楚日志内容.

>日志的時間格式,編碼格式,在Menu下可以自行設定修改.

>Ctrl+F 為查找日志功能, Ctrl+D為顯示選中行日志内容

10.日志腳本功能

日志工具 BnisLog 1.0.0

>Menu->Script Parser(F1) 彈出腳本解析器,預設加載本軟體目錄下的Html網頁,其實就是需要裡面的js腳本和日志工具做互動,實作一些更人性化,更符合開發測試用途的功能.

>StartFilter左邊的輸入欄是過濾的關鍵字,就是讓日志的内容過濾到傳送到網頁 js_data_recv 函數響應.

 //接收來自日志過濾後的字元串str,另外from為區分來自1:uart,2:net

    function js_data_recv(str,from){  ... }

>Sound為聲音使能,打鈎時,當網頁收到一幀過濾後的資料就會響應一聲.

>Config為設定網頁編輯器IDE. 預設是系統自帶的筆記本,推薦安裝設定notepad++. 快捷方法是直接拖動編輯器的exe到該界面上.

>EditSource為編輯選中的Html,可以根據使用者的需要增加js功能.(如com轉socket,資料圖案可視化,嵌入式裝置模拟器,資料波形圖示等等),代碼編輯完後點選FlashHtml,腳本功能立刻生效!  (更多腳本,由使用者自行創作!!! )

>Call js Func1 和 Call js Func2兩個按鈕是用于觸發js裡面的js_func1(v1)和js_func2(v1),左邊的輸入框作為參數傳入.

> 該界面下按F1會彈出本軟體js_cpp互動的api接口.

日志工具 BnisLog 1.0.0