Язык Ci в текущем варианте ПО MAX15 является основным средством для создания алгоритмических программ. Без возможности задать алгоритм обработки программное обеспечение для сбора и обработки данных немыслимо. В мире существует огромное количество языков программирования, почему же здесь используется практически неизвестный и не распространенный язык Ci? Подробнее об этом рассказано в истории языка Ci. Здесь приводится информация о том, как использовать Ci для создания управляющих алгоритмов приложения.
Для программирования алгоритмической обработки в MAX15 имеются виртуальные процессоры. Виртуальный процессор - это программный аналог микроконтроллера, имеющий универсальные линии ввода и вывода, и работающий по заданному алгоритму. Процессор может считывать данные с линий ввода при необходимости, аналогично получению микроконтроллером данных по опросу. Либо процессор может обрабатывать данные при их поступлении, что является аналогом обработки по прерыванию. Алгоритмы для виртуального процессора нужно писать на языке Ci, поэтому виртуальные контроллеры называются процессорами языка Ci.
В демо-версии ПО MAX15 имеются два процессора языка Ci (в принципе, их количество виртуально не ограничено). Они находятся в закладке "Процессоры Ci" коллекции элементов схемы. Оба процессора совершенно одинаковы, кроме их номеров. На схеме может использоваться любой из них, либо оба одновременно. Процессоры являются активными элементами схемы, то есть для работы их программ требуется запуск схемы. Программы процессоров выполняются совершенно независимо и асинхронно. Как и в случае других элементов схемы, сигналы поступают к процессорам через очереди и выдаются ими также в очереди.
Для использования процессор надо перетащить из коллекции на схему и тогда можно создавать алгоритм его работы. Имя процессора можно задать при помощи соответствующего пункта в его меню, которое вызывается нажатием правой кнопки мыши над процессором. Имя задается в подменю "Задать произвольное имя" пункта "Переименование или привязка". Это автоматически задаст имя для программы этого процессора, и при выборе в меню пункта "Редактировать", если программа еще не была создана, будет предложено её создать - в виде отдельного исходного текста, или в виде проекта, собираемого из нескольких исходных текстов. Для простоты при использовании демо-версии рекомендуется создавать новый исходный текст. Проект - немного более сложный способ, позволяющий использовать в нескольких программах общие части. В основном, это сделано, чтобы над одной программой могли работать несколько человек. При использовании демо-версии в этом нет необходимости, но желающие могут попробовать изучить эту возможность самостоятельно. В одном и том же процессоре в целях отладки можно использовать разные варианты программ, если они были созданы ранее. Для этого служит так называемая "привязка" процессора к программе, которую можно произвести через меню, вызываемое нажатием правой кнопки мыши на процессоре, находящемся на схеме. Если выбрать в меню процессора соответствующий пункт, появится меню с возможностью привязать процессор к произвольной программе, имеющейся на носителе. Это может быть удобно, когда MAX15 используется при проведении экспериментов, и надо иметь возможность быстро переключать функциональность алгоритма. Но в большинстве случаев при создании виртуального прибора в этом не будет необходимости.
В редакторе программы можно написать любую синтаксически правильную программу на Ci. В редакторе имеется кнопка "Создать выполнимую программу", но её нажимать нет необходимости, она вспомогательная для некоторых случаев. Если просто перейти в окно редактора схемы и запустить её, либо в меню процессора выбрать пункт "Выполнить" - соответствующая процессору в редакторе программа будет автоматически сохранена и скомпилирована. То есть, запустится тот вариант программы, который является текущим в открытом редакторе. Программа процессором выполняется один раз, в соответствии с имеющимся алгоритмом, после чего процессор останавливается. Если необходимо зациклить выполнение программы, это надо предусмотреть в её алгоритме.
Справочное руководство по базовым и расширенным функциям языка Ci, в том варианте, который имеется в демо-версии ПО MAX15, находится здесь.
Для входов и выходов процессоров можно задавать смысловые названия, вместо тех, которые они имеют по-умолчанию. Это можно сделать в настройках процессора, которые открываются по двойному клику на его изображение на схеме. Дублирование названий входов или дублирование выходов не допускается. Но вход и выход могут иметь одинаковое имя. Хотя этого следует избегать. Сигналам надо давать осмысленные имена, поскольку их потом нужно будет использовать в программе процессора для передачи данных на выходы, или для получения сигнала на входе. Заданные названия сигналов отображаются на флажках при наведении курсора на контакты на схеме. Это облегчает создание и отладку схемы. Названия контактов сохраняются в настройках каждого процессора отдельно.