Набор для разработки драйверов (DDK)

SberMobile Server Driver Development Kit (DDK, набор инструментальных средств для разработки драйверов) -- это часть часть комплекта разработчика SberMobile, который позволяет создавать драйвера устройств  SberMobile Serverа  на языке программирования Java.

Плагины драйверов устройства

Драйвер Устройства SberMobile Server -- это особый тип плагина SberMobile Server. Технически драйвер включает в себя два обязательных компонента:

  • Driver Java class, который реализует интерфейс DeviceDriver. Большинство реализаций расширяет класс AbstractDeviceDriver, чтобы избежать ипользования неподходящих методов и сохранения их функциональности по умолчанию.

  • Дескриптор плагина драйвера, который определяет свойства плагина и его место в иерархии плагинов SberMobile Server.

Комплект разработчика устройства Device Server включает пример с открытыми исходными текстами для реализации Драйвера Устройства SberMobile Server, именуемого Demo Device Driver. Он находится в пакете examples.driver и содержит три файла:

  • DemoDeviceDriver.java - исходный код для драйвера

  • plugin.xml - дескриптор плагина драйвера

  • build.gradle- файл сборки проекта для Gradle с единственным заданием собрать драйвер в виде JAR-архива.

Чтобы испытать драйвер:

  • Запустите build.gradle, используя gradle для сборки demo.jar

  • Скопируйте demo.jar в %SberMobile Server Installation Folder/plugins/device , когда не запущен SberMobile Server .

  • Запустите SberMobile Server

  • Cоздайте новую учетную запись устройства Device и задайте Demo Device как тип драйвера

Создание экземпляра драйвера устройства

Разработчики драйверов устройств должны знать политику, которую SberMobile Server использует для создания драйверов, т.е. экземпляры класса Java, наследуемые из AbstractDeviceDriver:

  • При запуске сервера создается один экземпляр класса драйвера. Этот экземпляр отвечает за инициализацию/деинициализацию плагина глобального уровня или уровня каждого пользователя. Таким образом, сервер вызывает следующие методы этого экземпляра: globalInit(), globalDeinit(), globalStart(), globalStop(). Он также вызывает несколько методов, один раз на учетную запись каждого пользователя в системе: userInit(), userDeinit().

  • На каждую учетную запись устройства, которая использует этот тип драйвера, создается один экземпляр класса драйвера. Этот экземпляр проводит непосредственную коммуникацию с аппаратными устройствами и источниками данных и взаимодействует с определенным DeviceContext.

  • Также экземпляры класса драйвера могут создаваться во время подключения нового устройства (на этапе спецификации свойств подключения устройства). Единственный метод, который будет вызываться из этих экземпляров - это createConnectionPropertiesFormat().