papirus 0.3.1 → 0.3.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.
- 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
|