Для начала:Это интерпретируемый язык программирования под ПК(не под МК), необходимость внедрения интерпретатора скриптов в моей программе возникла после того как я сделал манипулятор(копия с LynxMotion).
Робот представлял собой манипулятор с 5ю степенями свободы, МК - MEGA32 соединенный с ПК по RS232, управляющая прога была написана на С#, можно было управлять каждой сервой в отдельности(угол,скорость).
Все было хорошо, но для того чтоб робот выполнил определенную последовательность команд(отсылок в МК по УСАРТ) приходилось каждый раз перекомпилировать исходник. Меня это категорически не устраивало, и тут я вспомнил о скриптах(в играх).
Сначала я попробовал XML(просто записывал последовательность комманд) но он оказался слишком неудобным и громоздким, к тому же это не скриптовый язык в чистом виде.
И тут я вспомнил о FARCRY, как известно там используется LUA.
Сначала я подумал что будет очень гемморойно внедрить ЭТО в свою прогу, но как оказалось все проще пареной репы.
Пару строк:
- Код: Выделить всё • Развернуть
public void ReadLuaDocument(string filename)
{
Lua l = new Lua();
l.RegisterFunction("ExampleFunction", R, R.GetType().GetMethod("ExampleFunction"));
//ExampleFunction - функция в главной программе которую теперь можно вызывать из скрипта, R - класс который содержит эту функцию
l.DoFile(filename);
}
И все!!!!!
Из скрипта можно создавать формы, элементы управления, производить расчеты и т.д
Короче все что душе угодно.
По синтаксису LUA это что-то среднее между JAVA и СИ, главное есть доступ к переменным и функциям из скрипта в главную программу и обратно.
ОЧЕНЬ полезная функция - возможность функций возвращать несколько результатов одновременно.
Для роботов которые управляются с ПК это самое то, все расчеты и новые фишки можно выполнить в скрипте, и главную прогу не надо перекомпилировать.
В общем высказывайтесь.
ССЫЛКИ:
http://ru.wikipedia.org/wiki/LUA
http://einfall.blogspot.com/2006/05/scripting-with-lua-in-c.html
http://www.botik.ru/%7Erldp/mysql/mysqldev/glava04.htm