target ПакетМожно использовать target Package обеспечить возможность соединения PIL между Simulink® и целевым компьютером. В этом примере ваш компьютер разработчика является целевым компьютером.
Создайте target.Board объект, который предоставляет MATLAB® описание вашего целевого компьютера.
hostTarget = target.create('Board', ... 'Name', 'Example Intel Board');
Чтобы поддержать генерацию кода и ввод-вывод данных в PIL симуляциях, сопоставьте объект с процессором, связью и коммуникационными описаниями.
Сопоставьте плату с процессором
Чтобы поддержать генерацию кода, сопоставьте плату с target.Processor объект, который содержит реализацию языка. В данном примере создайте target.Processor возразите и снова используйте существующий target.LanguageImplementation объект. Для получения информации о подготовке пользовательского target.LanguageImplementation возразите, смотрите Регистр Новые Аппаратные устройства.
processor = target.create('Processor', 'Name', 'ExampleProcessor'); processor.LanguageImplementations = target.get('LanguageImplementation', ... 'Intel-x86-64 (Windows64)');
Сопоставьте target.Board объект с новым target.Processor объект при помощи Processors свойство
hostTarget.Processors = processor;
Укажите информацию выполнения для целевого компьютера
Создайте объект, который содержит детали о выполнении целевого приложения. Объект описывает инструмент, который требуется запустить целевое приложение на целевом компьютере. Чтобы получить системные команды для запуска и остановки целевого приложения, можно использовать HostProcessExecutionTool или SystemCommandExecutionTool класс.
applicationExecution = target.create('HostProcessExecutionTool'); applicationExecution.Name = 'Windows Application';
Создайте Command объект для загрузки и запуска целевого приложения. Присвойте строковую переменную '$(EXE)' к String свойство как заполнитель для имени целевого приложения, которое не известно до выполнения.
runCommand = target.create('Command'); runCommand.String = '$(EXE)'; applicationExecution.StartCommand = runCommand; hostTarget.Tools.ExecutionTools = applicationExecution;
Создайте коммуникационный интерфейс для целевого компьютера
Создайте CommunicationInterface объект, который предоставляет целевому компьютеру детали канала связи и rtiostream реализации API.
Использование:
Поставленный TCP/IP rtiostream исходный файл реализации.
BuildDependencies объект задать, для rtiostream API, исходные файлы, которые скомпилированы с целевым приложением.
MainFunction возразите, чтобы передать аргументы целевому приложению
comms = target.create('CommunicationInterface'); comms.Name = 'Windows TCP Interface'; comms.Channel = 'TCPChannel'; comms.APIImplementations = target.create('APIImplementation', ... 'Name', 'x86 RTIOStream Implementation'); comms.APIImplementations.API = target.create('API', 'Name', 'RTIO Stream'); comms.APIImplementations.BuildDependencies = target.create('BuildDependencies'); comms.APIImplementations.BuildDependencies.SourceFiles = ... {fullfile('$(MATLABROOT)', ... 'toolbox', ... 'coder', ... 'rtiostream', ... 'src', ... 'rtiostreamtcpip', ... 'rtiostream_tcpip.c')}; comms.APIImplementations.MainFunction = target.create('MainFunction', ... 'Name', 'TCP RtIOStream Main'); comms.APIImplementations.MainFunction.Arguments = {'-blocking', '1', '-port', '0'}; hostTarget.CommunicationInterfaces = comms;
Укажите информацию протокола PIL
Этот шаг является дополнительным. PIL симуляция использует протокол связи для передачи данных между Simulink и целевым компьютером. target.PILProtocol класс описывает параметры протокола. В данном примере можно улучшать производительность целевой среды выполнения путем увеличения buffer size ввода-вывода, который использует протокол.
Создайте target.PILProtocol возразите и задайте buffer size ввода-вывода.
pilProtocol = target.create('PILProtocol'); pilProtocol.Name = 'Windows PIL Protocol'; pilProtocol.SendBufferSize = 50000; pilProtocol.ReceiveBufferSize = 50000; hostTarget.CommunicationProtocolStacks = pilProtocol;
Если вы не выполняете этот шаг, target.PILProtocol по умолчанию значения используются.
Можно сконфигурировать PIL симуляцию, чтобы произвести профили времени выполнения для сгенерированного кода. Чтобы поддержать профилирование выполнения кода, необходимо создать объект - таймер, который описывает извлечение текущего времени от сгенерированного кода, работающего на целевом компьютере. Описание объекта - таймера должно включать описание функции, которая получает время и его реализацию.
Этот пример использует функцию C, timestamp_x86, который возвращает текущее время как uint64 тип данных.
timerSignature = target.create('Function'); timerSignature.Name = 'timestamp_x86'; timerSignature.ReturnType = 'uint64';
Получите функцию в объекте API.
timerApi = target.create('API'); timerApi.Functions = timerSignature; timerApi.Language = target.Language.C; timerApi.Name = 'Windows Timer API';
Получите зависимости функции, то есть, исходные и заголовочные файлы, которые требуются запустить функцию.
timerDependencies = target.create('BuildDependencies'); timerDependencies.IncludeFiles = {'host_timer_x86.h'}; timerDependencies.IncludePaths = {'$(MATLAB_ROOT)/toolbox/coder/profile/src'}; timerDependencies.SourceFiles = {'host_timer_x86.c'};
Создайте объект, который комбинирует API и зависимости.
timerImplementation = target.create('APIImplementation'); timerImplementation.API = timerApi; timerImplementation.BuildDependencies = timerDependencies; timerImplementation.Name = 'Windows Timer Implementation';
Создайте объект - таймер и сопоставьте его с информацией о таймере.
timer = target.create('Timer'); timer.APIImplementation = timerImplementation; timer.Name = 'Windows Timer';
Присвойте таймер объекту процессора.
processor.Timers = timer;
Задайте связь между компьютером разработчика и целевым компьютером
Предыдущие шаги создали поддержку целевого компьютера коммуникаций и запуска целевого приложения. Теперь настройте связь между своим компьютером разработчика и целевым компьютером путем создания TargetConnection объект. Задайте:
Канал связи, который является тем же каналом, заданным в коммуникационном интерфейсе целевого компьютера – видит шаг 4.
Свойства связи.
Цель, которая является описанием плат, заданным на предыдущих шагах.
connection = target.create('TargetConnection'); connection.Name = 'Host Process Connection'; connection.Target = hostTarget; connection.CommunicationChannel = target.create('TCPChannel'); connection.CommunicationChannel.Name = 'External Process TCPCommunicationChannel'; connection.CommunicationChannel.IPAddress = 'localhost'; connection.CommunicationChannel.Port = '0';
Добавьте плату, и связь возражает против постоянной памяти
Чтобы указать возможность соединения в MATLAB, используйте target.add функция, чтобы добавить целевой компьютер и информацию о связи к памяти MATLAB. По умолчанию информация только доступна для текущего сеанса работы с MATLAB. Чтобы заставить регистрацию сохраниться через сеансы работы с MATLAB, задайте пару "имя-значение" 'UserInstall', true.
target.add([hostTarget connection], 'UserInstall', true);Можно теперь задать компьютер разработчика как целевой компьютер для PIL симуляций. Прежде чем вы запустите PIL симуляцию, в диалоговом окне Configuration Parameters, установите Hardware board на Example Intel Board.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.