Используя объекты SimulinkRealTime.fileSystem

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 объект.

Полезные глобальные функции:

Эти процедуры принимают, что целевому компьютеру создал файл данных сигнала осциллограф файла Simulink® Real-Time™. Этот файл имеет путь C:\data.dat.

Существуют нижеследующие ограничения:

  • У вас может быть самое большее 128 файлов, открытых на целевом компьютере одновременно.

  • Самый большой один файл, который можно создать на целевом компьютере, составляет 4 Гбайт.

  • Полностью определенное имя папки может иметь максимум 248 символов, включая букву диска, двоеточие и обратную косую черту.

  • Полностью определенное имя файла в операционной системе на целевом компьютере может иметь максимум 260 символов. Если имя файла более длительно, чем формат "восемь точек три" (восемь символьных имен файла, точка, три символьных расширения), операционная система представляет имя файла в усеченной форме (например, шесть символов, сопровождаемых '~1'). Команды MATLAB могут получить доступ к файлу с помощью полностью определенного имени файла или усеченного представления имени. Некоторые параметры блоков, такие как блок Scope filename параметр, потребуйте 8,3 форматов для имени файла.

  • Не записывайте данные к private папка на вашем целевом компьютере. Это резервируется для внутреннего пользования Simulink Real-Time.

Копирование файлов от целевого компьютера до компьютера разработчика

Можно скопировать файл данных от целевого компьютера до компьютера разработчика с помощью SimulinkRealTime функция пакета на компьютере разработчика.

Например, чтобы получить файл с именем data.dat от целевого компьютера C:\ диск (значение по умолчанию):

  1. Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить SimulinkRealTime.target по умолчанию возразите против переменной.

    tg = slrt;
  2. Ввод

    SimulinkRealTime.copyFileToHost(tg,'data.dat')

    Эта команда получает файл и сохранила тот файл к переменной data. Это содержимое находится в формате файла Simulink Real-Time.

Копирование файлов от компьютера разработчика до целевого компьютера

Можно скопировать файл от компьютера разработчика до целевого компьютера с помощью SimulinkRealTime функция пакета на компьютере разработчика.

Например, чтобы скопировать файл с именем data2.dat от компьютера разработчика до целевого компьютера C:\ диск (значение по умолчанию),

  1. Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить SimulinkRealTime.target по умолчанию возразите против переменной.

    tg = slrt;
  2. Введите следующее, чтобы сохранить тот файл к переменной data.

    SimulinkRealTime.copyFileToTarget(tg,'data2.dat')

Доступ к файловым системам на определенном целевом компьютере

Можно получить доступ к определенным файлам целевого компьютера от компьютера разработчика для SimulinkRealTime.fileSystem объект.

Используйте SimulinkRealTime.fileSystem функция создателя. Если ваша система имеет несколько целей, можно получить доступ к определенным файлам целевого компьютера от компьютера разработчика для SimulinkRealTime.fileSystem объект.

Например, чтобы перечислить имя текущей папки целевого компьютера 'TargetPC1':

  1. В окне MATLAB введите команду как следующее, чтобы присвоить SimulinkRealTime.fileSystem объект для компьютера по умолчанию к переменной.

    fsys = SimulinkRealTime.fileSystem;
  2. Ввод

    dir(fsys)

В качестве альтернативы можно использовать SimulinkRealTime.target конструктор, чтобы создать целевой объект для определенного компьютера, затем используйте тот целевой объект в качестве аргумента к SimulinkRealTime.fileSystem.

  1. В окне MATLAB введите команду как следующее, чтобы присвоить SimulinkRealTime.target объект для целевого компьютера 'TargetPC1' к переменной.

    tg1 = SimulinkRealTime.target('TargetPC1');
  2. Присваивать SimulinkRealTime.fileSystem возразите против переменной, введите:

    fsys = SimulinkRealTime.fileSystem(tg1);
  3. Ввод

    dir(fsys)

Чтение содержимого файла на целевом компьютере

Можно считать содержимое файла данных от целевого компьютера при помощи SimulinkRealTime.fileSystem функции на компьютере разработчика. Используйте эту процедуру в качестве альтернативы методу, описанному в Осциллографах Файла конфигурации с языком MATLAB.

Запускать SimulinkRealTime.fileSystem возразите функции, используйте function_name(fs_object, argument_list) синтаксис. Например, чтобы получить содержимое файла с именем data.dat от целевого компьютера C:\ диск (значение по умолчанию):

  1. Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить SimulinkRealTime.fileSystem возразите против переменной.

    fsys = SimulinkRealTime.fileSystem;
  2. Ввод

    h = fopen(fsys, 'data.dat');

    Эта команда открывает файл data.dat для чтения и присвоений идентификатор файла к h.

  3. Ввод

    data2 = fread(fsys,h);

    Эта команда читает файл data.dat и хранит содержимое файла к data2. Это содержимое находится в формате файла Simulink Real-Time.

  4. Ввод

    fclose(fsys, h)

    Эта команда закрывает файл data.dat.

Прежде чем можно будет просмотреть или построить содержимое этого файла, необходимо преобразовать содержимое. Смотрите Содержимое Формата файла Simulink Real-Time Преобразования к Данным о Двойной точности.

Преобразование содержимого формата файла 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 (см. Чтение Содержимого Файла на Целевом компьютере).

  1. В окне MATLAB измените папку в папку, которая содержит файл формата Simulink Real-Time.

  2. Ввод

    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 байта хранят размер заголовка как беззнаковое целое.

  • После количества размера заголовка байтов, хранилища файлов сигналы последовательно, как удваивается. Например, примите, что осциллограф имеет три сигнала, xY, и z. Примите тот x[0] значение x в демонстрационном 0x1 значение в демонстрационном 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 количество полученных выборок. Файл сохраняет xYZ, и t как удваивается в 8 байты каждый.

Удаление файла от целевого компьютера

Можно удалить файл из целевого компьютера при помощи функций Simulink Real-Time на компьютере разработчика для SimulinkRealTime.fileSystem объект. Если вы уже не сделали так, закройте этот файл сначала с fclose.

Запускать SimulinkRealTime.fileSystem возразите функции, используйте function_name(fs_object, argument_list) синтаксис. Например, чтобы удалить файл с именем data2.dat от целевого компьютера C:\ диск (значение по умолчанию),

  1. Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить SimulinkRealTime.fileSystem возразите против переменной.

    fsys = SimulinkRealTime.fileSystem;
  2. Введите следующее, чтобы удалить заданный файл из целевого компьютера.

    removefile(fsys,'data2.dat')

Получение списка открытых файлов на целевом компьютере

Можно получить список открытых файлов в файловой системе целевого компьютера при помощи SimulinkRealTime.fileSystem возразите функциям на компьютере разработчика. Ограничения файловой системы целевого компьютера количество открытых файлов вы можете иметь к восемь. Используйте этот список, чтобы идентифицировать файлы, которые можно закрыть.

Запускать SimulinkRealTime.fileSystem возразите функции, используйте function_name(fs_object, argument_list) синтаксис. Например, чтобы получить список открытых файлов для объекта fsys файловой системы,

  1. Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить SimulinkRealTime.fileSystem возразите против переменной.

    fsys = SimulinkRealTime.fileSystem;
  2. Ввод

    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
  3. Таблица возвращает открытые дескрипторы файлов в шестнадцатеричном. Преобразовывать указатель на тот что другой SimulinkRealTime.fileSystem функции, такие как fclose, может использовать, использовать hex2dec функция. Например,

    h1 = hex2dec('001E0001')
    h1 =
    1966081
  4. Чтобы закрыть тот файл, используйте SimulinkRealTime.fileSystem fclose функция. Например,

    fclose(fsys, h1)

Получение информации о файл на целевом компьютере

Можно отобразить информацию для файла в файловой системе целевого компьютера при помощи SimulinkRealTime.fileSystem возразите функциям на компьютере разработчика.

Запускать SimulinkRealTime.fileSystem возразите функции, используйте function_name(fs_object, argument_list) синтаксис. Например, чтобы отобразить информацию для идентификатора файла fid1,

  1. Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить SimulinkRealTime.fileSystem возразите против переменной.

    fsys = SimulinkRealTime.fileSystem;
  2. Ввод

    fid1 = fopen(fsys, 'data.dat');

    Эта команда открывает файл data.dat для чтения и присвоений идентификатор файла к fid1.

  3. Ввод

    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:\,

  1. Если вы уже не сделали так в окне MATLAB, введите следующее, чтобы присвоить SimulinkRealTime.fileSystem возразите против переменной.

    fsys = SimulinkRealTime.fileSystem;
  2. Ввод

    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