alphasign 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/alphasign.gemspec +1 -1
- data/lib/alphasign.rb +48 -17
- metadata +3 -3
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.2
|
data/alphasign.gemspec
CHANGED
data/lib/alphasign.rb
CHANGED
|
@@ -17,22 +17,19 @@ class AlphaSign
|
|
|
17
17
|
Preamble = [ ']', ']'].pack('x10ax10a')
|
|
18
18
|
# everything starts with this, nulls are to auto set baud on unit
|
|
19
19
|
StartHeader = Preamble + [ 0x01 ].pack('x20C')
|
|
20
|
-
#
|
|
21
|
-
# example and experience show "AA" is needed, other codes are as yet
|
|
22
|
-
# untested YMMV..I simply doubled the char listed in docs. only 'wtxt'
|
|
23
|
-
# actually works with anything else here
|
|
20
|
+
# only handlers for :wtxt implemented so far
|
|
24
21
|
StartCMD = {
|
|
25
|
-
:wtxt => [ 0x02, '
|
|
26
|
-
:rtxt => [ 0x02, '
|
|
27
|
-
:wfctn => [ 0x02, '
|
|
28
|
-
:rfctn => [ 0x02, '
|
|
29
|
-
:wstr => [ 0x02, '
|
|
30
|
-
:rstr => [ 0x02, '
|
|
31
|
-
:wdots => [ 0x02, '
|
|
32
|
-
:rdots => [ 0x02, '
|
|
33
|
-
:wadots => [ 0x02, '
|
|
34
|
-
:radots => [ 0x02, '
|
|
35
|
-
:bulletin => [ 0x02, '
|
|
22
|
+
:wtxt => [ 0x02, 'A' ].pack('CA'), # write text file
|
|
23
|
+
:rtxt => [ 0x02, 'B' ].pack('CA'), # read text file
|
|
24
|
+
:wfctn => [ 0x02, 'E' ].pack('CA'), # write special function
|
|
25
|
+
:rfctn => [ 0x02, 'F' ].pack('CA'), # read special function
|
|
26
|
+
:wstr => [ 0x02, 'G' ].pack('CA'), # write string file
|
|
27
|
+
:rstr => [ 0x02, 'H' ].pack('CA'), # read string file
|
|
28
|
+
:wdots => [ 0x02, 'I' ].pack('CA'), # write DOTS picture file
|
|
29
|
+
:rdots => [ 0x02, 'J' ].pack('CA'), # read DOTS picture file
|
|
30
|
+
:wadots => [ 0x02, 'M' ].pack('CA'), # write ALPHAVISON DOTS picture file
|
|
31
|
+
:radots => [ 0x02, 'N' ].pack('CA'), # read ALPHAVISON DOTS picture file
|
|
32
|
+
:bulletin => [ 0x02, 'O' ].pack('CA'), # write bulletin message
|
|
36
33
|
}
|
|
37
34
|
|
|
38
35
|
# Marker for start of mode config
|
|
@@ -62,6 +59,36 @@ class AlphaSign
|
|
|
62
59
|
|
|
63
60
|
Footer = [0x04].pack("C") # EOT end of transmission
|
|
64
61
|
|
|
62
|
+
# standard color codes, limited by hardware
|
|
63
|
+
Color = {
|
|
64
|
+
:red => [0x1c,0x31].pack("C2"),
|
|
65
|
+
:green => [0x1c,0x32].pack("C2"),
|
|
66
|
+
:amber => [0x1c,0x33].pack("C2"),
|
|
67
|
+
:dimred => [0x1c,0x34].pack("C2"),
|
|
68
|
+
:dimgreen => [0x1c,0x35].pack("C2"),
|
|
69
|
+
:brown => [0x1c,0x36].pack("C2"),
|
|
70
|
+
:orange => [0x1c,0x37].pack("C2"),
|
|
71
|
+
:yellow => [0x1c,0x38].pack("C2"),
|
|
72
|
+
:rainbow1 => [0x1c,0x39].pack("C2"),
|
|
73
|
+
:rainbow2 => [0x1c,0x41].pack("C2"),
|
|
74
|
+
:mix => [0x1c,0x42].pack("C2"),
|
|
75
|
+
:auto => [0x1c,0x43].pack("C2"),
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
# Character sets height & style
|
|
79
|
+
CharSet = {
|
|
80
|
+
:std5 => [0x1a,0x31].pack("C2"),
|
|
81
|
+
:std7 => [0x1a,0x33].pack("C2"),
|
|
82
|
+
:fancy7 => [0x1a,0x35].pack("C2"),
|
|
83
|
+
:std10 => [0x1a,0x36].pack("C2"),
|
|
84
|
+
:fullfancy => [0x1a,0x38].pack("C2"),
|
|
85
|
+
:fullstd => [0x1a,0x39].pack("C2"),
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
# speeds from slow to fast
|
|
89
|
+
Speed = [ [0x15].pack("C"), [0x16].pack("C"), [0x17].pack("C"),
|
|
90
|
+
[0x18].pack("C"), [0x19].pack("C") ]
|
|
91
|
+
|
|
65
92
|
# @param [String] device the serial device the sign is connected to
|
|
66
93
|
# for now we only speak rs232
|
|
67
94
|
def initialize (device = "/dev/ttyS0")
|
|
@@ -77,9 +104,13 @@ class AlphaSign
|
|
|
77
104
|
|
|
78
105
|
# we don't have an open yet so this still kludgey and enfoces using
|
|
79
106
|
# only :wtxt command as thats the only one we know we can do
|
|
80
|
-
def write (msg, position=:middle, mode=:
|
|
107
|
+
def write (msg, position=:middle, mode=:hold)
|
|
108
|
+
@fileLabel = [ 0x41 ].pack("C") # any value from 0x20 to 0x75
|
|
109
|
+
# except 0x30 which is reserved
|
|
110
|
+
# for "Priority Text" file
|
|
111
|
+
# according to docs
|
|
81
112
|
@alphaFormat = StartMode + Position[position] + Mode[mode]
|
|
82
|
-
@alphaHeader = StartHeader + @addr + StartCMD[:wtxt] + @alphaFormat
|
|
113
|
+
@alphaHeader = StartHeader + @addr + StartCMD[:wtxt] + @fileLabel + @alphaFormat
|
|
83
114
|
sp=SerialPort.new(@device,
|
|
84
115
|
Baud, DataBits, StopBits, Parity)
|
|
85
116
|
sp.write @alphaHeader
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: alphasign
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 31
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 1
|
|
9
|
-
-
|
|
10
|
-
version: 0.1.
|
|
9
|
+
- 2
|
|
10
|
+
version: 0.1.2
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Jon Proulx
|