papirus 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -8
- data/lib/papirus.rb +18 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a76933b098f5b78df7b2d885b938f171fa79896d
|
4
|
+
data.tar.gz: e8d561a393c6380ef13b0c674a4e62171dbd30de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97fcf810d33adf0868454ffd407a71ee2038032cec814a3bdc771302db9b9f1535d928c5c59b0c66456014495c0bb3e075e8e657d2c3c001b88d54ba630d4d22
|
7
|
+
data.tar.gz: d561835c1dfa3dfda5f73918bcccc5ef9cc210498cc137dc84ff1a179bb59b9ee37b352af94e9b5e9afa7f2de2b4a13e6d8b40485a1970a53bd0ab5ac6621230
|
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# papirus
|
2
2
|
|
3
|
-
|
3
|
+
Ruby gem to talk to the [PaPiRus](https://www.pi-supply.com/?s=papirus&post_type=product&tags=1&limit=5&ixwps=1) display from a Raspberry PI
|
4
4
|
|
5
|
-
|
5
|
+
Before you start playing make sure you got the display driver installed (gratis/edp-fuse) on your PI
|
6
6
|
|
7
|
-
## epaper fuse driver installation instructions (if you have not done that already ::)
|
8
7
|
```bash
|
8
|
+
ssh yourpi
|
9
9
|
sudo apt-get install libfuse-dev -y
|
10
10
|
|
11
11
|
git clone https://github.com/repaper/gratis.git
|
@@ -16,9 +16,9 @@ systemctl enable epd-fuse.service
|
|
16
16
|
systemctl start epd-fuse
|
17
17
|
```
|
18
18
|
|
19
|
-
You can find more detailed instructions and updates at the [https://github.com/repaper/gratis
|
19
|
+
You can find more detailed instructions and updates at the [gratis](https://github.com/repaper/gratis) repo
|
20
20
|
|
21
|
-
## gem installation (add sudo if your not
|
21
|
+
## gem installation (add sudo if your not using [RVM](https://rvm.io/))
|
22
22
|
|
23
23
|
```bash
|
24
24
|
$ gem install papirus
|
@@ -68,7 +68,7 @@ require 'papirus'
|
|
68
68
|
require 'papirus/rmagick'
|
69
69
|
|
70
70
|
display = PaPiRus::Display.new()
|
71
|
-
image = Magick::Image::read('/path/to/img/file.
|
71
|
+
image = Magick::Image::read('/path/to/img/file.[png|jpg|etc]').first
|
72
72
|
display.show(image.to_bit_stream(display.width, display.height))
|
73
73
|
```
|
74
74
|
|
@@ -142,11 +142,13 @@ end
|
|
142
142
|
If you want to test the gem, but don't have your PaPiRus available, you can do the following
|
143
143
|
|
144
144
|
* clone this repo
|
145
|
-
* run the createtestepd.sh script that is in the repo which creates the needed files and folders in /tmp/epd
|
146
145
|
* start irb
|
147
146
|
* require 'papirus'
|
147
|
+
The gem will create the epd_path test folder and will add all params for the 2.0 panel
|
148
148
|
* display = PaPiRus::Display.new(epd_path: '/tmp/epd')
|
149
|
-
|
149
|
+
When you want to add the 2.7 display panel, you would do
|
150
|
+
* display = PaPiRus::Display.new(epd_path: '/tmp/epd', width: 264, height: 176, panel: 'EPD 2.7')
|
151
|
+
Now play with the examples above
|
150
152
|
* when you run `display.show` the **fake** display /tmp/epd/LE/display is filled with your image
|
151
153
|
* now you can use a bin editor like xxd to have a look at the result: `xxd -b /tmp/epd/LE/display`
|
152
154
|
* or, use `image.inspect_bitstream(display.width, display.height)` to dump the image as 1's and 0's to the terminal
|
@@ -165,6 +167,7 @@ Where
|
|
165
167
|
|
166
168
|
## TODO
|
167
169
|
|
170
|
+
* tests
|
168
171
|
* make the image.to_bit_stream routine faster (as it is now to slow to do animations with partial updates)
|
169
172
|
* add support for reading the temperature of the display
|
170
173
|
* add support for changing the update rate
|
data/lib/papirus.rb
CHANGED
@@ -12,7 +12,23 @@ module PaPiRus
|
|
12
12
|
# or 'C' for clearing the screen
|
13
13
|
attr_reader :allowed_commands
|
14
14
|
|
15
|
-
def initialize(epd_path: '/dev/epd', width: 200, height: 96, panel: 'EPD 2.0', cog:
|
15
|
+
def initialize(epd_path: '/dev/epd', width: 200, height: 96, panel: 'EPD 2.0', cog: 2, film: 231, auto: false, inverse: false, rotation: 0)
|
16
|
+
if epd_path != '/dev/epd'
|
17
|
+
# assuming we use a test dir and it is not created yet
|
18
|
+
require 'fileutils'
|
19
|
+
raise 'epd test path should be located somewhere in /tmp/' unless epd_path =~ /\/tmp\/\w+/
|
20
|
+
if File.exists?(epd_path)
|
21
|
+
#remove old test dir as it may be a different screen size/type
|
22
|
+
FileUtils.rm_f(epd_path)
|
23
|
+
end
|
24
|
+
FileUtils.mkdir_p(File.join([epd_path, 'LE']))
|
25
|
+
%w{command LE/display, LE/display_inverse}.each do |file|
|
26
|
+
FileUtils.touch File.join([epd_path, file])
|
27
|
+
end
|
28
|
+
File.open(File.join([epd_path, 'panel']), 'w+') do |file|
|
29
|
+
file.write %{#{panel} #{width}x#{height} COG #{cog} FILM #{film}\n}
|
30
|
+
end
|
31
|
+
end
|
16
32
|
#transver all vars to attr's
|
17
33
|
method(__method__).parameters.each do |type, k|
|
18
34
|
next unless type == :key
|
@@ -24,7 +40,7 @@ module PaPiRus
|
|
24
40
|
end
|
25
41
|
|
26
42
|
def show(*args)
|
27
|
-
raise 'you need to
|
43
|
+
raise 'you need to at least provide raw imagedata' if args.length == 0
|
28
44
|
data = args[0]
|
29
45
|
updatemethod = args[1] || 'U'
|
30
46
|
File.open(File.join(@epd_path, "LE", "display#{@inverse ? '_inverse': ''}"), 'wb') do |io|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: papirus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mischa Molhoek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: shoulda
|
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
117
|
version: '0'
|
118
118
|
requirements: []
|
119
119
|
rubyforge_project:
|
120
|
-
rubygems_version: 2.
|
120
|
+
rubygems_version: 2.5.1
|
121
121
|
signing_key:
|
122
122
|
specification_version: 4
|
123
123
|
summary: ruby gem to access the PaPiRus display
|