Редактировать (аннотация)
Я пытался интерпретировать Char
/ String
данные как Byte
, 4 байта за раз. Это потому, что я мог только TComport
/ TDatapacket
интерпретировать потоковые данные как String, а не как любой другой тип данных. Я до сих пор не знаю, как заставить метод Read
и обработчик событий OnRxBuf
работать с TComport.
Краткое описание проблемы
Я пытаюсь получить данные с масс-спектрометра (MS), используя некоторый код Delphi. Прибор подключен через последовательный кабель и следует протоколу RS232. Я могу без проблем отправлять команды и обрабатывать текстовые выходные данные от MS, но у меня возникают проблемы с интерпретацией буфера данных.
Фон
Из руководства пользователя этого инструмента:
"За исключением значений ионного тока, на выходе RGA находятся символьные строки ASCII, оканчивающиеся символом перевода строки + возврат каретки. Ионные сигналы представляются как целые числа в единицах 10 ^ -16 А и передаются непосредственно в шестнадцатеричный формат (четырехбайтовые целые числа, формат дополнения 2, сначала наименее значимый байт) для максимальной пропускной способности."
Я не уверен, можно ли правильно хранить шестнадцатеричные данные (1) в строковой переменной. Я также не уверен, как (2) реализовать дополнение 2 в Delphi и (3) сначала наименее значимый байт.