Инструкции

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

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

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

В сети

Пользователей: 221
Из них просматривают:
Аналоги: 109. Видео: 1. Галерея: 1. Даташиты: 63. Инструкции: 3. Новости: 8. Остальное: 4. Производители: 3. Профиль пользователя: 12. Теги: 2. Форум: 14. Чат: 1.
Участников: 3
Гостей: 218

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
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

Проводите пайку только при выключенном телевизоре.
В противном случае закоротив дорожки (даже кратковременно), Вы введете новые неисправности.

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