exponenta event banner

fwrite

Запись двоичных данных в прибор

Синтаксис

fwrite(obj,A)
fwrite(obj,A,'precision')
fwrite(obj,A,'mode')
fwrite(obj,A,'precision','mode')

Аргументы

obj

Объект интерфейса.

A

Двоичные данные, записанные в прибор.

'precision'

Число битов, записанных для каждого значения, и интерпретация битов как символьных, целых или плавающих значений.

'mode'

Указывает, должны ли данные записываться синхронно или асинхронно.

Описание

fwrite(obj,A) записывает двоичные данные A к прибору, подключенному к obj.

fwrite(obj,A,'precision') записывает двоичные данные с точностью, указанной precision.

precision управляет количеством битов, записанных для каждого значения, и интерпретацией этих битов как целых, плавающих или символьных значений. Если precision не указан, uchar (8-битный символ без знака). Значения поддержки для precision перечислены в разделе Поддерживаемые уточнения.

fwrite(obj,A,'mode') записывает двоичные данные с доступом к командной строке, указанным mode. Если mode является sync, A записывается синхронно, и командная строка блокируется. Если mode является async, A записывается асинхронно, и командная строка не блокируется. Если mode не указан, операция записи синхронна.

fwrite(obj,A,'precision','mode') записывает двоичные данные с точностью, указанной precision и доступ к командной строке, указанный mode.

Совет

Перед записью данных в прибор его необходимо подключить к obj с fopen функция. Подключенный объект интерфейса имеет Status значение свойства open. При попытке выполнить операцию записи во время obj не подключен к прибору.

ValuesSent значение свойства увеличивается на количество значений, записываемых каждый раз fwrite выдается.

Ошибка возникает, если выходной буфер не может содержать все записываемые данные. Можно указать размер выходного буфера с помощью OutputBufferSize собственность.

fwrite возвращает сообщение об ошибке, если установить FlowControl свойство для hardware на последовательном объекте, и аппаратное соединение не обнаружено. Это происходит, если устройство не подключено или подключенное устройство не заявляет, что готово к приему данных. Проверьте состояние удаленного устройства и параметры управления потоком, чтобы узнать, вызывает ли аппаратное управление потоком ошибки в MATLAB ®.

Примечание

Если вы хотите проверить, готово ли устройство к приему данных, установите FlowControl кому none. После подключения к устройству проверьте PinStatus структура для ClearToSend. Если ClearToSend является off, имеется проблема на стороне удаленного устройства. Если ClearToSend является on, имеется аппаратное обеспечение FlowControl устройство, подготовленное для получения данных, и вы можете выполнить fwrite.

Примечание

Чтобы получить список опций, которые можно использовать для функции, нажмите клавишу Tab после ввода функции в командной строке MATLAB. Список расширяется, и можно выполнить прокрутку для выбора свойства или значения. Сведения об использовании этой расширенной функции завершения вкладки см. в разделе Использование функции завершения вкладки для функций.

Синхронные и асинхронные операции записи

По умолчанию данные записываются в прибор синхронно и командная строка блокируется до завершения операции. Асинхронную запись можно выполнить, настроив mode входной аргумент должен быть async. Для асинхронных операций записи:

  • BytesToOutput значение свойства непрерывно обновляется для отражения количества байтов в выходном буфере.

  • Функция обратного вызова, указанная для OutputEmptyFcn выполняется, когда выходной буфер пуст.

Можно определить, выполняется ли асинхронная операция записи с помощью TransferStatus собственность.

Операции синхронной и асинхронной записи более подробно описаны в разделе Операции синхронной и асинхронной записи.

Правила завершения операции записи с помощью fwrite

Операция двоичной записи с использованием fwrite завершается, когда

  • Указанные данные записываются.

  • Время, указанное Timeout проходит свойство.

Примечание

Terminator и EOSCharCode свойства не используются для операций двоичной записи.

Поддерживаемые уточнения

Поддерживаемые значения для precision перечислены ниже.

Тип данных

Точность

Интерпретация

Характер

uchar

8-битный символ без знака

schar

8-битный символ со знаком

char

8-битный знак или знак без знака

Целое число

int8

8-битное целое число

int16

16-битное целое число

int32

32-разрядное целое число

uint8

8-битное целое число без знака

uint16

16-битное целое число без знака

uint32

32-разрядное целое число без знака

short

16-битное целое число

int

32-разрядное целое число

long

32- или 64-разрядное целое число

ushort

16-битное целое число без знака

uint

32-разрядное целое число без знака

ulong

32- или 64-разрядное целое число без знака

Плавающая точка

single

32-разрядная точка с плавающей запятой

float32

32-разрядная точка с плавающей запятой

float

32-разрядная точка с плавающей запятой

double

64-разрядная точка с плавающей запятой

float64

64-разрядная точка с плавающей запятой

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2019b

Не рекомендуется начинать с R2020b

Не рекомендуется начинать с R2020b

Не рекомендуется начинать с R2020b

Не рекомендуется начинать с R2021a

См. также

Функции

Свойства

Представлен до R2006a