Bu proje UCE-CTL321L Component Tester cihazına veri tabanı özelliği kazandırmak için oluşturulmuştur. UCE-CTL321L chiazının ürettiği ekran görüntüleri temizlenerek grafik bilgisi ve ölçüm değerleri sayısal hale getirilir. Üretilen değerler Elektrünik Kart görseli üzerinde işaretlenen test point noktalarına atanarak veri tabanına kayıt edilir. Test aşamasında cihazın ürettiği test sonuçları ile veri tabanındaki kayıtlar karşılaştırılarak arıza kontrolü yapılır.
- Python 3.10+
- Tesseract OCR motoru (pytesseract icin zorunlu)
- Sanal ortam (onerilir)
Linux icin ornek Tesseract kurulumu:
sudo apt update
sudo apt install -y tesseract-ocrWindows icin ornek Tesseract kurulumu (PowerShell):
winget install UB-Mannheim.TesseractOCRAlternatif olarak Tesseract'i manuel kurabilirsiniz.
- Sanal ortami olusturun ve aktive edin:
python -m venv .venv
source .venv/bin/activateWindows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1- Bagimliliklari yukleyin:
pip install -r requirements.txtWindows icin de ayni komut gecerlidir.
- Ilk kullanimda admin hesabi olusturun:
python run.py create-admin --username admin --password sifrenizTesseract PATH'te degilse (ozellikle Windows), calistirmadan once komut yolunu tanimlayin:
Linux/macOS:
export TESSERACT_CMD=/usr/bin/tesseractWindows (PowerShell):
$env:TESSERACT_CMD = "C:\Program Files\Tesseract-OCR\tesseract.exe"Standart calistirma:
python run.pyWindows'ta da ayni komut kullanilir.
Uygulama varsayilan olarak 0.0.0.0:8086 uzerinden dinler.
Farkli host/port ile:
python run.py --host 0.0.0.0 --port 8086Gelistirme modunda otomatik yeniden yukleme ile:
python run.py --reloadNot: Bu proje FastAPI ile calisir. python backend/manage.py runserver komutu bu proje icin kullanilmamalidir.
Linux:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python run.py create-admin --username admin --password sifreniz
python run.pyWindows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python run.py create-admin --username admin --password sifreniz
python run.py- Tarayicida /login sayfasina gidin ve giris yapin.
- Ust bardan Kütüphane sayfasini acin.
- Yeni test eklemek icin:
- Test ismi girin.
- Kart fotografi secin.
- Kart uzerine cift tiklayarak marker ekleyin.
- Marker adini/aciklamasini duzenleyin.
- Her nokta icin TP gorseli yukleyin (OCR verisi otomatik cikartilir).
- GND noktasini (opsiyonel): Test noktasi tablosunda "Ayarla" butonuna tiklayarak GND noktesini tanimlayabilirsiniz. Iki probe'li test cihazlarinda bir probe sabit GND noktasinda tutulur, diger probe ise test noktalarindan gecmek icin kullanilir. Sadece bir nokta GND olabilir.
- Kaydet butonuna basin.
- Mevcut test guncellemek icin:
- Kayitli testi listeden secin.
- Gerekli alanlari duzenleyin.
- Kart fotografini degistirmek istemiyorsaniz tekrar secmek zorunda degilsiniz.
- Yeni eklenen noktalarda TP gorseli zorunludur.
- Kaydet butonuna basin.
- /library: sadece admin
- /setup: sadece admin
- /: giris yapmis kullanicilar
- /login: herkese acik
Ust bar butonlari:
- VI Library logosu ana sayfaya goturur
- Kütüphane
- Yonetim
- Cikis
- Login sayfasi: /login
- Oturum yoksa / istegi otomatik olarak /login sayfasina yonlendirilir
- Cikis: /logout
- tests: test adi, aciklama, kart fotografi (BLOB), olusturan kullanici
- testpoints: nokta adi, aciklama, koordinat, olcum alanlari (v, f, r, tol, grafik)
- users: kullanici ve rol bilgileri
- audit_logs: islem loglari
Kullanici/Yonetim:
- GET /users (admin)
- POST /users (admin)
- DELETE /users/{username} (admin)
- POST /users/{username}/password (kendi hesabi veya admin)
- GET /logs?limit=100 (admin)
Kutuphane:
- GET /api/library/tests
- GET /api/library/tests/{test_id}
- POST /api/library/tests (yeni test)
- PUT /api/library/tests/{test_id} (test guncelleme)
- POST /api/library/tests/{test_id} (guncelleme fallback)
- POST /api/library/process-testpoint-image
- POST /api/library/testpoints/{testpoint_id}/grafik-gorsel
Bu bolumde uygulamanin Linux ve Windows ortamlarda bilgisayar acilisinda otomatik baslamasi icin gerekli ayarlar yer alir.
- Servis dosyasi olusturun:
sudo nano /etc/systemd/system/vilib.service- Icerige asagidakini yazin (yol ve kullanici adini kendi ortaminiza gore duzenleyin):
[Unit]
Description=VI Library FastAPI Service
After=network.target
[Service]
Type=simple
User=ubntlnx
WorkingDirectory=/home/ubntlnx/MyWorks/Codes/Django/vilibprj/vilib
Environment="TESSERACT_CMD=/usr/bin/tesseract"
ExecStart=/home/ubntlnx/MyWorks/Codes/Django/vilibprj/vilib/.venv/bin/python run.py --host 0.0.0.0 --port 8086
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target- Servisi etkinlestirin ve baslatin:
sudo systemctl daemon-reload
sudo systemctl enable vilib.service
sudo systemctl start vilib.service- Durum kontrolu:
sudo systemctl status vilib.service
journalctl -u vilib.service -f- Gorev Zamanlayici acin (
taskschd.msc). Create Tasksecin.Generalsekmesi:- Name:
VI Library Run whether user is logged on or notRun with highest privileges
- Name:
Triggerssekmesi:New->At startup
Actionssekmesi:New->Start a program- Program/script:
C:\path\to\project\.venv\Scripts\python.exe
- Add arguments:
run.py --host 0.0.0.0 --port 8086
- Start in:
C:\path\to\project
Conditionssekmesinde gerekirseStart the task only if the computer is on AC powersecenegini kaldirin.- Gorevi kaydedin.
PowerShell ile ayni gorevi komutla olusturmak isterseniz:
$python = "C:\path\to\project\.venv\Scripts\python.exe"
$workdir = "C:\path\to\project"
$action = New-ScheduledTaskAction -Execute $python -Argument "run.py --host 0.0.0.0 --port 8086" -WorkingDirectory $workdir
$trigger = New-ScheduledTaskTrigger -AtStartup
Register-ScheduledTask -TaskName "VI Library" -Action $action -Trigger $trigger -Description "VI Library FastAPI autostart"Windows ortami icin Tesseract yolunu kalici tanimlamak isterseniz (yonetici PowerShell):
[Environment]::SetEnvironmentVariable("TESSERACT_CMD", "C:\Program Files\Tesseract-OCR\tesseract.exe", "Machine")- OCR sonucunda veri cikmiyorsa Tesseract kurulumunu kontrol edin.
- Guncelleme isteginde 405 hatasi alirsaniz uygulamayi yeniden baslatin.
- Yeni bir test kaydinda kart fotografi zorunludur.