1. 程式人生 > >一款java串列埠除錯工具

一款java串列埠除錯工具

  最近專案測試裝置,原有的串列埠除錯工具有侷限,所以從新開發了一款.

  實現平臺:win7+java awt/swing

  初始介面如下:

  

  功能方面:

  支援單行傳送,迴圈傳送,檔案按行/整體延時傳送,可以捕捉鍵盤從Receiver直接傳送命令,接受視窗和傳送視窗可單獨收縮,放大,可以記錄日誌,按體積分割日誌

  傳輸中介面:

  

  部分功能還在完善中。

  部分程式碼,為除錯方便,包沒有單獨import,用了全包*:

package kakasi;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import static common.IO.*;
import kakasi.common.*;
import kakasi.information.*;
import kakasi.receiver.*;
import kakasi.sender.*;
import java.awt.event.*;
public class MainUI extends JComponent{

	//components
	private ReceiverUI receiverUI = null;
	private PortInfoUI portInfoUI = null;
	private SenderUI senderUI = null;
	private JTextArea receiverTextArea = null;
	private JTextArea multiLineTextArea = null;
	private JFrame frame = null;
	/**
	* Constructor
	* @param frame a JFrame object
	*/
	public MainUI(JFrame frame){
		super();
		this.frame = frame;
		receiverTextArea = new JTextArea(10,30);
		multiLineTextArea = new JTextArea(6, 25);
		receiverUI = new ReceiverUI(receiverTextArea);
		portInfoUI = new PortInfoUI();
		senderUI = new SenderUI(frame, multiLineTextArea);
		receiverTextArea.setTabSize(2);
		new UICollector(this, portInfoUI, receiverUI, senderUI);
		
		//add listener
		addListeners();
	}
	
	public void setUIEnabled(boolean b){
		UICollector.getReceiverUI().setUIEnabled(b);
		UICollector.getSenderUI().setUIEnabled(b);
		UICollector.getIntervalUI().setUIEnabled(b);
		UICollector.getSingleLineUI().setUIEnabled(b);
		UICollector.getMultiLineUI().setUIEnabled(b);
	}
	
	public void shutDown(){
		UICollector.getReceiverUI().shutDown();
		UICollector.getSenderUI().shutDown();
		UICollector.getMultiLineUI().shutDown();
		UICollector.getSingleLineUI().shutDown();
		UICollector.getIntervalUI().shutDown();
	}
	
	public JFrame getFrame(){
		return frame;
	}
	
	public JSplitPane getPane(){
		JSplitPane above = new JSplitPane(JSplitPane.VERTICAL_SPLIT, receiverUI.getGroupPanel(), getBottomPanel());
		above.setOneTouchExpandable(true);
		above.setDividerSize(10);
		above.resetToPreferredSizes();
		return above;
	}
	
	public JPanel getMainPanel(){
		//main pane
		JPanel mainPane = new JPanel();
		GridBagLayout gb = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		mainPane.setLayout(gb);
		
		//add cmd and buttons pane in main pane
		gbc.fill = GridBagConstraints.BOTH;
		gbc.weightx = 1;
		gbc.weighty = 1;
		gbc.insets = new Insets(0, 5, 0 ,5);
		gbc.gridheight = 1;
		gbc.gridwidth = GridBagConstraints.REMAINDER;
		WPanel.addComponent(mainPane, gb, gbc, receiverUI.getGroupPanel());
		/*
		gbc.insets = new Insets(0, 2, 0 ,2);
		gbc.gridheight = 1;
		WPanel.addComponent(mainPane, gb, gbc,getBottomPanel());
		*/
		gbc.fill = GridBagConstraints.NONE;
		gbc.weightx = 0;
		gbc.weighty = 0;
		gbc.insets = new Insets(0, 5, 0 ,2);
		gbc.gridwidth = 1;
		gbc.gridheight = 1;
		WPanel.addComponent(mainPane, gb, gbc, portInfoUI.getGroupPanel());
		gbc.fill = GridBagConstraints.BOTH;
		gbc.weightx = 1;
		gbc.weighty = 1;
		gbc.gridheight = 2;
		gbc.insets = new Insets(0, 2, 0 ,5);
		WPanel.addComponent(mainPane, gb, gbc, senderUI.getGroupPanel());

		return mainPane;
	}
	
	private JPanel getBottomPanel(){
		//main pane
		JPanel mainPane = new JPanel();
		GridBagLayout gb = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		mainPane.setLayout(gb);

		gbc.fill = GridBagConstraints.NONE;
		gbc.weightx = 0;
		gbc.weighty = 0;
		gbc.insets = new Insets(0, 4, 0 ,2);
		gbc.gridwidth = 1;
		gbc.gridheight = 1;
		WPanel.addComponent(mainPane, gb, gbc, portInfoUI.getGroupPanel());
		gbc.fill = GridBagConstraints.BOTH;
		gbc.weightx = 1;
		gbc.weighty = 1;
		gbc.gridheight = 2;
		WPanel.addComponent(mainPane, gb, gbc, senderUI.getGroupPanel());
		return mainPane;
	}
	

	/**
	* add actions of all JComponent
	*/
	private void addListeners(){
		this.addComponentListener(new ComponentListener(){
			public void componentResized(ComponentEvent e){

			}
			
			public void componentMoved(ComponentEvent e){

			}
			
			public void componentShown(ComponentEvent e){

			}
			
			public void componentHidden(ComponentEvent e){

			}
		});
	}
}
  待完善,待更新。

相關推薦

java串列除錯工具

  最近專案測試裝置,原有的串列埠除錯工具有侷限,所以從新開發了一款.   實現平臺:win7+java awt/swing   初始介面如下:      功能方面:   支援單行傳送,迴圈傳送,檔案按行/整體延時傳送,可以捕捉鍵盤從Receiver直接傳送命令,接受視窗和

Mac OS下安裝串列除錯工具minicom

最近在做一個Mac下的ssh除錯工具,但是出現了一點問題。後來發現居然Mac下有串列埠除錯工具可以用,所以果斷換串列埠了,是普通PL2303晶片的usb轉串列埠線。 接下來說下簡單的安裝步驟吧。我是勤勞的搬磚工。。。 首先的是安裝PL2303串列埠驅動,轉載自在MAC OS X下安裝usb轉

postman——強大的網頁除錯工具

Postman——一款強大的網頁除錯工具 一.什麼是postman? Postman是一款功能強大的網頁除錯與傳送網頁HTTP請求的Chrome外掛。軟體功能非常強大,介面簡潔明晰、操作方便快捷,設計得很人性化。Postman中文版能夠傳送任何型別的HTTP 請求 (GET, HEAD,

Linux 串列除錯工具彙總

在 linux 系統下進行串列埠除錯或者開發時配合簡單易用的串列埠除錯工具那是必不可少。這篇部落格對當前用的較多的,且我自己經常用的一些串列埠工具做一下彙總,大家可以參考一下。 實驗環境: OS: Ubuntu16.04 Kernel: 4.4.0 ----------

java 串列除錯 感測器指令傳送與資料接收

    本文主要講述串列埠除錯的Java工具類,並實現迴圈傳送指令,接收資料!!     本文主要實現的功能是呼叫工具類中開啟串列埠方法,連線感測器所在串列埠,向串列埠(感測器)傳送指令,並接收串列埠(感測器)資料。 主函式-----main(): public sta

我的Android NDK之旅(四),android串列通訊-mac+串列除錯工具

一些關於串列埠的知識 什麼是串列埠 串列埠是計算機上一種非常通用裝置通訊的協議,不要與通用序列匯流排Universal Serial Bus(USB)混淆。大多數計算機包含兩個基於RS232的串列埠。串列埠同時也是儀器儀表裝置通用的通訊協議;很多GP

【linux學習--工具篇】串列除錯工具

1、minicon , 下載:sudo apt-get install minicom , 介面如下: 是不是感覺和puty很像,  退出是ctrl+a , 按X或者Q 2、cutecom,圖形化的介面

Ubuntu16.04安裝串列除錯工具gtkterm

gtkterm是一個用GTK+寫的串列埠終端。 安裝:sudo apt install gtkterm  配置檔案的位置為:~/.gtktermrc 1 [default] 2 port = /dev/ttyUSB0          //配置埠號 3 speed =

verilog語言RS232串列接收模組設計——串列除錯工具傳送資料在數碼管顯示

RS-232是常用的傳輸介面,是硬體學習的入門級介面。 一、介面特性 DE-9 Male (Pin Side) DE-9 Female (Pin Side) -------------

linux下串列除錯工具/串列終端推薦: picocom

對於picocom, kermit, minicom, picocom 最簡單易用,也完全符合我的使用需求。 安裝(mint / ubuntu):$ sudo apt-get install picocom使用:$ picocom -b 115200 /dev/ttyUSB

常用串列除錯工具比較

目前有許多免費的串列埠除錯工具,比較常用的有: 1、友善串列埠除錯助手(v3.8.5) 優點: 1)使用方便,超級穩定,不宕機,不丟包; 2)串列埠自動識別,支援COM9以上串列埠; 3)支援多串列埠除錯; 4)支援歷史傳送記錄; 5)廣泛支援各種

verilog語言RS232串列傳送模組設計——採集ps2鍵盤資料在串列除錯工具顯示

module ps2_driever( clk,rst_n,ps2k_clk,ps2k_data,sm_bit,sm_seg,ps2_state,ps2_byte); input clk; //50M時鐘訊號 input rst_n; //復位訊號 input ps2k_clk; //PS2介面時鐘

Linux串列除錯工具minicom的使用

minicom是linux的一個串列埠通訊工具和windows的超級終端作用一致可以用來與串列埠裝置通訊 minicom安裝和配置 sudo apt-get install minicom // 安裝串列埠工具,還會額外安裝一些新的依賴庫 sudo

Android測試之串列除錯工具minicom操作指南

一、命令列啟動minicom的引數 -D :執行minicom -D /dev/ttyUSB*,直接進入控制檯 -s 設定。 root 使用此選項在/etc/minirc.dfl中編輯系統範圍的預設值。使用此引數後,minicom 將不進行初始化,而是直

Cutecom--Linux下串列除錯工具

Cutecom是一款在Linux環境下,非常好用的串列埠除錯工具,使用方法幾乎跟Windows下的串列埠除錯工具一樣,非常方便。 Cutecom的安裝:直接在終端輸入:sudo apt-get install cutecom。 安裝完後,使用命令:sudo cutecom開

51微控制器 (5)VSPD+Proteus+串列除錯工具+Keil C51實現微控制器串列通訊模擬

【若有疑問錯誤或版權等問題請聯絡我】 1、效果圖 2、虛擬串列埠 通過VSPD虛擬串列埠工具虛擬出兩個串列埠用於通訊 3、串列埠除錯 開啟兩份串列埠除錯工具,第一個開啟com1,

SecureCRT串列除錯工具配置

1.開啟SecureCRT串列埠除錯工具 檔案---》快速連結---》 彈出快速連結設定視窗: 協議:    Serial 埠:    開啟裝置管理器---》埠,檢視埠號 波特率:    8 奇偶位:    None 停止位:    1 注意:資料流控制中的

ubuntu 下串列除錯工具 minicom安裝與配置

      如果專案中使用的bootloader為 u-boot,那麼在用minicom向目標板傳送kernel時 會發生一些錯誤。故若您使用的是u-boot,建議您使用kermit,關於kermit的安裝和配置 使用請參考這篇文章:     儘管與u-boot的組合中

python 串列除錯工具

import serial.tools.list_ports import serial from tkinter import Tk,StringVar,Label,Button,Listbox,Text,END import time import datetime import re imp

使用串列模擬工具進行串列程式開發除錯

所以如何在自己的膝上型電腦上模擬串列埠資料就成了當務之急。託Google的福,找到了兩個小工具:VSPD和串列埠除錯助手。下面簡單介紹一下如何結合這兩個小工具進行串列埠程式除錯。 1、安裝好VSPD後,首先選擇你要虛擬的埠號,點選“新增埠”。一般現在的膝上型電腦都沒有串