UNPKG

pimatic-johnny-five

Version:

Pimatic Plugin for Johnny Five, a Robotics and IoT programming framework.

57 lines (48 loc) 1.7 kB
module.exports = (env) -> Promise = env.require 'bluebird' _ = env.require 'lodash' five = require('johnny-five') Oled = require('oled-js') font = require('oled-font-5x7') commons = require('pimatic-plugin-commons')(env) # Device class representing a Johnny Five OLED display class JohnnyFiveOledDisplay extends env.devices.Device attributes: {} # Create a new JohnnyFiveOledDisplay device # @param [Object] config device configuration # @param [JohnnyFivePlugin] plugin plugin instance # @param [Object] lastState state information stored in database constructor: (@config, @plugin, lastState) -> @id = @config.id @name = @config.name @rows = @config.rows || 2 @cols = @config.cols || 16 @debug = @plugin.config.debug || false @_base = commons.base @, @config.class oledOptions = width: 128 height: 64 if @config.address? and @config.address isnt "" oledOptions.address = @config.address # if @config.slavePin? and @config.slavePin isnt "" # oledOptions.slavePin = @config.slavePin @_base.debug "Oled config", oledOptions @board = @plugin.boardManager.getBoard(@config.boardId) super() @board.boardReady() .then( => @board.wait 3000, => @oled = new Oled(@board, five, oledOptions); @oled.clearDisplay() @oled.update(); # @oled.clearDisplay() # @oled.setCursor(0, 0); @oled.writeString(font, 1, '1234567890', 0, false, 2); @oled.update(); ) .catch ((error) => @_base.rejectWithError null, error ) destroy: () -> super()