Объект fileSystem
позволяет вам работать с файловой системой целевого компьютера от компьютера разработчика. Вы вводите функции целевого объекта в окно MATLAB® на компьютере разработчика или используете скрипты. Объект fileSystem
имеет функции, которые позволяют вам использовать
cd
, чтобы изменить папки
dir
, чтобы перечислить содержимое текущей папки
mkdir
, чтобы сделать папку
pwd
, чтобы получить текущий рабочий путь к папке
rmdir
, чтобы удалить папку
diskinfo
, чтобы получить информацию о заданном диске
fclose
, чтобы закрыть файл (подобный MATLAB fclose
)
fileinfo
, чтобы получить информацию о конкретном файле
filetable
, чтобы получить информацию о файлах в файловой системе
fopen
, чтобы открыть файл (подобный MATLAB fopen
)
fread
, чтобы считать файл (подобный MATLAB fread
)
fwrite
, чтобы записать файл (подобный MATLAB fwrite
)
getfilesize
, чтобы получить размер файла в байтах
removefile
, чтобы удалить файл из целевого компьютера
Примечание: объект SimulinkRealTime.fileSystem
будет удален в будущем релизе. См. информацию о версии для команд файловой системы, чтобы использовать вместо этого. Эти команды используют функцию SimulinkRealTime.openFTP
и функции для объекта MATLAB ftp
.
Полезные глобальные функции:
SimulinkRealTime.copyFileToHost
, чтобы получить файл от целевого компьютера до компьютера разработчика
SimulinkRealTime.copyFileToTarget
, чтобы поместить файл от компьютера разработчика на целевом компьютере
SimulinkRealTime.utils.getFileScopeData
, чтобы интерпретировать необработанные данные от функции fread
Эти процедуры принимают, что целевому компьютеру создал файл данных сигнала осциллограф файла Simulink® Real-Time™. Этот файл имеет путь C:\data.dat
.
Существуют следующие ограничения:
У вас может быть самое большее 128 файлов, открытых на целевом компьютере одновременно.
Самый большой один файл, который можно создать на целевом компьютере, составляет 4 Гбайт.
Полностью определенное имя папки может иметь максимум 248 символов, включая букву диска, двоеточие и наклонную черту влево.
Полностью определенное имя файла в операционной системе на целевом компьютере может иметь максимум 260 символов. Если имя файла более длительно, чем формат "восемь точек три" (восемь символьных имен файла, точка, три символьных расширения), операционная система представляет имя файла в усеченной форме (например, шесть символов, сопровождаемых '~1'
). Команды MATLAB могут получить доступ к файлу с помощью полностью определенного имени файла или усеченного представления имени. Некоторые параметры блоков, такие как блок Scope параметр filename
, требуют 8,3 форматов для имени файла.
Не записывайте данные к папке private
на вашем целевом компьютере. Это резервируется для внутреннего пользования Simulink Real-Time.
Можно скопировать файл данных от целевого компьютера до компьютера разработчика с помощью функции пакета SimulinkRealTime
на компьютере разработчика.
Например, чтобы получить файл с именем data.dat
из целевого компьютера C:\ диск (значение по умолчанию):
Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить объект SimulinkRealTime.target
по умолчанию переменной.
tg = slrt;
Ввод
SimulinkRealTime.copyFileToHost(tg,'data.dat')
Эта команда получает файл и сохранила тот файл к переменной data
. Это содержимое находится в формате файла Simulink Real-Time.
Можно скопировать файл от компьютера разработчика до целевого компьютера с помощью функции пакета SimulinkRealTime
на компьютере разработчика.
Например, чтобы скопировать файл с именем data2.dat
от компьютера разработчика до целевого компьютера C:\ диск (значение по умолчанию),
Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить объект SimulinkRealTime.target
по умолчанию переменной.
tg = slrt;
Введите следующее, чтобы сохранить тот файл к переменной data
.
SimulinkRealTime.copyFileToTarget(tg,'data2.dat')
Можно получить доступ к определенным файлам целевого компьютера от компьютера разработчика для объекта SimulinkRealTime.fileSystem
.
Используйте функцию создателя SimulinkRealTime.fileSystem
. Если ваша система имеет несколько целей, можно получить доступ к определенным файлам целевого компьютера от компьютера разработчика для объекта SimulinkRealTime.fileSystem
.
Например, чтобы перечислить имя текущей папки целевого компьютера 'TargetPC1'
:
В окне MATLAB введите команду как следующее, чтобы присвоить объект SimulinkRealTime.fileSystem
для компьютера по умолчанию к переменной.
fsys = SimulinkRealTime.fileSystem;
Ввод
dir(fsys)
Также можно использовать конструктора SimulinkRealTime.target
, чтобы создать целевой объект для определенного компьютера, затем использовать тот целевой объект в качестве аргумента к SimulinkRealTime.fileSystem
.
В окне MATLAB введите команду как следующее, чтобы присвоить объект SimulinkRealTime.target
для целевого компьютера 'TargetPC1'
к переменной.
tg1 = SimulinkRealTime.target('TargetPC1');
Чтобы присвоить объект SimulinkRealTime.fileSystem
переменной, введите:
fsys = SimulinkRealTime.fileSystem(tg1);
Ввод
dir(fsys)
Можно считать содержимое файла данных от целевого компьютера при помощи функций SimulinkRealTime.fileSystem
на компьютере разработчика. Используйте эту процедуру в качестве альтернативы методу, описанному в Осциллографах Файла конфигурации с языком MATLAB.
Чтобы запустить функцию объекта SimulinkRealTime.fileSystem
, используйте синтаксис function_name(fs_object, argument_list)
. Например, чтобы получить содержимое файла с именем data.dat
от целевого компьютера C:\ диск (значение по умолчанию):
Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить объект SimulinkRealTime.fileSystem
переменной.
fsys = SimulinkRealTime.fileSystem;
Ввод
h = fopen(fsys, 'data.dat');
Эта команда открывает файл data.dat
для чтения и присваивает идентификатор файла h
.
Ввод
data2 = fread(fsys,h);
Эта команда читает файл data.dat
и хранит содержимое файла к data2
. Это содержимое находится в формате файла Simulink Real-Time.
Ввод
fclose(fsys, h)
Эта команда закрывает файл data.dat
.
Прежде чем можно будет просмотреть или построить содержимое этого файла, необходимо преобразовать содержимое. Смотрите Содержимое Формата файла Simulink Real-Time Преобразования к Данным о Двойной точности.
Программное обеспечение Simulink Real-Time обеспечивает функциональный SimulinkRealTime.utils.getFileScopeData
, чтобы преобразовать содержимое формата файла Simulink Real-Time (в байтах) к данным о двойной точности, представляющим сигналы и метки времени. Функция SimulinkRealTime.utils.getFileScopeData
берет в данных из файла в формате Simulink Real-Time. Данные должны быть вектором байтов (uint8
). Чтобы преобразовать данные в uint8
, используйте команду как следующее:
data2 = uint8(data2');
Этот раздел принимает, что у вас есть переменная, data2
, который содержит данные в формате файла Simulink Real-Time (см. Чтение Содержимого Файла на Целевом компьютере).
В окне MATLAB измените папку на папку, которая содержит файл формата Simulink Real-Time.
Ввод
new_data2 = SimulinkRealTime.utils.getFileScopeData(data2);
SimulinkRealTime.utils.getFileScopeData
преобразовывает формат data2
от формата файла Simulink Real-Time до массива байтов. Это также создает структуру для того файла в new_data2
, которого один из элементов является массивом, удваивается, data
. Участник data
также добавлен с вектором метки времени. Данные возвращены, как удваивается, которые представляют реальные значения исходных Сигналов Simulink в требуемые времена во время целевого выполнения.
Можно просмотреть или исследовать данные сигнала. Можно также отобразить данные на графике с plot(new_data2.data)
.
Если вы используете Simulink Real-Time в автономном режиме, можно извлечь данные из файла данных:
Сначала определите размер заголовка файла. Чтобы получить размер заголовка файла, проигнорируйте первые 8 байтов файла. Следующие 4 байта хранят размер заголовка как беззнаковое целое.
После количества размера заголовка байтов, хранилища файлов сигналы последовательно, как удваивается. Например, примите, что осциллограф имеет три сигнала, x
, y
и z
. Примите, что x[0]
является значением x
в демонстрационном 0
, x[1]
является значением в демонстрационном 1
и т.д. Также примите t[0]
, t[1]
значения времени симуляции на выборках 0
, 1
, и т.д. Файл сохраняет данные с помощью следующего шаблона:
x[0] y[0] z[0] t[0] x[1] y[1] z[1] t[1] x[2] y[2] z[2] t[2]... x[N] y[N] z[N] t[N]
N
является количеством полученных выборок. Файл сохраняет x
, y
, z
и t
, как удваивает на уровне байтов 8
каждого.
Можно удалить файл из целевого компьютера при помощи функций Simulink Real-Time на компьютере разработчика для объекта SimulinkRealTime.fileSystem
. Если вы уже не сделали так, закройте этот файл сначала с fclose
.
Чтобы запустить функцию объекта SimulinkRealTime.fileSystem
, используйте синтаксис function_name(fs_object, argument_list)
. Например, чтобы удалить файл с именем data2.dat
из целевого компьютера C:\ диск (значение по умолчанию),
Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить объект SimulinkRealTime.fileSystem
переменной.
fsys = SimulinkRealTime.fileSystem;
Введите следующее, чтобы удалить заданный файл из целевого компьютера.
removefile(fsys,'data2.dat')
Можно получить список открытых файлов в файловой системе целевого компьютера при помощи функций объекта SimulinkRealTime.fileSystem
на компьютере разработчика. Ограничения файловой системы целевого компьютера количество открытых файлов вы можете иметь к восемь. Используйте этот список, чтобы идентифицировать файлы, которые можно закрыть.
Чтобы запустить функцию объекта SimulinkRealTime.fileSystem
, используйте синтаксис function_name(fs_object, argument_list)
. Например, чтобы получить список открытых файлов для объекта fsys
файловой системы,
Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить объект SimulinkRealTime.fileSystem
переменной.
fsys = SimulinkRealTime.fileSystem;
Ввод
filetable(fsys)
Если файловая система имеет открытые файлы, список как следующее отображен:
ans = Index Handle Flags FilePos Name ------------------------------------------ 0 00060000 R__ 8512 C:\DATA.DAT 1 00080001 R__ 0 C:\DATA1.DAT 2 000A0002 R__ 8512 C:\DATA2.DAT 3 000C0003 R__ 8512 C:\DATA3.DAT 4 001E0001 R__ 0 C:\DATA4.DA
Таблица возвращает открытые дескрипторы файлов в шестнадцатеричном. Преобразовывать указатель на тот, что другой SimulinkRealTime.fileSystem
функционирует, такие как fclose
, может использовать, использовать функцию hex2dec
. Например,
h1 = hex2dec('001E0001')
h1 = 1966081
Чтобы закрыть тот файл, используйте
функцию fclose
SimulinkRealTime.fileSystem
. Например,
fclose(fsys, h1)
Можно отобразить информацию для файла в файловой системе целевого компьютера при помощи функций объекта SimulinkRealTime.fileSystem
на компьютере разработчика.
Чтобы запустить функцию объекта SimulinkRealTime.fileSystem
, используйте синтаксис function_name(fs_object, argument_list)
. Например, чтобы отобразить информацию для идентификатора файла fid1
,
Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить объект SimulinkRealTime.fileSystem
переменной.
fsys = SimulinkRealTime.fileSystem;
Ввод
fid1 = fopen(fsys, 'data.dat');
Эта команда открывает файл data.dat
для чтения и присваивает идентификатор файла fid1
.
Ввод
fileinfo(fsys, fid1)
Это возвращает данные о диске как следующее для файловой системы диска C:\.
ans = FilePos: 0 AllocatedSize: 12288 ClusterChains: 1 VolumeSerialNumber: 1.0450e+009 FullName: 'C:\DATA.DAT'
Можно отобразить информацию для диска в файловой системе целевого компьютера при помощи функций объекта SimulinkRealTime.fileSystem
на компьютере разработчика.
Чтобы запустить функцию объекта SimulinkRealTime.fileSystem
, используйте синтаксис function_name(fs_object, argument_list)
. Например, чтобы отобразить данные о диске для диска C:\,
Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить объект SimulinkRealTime.fileSystem
переменной.
fsys = SimulinkRealTime.fileSystem;
Ввод
diskinfo(fsys, 'C:\');
Это возвращает данные о диске как следующее для файловой системы диска C:\.
ans = struct with fields: DriveLetter: 'C' Label: 'FREEDOS' Reserved: ' ' SerialNumber: -857442364 FirstPhysicalSector: 63 FATType: 32 FATCount: 2 MaxDirEntries: 0 BytesPerSector: 512 SectorsPerCluster: 64 TotalClusters: 1831212 BadClusters: 0 FreeClusters: 1827614 Files: 938 FileChains: 942 FreeChains: 1 LargestFreeChain: 1827614 DriveType: DRIVE_FIXED