Checking browser support…
透過序列埠送出任意位元組、擷取回應,反推出協定長什麼樣 —— 全都在瀏覽器裡。
Talks to your device locally over Web Serial — bytes never leave your browser.
Checking browser support…
序列協定實驗場是序列埠監控的進階搭檔:你不只是被動看著資料流,而是主動組出位元組封包、送到裝置、擷取回應,再把它拆解開來。它是給正在替自己的序列裝置寫韌體的人,或是要反推別人家協定的人用的。一切都跑在 Chrome 或 Edge 的 Web Serial API 上 —— 不用 IDE、不用裝驅動程式,你送出或收到的任何東西都不會離開瀏覽器。
封包建構器吃的是混合寫法:十六進位(0x1A 或直接寫 1A)、十進位(d255)、二進位(0b10101010),以及可用轉義的引號 ASCII("AT\r\n"),全部寫在同一行。即時預覽會顯示真正會送到線路上的位元組。囉唆的部分交給輔助功能:自動附加檢查碼或 CRC(Modbus、CCITT、XMODEM、Maxim、SMBus、IEEE CRC-32,另有 sum、XOR、LRC 與 Fletcher-16)、對任意位元組範圍自動填入長度欄位,以及把整個 frame 套上 SLIP 或 HDLC 的位元組填充。
可重複的測試不該靠你的手指。腳本執行器會把一小段沒有迴圈的流程串起來 —— 送出一個封包、固定等待幾毫秒、等到回應中出現指定的位元組樣式 —— 然後對著實際開啟的連接埠跑,每一步都留下帶時間戳記的通過/失敗紀錄。腳本會存在你的瀏覽器裡,也會一起裝進可匯出的協定定義檔,方便交給同事。
每一次送出與接收都會以精確的單調時鐘時間戳記留下紀錄,並可匯出成文字或 CSV 做時序分析。擷取到的回應會和請求並排,以和十六進位編輯器完全一致的 hex+ASCII dump 呈現,還能選擇讓解碼器替位元組加上註解:內建的 Modbus RTU 解碼器會驗證 CRC、標出功能碼與例外碼;也有 NMEA 0183 語句解碼器;或是你自己定義的欄位範本(位移、長度、型別、標籤)—— 和十六進位編輯器同樣的範本概念,套用在一個未知的協定上。
Web Serial 是 Chromium 專屬的 API,所以要開啟連接埠得用桌面版的 Chrome、Edge 或 Opera(或 Android 版 Chrome 148 以上)。Firefox 與 Safari 沒有實作,所以那些瀏覽器看到的是誠實的支援狀況表,而不是一顆壞掉的按鈕 —— 但 CRC/檢查碼計算機在那裡照樣能用,因為它不需要任何裝置。不管你連的是什麼,位元組都是在這個頁面與裝置之間直接流動,網站永遠看不到它們。
監控是被動的 —— 它只把資料流呈現給你。這個工具是主動的:你組出精確的位元組封包(含算好的檢查碼與長度欄位)、送出去、擷取回應,再把它解碼。它適合用來測試你正在做的裝置,或反推一個不是你做的裝置。
CRC-16/MODBUS、CRC-16/CCITT-FALSE、CRC-16/XMODEM、CRC-8/MAXIM、CRC-8/SMBUS 與 CRC-32/ISO-HDLC(IEEE),另有較單純的 8 位元 sum、XOR、LRC 與 Fletcher-16 區塊檢查。每一種都對照它的標準檢查值驗證過,你可以自動附加到封包上,也可以在沒接裝置的情況下用獨立的計算機。
可以。Modbus 解碼器會驗證結尾的 CRC-16、標出功能碼、拆出請求與回應的各個欄位(起始位址、數量、位元組數、暫存器值),並把例外回應連同例外名稱標示出來。CRC 不對的話,它仍會解碼整個 frame,並顯示它原本預期的值。
你把三種步驟排成一串 —— 送出、固定延遲等待,以及等待包含某個位元組樣式的回應 —— 刻意不提供迴圈與分支:它是為可重複的測試流程而生,不是用來寫程式的。執行腳本會產生逐步、帶時間戳記的紀錄,讓你精準看出交握是在哪一步卡住的。
不會。連線完全走瀏覽器的 Web Serial API,所以位元組是在頁面與裝置之間直接流動。你送出或收到的內容都不會傳到伺服器;網站的匿名分析只記錄這個工具被用過,絕不記錄內容。
桌面版的 Chrome、Edge 與 Opera,以及 Android 版 Chrome 148 以上,因為 Web Serial 是 Chromium 專屬的。Firefox 與 Safari 沒有實作,會改為顯示支援狀況表。CRC/檢查碼計算機在每個瀏覽器都能用,因為它根本不需要序列埠。
Send a command here, then plot the numeric response over there →