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
функционируйте и функции для ftp
MATLAB объект.
Полезные глобальные функции:
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
, из которых одним из элементов является массив типа double, data
. data
член также добавлен с вектором метки времени. Данные возвращены, как удваивается, которые представляют реальные значения исходных Сигналов Simulink в требуемые времена во время целевого выполнения.
Можно просмотреть или исследовать данные сигнала. Можно также отобразить данные на графике с plot(new_data2.data)
.
Если вы используете Simulink Real-Time в автономном режиме, можно извлечь данные из файла данных:
Сначала определите размер заголовка файла. Чтобы получить размер заголовка файла, проигнорируйте первые 8 байтов файла. Следующие 4 байта хранят размер заголовка как беззнаковое целое.
После количества размера заголовка байтов, хранилища файлов сигналы последовательно, как удваивается. Например, примите, что осциллограф имеет три сигнала, x
Y
, и z
. Примите тот x[0]
значение x
в демонстрационном 0
x1
значение в демонстрационном 1
, и т.д. Также примите t[0]
t1
значения времени симуляции на выборках 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
Чтобы закрыть тот файл, используйте SimulinkRealTime.fileSystem
fclose
функция. Например,
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