(Подлежит удалению) Запись двоичных данных на устройство
Это serial функция объекта будет удалена в следующей версии. Использовать serialport вместо этого объектные функции. См. раздел Вопросы совместимости.
fwrite(obj,A)
fwrite(obj,A,'precision')
fwrite(obj,A,'mode')
fwrite(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 с функция. Подключенный объект последовательного порта имеет fopenStatus значение свойства open. При попытке выполнить операцию записи во время obj не подключен к устройству.
ValuesSent значение свойства увеличивается на количество значений, записываемых каждый раз fwrite выдается.
Ошибка возникает, если выходной буфер не может содержать все записываемые данные. Можно указать размер выходного буфера с помощью OutputBufferSize собственность.
Если установить FlowControl(Панель инструментов управления приборами) свойство для hardware на последовательном объекте, и аппаратное соединение не обнаружено, fwrite возвращает сообщение об ошибке. Это происходит, если устройство не подключено или подключенное устройство не заявляет, что готово к приему данных. Проверьте состояние удаленного устройства и параметры управления потоком, чтобы выяснить, вызывает ли аппаратное управление потоком ошибки в MATLAB ®.
Примечание
Если вы хотите проверить, готово ли устройство к приему данных, установите FlowControl(Панель инструментов управления приборами) none. После подключения к устройству проверьте PinStatus структура для ClearToSend. Если ClearToSend является off, имеется проблема на стороне удаленного устройства. Если ClearToSend является on, имеется аппаратное обеспечение FlowControl (Instrument Control Toolbox) устройство, подготовленное для получения данных, и вы можете выполнить fwrite.
По умолчанию данные записываются на устройство синхронно, и командная строка блокируется до завершения операции. Асинхронную запись можно выполнить, настроив mode входной аргумент должен быть async. Для асинхронных операций записи:
BytesToOutput значение свойства непрерывно обновляется для отражения количества байтов в выходном буфере.
Функция обратного вызова, указанная для OutputEmptyFcn выполняется, когда выходной буфер пуст.
Можно определить, выполняется ли асинхронная операция записи с помощью TransferStatus собственность.
Операция двоичной записи с использованием fwrite завершается, когда:
Указанные данные записываются.
Время, указанное Timeout проходит свойство.
Примечание
Terminator не используется для двоичных операций записи.
В следующей таблице показаны поддерживаемые значения для precision.
Тип данных | Точность | Интерпретация |
|---|---|---|
Характер |
| 8-битный символ без знака |
| 8-битный символ со знаком | |
| 8-битный знак или знак без знака | |
Целое число |
| 8-битное целое число |
| 16-битное целое число | |
| 32-разрядное целое число | |
| 8-битное целое число без знака | |
| 16-битное целое число без знака | |
| 32-разрядное целое число без знака | |
| 16-битное целое число | |
| 32-разрядное целое число | |
| 32- или 64-разрядное целое число | |
| 16-битное целое число без знака | |
| 32-разрядное целое число без знака | |
| 32- или 64-разрядное целое число без знака | |
Плавающая точка |
| 32-разрядная точка с плавающей запятой |
| 32-разрядная точка с плавающей запятой | |
| 32-разрядная точка с плавающей запятой | |
| 64-разрядная точка с плавающей запятой | |
| 64-разрядная точка с плавающей запятой |