backup before travel

This commit is contained in:
trav 2022-08-17 01:45:37 -04:00
parent 2a5427fadb
commit 8e87c75c3a
3 changed files with 47 additions and 32 deletions

View File

@ -72,6 +72,13 @@ pip3 install spidev tinydb pillow pyqrcode qrcode --no-cache-dir
probably also need to install _some_ of the libraries at https://github.com/adafruit/Python-Thermal-Printer but not all probably also need to install _some_ of the libraries at https://github.com/adafruit/Python-Thermal-Printer but not all
`sudo apt-get install git cups build-essential libcups2-dev libcupsimage2-dev python3-serial python3-pil python-unidecode` maybe don't need alllll of it `sudo apt-get install git cups build-essential libcups2-dev libcupsimage2-dev python3-serial python3-pil python-unidecode` maybe don't need alllll of it
Do need to do this to install the printer:
```sudo lpadmin -p ZJ-58 -E -v serial:/dev/usb/lp0?baud=19200 -m zjiang/ZJ-58.ppd
sudo lpoptions -d ZJ-58```
certainly CUPS will cause you issues and you will need to reference https://www.cups.org/doc/man-cupsd.conf.html
Now need to install an ARMv6 compatible NPM. This should work: Now need to install an ARMv6 compatible NPM. This should work:
``` ```
curl -o node.tar.gz https://unofficial-builds.nodejs.org/download/release/v13.8.0/node-v13.8.0-linux-armv6l.tar.gz curl -o node.tar.gz https://unofficial-builds.nodejs.org/download/release/v13.8.0/node-v13.8.0-linux-armv6l.tar.gz
@ -81,6 +88,10 @@ sudo cp -r node-v13.8.0-linux-armv6l/* /usr/local
If that doesn't work you can [read more about installing node on arm v6 architecture](https://www.thepolyglotdeveloper.com/2018/03/install-nodejs-raspberry-pi-zero-w-nodesource/). Also [the builds are here](https://unofficial-builds.nodejs.org/). If that doesn't work you can [read more about installing node on arm v6 architecture](https://www.thepolyglotdeveloper.com/2018/03/install-nodejs-raspberry-pi-zero-w-nodesource/). Also [the builds are here](https://unofficial-builds.nodejs.org/).
might need to run `curl https://get.pimoroni.com/buttonshim | bash` to get the buttons to work
<br> <br>
#### clone the repo #### clone the repo
ideally right in your home directory. ideally right in your home directory.
@ -88,7 +99,12 @@ ideally right in your home directory.
`git clone https://git.laboratoryb.org/trav/ebb.git` `git clone https://git.laboratoryb.org/trav/ebb.git`
#### setup SSB #### setup SSB
I can't remember how I got ssb-server to work, `sudo npm install -g ssb-server` throws `illegal instruction`. Something to do with a woknky version of Node. So my **extremely** hacky workaround is to unzip `ssb-server.zip` from the install directory into `/usr/local/lib/node_modules/`. This is v bad and needs to be fixed asap. [SSB-server](https://github.com/ssbc/ssb-server) is made available via the MIT licese. I can't remember how I got ssb-server to work, `sudo npm install -g ssb-server` throws `illegal instruction`. Something to do with a woknky version of Node.
##### My **extremely** hacky workaround:
1. `sudo npm install -g ssb-server` to add all the npm-side ssb stuff
2. unzip `ssb-server.zip` from the install directory into `/usr/local/lib/node_modules/` to actually have a working SSB server.
This is v bad and needs to be fixed asap. [SSB-server](https://github.com/ssbc/ssb-server) is made available via the MIT licese.
As long as the EBB repo is at `/home/pi/ebb` the following service files should be configured fine. Otherwise you gotta edit ssb.service and ebb-carousel.service and update the `WorkingDirectory` field. As long as the EBB repo is at `/home/pi/ebb` the following service files should be configured fine. Otherwise you gotta edit ssb.service and ebb-carousel.service and update the `WorkingDirectory` field.

View File

@ -48,12 +48,12 @@ def addFile(pathToImage, pathToDB, SSBidentify, composite):
# get the ssb json from the bash command we just ran # get the ssb json from the bash command we just ran
newssb=result.stdout.read() newssb=result.stdout.read()
# iterate through new ssb posts # iterate through new ssb posts
for decoded in iterparse.parsy(newssb): for decoded in iterparse.parsy(newssb):
# get the key for the post we just made # get the key for the post we just made
key = decoded['key'] key = decoded['key']
return key return key

View File

@ -239,9 +239,9 @@ while True:
half3 = half1.resize(newsize) half3 = half1.resize(newsize)
half1 = half1.convert("1") half1 = half1.convert("1")
half1.save(bmpath1) half1.save(bmpath1)
half2 = im2.convert("1") half2 = half2.convert("1")
half2.save(bmpath2) half2.save(bmpath2)
half3 = im3.convert("1") half3 = half3.convert("1")
half3.save(bmpath3) half3.save(bmpath3)
@ -301,22 +301,23 @@ while True:
# if we're printing, generate image to print # if we're printing, generate image to print
if button_flag == "button_1" or button_flag == "button_2" or button_flag == "button_3": if button_flag == "button_1" or button_flag == "button_2" or button_flag == "button_3":
#generate unique file_name #generate unique file_name
unique = uuid.uuid4() unique = uuid.uuid4()
unique = str(unique) unique = str(unique)
composite = imagesPath + unique + '.jpg' composite = imagesPath + unique + '.jpg'
# concatenate images and save concatenated image at composite (is filepath) # concatenate images and save concatenated image at composite (is filepath)
header = Image.open(composite) headerIsAt = imagesPath + 'header.jpg'
im1 = Image.open(jpgpath1) header = Image.open(headerIsAt)
im2 = Image.open(jpgpath2) im1 = Image.open(jpgpath1)
im3 = Image.open(jpgpath3) im2 = Image.open(jpgpath2)
im3 = Image.open(jpgpath3)
get_concat_v(header, im1).save(composite) get_concat_v(header, im1).save(composite)
concaz = Image.open(conposite) concaz = Image.open(composite)
get_concat_v(concaz, im2).save(composite) get_concat_v(concaz, im2).save(composite)
concaz = Image.open(conposite) concaz = Image.open(composite)
get_concat_v(concaz, im3).save(composite) get_concat_v(concaz, im3).save(composite)
concaz = Image.open(conposite) concaz = Image.open(composite)
#post to ssb and print #post to ssb and print
@ -355,15 +356,18 @@ while True:
#generate unique file_name #generate unique file_name
unique = uuid.uuid4() unique = uuid.uuid4()
unique = str(unique) unique = str(unique)
FULLcomposite = imagesPath + unique + '.jpg' FULLcomposite = imagesPath + unique + '.jpg'
get_concat_v(concaz, (get_concat_h(qrInstruct, img))).save(FULLcomposite)
# bash lp of Fullcomposite
get_concat_v(concaz, (get_concat_h(qrInstruct, img))).save(FULLcomposite)
# print Fullcomposite
try:
result = subprocess.call('lp' + Fullcomposite, shell=True)
except:
print('traceback.format_exc():\n%s' % traceback.format_exc())
exit()
@ -412,11 +416,6 @@ while True:
button_flag == "null" button_flag == "null"
#nothin! loop around... exitPhotoMode still false #nothin! loop around... exitPhotoMode still false
try:
result = subprocess.call(['raspistill', '-rot', '180', '-o', jpgpath3, '-vf', '-hf', '-w', '600', '-h', '800', '-t', '1000'])
except:
print('traceback.format_exc():\n%s' % traceback.format_exc())
exit()
#reshoot #reshoot