Skip to content

kelly/flipdisc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flipdisc

A javascript library for flip dot, flip disc, and flip digit displays.

panel

Examples

Install

$ npm install flipdisc

Simple Usage

import { createDisplay } from 'flipdisc'

const device = '/dev/cu.usbserial-AB0OJSKG'
const display = createDisplay([[1], [2]], device)

// wait for the display to connect
await display.ready()

display.send(frameData)

Advanced Usage

import { createDisplay, Panels } from 'flipdisc'

// layout as a 2D array of panel addresses
const layout = [[1, 3, 5], [2, 4, 6]]

// supports multiple RS485 devices
const dev = [{
  path: '/dev/cu.usbserial-AB0OJSKG',
  addresses: [1, 3, 5],
  baudRate: 57600
}, {
  path: '/dev/cu.usbserial-AB0ODKET',
  addresses: [2, 4, 6],
  baudRate: 57600
}]

// or network devices
const devices = [{
  path: 'tcp://192.168.0.100:3000',
  addresses: [1, 2, 3, 4, 5, 6],
}]


const opt = {
  isMirrored: true,
  rotation: 90,
  panel: {
    width: 28,
    height: 7,
    type: Panels.AlfaZetaPanel
  }
}

// or flipdigit
const opt = {
  panel: Panels.AlfaZetaSegmentPanel
}


const display = createDisplay(layout, dev, opt)

Methods

// send a 2D array of frame data (0 = not-flipped, 1 = flipped)
display.send(frameData)

// also accepts a flat 1D array (auto-reshaped to display dimensions)
display.send([0, 1, 1, 0, ...])

// also accepts imageData buffer from a gl or canvas instance
display.send(imageData)

// update a region of the display at position (x, y)
display.sendRegion([[1, 1], [1, 1]], 10, 3)

// for segment displays: send data for vertical and horizontal segments
display.sendSegmentData(verticalSegmentData, horizontalSegmentData)

// clear the display (all zeros)
display.clear()

// fill the display (all ones)
display.fill()

// close all device connections
display.close()

// set inverted
display.setInverted(true)

Properties

display.width           // display width (accounts for rotation)
display.height          // display height (accounts for rotation)
display.content         // current display data
display.isConnected     // connection status
display.info            // general display info

Events

// wait for the display to be ready
await display.ready()

// or use events
display.on('connected', () => { })
display.on('disconnected', () => { })
display.on('error', (err) => { })

Requirements

About

A javascript library for flipdot and flipdisc displays

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors