Считывание двоичных данных с прибора
A = fread(obj)
A = fread(obj,size)
A = fread(obj,size,'precision')
[A,count] = fread(...)
[A,count,msg] = fread(...)
[A,count,msg,datagramaddress] = fread(obj,...)
[A,count,msg,datagramaddress,datagramport] = fread(obj,...)
| Объект интерфейса. |
| Количество считываемых значений. |
| Число битов, считанных для каждого значения, и интерпретация битов как символьных, целых или плавающих значений. |
| Двоичные данные, возвращенные из прибора. |
| Число прочитанных значений. |
| Сообщение, указывающее, не удалась ли операция чтения. |
| Адрес отправителя дейтаграмм. |
| Порт отправителя дейтаграмм. |
A = fread(obj) и A = fread(obj,size) считывать двоичные данные из прибора, подключенного к objи возвращает данные в A. Максимальное количество считываемых значений определяется size. Если size не указано, максимальное количество считываемых значений определяется объектом InputBufferSize собственность. Допустимые параметры для size являются:
| Читать максимум |
| Считывайте максимум значения m-by-n, заполняющие матрицу m-by-n в порядке столбцов. |
size не может быть inf, и возвращается ошибка, если указанное количество значений не может быть сохранено во входном буфере. Вы указываете размер входного буфера в байтах с помощью InputBufferSize собственность. Значение определяется как байт, умноженный на precision (см. ниже).
Если obj является объектом UDP и DatagramTerminateMode является off, size значение учитывается. Если size меньше длины дейтаграммы, только size значения считываются. Если size больше длины дейтаграммы, выдается предупреждение о том, что полная дейтаграмма была прочитана до size достигнуты значения.
A = fread(obj,size,' считывает двоичные данные с точностью, указанной precision')precision.
precision управляет количеством битов, считанных для каждого значения, и интерпретацией этих битов как целых, плавающих или символьных значений. Если precision не указан, uchar (8-битный символ без знака). По умолчанию числовые значения возвращаются в массивах с двойной точностью. Поддерживаемые значения для precision перечислены ниже в разделе Советы.
[A,count] = fread(...) возвращает число значений, считанных с count.
[A,count,msg] = fread(...) возвращает предупреждающее сообщение msg если операция чтения не удалась.
[A,count,msg,datagramaddress] = fread(obj,...) возвращает адрес дейтаграммы datagramaddress если obj является объектом UDP. Если считано более одной дейтаграммы, datagramaddress является.
[A,count,msg,datagramaddress,datagramport] = fread(obj,...) возвращает порт датаграммы в datagramport если obj является объектом UDP. Если считано более одной дейтаграммы, datagramport является.
Перед считыванием данных из прибора его необходимо подключить к obj с fopen функция. Подключенный объект интерфейса имеет Status значение свойства open. При попытке выполнить операцию чтения во время obj не подключен к прибору.
Если msg не включен в качестве выходного аргумента, и операция чтения не была выполнена, после чего в командную строку возвращается предупреждающее сообщение.
ValuesReceived значение свойства увеличивается на количество считанных значений каждый раз fread выдается.
Примечание
Чтобы получить список опций, которые можно использовать для функции, нажмите клавишу Tab после ввода функции в командной строке MATLAB ®. Список расширяется, и можно выполнить прокрутку для выбора свойства или значения. Сведения об использовании этой расширенной функции завершения вкладки см. в разделе Использование функции завершения вкладки для функций.
Операция чтения с fread блокирует доступ к командному окну MATLAB до
Считывается указанное число значений. Для объектов UDP DatagramTerminateMode должно быть off.
Время, указанное Timeout проходит свойство.
Получение дейтаграммы (только для объектов UDP DatagramTerminateMode является on).
Входной буфер заполнен.
Устанавливается линия EOI (только приборы GPIB и VXI).
EOSCharCode принимается (только приборы GPIB и VXI).
EOSCharCode значение свойства распознается только тогда, когда EOSMode свойство настроено на read или read&write. Например, если EOSMode настроен на read и EOSCharCode настроен на LF, то один из способов завершения операции считывания заключается в получении символа подачи строки.
Если EOSMode является none или write, то не определен признак конца для операций чтения. В этом случае fread завершит выполнение и вернет управление команде при выполнении другого критерия, такого как тайм-аут.
Поддерживаемые значения для precision перечислены ниже.
Тип данных | Точность | Интерпретация |
|---|---|---|
Характер |
| 8-битный символ без знака |
| 8-битный символ со знаком | |
| 8-битный знак или знак без знака | |
Целое число |
| 8-битное целое число |
| 16-битное целое число | |
| 32-разрядное целое число | |
| 8-битное целое число без знака | |
| 16-битное целое число без знака | |
| 32-разрядное целое число без знака | |
| 16-битное целое число | |
| 32-разрядное целое число | |
| 32- или 64-разрядное целое число | |
| 16-битное целое число без знака | |
| 32-разрядное целое число без знака | |
| 32- или 64-разрядное целое число без знака | |
Плавающая точка |
| 32-разрядная точка с плавающей запятой |
| 32-разрядная точка с плавающей запятой | |
| 32-разрядная точка с плавающей запятой | |
| 64-разрядная точка с плавающей запятой | |
| 64-разрядная точка с плавающей запятой |