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 syncA записан синхронно, и командная строка блокируется. Если mode asyncA записан асинхронно, и командная строка не блокируется. Если 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. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.

Синхронный по сравнению с асинхронными операциями записи

По умолчанию данные записаны в инструмент синхронно, и командная строка блокируется, пока операция не завершается. Можно выполнить асинхронную запись путем конфигурирования 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

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