Инструкции

Справочный раздел

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

Разделы инструкций

В сети

Пользователей: 493
Из них просматривают:
Аналоги: 149. Видео: 3. Даташиты: 100. Инструкции: 38. Новости: 40. Остальное: 3. Производители: 19. Профиль пользователя: 13. Теги: 12. Форум: 115. Чат: 1.
Участников: 3
Гостей: 490

an , Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Оглавление

Скриптовые компоненты


Скриптовые компоненты — это разновидность модульных компонентов, дополнительно содержащих файл со скриптом, который определяет поведение устройства.

Создание скриптового компонента включает следующие шаги:

1. Создание файла корпуса.

2. Создание файла описания.

3. Создание файла скрипта.

4. Создание папки компонента со всеми файлами.

5. Добавление в список компонентов.

Создание файла определения

Это XML-файлы, описывающие, к какому типу относится компонент и какие части или модули он содержит.

Корневой элемент:

Основные характеристики задаются в корневом элементе. Имя тега может быть любым, типичные варианты: “mcu” для микроконтроллеров или “iou” — «Input/Output Unit» (модуль ввода/вывода).

Возможные поля в корневом элементе одинаковы для всех модульных компонентов.

<iou name="comp_name" core="scripted" script="file.as" >
</iou>


Мы видим, что ядро установлено в значение “scripted”, значит это скриптовый компонент, а сам скрипт находится в файле “file.as”.

Ниже приведены некоторые модули и функции, которые можно добавить к скриптовому компоненту:

Свойства:

Вы можете добавить свойства для настройки некоторых настроек в вашем компоненте.

<iou name="comp_name" core="scripted" script="file.as" >
  <propertygroup name="group name">
    <property name="Prop1" type="double" />
     <property name="Prop2" type="uint" />
  </propertygroup>
</iou>


Мы видим, что существует группа свойств с двумя свойствами.
У группы свойств есть поле name — это имя, отображаемое в диалоговом окне свойств.

Каждое свойство имеет два поля:

name: имя свойства.

type: тип данных (bool, double, int, uint, string).

Скрипт должен реализовывать геттеры и сеттеры свойств:

  void setProp1( double val )
  double getProp1()
  void setProp2( uint val )
  uint getProp2()


Эти геттеры и сеттеры вызываются из диалогового окна Properties в графическом интерфейсе.
Обычно в скрипте есть переменная для хранения значения свойства.

Когда вызывается сеттер, скрипт может применить ограничения к значению (например, максимальное или минимальное) и сохранить его в этой переменной.

Когда вызывается геттер, скрипт, как правило, возвращает значение этой переменной.

Порты ввода-вывода (IO Ports):

Файл определения:

<iou name="comp_name" core="scripted" script="file.as" >
   <ioport name="PORTA" pins="A,B,C,D,E,F" />
</iou>


Каждый порт имеет 2 поля:
name: Название объекта.
pins: список пин-имён, разделенных запятыми.

Связи:


Вы можете добавить некоторые модули для связи.

UART:

<iou name="comp_name" core="scripted" script="file.as" >
  <ioport name="PORTA" pins="A,B,C,D,E,F" />
</iou>



SPI:

<iou name="comp_name" core="scripted" script="file.as" >
  <spi/>
</iou>


TWI:

<iou name="comp_name" core="scripted" script="file.as" >
   <twi/>
</iou>

Создание файла скрипта.


Это программа, написанная на скриптовом языке, которая описывает поведение компонента.

Файлы скриптов должны иметь расширение .as и использовать имя, заданное в файле определения.

Функции скрипта, вызываемые из C++.


Это функции, которые вы можете реализовать в скрипте.

void setup()
void reset()
void voltChanged()
void updateStep()
void runEvent()
void extClock( bool clkState )
int getCpuReg( string name )
string getStrReg( string name )
void command( string c )
void setLinkedValue( int val, int i )
void setLinkedString( string str, int i )
void INTERRUPT( uint vector )

Доступные функции C++ для вызова из скрипта.


Отладочные сообщения:

void print( string &msg )



компонент:

IoPort@ getPort( string port )
IoPin@ getPin( string pin )
McuPort@ getMcuPort( string port )
McuPin@ getMcuPin( string pin )

void addCpuReg( string name, string type )
void addCpuVar( string name, string type )

void toConsole( string msg ) // To Delete
void showValue( string val )

void addEvent( uint time_ps )
void cancelEvents()
uint64 circTime()

int readPGM( uint addr )
void writePGM( uint addr, int val )
int readRAM( uint addr )
void writeRAM( uint addr, int val )
int readROM( uint addr )
void writeROM( uint addr, int val )

void INTERRUPT( uint vector )

// For linked Components:
// index: index on Linked component in the list
string getPropStr( int index, string name )
void setLinkedValue( int index, int val, int i )
void setLinkedString( int index, string val, int i )


IoPort@

void setPinMode( uint mode )
uint getInpState()
void scheduleState( uint32 state, uint64 time )
void setOutState( uint state )
void changeCallBack( eElement@ e, bool en )
void addSequence( array<array<uint64>>@ t )
void trigger( uint n ) // Trgger sequence



IoPin@.

void setPinMode( uint mode )
void setOutState( bool state )
void scheduleState( bool state, uint64 time )
void setStateZ( bool z )
bool getInpState()
double getVoltage()
void setVoltage( double volt )
void setOutHighV( double volt )
void setImpedance( double imp )
void changeCallBack( eElement@ e, bool en )
bool isConnected()



McuPort@.

void controlPort( bool outCtrl, bool dirCtrl )
void setDirection( uint dir )
uint getInpState()
void setOutState( uint state )



McuPin@.

void setDirection( bool dir )
void setPortState( bool state )
void controlPin( bool outCtrl, bool dirCtrl )
void setExtInt( uint mode )
void setPinMode( uint mode )
bool getInpState()
void setOutState( bool state )
double getVoltage()
void setVoltage( double volt )
void changeCallBack( eElement@ e, bool en )



Ресурсы:

Примечания:
  • Скриптовые компоненты недоступны в версии 1.0.0
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

Посыпав место пайки песком или натерев крошащимся камнем, можно паять обычными методами даже алюминий.

Похожие инструкции