Для создания пользовательских сценариев в контроллере Telematic может использоваться язык программирования C.

Компиляция и запуск сценариев

Для компиляции и запуска сценария в веб-интерфейсе контроллера используйте следующие кнопки:

  • Компиляция: выполняет только компиляцию сценария.
  • Старт: автоматически компилирует сценарий (если требуется) и запускает его.

Особенности компиляции

В отличие от MicroPython, где компиляция сценариев в байт-код выполняется непосредственно на контроллере, для языка C компиляция осуществляется удаленно. Контроллер отправляет сценарий на сервер по защищенному каналу связи. В результате компиляции контроллер получает исполняемый код или сообщение об ошибке.

Если использование удаленного сервера недопустимо (например, из-за политики безопасности или отсутствия доступа к Интернету), возможна локальная компиляция с использованием утилиты telematic_c_compiler.exe. Для этого выполните следующие шаги:

  1. Запустите утилиту telematic_c_compiler.exe на компьютере. Утилита работает на TCP-порту 8089.
  2. Убедитесь, что брандмауэр компьютера не блокирует входящие соединения на порт 8089.
  3. В настройках контроллера включите режим локальной компиляции и укажите IP-адрес компьютера, на котором запущена утилита.

Используемый компилятор

Для компиляции сценариев используется свободно распространяемый компилятор GNU Compiler Collection (GCC) из набора инструментов GNU Arm Embedded Toolchain (версия 10.3.1), ориентированный на 32-битные процессоры семейства Arm Cortex. Сервер и утилита telematic_c_compiler.exe обеспечивают удобный интерфейс между контроллером и компилятором, упрощая процесс компиляции.

Особенности выполнения сценариев

В отличие от MicroPython, где байт-код выполняется в безопасной среде виртуальной машины, сценарии на языке C исполняются непосредственно процессором контроллера, на одном уровне с ядром операционной системы. Это означает, что критическая ошибка (например, HardFault) в сценарии может привести к остановке всей системы и последующей перезагрузке по механизму Watchdog.

В случае возникновения HardFault контроллер сохраняет следующую информацию для анализа ошибки:

  • Место возникновения ошибки.
  • Содержимое всех регистров процессора.
  • Сведения о системной аварии.

Эти данные помогают разработчику выявить и устранить причину ошибки. Для повышения безопасности рекомендуется тщательно тестировать сценарии перед их внедрением в продуктивную среду. По сравнению с C сценарии на MicroPython являются более безопасными, так как изолированы от ядра системы.

Доступные библиотеки

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

  • Стандартные библиотеки C: stdlib.h, stdio.h, string.h, time.h, math.h, ctype.h и другие.
  • Специфические библиотеки контроллера Telematic: dev.h, display.h и другие, предоставляющие доступ к аппаратным функциям устройства.

Рекомендации

  • Перед компиляцией проверяйте синтаксис сценария, чтобы минимизировать ошибки.
  • При использовании локальной компиляции убедитесь, что утилита telematic_c_compiler.exe и порт 8089 доступны для контроллера.
  • Для отладки сложных сценариев используйте информацию об ошибках, сохраняемую контроллером.
  • При необходимости обратитесь к документации по библиотекам dev.h и display.h для получения сведений о специфических функциях контроллера.