Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,3 @@ uritemplate==4.1.1
urllib3==2.2.1
RPi.GPIO==0.7.1
RPLCD==1.3.0
requests==2.32.3
2 changes: 1 addition & 1 deletion src/button/button.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class Button:
def __init__(self, pin_in: PinIN, pin_out: PinOUT) -> None:
self.pin_in = pin_in
self.pin_out = pin_out
GPIO.setmode(GPIO.BCM)
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(self.pin_in, GPIO.IN)
GPIO.setup(self.pin_out, GPIO.OUT)
Expand Down
37 changes: 0 additions & 37 deletions src/connection/base.py

This file was deleted.

16 changes: 10 additions & 6 deletions src/display/display_melton.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@


class Display:
def __init__(self):
rs_pin = 26
e_pin = 19
data_pins = [13, 6, 5, 11]
def __init__(self, rs_pin, e_pin, data_pins, cols=16, rows=2):
# Настройка GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

# Настройка дисплея
self.lcd = CharLCD(pin_rs=rs_pin, pin_rw=None, pin_e=e_pin, pins_data=data_pins,
Expand All @@ -25,6 +25,10 @@ def close(self):


if __name__ == '__main__':
display = Display()
display.clear()
rs_pin = 26
e_pin = 19
data_pins = [13, 6, 5, 11]

display = Display(rs_pin=rs_pin, e_pin=e_pin, data_pins=data_pins)

display.display_message("start")
92 changes: 37 additions & 55 deletions src/main.py
Original file line number Diff line number Diff line change
@@ -1,78 +1,60 @@
from datetime import datetime
import RPI.GPIO as GPIO
from RPLCD.gpio import CharLCD
from time import sleep

from scanner import barcode_scanner
from scales import getting_weight
from fire_db import FireDataBase
from models import Container, ContainerData
from constants import KEY, COLLECTION
from button import Button, PinOUT, PinIN
from display import MainWindow
from display.display_melton import Display
from connection.base import APIConnection


def _updating(key: int, weight: int) -> None:
data = ContainerData(name=str(key), weight=weight, barcode_id=key,
container_id=0, density=0, date=datetime.now())
container = Container(key=key, data=data)
database.update(COLLECTION, container)


GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
def _creating(key: int, weight: int) -> None:
container_id = len(database.list(collection=COLLECTION)) + 1
data = ContainerData(name=str(key), weight=weight, barcode_id=key,
container_id=container_id, density=0, date=datetime.now())
container = Container(key=key, data=data)
database.create(COLLECTION, container)


def scanner_check():
global is_scanner
key = barcode_scanner()
if key:
is_scanner = True
return key
else:
is_scanner = False
def main(window_instance: MainWindow) -> None:

key = barcode_scanner()
window_instance.update_info(barcode=key)

def scales_check():
global is_scale
weight = getting_weight()
if weight > 0:
is_scale = True
return weight
if key:
weight = getting_weight()
window_instance.update_info(barcode=key, weight=weight)

if database.get(str(key), COLLECTION):
_updating(key, weight)
print('update')
else:
_creating(key, weight)
print('create')
else:
is_scale = False


def main():
global is_scanner
global is_scale

key = 0
while not is_scanner:
key = scanner_check()
print("отсканируйте еще раз")
print(key)

print("положите на весы")

weight = ""
while not is_scale:
weight = scales_check()
print("положите еще раз на весы")
print(weight)
print("данные занесены в базу")





is_scanner = False
is_scale = False
print("Видимо вы считали QR код, а не штрих код!")


if __name__ == "__main__":
# pin_in = PinIN(40)
# pin_out = PinOUT(38)
# button = Button(pin_in, pin_out)
display = Display()
display.clear()
database = FireDataBase(KEY)
pin_in = PinIN(40)
pin_out = PinOUT(38)
button = Button(pin_in, pin_out)
window = MainWindow()

try:
while True:
main()
if button.is_pressed():
main(window)
except KeyboardInterrupt:
pass
button.cleanup()
window.quit()