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 не соединяется с прибором.

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

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

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

Примечание

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

Примечание

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

Операции синхронной и асинхронной записи

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

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

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

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

Операции синхронной и асинхронной записи обсуждаются более подробно в операциях синхронной и асинхронной записи.

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

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

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

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

Примечание

The 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