final project
This commit is contained in:
BIN
Binary file not shown.
Executable
+22
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDqjCCApKgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBiDEpMCcGA1UECgwgSEFS
|
||||
VElORyBJVCBTZXJ2aWNlcyBHbWJIICBDby4gS0cxDjAMBgNVBAsMBUlULUlTMRIw
|
||||
EAYDVQQHDAlFc3BlbGthbXAxDDAKBgNVBAgMA05SVzELMAkGA1UEBhMCREUxHDAa
|
||||
BgNVBAMME0hBUlRJTkcgV2ViIEdhdGV3YXkwHhcNMTYxMjIxMTU0NzA0WhcNMzYx
|
||||
MjIxMTU0NzA0WjCBiDEpMCcGA1UECgwgSEFSVElORyBJVCBTZXJ2aWNlcyBHbWJI
|
||||
ICBDby4gS0cxDjAMBgNVBAsMBUlULUlTMRIwEAYDVQQHDAlFc3BlbGthbXAxDDAK
|
||||
BgNVBAgMA05SVzELMAkGA1UEBhMCREUxHDAaBgNVBAMME0hBUlRJTkcgV2ViIEdh
|
||||
dGV3YXkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCm6bFPeLYge36x
|
||||
WAsif9qMKEyJtrgAhtAbRWgmMWZW3s2TUMkL9Ovi5M9jc+W0V5aGCS8ueul5o9z2
|
||||
acTV9FT5DDBRXGEEMITpzGh8iRPZsFrNStk8L9oEXzjj87OE+n/gvnCe7KALzsUR
|
||||
UQ+FDKLGQjMzHNTwUtadRZwm+MAP02l0izTQF7ny3zpRdco8faLvSVITkX9a6N5E
|
||||
N6HfftOeoQ9xMolwielanaEbcoUKJlmV7cmAw0BjezE8CT5J0MEcaGqw6ek3pCk5
|
||||
Glt7jk+JE4X3UdUB9M60P+6pgZEmpbeoRXQqIKqrS8vC0cn0RiBPcyeoBXy0sqvK
|
||||
Aun+2m+DAgMBAAGjHTAbMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqG
|
||||
SIb3DQEBCwUAA4IBAQBarWNg89Li73TnwQly0Pn6n+/xa4P9wfDjueotoBqFY1BH
|
||||
CWNPxQxgZoDoNrbj0HXbRPGs0KAXp0KJGES/SkgFwtByH1e2eCM3BWr9FfLJvU+e
|
||||
AuGPHtqBHMxXxFEWpk2PMVconP1G3wlfU36Gd/Ujnac0wDqjkkYrVJzSNjhWJ73X
|
||||
4TOLKLDyP01Q0I1mbKT6LNPmG/kBt0zWa513tt+PaU1fCejzFM1FBng2KPhmKoJn
|
||||
1fNZHJVUpVf0vo9Mf3QztMvpVuZ9uicK/B5qHIrfvCB/XD8hDmRfrvZF0cQMSp0D
|
||||
3JYs2emjeYBaH0phQtDfRJ8OUMe15DRBa7dy75hP
|
||||
-----END CERTIFICATE-----
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHBzCCBO+gAwIBAgITQwAAAAkJewLoz5nxpgADAAAACTANBgkqhkiG9w0BAQsF
|
||||
ADBKMRUwEwYKCZImiZPyLGQBGRYFSW50cmExFzAVBgoJkiaJk/IsZAEZFgdIQVJU
|
||||
SU5HMRgwFgYDVQQDEw9IQVJUSU5HIFJvb3QgQ0EwHhcNMTYwMTIyMTI1MjAxWhcN
|
||||
MjQwMTIyMTMwMjAxWjBOMRUwEwYKCZImiZPyLGQBGRYFaW50cmExFzAVBgoJkiaJ
|
||||
k/IsZAEZFgdoYXJ0aW5nMRwwGgYDVQQDExNIQVJUSU5HIElzc3VpbmcgQ0ExMIIB
|
||||
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAutoC7Q/AmRR+I/s7YRsotka7
|
||||
kgCfSkRINNeIut+0gv4GchmztbuLraIz7RpQbBW4pRPWJT4J5fVzBN6HSuGv6VBB
|
||||
H72MHD3cTAbPpCeAvMHQVYCt+nfM/5w4WnOfYpjSIcV3rf6d/cOWKESpQs81F3xz
|
||||
TNbITWP3SiCeRuxdL4U+1LvE1vj2O2mqG5kkXR51XWzgC4oOh2aR9y1TY48AmAva
|
||||
WOGBbAKz8QAV8dnW7kq+r9UmRxRisSVsLbWasiTfwndYacBQQK3Iw8YyJK0DbMqS
|
||||
rBbY5kkRoF48t4JuR3T7VGlGqhKlDg9AxxOw1HkNtBB3sQw05tUZhPtOxtyORQID
|
||||
AQABo4IC4DCCAtwwEgYJKwYBBAGCNxUBBAUCAwMAAzAjBgkrBgEEAYI3FQIEFgQU
|
||||
bxiNOHg8qzcCUYJasvRJYn+CpnUwHQYDVR0OBBYEFNUJktkZLIVxRG2f4lr9qFWs
|
||||
7SM5MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNV
|
||||
HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFGetmY4Lmx9ZU/ng6WF5pRSGvFyJMIIB
|
||||
CwYDVR0fBIIBAjCB/zCB/KCB+aCB9oYyaHR0cDovL3d3dy5oYXJ0aW5nLmNvbS9w
|
||||
a2kvSEFSVElORyUyMFJvb3QlMjBDQS5jcmyGgb9sZGFwOi8vL0NOPUhBUlRJTkcl
|
||||
MjBSb290JTIwQ0EsQ049Y2FoYXJ0aW5nMSxDTj1DRFAsQ049UHVibGljJTIwS2V5
|
||||
JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1oYXJ0
|
||||
aW5nLERDPWludHJhP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmpl
|
||||
Y3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCCARcGCCsGAQUFBwEBBIIBCTCC
|
||||
AQUwTAYIKwYBBQUHMAKGQGh0dHA6Ly93d3cuaGFydGluZy5jb20vcGtpL2NhaGFy
|
||||
dGluZzFfSEFSVElORyUyMFJvb3QlMjBDQSgzKS5jcnQwgbQGCCsGAQUFBzAChoGn
|
||||
bGRhcDovLy9DTj1IQVJUSU5HJTIwUm9vdCUyMENBLENOPUFJQSxDTj1QdWJsaWMl
|
||||
MjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERD
|
||||
PWhhcnRpbmcsREM9aW50cmE/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVjdENsYXNz
|
||||
PWNlcnRpZmljYXRpb25BdXRob3JpdHkwDQYJKoZIhvcNAQELBQADggIBAGGWPYKM
|
||||
Kzh7KKiNgMKbPJH25JV201GDMOUEwmxW1umfbgrAtbHWfpCfGzbk6A8ekK/9A6yk
|
||||
fCj35WvJyB1L6lGbaAOJjC4loI9XQsbQokGJ+8SsUiVFABx63idXKVqBrbtpnj0L
|
||||
XY8RQikTbvvXZNHBmMlo6dZ6FDn+xHHKSTuISf88UTJE/X6beAiMe4m3gT4loiN1
|
||||
u9L987TvW6FBbstRFGjWaXX7dQA1JzyQaoM4QJNGU2ZCTdF+8oOYy7abwqHr66f+
|
||||
bHkTd0qXMA50T5hbQmgRc5usgHUR4RtcTFu636YDeS0fi/x/lwe1UygTcEBSQA5U
|
||||
TpJwjE3lX7aupdgF+g9hNBoFCI0HGnhzZDv4k1ugZYK533NleeKThmSWPmssxExb
|
||||
siuly872stkotB/9sCEb5jbT2QnjPCIyxhGeFmHnDpPXrYlhcfgqpgA81NDFJ2Bz
|
||||
McPf2qP+/uiPjbqbX6CG1cTF6QGuGdbSkLaH5cj2Pn9i9Mqzkb7qSB09wNiSI4B/
|
||||
/GzGKnal+1vIC78Y42FOU+b9WBegDLuNuWliQSZRcRGCj/CcegUwuGzOWf0Mc2SG
|
||||
I1A5UI4Q8arg1RAXggqSOjYNAtdgl6s8wRpwzv55BHAkxvCe2/0r7p62zSfsvM5k
|
||||
OIhrHDBIkA5bND00QUuVNf6pMb4sjN0d4cna
|
||||
-----END CERTIFICATE-----
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
Binary file not shown.
+21
@@ -0,0 +1,21 @@
|
||||
Linux CUPS drivers for POS printer
|
||||
|
||||
The following CUPS drivers are included here.
|
||||
|
||||
ctzpos-cups_1.x.x-x_i386.deb - Debian (32 bit)
|
||||
ctzpos-cups_1.x.x-x_amd64.deb - Debian (64 bit)
|
||||
ctzpos-cups_1.x.x-x_armhf.deb - Raspberry Pi OS (32bit)
|
||||
ctzpos-cups_1.x.x-x_arm64.deb - Raspberry Pi OS (64bit)
|
||||
|
||||
ctzpos-cups-1.x.x-x.i586.rpm - Red Hat (32bit)
|
||||
ctzpos-cups-1.x.x-x.x86_64.rpm - Red Hat (64bit)
|
||||
|
||||
ctzpos-cups-1.x.x-x.src.rpm - CUPS driver source code in rpm format
|
||||
|
||||
"deb" file is for Debian and it can be used on Ubuntu etc.
|
||||
"rpm" file is for Red Hat and it can be used on CentOS, Fedora etc.
|
||||
|
||||
Source code is inlucded to use CUPS driver on other Linux distribution.
|
||||
Basic explanation for driver compile and driver installation is on following site.
|
||||
http://www.citizen-systems.co.jp/en/printer/download/driver-cups-source
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Executable
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Executable
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,154 @@
|
||||
import rdm6300
|
||||
import os, time
|
||||
import logging
|
||||
from gpiozero import OutputDevice
|
||||
from multiprocessing import Process
|
||||
import requests
|
||||
import subprocess
|
||||
import urllib3
|
||||
import threading
|
||||
import urllib.parse
|
||||
urllib3.disable_warnings()
|
||||
|
||||
# Configure logging
|
||||
logging.basicConfig(filename='./data/log.txt', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
||||
|
||||
def config():
|
||||
import config
|
||||
|
||||
def post_backup_data():
|
||||
logging.info("Reading backup data from tag.txt...")
|
||||
try:
|
||||
with open("./data/tag.txt", "r") as file:
|
||||
lines = file.readlines()
|
||||
|
||||
remaining_lines = lines[:]
|
||||
|
||||
for line in lines:
|
||||
line = line.strip()
|
||||
if line:
|
||||
logging.info(f"Posting backup data: {line}")
|
||||
try:
|
||||
response = requests.post(line, verify=False, timeout=3)
|
||||
logging.info("Request sent, awaiting response...")
|
||||
response.raise_for_status() # Raise an error for bad status codes
|
||||
logging.info("Data posted successfully: %s", response.text)
|
||||
remaining_lines.remove(line + "\n")
|
||||
except requests.exceptions.Timeout:
|
||||
logging.warning("Request timed out.")
|
||||
break
|
||||
except requests.exceptions.RequestException as e:
|
||||
logging.error("An error occurred: %s", e)
|
||||
break
|
||||
|
||||
with open("./data/tag.txt", "w") as file:
|
||||
file.writelines(remaining_lines)
|
||||
logging.info("Backup data updated.")
|
||||
|
||||
except FileNotFoundError:
|
||||
logging.warning("No backup file found.")
|
||||
except Exception as e:
|
||||
logging.error("An error occurred while reading the backup file: %s", e)
|
||||
|
||||
def check_internet_connection():
|
||||
hostname = "10.76.140.17" # "https://google.com"
|
||||
cmd_block_wifi = 'sudo rfkill block wifi'
|
||||
cmd_unblock_wifi = 'sudo rfkill unblock wifi'
|
||||
logging.info('Internet connection check loaded')
|
||||
|
||||
def manage_wifi_connection():
|
||||
if var1 == 0:
|
||||
logging.info("Internet is up! Waiting 45 minutes.")
|
||||
post_backup_data()
|
||||
time.sleep(2700)
|
||||
else:
|
||||
os.system(cmd_block_wifi)
|
||||
logging.info('System is rebooting WiFi, please wait until it finishes the job 20 minutes')
|
||||
time.sleep(1200) # 20 minutes
|
||||
os.system(cmd_unblock_wifi)
|
||||
|
||||
while True:
|
||||
response = os.system("ping -c 1 " + hostname)
|
||||
if response == 0:
|
||||
var1 = 0
|
||||
manage_wifi_connection()
|
||||
|
||||
else:
|
||||
var1 = 1
|
||||
manage_wifi_connection()
|
||||
|
||||
# Start the internet connection check in a separate process
|
||||
internet_check_process = Process(target=check_internet_connection)
|
||||
internet_check_process.start()
|
||||
url = "10.76.140.17/iweb_v2/index.php/traceability/production" # pentru cazul in care raspberiul nu are sistem de prezenta
|
||||
# Launch Chromium with the specified URLs
|
||||
subprocess.Popen(["chromium", "--test-type", "--noerrors", "--kiosk", "--start-fullscreen", "--unsafely-treat-insecure-origin-as-secure=http://10.76.140.17", url], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, stdin=subprocess.DEVNULL, start_new_session=True)
|
||||
|
||||
info = "0"
|
||||
|
||||
def post_info(info):
|
||||
logging.info("Starting to post data...")
|
||||
info1 = info.strip() # Remove any leading/trailing whitespace, including newlines
|
||||
try:
|
||||
response = requests.post(info1, verify=False, timeout=3)
|
||||
logging.info("Request sent, awaiting response...")
|
||||
response.raise_for_status() # Raise an error for bad status codes
|
||||
logging.info("Data posted successfully: %s", response.text)
|
||||
except requests.exceptions.Timeout:
|
||||
logging.warning("Request timed out. Saving data to backup file.")
|
||||
with open("./data/tag.txt", "a") as file: # Open in append mode
|
||||
file.write(info)
|
||||
logging.info("Value %s was saved to tag.txt", info)
|
||||
except requests.exceptions.RequestException as e:
|
||||
logging.error("An error occurred: %s", e)
|
||||
with open("./data/tag.txt", "a") as file: # Open in append mode
|
||||
file.write(info)
|
||||
logging.info("Value %s was saved to tag.txt", info)
|
||||
|
||||
def post_info_thread(info):
|
||||
thread = threading.Thread(target=post_info, args=(info,))
|
||||
thread.start()
|
||||
|
||||
led1 = OutputDevice(23)
|
||||
led2 = OutputDevice(24)
|
||||
name = "idmasa"
|
||||
logging.info(f"Variabila Id Masa A fost initializata", name)
|
||||
f = open("./data/idmasa.txt", "r") # deschid fisierul
|
||||
name = f.readline().strip() # citesc toate liniile
|
||||
f.close() # inchid fisierul
|
||||
logging.info(name)
|
||||
|
||||
class Reader(rdm6300.BaseReader):
|
||||
global info
|
||||
def card_inserted(self, card):
|
||||
if card.value == 12886709:
|
||||
logging.info("Inserting Config Card")
|
||||
return
|
||||
# config()
|
||||
afisare = time.strftime("%Y-%m-%d&%H:%M:%S")
|
||||
date = 'https://dataswsibiusb01.sibiusb.harting.intra/RO_Quality_PRD/api/record/' + name + '/' + str(card.value) + "/1/" + afisare + "\n"
|
||||
info = date
|
||||
logging.info(info)
|
||||
post_info_thread(info)
|
||||
led1.on()
|
||||
logging.info(f"card inserted {card}")
|
||||
|
||||
def card_removed(self, card):
|
||||
if card.value == 12886709:
|
||||
logging.info("Removing Config card")
|
||||
return
|
||||
# config()
|
||||
afisare=time.strftime("%Y-%m-%d&%H:%M:%S")
|
||||
date='https://dataswsibiusb01.sibiusb.harting.intra/RO_Quality_PRD/api/record/'+name+'/'+str(card.value)+"/0/"+afisare+"\n"
|
||||
info = date
|
||||
logging.info(info)
|
||||
post_info_thread(info)
|
||||
led1.off()
|
||||
logging.info("Card removed")
|
||||
|
||||
|
||||
try:
|
||||
r = Reader('/dev/ttyS0')
|
||||
except:
|
||||
r = Reader('/dev/ttyAMA0')
|
||||
r.start()
|
||||
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
# Instalare certificate
|
||||
echo -e "\e[1;32m Copiem si instalam certificatele Harting \e[0m"
|
||||
sudo mkdir /usr/local/share/ca-certificates/Harting
|
||||
sudo cp -R /home/pi/Desktop/Prezenta/Files/reposytory/Harting/ /usr/local/share/ca-certificates/Harting/
|
||||
|
||||
sudo update-ca-certificates
|
||||
sleep 3
|
||||
echo -e "\e[1;32m Instalam Libnss3-tool ca sa actualizam certificatele in Browser \e[0m"
|
||||
sudo apt install libnss3-tools
|
||||
echo -e "\e[1;32m Libnss3-tools este instalat \e[0m"
|
||||
echo -e "\e[1;32m Cream baza de date pentru certutil \e[0m"
|
||||
#sudo mkdir -p $HOME/.pki/nssdb
|
||||
#sudo certutil -d $HOME/.pki/nssdb -N --empty-password
|
||||
echo -e "\e[1;32m Baza de date a fost creata \e[0m"
|
||||
echo -e "\e[1;32m Actualizam Certificate \e[0m"
|
||||
certutil -d sql:$HOME/.pki/nssdb -A -t "CT,C,C" -n HA_MWG_new_cert -i /etc/ssl/certs/HA_MWG_new_cert.pem
|
||||
echo "cert 1 ok"
|
||||
sleep 3
|
||||
certutil -d sql:$HOME/.pki/nssdb -A -t "CT,C,C" -n HartingIssuingCA1.pem -i /etc/ssl/certs/HartingIssuingCA1.pem
|
||||
echo "cert 2 Ok"
|
||||
sleep 3
|
||||
certutil -d sql:$HOME/.pki/nssdb -A -t "CT,C,C" -n HartingRootCA.pem -i /etc/ssl/certs/HartingRootCA.pem
|
||||
echo "cert 3 ok"
|
||||
echo -e "\e[1;32m Certificatele au fost instalate \e[0m"
|
||||
sleep 3
|
||||
certutil -d sql:$HOME/.pki/nssdb -L
|
||||
sleep 3
|
||||
@@ -0,0 +1,219 @@
|
||||
# config py este gandit pentru a verifica configurarile raspberiului
|
||||
# verifica hostname-ul si il afiseaza
|
||||
# verifica ce nume are masa si o afiseaza
|
||||
# verifica daca masa este configurata cu sistem de prezenta operator
|
||||
# verifica daca imprimanta este instalata corespunzator
|
||||
|
||||
import os, time, socket, cups, subprocess
|
||||
import FreeSimpleGUI as psg
|
||||
import FreeSimpleGUI as sg
|
||||
from multiprocessing import Process
|
||||
|
||||
|
||||
|
||||
# import socket
|
||||
host = socket.gethostname() # luam numele de host
|
||||
def set_printer(): # importam codul python pentru printer
|
||||
print("Cheking printer")
|
||||
# acest segment acceseaza fisierul local idmas.txt si verifica ce informatii sunt acolo
|
||||
# in mod normal acolo salvam numele mesei care trebuie sa corespunda cu numele imprimantei
|
||||
f = open("./data/idmasa.txt","r") # deschid fisierul in care am salvat numele printerului
|
||||
test = f.readlines() # citesc toate liniile
|
||||
f.close()
|
||||
# in cazul in care avem fisier corupt il resetam la original
|
||||
try:
|
||||
idmasa = test[0]
|
||||
|
||||
except IndexError:
|
||||
idmasa = "0"
|
||||
print(idmasa)
|
||||
# citim lista de printere disponibila
|
||||
conn = cups.Connection ()
|
||||
printers = conn.getPrinters ()
|
||||
printer_stat=0
|
||||
for printer in printers:
|
||||
print (printer, printers[printer]["device-uri"])
|
||||
if printer == idmasa:
|
||||
printer_stat = 1
|
||||
|
||||
|
||||
if printer_stat == 1:
|
||||
print("Printer is Ok")
|
||||
else:
|
||||
print("Printer is not ok")
|
||||
p_Name = idmasa
|
||||
print("Installing the new printer")
|
||||
time.sleep(2)
|
||||
cmd = "sudo /usr/sbin/lpadmin -p "+idmasa+" -E -v usb://CITIZEN/CT-S310II?serial=00000000 -m CTS310II.ppd"
|
||||
os.popen(cmd)
|
||||
time.sleep(2)
|
||||
print("Printer Was Installed")
|
||||
conn = cups.Connection()
|
||||
printers = conn.getPrinters()
|
||||
for printer in printers:
|
||||
print(printer, printers[printer]["device-uri"])
|
||||
time.sleep(1)
|
||||
print("Printerwas seted to "+idmasa+"")
|
||||
print("Test printer App Closed")
|
||||
# partea acesata se ocupa de verificarea existentei celor doua fisiere pentru a nu avea erori
|
||||
# verificam daca exista fisierul care identifica masa
|
||||
path = './data/idmasa.txt'
|
||||
isFile = os.path.isfile(path) #verifica existenta fisierului prin bolean Tru/false
|
||||
|
||||
if not isFile:
|
||||
# print(path)# nu se face nimic pentru ca exista fisierul
|
||||
#else:
|
||||
fp = open('./data/idmasa.txt', 'w') # cream fisier
|
||||
fp.write('no_config') # scriem in fisier prima line pentru a avea un punct de pornire
|
||||
fp.close() # inchidem fisierul
|
||||
# print("created file")
|
||||
# verificam fisierul de prezenta pe baza acestuia stim daca locul de munca este configurat cu card de prezenta sau nu
|
||||
path1 = './data/idmasa.txt' #verificare existenta al doilea fisier
|
||||
isFile = os.path.isfile(path1)# verifica existenta fisierului
|
||||
#print(path)
|
||||
|
||||
|
||||
#urmeaza sa citim fisierele pentru a crea cateva variabile
|
||||
# prima variabila este idmasa
|
||||
f = open("./data/idmasa.txt","r") # deschid fisierul
|
||||
name = f.readlines() # citesc toate liniile
|
||||
f.close() # inchid fisierul
|
||||
try:
|
||||
idmasa = name[0]# se verifica daca exista informatie in text
|
||||
|
||||
except IndexError:
|
||||
idmasa = "Initial"# daca nu exista informatie in text setam variabila
|
||||
|
||||
|
||||
|
||||
#incepem sa definim primele functii din configurare
|
||||
def notokfunction(): # este functie pentru butonul cancel din formular
|
||||
|
||||
|
||||
msg1 = "Id masa a fost actualizat la: "+ idmasa +"" ## pregatim mesajul pentru fereastra pop up
|
||||
|
||||
msg2 = "Slotul Pentru cartela este configurat by default" # pregatim mesajul pentru fereastra pop up
|
||||
layout = [[sg.Text(msg1)], [sg.Text(msg2)], [sg.Button("Ok")]]
|
||||
window = sg.Window("Configurari", layout)
|
||||
while True:
|
||||
event, values = window.read()
|
||||
|
||||
if event == "Ok" or event == sg.WIN_CLOSED:
|
||||
|
||||
break
|
||||
|
||||
window.close()
|
||||
#am inchis functia notok
|
||||
|
||||
#functia pentru butonul ok din formular
|
||||
def okfunction():
|
||||
if idmasa == config1: # variabila config 1 este preluata din formular
|
||||
msg1 = "Masa este setat corect: "+ idmasa +"" # se printeaza mesaj ca nu se actualizeaza id de masa
|
||||
# print(msg1)
|
||||
else:
|
||||
f = open("./data/idmasa.txt","w") # deschidem fisierul config in mod scriere
|
||||
L = config1
|
||||
f.write(L) # actualizam linia cu noua valuare din config
|
||||
f.close() # inchidem fisierul
|
||||
msg1 = "Id masa a fost actualizat la: "+ config1 +"" # pregatim mesajul pentru fereastra pop up
|
||||
|
||||
#
|
||||
|
||||
# definim fereastra pentru ok asemena cu functia notok
|
||||
layout = [[sg.Text(msg1)], [sg.Output(size=(40, 15))], [sg.Button("Ok")]]
|
||||
|
||||
window = sg.Window("Configurari", layout)
|
||||
while True:
|
||||
event, values = window.read()
|
||||
# End program if user closes window or
|
||||
# presses the OK button
|
||||
if event == "Ok" or event == sg.WIN_CLOSED:
|
||||
|
||||
break
|
||||
if nook == 1:
|
||||
notokfunction()
|
||||
time.sleep(2)
|
||||
#asteptam 10 secunde si pornim functia de setare printer
|
||||
set_printer()
|
||||
#verificam daca hostul corespunde cu ce este in formular
|
||||
time.sleep(2)
|
||||
if host == host_conf:
|
||||
print("Host name ok")
|
||||
else:
|
||||
print("Host name not ok")
|
||||
time.sleep(2)
|
||||
print("Update Hostname" )
|
||||
cmd = "sudo hostnamectl set-hostname "+host_conf+"" # comanda sa schimbam hostnameul
|
||||
os.popen(cmd)
|
||||
print("Os hostname updated")
|
||||
time.sleep(2)
|
||||
print("System will reboot in 5 seconds")
|
||||
time.sleep(1)
|
||||
print("System will reboot in 4 seconds")
|
||||
time.sleep(1)
|
||||
print("System will reboot in 3 seconds")
|
||||
time.sleep(1)
|
||||
print("System will reboot in 2 seconds")
|
||||
time.sleep(1)
|
||||
print("System will reboot in 1 seconds")
|
||||
time.sleep(3)
|
||||
|
||||
|
||||
|
||||
window.close()
|
||||
# incepem initializarea feresteri ptrincipale gui
|
||||
|
||||
sg.theme('dark grey 9') #alegem tema dark grey
|
||||
psg.set_options(font=('Arial Bold', 16)) # setam fontul
|
||||
#setarile de layout
|
||||
layout = [
|
||||
[sg.Text('Host_Name', size=(20,1)),sg.InputText(default_text= ""+host+"" , enable_events=False)],
|
||||
[sg.Text('Loc De Munca', size=(20,1)),sg.InputText(default_text=""+idmasa+"", enable_events=False)],
|
||||
|
||||
[sg.Button('Ok'), sg.Button('Cancel')]
|
||||
]
|
||||
# setam window
|
||||
window = psg.Window('Form', layout, size=(800,190),finalize=True)
|
||||
# citim si configuram widgetul pentru butoanele 1 si 0 din randul
|
||||
|
||||
while True:
|
||||
nook = 0 # cream o variabila care sa ne spuna daca a fost setao butonul ok sau nu
|
||||
event, values = window.read() # citim valorile intr-o lista numita values
|
||||
host_conf= values[0] # atribuim primul item din lista variabilei Host config
|
||||
# aceasta variabila o vom folosi pentru a scrie sa nu noul hostname
|
||||
print(host_conf)
|
||||
if event == sg.WIN_CLOSED or event == 'Cancel':
|
||||
nook = 1 # daca se da cancel setam variabila nook la 1
|
||||
break
|
||||
config1 = values[1] # atribuim lui config 1 valuarea din campul Loc de munca care a fost scris cu Id masa
|
||||
|
||||
|
||||
# pornim functi care scrie valorile config in fisiere ok function
|
||||
okfunction()
|
||||
# si inchidem formularul
|
||||
|
||||
# semnalam ca s-a terminat afisarea formularului
|
||||
break
|
||||
|
||||
|
||||
#inchidem formularul
|
||||
window.close()
|
||||
# daca variabila nook este 1
|
||||
time.sleep(2)
|
||||
os.system("sudo reboot now")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
not_config
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
#install python libraries
|
||||
echo -e "\e[1;32m Incepem Instalarea Librariilor Python \e[0m"
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/six-1.16.0-py2.py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/PyAutoGUI-0.9.54-py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/pynput-1.7.6-py2.py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/pyserial-3.5-py2.py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages --no-warn-script-location
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/python_xlib-0.31-py2.py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/python3_xlib-0.15-py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/rdm6300-0.1.1-py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/typing_extensions-4.11.0-py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/FreeSimpleGUI-5.0.0-py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
pip3 install /home/pi/Desktop/Prezenta/Files/reposytory/func_timeout-4.3.5-py3-none-any.whl -f ./ --no-index --no-deps --break-system-packages
|
||||
echo -e "\e[1;32m Librariile au fost instalate cu succes \e[0m"
|
||||
Reference in New Issue
Block a user