Запись информации к диску обеспечивает постоянную запись вашего сеанса последовательного порта и является простым способом отладить ваше приложение. В то время как объект последовательного порта соединяется с устройством, можно записать следующую информацию к дисковому файлу:
Количество значений записано в устройство, количество значений, считанных из устройства и типа данных значений
Данные, записанные в устройство и данные, считанные из устройства
Информация о событии
Вы записываете информацию к дисковому файлу с record
функция. Следующая таблица показывает свойства, сопоставленные с записью информации к диску.
Recording Properties
PropertyName | Описание |
---|---|
Объем информации, сохраненный в файл записи | |
Задайте, сохранены ли данные и информация о событии в один файл записи или в несколько файлов записи | |
Имя файла записи | |
Укажите, сохранены ли данные и информация о событии в файл записи |
Этот пример записывает количество значений, записанных в, и читайте из устройства, и хранит информацию к файлу myfile.txt
.
s = serial('COM1'); fopen(s) s.RecordName = 'myfile.txt'; record(s) fprintf(s,'*IDN?') idn = fscanf(s); fprintf(s,'RS232?') rs232 = fscanf(s);
Закончите сеанс последовательного порта.
fclose(s) delete(s) clear s
Отобразить myfile.txt
в командной строке используйте type
команда.
Когда вы инициируете запись с record
функция, RecordMode
свойство определяет, создается ли новый файл записи или если новая информация добавлена к существующему файлу записи.
Можно сконфигурировать RecordMode
к overwrite
добавление
, или index
. Если RecordMode
overwrite
, файл записи перезаписывается, каждая запись времени инициируется. Если RecordMode
append
, новая информация добавлена к файлу, заданному RecordMode
. Если RecordMode
index
, различный дисковый файл создается, каждая запись времени инициируется. Правила для определения имени файла записи обсуждены в следующем разделе.
Вы задаете имя файла записи с RecordName
свойство. Можно задать любое значение для RecordName
— включая путь к каталогу — если имя файла поддерживается вашей операционной системой. Кроме того, если RecordMode
index
, имя файла следует этим правилам:
Индексируемые имена файлов идентифицированы номером. Это число предшествует расширению файла и увеличено 1 для последовательных файлов записи.
Если никакой номер не задан как часть начального имени файла, первому файлу записи не сопоставили номер с ним. Например, если RecordName
myfile.txt
, myfile.txt
имя первого файла записи, myfile01.txt
имя второго файла записи, и так далее.
RecordName
обновляется после того, как файл записи закрывается.
Если заданное имя файла уже существует, существующий файл перезаписывается.
Файлом записи является ASCII-файл, который содержит запись одного или нескольких сеансов последовательного порта. Вы задаете объем информации, сохраненный в файл записи с RecordDetail
свойство.
RecordDetail
может быть compact
или verbose
. Компактный файл записи содержит количество значений, записанных в устройство, количество значений, считанных из устройства, типа данных значений и информации о событии. Многословный файл записи содержит предыдущую информацию, а также данные, переданные и от устройства.
Двоичные данные с точностью, данной uchar
, schar
U
int8
U
int16
, или (u
int32
зарегистрирован с помощью шестнадцатеричного формата. Например, если целочисленное значение 255 читается из инструмента как 16-битное целое число, шестнадцатеричное значение 00FF сохранено в файле записи. Один - и числа с плавающей запятой с двойной точностью зарегистрированы как десятичные значения с помощью %g
формат, и как шестнадцатеричные значения с помощью формата задан IEEE® Standard 754-1985 для Бинарной Арифметики С плавающей точкой.
IEEE формат с плавающей точкой включает три компонента: знаковый бит, поле экспоненты и значительное поле. Значения с плавающей точкой с одинарной точностью состоят из 32 битов. Значением дают
Значения с плавающей точкой с двойной точностью состоят из 64 битов. Значением дают
Компонент формата с плавающей точкой и связанные биты с двойной точностью и с одинарной точностью показывают в следующей таблице.
Компонент | Биты с одинарной точностью | Биты с двойной точностью |
---|---|---|
| 1 | 1 |
| 2–9 | 2–12 |
| 10–32 | 13–64 |
Бит 1 является крайним левым битом, как сохранено в файле записи.
Этот пример иллюстрирует, как записать информацию, переданную между объектом последовательного порта и осциллографом Tektronix® TDS 210. Кроме того, структура получившегося файла записи представлена.
Создайте объект последовательного порта — Создают объект последовательного порта s
сопоставленный с последовательным портом COM1.
s = serial('COM1');
Свяжите с устройством — Подключение s
к осциллографу. Поскольку значение по умолчанию для ReadAsyncMode
свойством является continuous
, данные асинхронно возвращены входной буфер, как только это доступно от инструмента.
fopen(s)
Сконфигурируйте значения свойств — Конфигурируют s
записывать информацию к нескольким дисковым файлам с помощью многословного формата. Запись затем инициируется с первым дисковым файлом, заданным как WaveForm1.txt
.
s.RecordMode = 'index'; s.RecordDetail = 'verbose'; s.RecordName = 'WaveForm1.txt'; record(s)
Запишите и считайте данные — команды, записанные в инструмент, и данные, считанные из инструмента, зарегистрированы в файле записи. Для объяснения команд осциллографа смотрите Пример — Пишущие и Считывающие текстовые Данные.
fprintf(s,'*IDN?') idn = fscanf(s); fprintf(s,'MEASUREMENT:IMMED:SOURCE CH2') fprintf(s,'MEASUREMENT:IMMED:SOURCE?') source = fscanf(s);
Считайте напряжение от пика к пику с fread
функция. Обратите внимание на то, что данные, возвращенные fread
зарегистрирован с помощью шестнадцатеричного формата.
fprintf(s,'MEASUREMENT:MEAS1:TYPE PK2PK') fprintf(s,'MEASUREMENT:MEAS1:VALUE?') ptop = fread(s,s.BytesAvailable);
Преобразуйте напряжение от пика к пику в символьный массив.
char(ptop)' ans = 2.0199999809E0
Состояние записи переключается от on
к off
. Поскольку RecordMode
значением является index
, имя файла записи автоматически обновляется.
record(s) s.RecordStatus ans = off s.RecordName ans = WaveForm2.txt
Разъединитесь и вымойтесь — Когда вам больше не будет нужен s
, отключите его от инструмента и удалите его из памяти и из рабочей области MATLAB®.
fclose(s) delete(s) clear s
Содержимое WaveForm1.txt
файл записи показывают ниже. Поскольку RecordDetail
свойством был verbose
, количество значений, команд и данных было зарегистрировано. Обратите внимание на то, что данные, возвращенные fread
функция находится в шестнадцатеричном формате.
type WaveForm1.txt Legend: * - An event occurred. > - A write operation occurred. < - A read operation occurred. 1 Recording on 22-Jan-2000 at 11:21:21.575. Binary data in... 2 > 6 ascii values. *IDN? 3 < 56 ascii values. TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04 4 > 29 ascii values. MEASUREMENT:IMMED:SOURCE CH2 5 > 26 ascii values. MEASUREMENT:IMMED:SOURCE? 6 < 4 ascii values. CH2 7 > 27 ascii values. MEASUREMENT:MEAS1:TYPE PK2PK 8 > 25 ascii values. MEASUREMENT:MEAS1:VALUE? 9 < 15 uchar values. 32 2e 30 31 39 39 39 39 39 38 30 39 45 30 0a 10 Recording off.