編集(要約)
Char
/ String
data をByte
一度に 4 バイトずつ解釈しようとしました。これは、ストリーミングされたデータを他のデータ型としてではなく、文字列として解釈するTComport
ことしかできなかったためです。メソッドとイベント ハンドラを TComport で動作させる方法TDatapacket
をまだ知りません。Read
OnRxBuf
問題の概要
Delphi コードを使用して、質量分析計 (MS) からデータを取得しようとしています。機器はシリアル ケーブルで接続され、RS232 プロトコルに従います。コマンドを送信し、MS からのテキストベースの出力を問題なく処理できますが、データ バッファの解釈に問題があります。
バックグラウンド
この機器のユーザーマニュアルから:
「イオン電流値を除いて、RGA の出力は、ラインフィード + キャリッジ リターン ターミネータで終了する ASCII 文字列です。イオン信号は、10^-16 アンペア単位の整数として表され、16 進形式で直接送信されます ( 4 バイト整数、2 の補数形式、最下位バイトが最初) を使用して、最大のデータ スループットを実現します。」
(1) 16 進データを文字列変数に正しく格納できるかどうかはわかりません。また、 (2) Delphiで2の補数を実装する方法と(3)最下位バイトを最初に実装する方法もわかりません。