Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
W
wiki
  • Project
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Иван Кубота
  • wiki
  • Wiki
  • Devices

Devices

Last edited by LikeAWildfire Jul 27, 2017
Page history

Описание

Драйвер устройства реализуется в виде сервиса. Так как сервис гарантировано существует в одном экземпляре, он может монопольно занимать порт и другие ресурсы, связанные с устройством. Должен предоставлять необходимые методы, свойства и события для взаимодействия и "мониторинга". Для хранения любых настроек можно использовать соответствующую секцию конфига (см сервис) Прим.: в дальнейшем настройки порта могут быть перенесены из секции "devices" в настройки сервиса

Прикладные компоненты взаимодействуют с устройством только через такой сервис. Для примера можно посмотреть BillValidatorService в ветке demo(http://gitlab.quokka.pub/LikeAWildfire/QComponent4/blob/demo/src/Services/BillValidatorService.js)

Пример

Кусок конфига для этого сервиса

"devices": {
    "billValidator": {
        "port": {
            "name": "COM3",
            "baudRate": 9600
        }
    },
}
................................................
"services": [
    {
        "name": "BillValidator",
        "displayName": "Bill Validator",
        "type": "Services.BillValidatorService",
        "description": "Handle CashCode devices",
        "startup": "always"
    },
................................................

получение имени порта

var self=this;
// obtain reference to related config branch
// note: this.config provided by base class (AbstractService)
var confPart = this.config.get('system.devices.billValidator');

/* Subscribe to port settings changes */
var portRef = confPart.ref('port');
portRef.subscribe(function(val){
    self._handlePort(val);
});

/* OR get port settings once */
this._handlePort(portRef.get());

подключение Важно: BillValidatorService использует SerialManager - обертку над модулем serialport Умеет все что умеет serialport, но еще может делать reconnect

           _handlePort: function(portConf) {

                // obtain port name
                this.portName = portConf.get('name');

                // create port options ( serialport/SerialManager constructor second argument )
                var opts = {};
                var baudRate = portConf.get('baudRate');
                if (baudRate) opts.baudRate = baudRate;

                // connect or reconnect to port
                if (!this._serialPort)
                    this._serialPort = new require('../../platform/SerialManager')(this.portName, opts);
                else
                    this._serialPort.reconnect(this.portName, opts);
            },
Clone repository
  • Dialog
  • Event bus (ext. doc)
  • External (extended) documentation
  • Facerecognition
  • Logging (ext. doc)
  • Objects
  • Quokkascript crash course
  • Recfaces camera recognition services
  • Control_back
  • Control_forward
  • Control_main_menu
  • Control_primary_account_number
  • Control_to_main_menu
  • Devices
  • Events
More Pages
×

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.