Skip to content

tdillon/7

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Demo

Visit http://tdillon.github.io/7/demo.html for a demo of what information this library can produce.

Installation

You can use npm, jspm, or directly link the files as you see fit. The bundle file (dist/seven-segment.bundle.js) may be beneficial to you if you need a System.register version.

npm i seven-segment --save

After you have the library, import it.

import {Seven} from 'seven-segment';

Basic options

The default options give you a quintessential seven segment.

var x = new Seven();

Configuration Parameter

You can optionally pass a configuration object to the constructor. Each property is optional.

//import Digit if you want access to the enum for setting the digit type.
import {Seven, Digit} from 'seven-segment';

var x = new Seven({
  height: 50,
  angle: 0,
  ratioLtoW: 2,
  ratioLtoS: .5,
  digit: Digit.TWO
});

Setters

You can configure the Seven by using setters after the object has been instantiated.

var x = new Seven();
x.height = 20;  //or x.width = 20
x.angle = -25;
x.ratioLtoW = 4;
x.ratioLtoS = 5;
x.digit = Digit.SIX;

Getters

Each of the configuration properties are getters.

var x = new Seven();
console.log(
  x.height,
  x.width,
  x.angle,
  x.ratioLtoW,
  x.ratioLtoS,
  Digit[x.digit]
);

Exceptions

Setting the configuration properties to invalid values will cause an exception to be thrown. All properties expect a number, except for the digit property which expects a member of the Digit enum. Passing a string that can be converted to a number may work. Objects, nulls, and other 'non-numeric' values will throw exceptions. Setting a property to a number which would produce bad geometry will also throw an exception. You should wrap construction and property setters in try/catches if you are unsure of the validity of the settings.

//constructor throws an exception
var x = new Seven({angle: 'foo'});  //ERROR

//setting a property throws an exception
var x = new Seven();
x.angle = 89;  //ERROR, too sharp an angle produces bad geometry

Geometry

Finally, we've configured our Seven how we want it, now we can access the geometry.

var x = new Seven();

for (let s of x.segments) {  //Access the segments A-G
  //'on' specifies if the segment is used for the 'digit' specified
  if (s.on) {
    for (let p of s.points) {  //each segment has a 'point' array
      console.log(p.x, p.y);  //points have 'x' and 'y' properties
    }
  }
}

About

A seven segment display geometry library.

Resources

License

Stars

Watchers

Forks

Packages

No packages published