fwrite

Запишите двоичные данные в инструмент

Синтаксис

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

Аргументы

obj

Интерфейсный объект.

A

Двоичные данные записаны в инструмент.

Точность

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

режим

Задает, записаны ли данные синхронно или асинхронно.

Описание

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

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