commit 24/03/2025
This commit is contained in:
BIN
camera-shutter-click-01.wav
Normal file
BIN
camera-shutter-click-01.wav
Normal file
Binary file not shown.
@@ -1,9 +1,9 @@
|
|||||||
#Fri Mar 21 14:45:24 ICT 2025
|
#Mon Mar 24 13:39:02 ICT 2025
|
||||||
AudioPhase1=C\:\\Users\\rdkar\\OneDrive\\Documents\\IntelliJ Project\\ErhaCam\\audio\\phase1.mp3
|
AudioPhase1=C\:\\Users\\Erha\\IdeaProjects\\ErhaCam\\audio\\phase1.mp3
|
||||||
AudioPhase2=C\:\\Users\\rdkar\\OneDrive\\Documents\\IntelliJ Project\\ErhaCam\\audio\\phase2.mp3
|
AudioPhase2=C\:\\Users\\Erha\\IdeaProjects\\ErhaCam\\audio\\phase2.mp3
|
||||||
AudioPhase3=C\:\\Users\\rdkar\\OneDrive\\Documents\\IntelliJ Project\\ErhaCam\\audio\\phase3.mp3
|
AudioPhase3=C\:\\Users\\Erha\\IdeaProjects\\ErhaCam\\audio\\phase3.mp3
|
||||||
AudioPhase4=C\:\\Users\\rdkar\\OneDrive\\Documents\\IntelliJ Project\\ErhaCam\\audio\\phase4.mp3
|
AudioPhase4=C\:\\Users\\Erha\\IdeaProjects\\ErhaCam\\audio\\phase4.mp3
|
||||||
AudioPhase5=C\:\\Users\\rdkar\\OneDrive\\Documents\\IntelliJ Project\\ErhaCam\\audio\\phase5.mp3
|
AudioPhase5=C\:\\Users\\Erha\\IdeaProjects\\ErhaCam\\audio\\phase5.mp3
|
||||||
CameraCenter=
|
CameraCenter=
|
||||||
CameraConfigCenter={"Brightness"\:0.0,"Contrast"\:0.0,"Saturation"\:0.0,"Hue"\:0.0,"Gain"\:1.0,"Exposure"\:1.0,"Sharpness"\:0.0,"Gamma"\:0.0,"AutoExposure"\:true,"AutoFocus"\:true,"AutoWhiteBalance"\:true}
|
CameraConfigCenter={"Brightness"\:0.0,"Contrast"\:0.0,"Saturation"\:0.0,"Hue"\:0.0,"Gain"\:1.0,"Exposure"\:1.0,"Sharpness"\:0.0,"Gamma"\:0.0,"AutoExposure"\:true,"AutoFocus"\:true,"AutoWhiteBalance"\:true}
|
||||||
CameraConfigLeft45={"Brightness"\:0.0,"Contrast"\:0.0,"Saturation"\:0.0,"Hue"\:0.0,"Gain"\:1.0,"Exposure"\:1.0,"Sharpness"\:0.0,"Gamma"\:0.0,"AutoExposure"\:true,"AutoFocus"\:true,"AutoWhiteBalance"\:true}
|
CameraConfigLeft45={"Brightness"\:0.0,"Contrast"\:0.0,"Saturation"\:0.0,"Hue"\:0.0,"Gain"\:1.0,"Exposure"\:1.0,"Sharpness"\:0.0,"Gamma"\:0.0,"AutoExposure"\:true,"AutoFocus"\:true,"AutoWhiteBalance"\:true}
|
||||||
@@ -19,7 +19,10 @@ FTPPass=password
|
|||||||
FTPPath=/
|
FTPPath=/
|
||||||
FTPPort=21
|
FTPPort=21
|
||||||
FTPUser=user
|
FTPUser=user
|
||||||
|
FlipCamera=true
|
||||||
|
MirrorCamera=true
|
||||||
PhotoDirectory=C\:\\Users\\Erha\\Desktop\\ErhaCapture
|
PhotoDirectory=C\:\\Users\\Erha\\Desktop\\ErhaCapture
|
||||||
|
SharpnessThreshold=70.0
|
||||||
cascadeMaxSize=500
|
cascadeMaxSize=500
|
||||||
cascadeMinNeighbors=3
|
cascadeMinNeighbors=3
|
||||||
cascadeMinSize=250
|
cascadeMinSize=250
|
||||||
|
|||||||
BIN
database.db
BIN
database.db
Binary file not shown.
@@ -47,3 +47,382 @@
|
|||||||
2024-10-21 15:28:21 INFO: GetAll success, result count: 36
|
2024-10-21 15:28:21 INFO: GetAll success, result count: 36
|
||||||
2024-10-21 15:28:25 INFO: Not loading empty fxml file
|
2024-10-21 15:28:25 INFO: Not loading empty fxml file
|
||||||
2024-10-21 15:28:25 INFO: Application closed
|
2024-10-21 15:28:25 INFO: Application closed
|
||||||
|
2025-03-21 14:43:56 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 14:43:56 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 14:43:56 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 14:43:56 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 14:43:56 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 14:43:56 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 14:43:56 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 14:43:56 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\FullQuality, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:43:56 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\FullQualityCrop, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:43:56 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\Compressed, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:43:56 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\CompressedCrop, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:43:56 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\thumbs, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:44:00 ERROR: id.co.gtc.erhacam.MainApplication.start() Secure Dongle not found
|
||||||
|
2025-03-21 14:44:52 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 14:44:52 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 14:44:52 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 14:44:52 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 14:44:52 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 14:44:52 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 14:44:52 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 14:44:52 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\FullQuality, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:44:52 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\FullQualityCrop, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:44:52 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\Compressed, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:44:52 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\CompressedCrop, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:44:52 INFO: Config.SomeCodes.MakeDirectory() Error creating directory: C:\Users\rdkar\OneDrive\Desktop\Erha Capture\thumbs, Msg : C:\Users\rdkar
|
||||||
|
2025-03-21 14:44:52 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 14:44:52 INFO: Config.SomeCodes.ExtractResource() Resource File extracted: /countdown321.wav
|
||||||
|
2025-03-21 14:44:53 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 14:44:53 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 14:44:53 INFO: Config.SomeCodes.ExtractResource() Resource File extracted: /haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 14:44:53 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 14:44:58 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 14:44:58 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 14:44:58 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 14:44:58 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 14:44:58 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 14:44:58 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 14:44:58 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 14:45:06 INFO: id.co.gtc.erhacam.SettingView.initialize() Found 1 Cameras
|
||||||
|
2025-03-21 14:45:06 INFO: id.co.gtc.erhacam.SettingView.lambda$initialize$0() adding camera : OBSBOT Meet 2 StreamCamera to camera list
|
||||||
|
2025-03-21 14:45:13 INFO: Config.ConfigFile.SetCameraLeft90() Camera Left 90 Degree changed from ACER QHD User Facing to OBSBOT Meet 2 StreamCamera
|
||||||
|
2025-03-21 14:45:24 INFO: Config.ConfigFile.SetPhotoDirectory() Photo Directory changed from C:\Users\rdkar\OneDrive\Desktop\Erha Capture to C:\Users\Erha\Desktop\ErhaCapture
|
||||||
|
2025-03-21 14:45:24 INFO: Config.ConfigFile.Save() Config Saved
|
||||||
|
2025-03-21 14:45:29 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 14:45:29 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 14:45:29 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 14:45:29 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 14:45:32 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 14:45:53 ERROR: id.co.gtc.erhacam.MainView.loadContent() loadContent Not loading empty fxml file
|
||||||
|
2025-03-21 14:45:53 INFO: id.co.gtc.erhacam.MainApplication.lambda$start$0() Application closed
|
||||||
|
2025-03-21 14:50:19 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 14:50:19 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 14:50:19 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 14:50:19 INFO: Config.SomeCodes.MakeDirectory() Directory created: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 14:50:19 INFO: Config.SomeCodes.MakeDirectory() Directory created: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 14:50:19 INFO: Config.SomeCodes.MakeDirectory() Directory created: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 14:50:19 INFO: Config.SomeCodes.MakeDirectory() Directory created: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 14:50:19 INFO: Config.SomeCodes.MakeDirectory() Directory created: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 14:50:19 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 14:50:19 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 14:50:20 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 14:50:20 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 14:50:20 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 14:50:20 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 14:50:20 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 14:50:25 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:18:02 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:18:02 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:18:02 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:18:02 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:18:02 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:18:02 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:18:02 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:18:02 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:18:02 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:18:02 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:18:02 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:18:02 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:18:02 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:18:03 INFO: Config.SomeCodes.ExtractResource() Resource File extracted: /kesalahan_server.wav
|
||||||
|
2025-03-21 15:18:03 INFO: Config.SomeCodes.ExtractResource() Resource File extracted: /data_barcode_tidak_ditemukan.wav
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:18:03 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:18:03 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:18:03 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:18:09 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:18:11 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:18:23 ERROR: id.co.gtc.erhacam.MainView.loadContent() loadContent Not loading empty fxml file
|
||||||
|
2025-03-21 15:18:23 INFO: id.co.gtc.erhacam.MainApplication.lambda$start$0() Application closed
|
||||||
|
2025-03-21 15:19:32 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:19:32 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:19:32 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:19:32 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:19:32 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:19:32 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:19:32 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:19:32 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:19:32 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:19:32 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:19:32 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:19:32 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:19:32 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:19:32 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:19:33 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:19:33 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:19:33 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:19:38 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:19:43 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:19:50 ERROR: id.co.gtc.erhacam.MainView.loadContent() loadContent Not loading empty fxml file
|
||||||
|
2025-03-21 15:19:50 INFO: id.co.gtc.erhacam.MainApplication.lambda$start$0() Application closed
|
||||||
|
2025-03-21 15:23:01 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:23:01 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:23:01 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:23:01 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:23:01 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:23:01 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:23:01 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:23:01 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:23:01 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:23:01 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:23:02 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:23:02 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:23:02 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:23:02 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:23:02 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:23:07 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:23:08 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:23:08 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:23:08 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:23:08 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:24:41 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:24:41 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:24:41 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:24:41 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:24:41 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:24:41 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:24:41 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:24:41 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:24:41 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:24:41 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:24:41 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:24:41 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:24:41 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:24:42 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:24:42 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:24:42 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:24:48 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:24:49 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:28:22 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:28:22 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:28:22 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:28:22 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:28:22 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:28:22 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:28:22 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:28:22 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:28:22 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:28:22 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:28:23 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:28:23 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:28:23 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:28:23 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:28:23 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:28:28 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:28:33 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:28:41 ERROR: id.co.gtc.erhacam.MainView.loadContent() loadContent Not loading empty fxml file
|
||||||
|
2025-03-21 15:28:41 INFO: id.co.gtc.erhacam.MainApplication.lambda$start$0() Application closed
|
||||||
|
2025-03-21 15:39:18 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:39:18 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:39:18 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:39:18 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:39:18 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:39:18 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:39:18 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:39:18 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:39:18 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:39:18 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:39:19 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:39:19 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:39:19 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:39:19 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:39:19 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:39:24 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:39:26 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:39:36 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:39:36 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:39:42 ERROR: id.co.gtc.erhacam.MainView.loadContent() loadContent Not loading empty fxml file
|
||||||
|
2025-03-21 15:39:42 INFO: id.co.gtc.erhacam.MainApplication.lambda$start$0() Application closed
|
||||||
|
2025-03-21 15:43:57 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:43:57 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:43:57 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:43:57 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:43:57 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:43:57 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:43:57 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:43:57 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:43:57 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:43:57 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:43:58 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:43:58 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:43:58 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:43:58 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:43:58 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:44:03 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:44:07 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:44:21 ERROR: id.co.gtc.erhacam.MainView.loadContent() loadContent Not loading empty fxml file
|
||||||
|
2025-03-21 15:44:21 INFO: id.co.gtc.erhacam.MainApplication.lambda$start$0() Application closed
|
||||||
|
2025-03-21 15:57:31 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:57:31 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:57:31 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:57:31 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:57:31 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:57:31 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:57:31 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:57:31 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:57:31 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:57:31 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:57:31 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:57:37 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:57:45 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 15:57:59 ERROR: id.co.gtc.erhacam.MainView.loadContent() loadContent Not loading empty fxml file
|
||||||
|
2025-03-21 15:57:59 INFO: id.co.gtc.erhacam.MainApplication.lambda$start$0() Application closed
|
||||||
|
2025-03-21 15:58:54 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 15:58:54 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 15:58:54 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 15:58:54 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 15:58:54 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 15:58:54 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 15:58:54 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 15:58:54 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 15:58:54 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 15:58:54 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 15:58:54 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 15:58:54 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 15:58:55 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 15:58:55 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 15:58:55 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 15:59:01 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 15:59:03 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 16:07:12 INFO: Config.ConfigFile.<init>() Current working directory in Java : C:\Users\Erha\IdeaProjects\ErhaCam
|
||||||
|
2025-03-21 16:07:12 INFO: Config.ConfigFile.Load() Load config file at C:\Users\Erha\IdeaProjects\ErhaCam\config.properties
|
||||||
|
2025-03-21 16:07:12 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() FaceMaxSize created with value : 500
|
||||||
|
2025-03-21 16:07:12 INFO: id.co.gtc.erhacam.Detectors.setFaceMaxSize() EyeMaxSize created with value : 83
|
||||||
|
2025-03-21 16:07:12 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() FaceMinSize created with value : 250
|
||||||
|
2025-03-21 16:07:12 INFO: id.co.gtc.erhacam.Detectors.setFaceMinSize() EyeMinSize created with value : 41
|
||||||
|
2025-03-21 16:07:12 INFO: Config.ConfigFile.Load() Config Loaded
|
||||||
|
2025-03-21 16:07:12 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQuality
|
||||||
|
2025-03-21 16:07:12 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\FullQualityCrop
|
||||||
|
2025-03-21 16:07:12 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\Compressed
|
||||||
|
2025-03-21 16:07:12 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\CompressedCrop
|
||||||
|
2025-03-21 16:07:12 INFO: Config.SomeCodes.MakeDirectory() Directory exists: C:\Users\Erha\Desktop\ErhaCapture\thumbs
|
||||||
|
2025-03-21 16:07:12 INFO: id.co.gtc.erhacam.MainApplication.start() Secure Dongle UserID valid
|
||||||
|
2025-03-21 16:07:12 INFO: id.co.gtc.erhacam.CaptureView.initialize() Audio Player : Inited
|
||||||
|
2025-03-21 16:07:12 INFO: Config.SomeCodes.LoadQRReader() QRReader loaded
|
||||||
|
2025-03-21 16:07:12 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_frontalface_alt.xml
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.Detectors.LoadFrontalFaceDetector() FaceDetector loaded
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() Eye Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_eye.xml
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.Detectors.LoadEyeDetector() EyeDetector loaded
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() Profile Face Detector file : C:\Users\Erha\IdeaProjects\ErhaCam\haarcascade_profileface.xml
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.Detectors.LoadProfileFaceDetector() ProfileFaceDetector loaded
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.MainApplication.start() Application started
|
||||||
|
2025-03-21 16:07:13 INFO: SecureDongle.SecureDongle.lambda$StartMonitor$0() Start Monitoring UserID=14022025
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.CaptureView.lambda$initialize$15() Left90 Index: 0
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : QR Reader loaded
|
||||||
|
2025-03-21 16:07:13 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Face detector loaded
|
||||||
|
2025-03-21 16:07:18 INFO: id.co.gtc.erhacam.CaptureView.onLog() [01] : Camera Started with resolution 2160x3840@0
|
||||||
|
2025-03-21 16:07:51 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 16:08:12 ERROR: id.co.gtc.erhacam.CaptureView.call() Record associated with barcode
|
||||||
|
2025-03-21 16:08:33 INFO: id.co.gtc.erhacam.CaptureView.onPlaybackStarted() Audio Positikan Muka Started
|
||||||
|
2025-03-21 16:08:40 INFO: id.co.gtc.erhacam.CaptureView.onPlaybackFinished() Audio Positikan Muka Finished
|
||||||
|
|||||||
@@ -14,9 +14,8 @@ public class AudioPlayer {
|
|||||||
public void WaitUntilFinished(){
|
public void WaitUntilFinished(){
|
||||||
while(currentFileHandle!=0){
|
while(currentFileHandle!=0){
|
||||||
try {
|
try {
|
||||||
Thread.sleep(100);
|
Thread.sleep(10);
|
||||||
} catch (InterruptedException ignored) {
|
} catch (InterruptedException ignored) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -102,9 +101,8 @@ public class AudioPlayer {
|
|||||||
* Play Audio File
|
* Play Audio File
|
||||||
* @param filename File to be played
|
* @param filename File to be played
|
||||||
* @param playbackstatus PlaybackStatus callback
|
* @param playbackstatus PlaybackStatus callback
|
||||||
* @return true if success, false if failed
|
|
||||||
*/
|
*/
|
||||||
public boolean PlayFile(final String filename, final PlaybackStatus playbackstatus){
|
public void PlayFile(final String filename, final PlaybackStatus playbackstatus){
|
||||||
if (inited && filename!=null && !filename.isEmpty()){
|
if (inited && filename!=null && !filename.isEmpty()){
|
||||||
int filehandle = bass.BASS_StreamCreateFile(false, filename, 0, 0, 0);
|
int filehandle = bass.BASS_StreamCreateFile(false, filename, 0, 0, 0);
|
||||||
if (filehandle!=0){
|
if (filehandle!=0){
|
||||||
@@ -136,11 +134,18 @@ public class AudioPlayer {
|
|||||||
currentFile = "";
|
currentFile = "";
|
||||||
currentFileHandle = 0;
|
currentFileHandle = 0;
|
||||||
}).start();
|
}).start();
|
||||||
return true;
|
} else {
|
||||||
} else Logger.error("AudioPlayer PlayFile failed, BASS_ChannelStart failed, error code: "+bass.BASS_ErrorGetCode());
|
Logger.error("AudioPlayer PlayFile failed, BASS_ChannelStart failed, error code: "+bass.BASS_ErrorGetCode());
|
||||||
} else Logger.error("AudioPlayer PlayFile failed, BASS_StreamCreateFile failed, error code: "+bass.BASS_ErrorGetCode());
|
if (playbackstatus!=null) playbackstatus.onPlaybackFailure(filename);
|
||||||
} else Logger.info("AudioPlayer PlayFile failed, AudioPlayer is not initialized");
|
}
|
||||||
return false;
|
} else {
|
||||||
|
Logger.error("AudioPlayer PlayFile failed, BASS_StreamCreateFile failed, error code: "+bass.BASS_ErrorGetCode());
|
||||||
|
if (playbackstatus!=null) playbackstatus.onPlaybackFailure(filename);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Logger.info("AudioPlayer PlayFile failed, AudioPlayer is not initialized");
|
||||||
|
if (playbackstatus!=null) playbackstatus.onPlaybackFailure(filename);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,12 @@ public interface LiveCamEvent {
|
|||||||
void onDetectedQRCode(String qrCode);
|
void onDetectedQRCode(String qrCode);
|
||||||
void onFrontalFaceDetector(boolean hasface, int width, int height);
|
void onFrontalFaceDetector(boolean hasface, int width, int height);
|
||||||
void onProfileFaceDetector(boolean hasface, int width, int height);
|
void onProfileFaceDetector(boolean hasface, int width, int height);
|
||||||
void onEyeDetector(boolean hasEye, int width, int height);
|
void onEyeDetector(boolean hasEye);
|
||||||
void onLeftEarDetector(boolean hasLeftEar, int width, int height);
|
void onLeftEarDetector(boolean hasLeftEar, int width, int height);
|
||||||
void onRightEarDetector(boolean hasRightEar, int width, int height);
|
void onRightEarDetector(boolean hasRightEar, int width, int height);
|
||||||
void onLeftEyeDetector(boolean hasLeftEye, int width, int height);
|
void onLeftEyeDetector(boolean hasLeftEye, int width, int height);
|
||||||
void onRightEyeDetector(boolean hasRightEye, int width, int height);
|
void onRightEyeDetector(boolean hasRightEye, int width, int height);
|
||||||
void onLog(String log);
|
void onLog(String log);
|
||||||
void onBlink(int counter);
|
void onBlink(int counter);
|
||||||
|
void onStartCapturing();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ public class ConfigFile {
|
|||||||
private @Getter int cascadeMinSize;
|
private @Getter int cascadeMinSize;
|
||||||
private @Getter int cascadeMaxSize;
|
private @Getter int cascadeMaxSize;
|
||||||
|
|
||||||
|
private @Getter boolean MirrorCamera = false;
|
||||||
|
private @Getter boolean FlipCamera = false;
|
||||||
|
|
||||||
|
private @Getter double SharpnessThreshold;
|
||||||
|
|
||||||
private boolean needsave = false;
|
private boolean needsave = false;
|
||||||
|
|
||||||
public ConfigFile(){
|
public ConfigFile(){
|
||||||
@@ -53,6 +58,27 @@ public class ConfigFile {
|
|||||||
Load();
|
Load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMirrorCamera(boolean value){
|
||||||
|
if (MirrorCamera != value){
|
||||||
|
MirrorCamera = value;
|
||||||
|
needsave = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFlipCamera(boolean value){
|
||||||
|
if (FlipCamera != value){
|
||||||
|
FlipCamera = value;
|
||||||
|
needsave = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSharpnessThreshold(double value){
|
||||||
|
if (SharpnessThreshold != value){
|
||||||
|
SharpnessThreshold = value;
|
||||||
|
needsave = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void setCascadeScaleFactor(double value){
|
public void setCascadeScaleFactor(double value){
|
||||||
if (cascadeScaleFactor != value){
|
if (cascadeScaleFactor != value){
|
||||||
cascadeScaleFactor = value;
|
cascadeScaleFactor = value;
|
||||||
@@ -554,6 +580,10 @@ public class ConfigFile {
|
|||||||
if (prop.getProperty("FTPPass") == null) allcorrect = false;
|
if (prop.getProperty("FTPPass") == null) allcorrect = false;
|
||||||
if (prop.getProperty("FTPPath") == null) allcorrect = false;
|
if (prop.getProperty("FTPPath") == null) allcorrect = false;
|
||||||
if (prop.getProperty("PhotoDirectory") == null) allcorrect = false;
|
if (prop.getProperty("PhotoDirectory") == null) allcorrect = false;
|
||||||
|
if (prop.getProperty("MirrorCamera") == null) allcorrect = false;
|
||||||
|
if (prop.getProperty("FlipCamera") == null) allcorrect = false;
|
||||||
|
if (prop.getProperty("SharpnessThreshold") == null) allcorrect = false;
|
||||||
|
|
||||||
|
|
||||||
if (prop.getProperty(CameraConfigEnum.CameraConfigLeft90.toString()) == null) allcorrect = false;
|
if (prop.getProperty(CameraConfigEnum.CameraConfigLeft90.toString()) == null) allcorrect = false;
|
||||||
if (prop.getProperty(CameraConfigEnum.CameraConfigLeft45.toString()) == null) allcorrect = false;
|
if (prop.getProperty(CameraConfigEnum.CameraConfigLeft45.toString()) == null) allcorrect = false;
|
||||||
@@ -601,6 +631,11 @@ public class ConfigFile {
|
|||||||
Detectors.setFaceMinSize(cascadeMinSize);
|
Detectors.setFaceMinSize(cascadeMinSize);
|
||||||
Detectors.setScaleFactor(cascadeScaleFactor);
|
Detectors.setScaleFactor(cascadeScaleFactor);
|
||||||
|
|
||||||
|
MirrorCamera = toBoolean(prop.getProperty("MirrorCamera"));
|
||||||
|
FlipCamera = toBoolean(prop.getProperty("FlipCamera"));
|
||||||
|
|
||||||
|
SharpnessThreshold = toDouble(prop.getProperty("SharpnessThreshold"));
|
||||||
|
|
||||||
Logger.info("Config Loaded");
|
Logger.info("Config Loaded");
|
||||||
MakeDirectories();
|
MakeDirectories();
|
||||||
return;
|
return;
|
||||||
@@ -653,6 +688,9 @@ public class ConfigFile {
|
|||||||
Detectors.setFaceMaxSize(cascadeMaxSize);
|
Detectors.setFaceMaxSize(cascadeMaxSize);
|
||||||
Detectors.setFaceMinSize(cascadeMinSize);
|
Detectors.setFaceMinSize(cascadeMinSize);
|
||||||
Detectors.setScaleFactor(cascadeScaleFactor);
|
Detectors.setScaleFactor(cascadeScaleFactor);
|
||||||
|
MirrorCamera = false;
|
||||||
|
FlipCamera = false;
|
||||||
|
SharpnessThreshold = 75.0;
|
||||||
Logger.info("Default Config Created");
|
Logger.info("Default Config Created");
|
||||||
needsave = true;
|
needsave = true;
|
||||||
Save();
|
Save();
|
||||||
@@ -709,6 +747,10 @@ public class ConfigFile {
|
|||||||
prop.setProperty("cascadeMinSize", String.valueOf(cascadeMinSize));
|
prop.setProperty("cascadeMinSize", String.valueOf(cascadeMinSize));
|
||||||
prop.setProperty("cascadeMaxSize", String.valueOf(cascadeMaxSize));
|
prop.setProperty("cascadeMaxSize", String.valueOf(cascadeMaxSize));
|
||||||
|
|
||||||
|
prop.setProperty("MirrorCamera", String.valueOf(MirrorCamera));
|
||||||
|
prop.setProperty("FlipCamera", String.valueOf(FlipCamera));
|
||||||
|
prop.setProperty("SharpnessThreshold", String.valueOf(SharpnessThreshold));
|
||||||
|
|
||||||
try{
|
try{
|
||||||
prop.store(new FileOutputStream(Path.of(currentDirectory, "config.properties").toString()), null);
|
prop.store(new FileOutputStream(Path.of(currentDirectory, "config.properties").toString()), null);
|
||||||
Logger.info("Config Saved");
|
Logger.info("Config Saved");
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.bytedeco.opencv.opencv_core.Mat;
|
|||||||
import org.bytedeco.opencv.opencv_core.Rect;
|
import org.bytedeco.opencv.opencv_core.Rect;
|
||||||
import org.bytedeco.opencv.opencv_core.Size;
|
import org.bytedeco.opencv.opencv_core.Size;
|
||||||
import org.bytedeco.opencv.opencv_core.UMat;
|
import org.bytedeco.opencv.opencv_core.UMat;
|
||||||
|
import org.opencv.core.MatOfDouble;
|
||||||
import org.tinylog.Logger;
|
import org.tinylog.Logger;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
@@ -31,6 +32,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.bytedeco.opencv.global.opencv_core.CV_64F;
|
import static org.bytedeco.opencv.global.opencv_core.CV_64F;
|
||||||
|
import static org.bytedeco.opencv.global.opencv_core.CV_64FC3;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class SomeCodes {
|
public class SomeCodes {
|
||||||
@@ -229,6 +231,10 @@ public class SomeCodes {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean toBoolean(String x){
|
||||||
|
return x!=null && x.equalsIgnoreCase("true");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if string is valid IPV4 address
|
* Check if string is valid IPV4 address
|
||||||
* @param ipaddress IPV4 address
|
* @param ipaddress IPV4 address
|
||||||
@@ -620,30 +626,48 @@ public class SomeCodes {
|
|||||||
if (values!=null && values.length>0){
|
if (values!=null && values.length>0){
|
||||||
double lowest = values[0];
|
double lowest = values[0];
|
||||||
for(double x : values){
|
for(double x : values){
|
||||||
|
if (x>=0){
|
||||||
if (x<lowest){
|
if (x<lowest){
|
||||||
lowest = x;
|
lowest = x;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return lowest;
|
return lowest;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean ValidDouble(String x){
|
||||||
|
try{
|
||||||
|
double xx = Double.parseDouble(x);
|
||||||
|
return true;
|
||||||
|
} catch (Exception ignored){
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static double CalculateSharpness(UMat mat){
|
public static double CalculateSharpness(UMat mat){
|
||||||
if (mat!=null && !mat.empty()){
|
if (mat!=null && !mat.empty()){
|
||||||
UMat gray = new UMat();
|
UMat gray = new UMat();
|
||||||
opencv_imgproc.cvtColor(mat, gray, opencv_imgproc.COLOR_BGR2GRAY);
|
opencv_imgproc.cvtColor(mat, gray, opencv_imgproc.COLOR_BGR2GRAY);
|
||||||
|
opencv_imgproc.equalizeHist(gray, gray);
|
||||||
|
|
||||||
UMat laplacian = new UMat();
|
UMat laplacian = new UMat();
|
||||||
|
|
||||||
opencv_imgproc.Laplacian(gray, laplacian, CV_64F);
|
opencv_imgproc.Laplacian(gray, laplacian, CV_64F);
|
||||||
|
|
||||||
UMat mean = new UMat(1,1, CV_64F);
|
UMat mean = new UMat(1,1, CV_64F);
|
||||||
UMat stddev = new UMat(1,1, CV_64F);
|
UMat stddev = new UMat(1,1, CV_64F);
|
||||||
|
|
||||||
opencv_core.meanStdDev(laplacian, mean, stddev);
|
opencv_core.meanStdDev(laplacian, mean, stddev);
|
||||||
|
|
||||||
Mat _std = new Mat();
|
Mat _std = new Mat();
|
||||||
stddev.copyTo(_std);
|
stddev.copyTo(_std);
|
||||||
|
|
||||||
return _std.ptr(0).getDouble() * _std.ptr(0).getDouble();
|
double value = _std.createIndexer().getDouble(0,0);
|
||||||
|
|
||||||
|
return Math.pow(value,2);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,6 +102,17 @@ public class Cameradetail {
|
|||||||
@FXML
|
@FXML
|
||||||
private Slider exposureSlider;
|
private Slider exposureSlider;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label face_indicator;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label eye_indicator;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label sharpness_indicator;
|
||||||
|
|
||||||
|
private Double sharpness_value = 0.0;
|
||||||
|
|
||||||
private @Getter final UMat BestMat = new UMat();
|
private @Getter final UMat BestMat = new UMat();
|
||||||
private @Getter final UMat LiveMat = new UMat();
|
private @Getter final UMat LiveMat = new UMat();
|
||||||
private @Getter final UMat ReducedMat = new UMat();
|
private @Getter final UMat ReducedMat = new UMat();
|
||||||
@@ -805,12 +816,7 @@ public class Cameradetail {
|
|||||||
System.out.println("Camera "+cameratitle+" started");
|
System.out.println("Camera "+cameratitle+" started");
|
||||||
|
|
||||||
Capturing.set(true);
|
Capturing.set(true);
|
||||||
// just information
|
if (event!=null) event.onStartCapturing();
|
||||||
String ss = String.format("Camera Started with resolution %dx%d@%d", BestSize.width(), BestSize.height(),LiveFPS);
|
|
||||||
Platform.runLater(()->setCameraStatus(ss));
|
|
||||||
raise_log(ss);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Task<Image> task = new Task<>() {
|
Task<Image> task = new Task<>() {
|
||||||
@SuppressWarnings("BusyWait")
|
@SuppressWarnings("BusyWait")
|
||||||
@@ -826,7 +832,11 @@ public class Cameradetail {
|
|||||||
TimerTask fpsTask = new TimerTask() {
|
TimerTask fpsTask = new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
LiveFPS = fps.getAndSet(0);
|
int fpsval = fps.getAndSet(0);
|
||||||
|
if (fpsval!=LiveFPS){
|
||||||
|
LiveFPS = fpsval;
|
||||||
|
if (event!=null) event.onStartCapturing();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -884,15 +894,29 @@ public class Cameradetail {
|
|||||||
fps.incrementAndGet();
|
fps.incrementAndGet();
|
||||||
|
|
||||||
UMat originalmat = new UMat();
|
UMat originalmat = new UMat();
|
||||||
mat.copyTo(originalmat); // copy to BestMat for using OpenCL
|
mat.copyTo(originalmat); // copy to originalmat for using OpenCL
|
||||||
|
if (config.isMirrorCamera()){
|
||||||
|
// revisi 18/03/2025
|
||||||
|
UMat flippedmat = new UMat();
|
||||||
|
opencv_core.flip(originalmat, flippedmat, 0); // flip vertical
|
||||||
|
flippedmat.copyTo(originalmat);
|
||||||
|
}
|
||||||
|
if (config.isFlipCamera()){
|
||||||
// revisi 18/03/2025
|
// revisi 18/03/2025
|
||||||
UMat flippedmat = new UMat();
|
UMat flippedmat = new UMat();
|
||||||
opencv_core.flip(originalmat, flippedmat, 1); // flip horizontal
|
opencv_core.flip(originalmat, flippedmat, 1); // flip horizontal
|
||||||
opencv_core.rotate(flippedmat, BestMat, opencv_core.ROTATE_90_COUNTERCLOCKWISE);
|
flippedmat.copyTo(originalmat);
|
||||||
|
}
|
||||||
|
|
||||||
|
// rotate 90 degree counter clockwise karena kamera potrait
|
||||||
|
opencv_core.rotate(originalmat, originalmat, opencv_core.ROTATE_90_COUNTERCLOCKWISE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IsGrabbingLiveView.set(false);
|
IsGrabbingLiveView.set(false);
|
||||||
|
|
||||||
if (!BestMat.empty()) {
|
if (!originalmat.empty()) {
|
||||||
opencv_imgproc.resize(BestMat, LiveMat, LiveSize); // resize to LiveSize
|
opencv_imgproc.resize(originalmat, LiveMat, LiveSize); // resize to LiveSize
|
||||||
UMat graymat = new UMat(); // use OpenCL for grayscale
|
UMat graymat = new UMat(); // use OpenCL for grayscale
|
||||||
opencv_imgproc.cvtColor(LiveMat,graymat, COLOR_BGR2GRAY); // convert to grayscale
|
opencv_imgproc.cvtColor(LiveMat,graymat, COLOR_BGR2GRAY); // convert to grayscale
|
||||||
if (use_qr){
|
if (use_qr){
|
||||||
@@ -950,6 +974,14 @@ public class Cameradetail {
|
|||||||
|
|
||||||
no_face_counter = 0;
|
no_face_counter = 0;
|
||||||
if (event!=null) event.onFrontalFaceDetector(true, _face_width, _face_height);
|
if (event!=null) event.onFrontalFaceDetector(true, _face_width, _face_height);
|
||||||
|
face_indicator.setVisible(true);
|
||||||
|
|
||||||
|
double sharpness = CalculateSharpness(originalmat);
|
||||||
|
if (sharpness>=config.getSharpnessThreshold()){
|
||||||
|
sharpness_value = sharpness;
|
||||||
|
originalmat.copyTo(BestMat);
|
||||||
|
Platform.runLater(()->sharpness_indicator.setText(String.format("%.2f", sharpness_value)));
|
||||||
|
}
|
||||||
|
|
||||||
if (theface.getFace()!=null){
|
if (theface.getFace()!=null){
|
||||||
LiveMatROI = new Rect(theface.getFace().x(), theface.getFace().y(), theface.getFace().width(), theface.getFace().height());
|
LiveMatROI = new Rect(theface.getFace().x(), theface.getFace().y(), theface.getFace().width(), theface.getFace().height());
|
||||||
@@ -963,12 +995,18 @@ public class Cameradetail {
|
|||||||
open_eye_counter++;
|
open_eye_counter++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
System.out.println("Valid Open Eyes");
|
//System.out.println("Valid Open Eyes");
|
||||||
|
|
||||||
|
|
||||||
if (eye_state==0){
|
if (eye_state!=1){
|
||||||
// transisi dari tutup mata ke buka mata
|
// transisi dari tutup mata ke buka mata
|
||||||
System.out.println("Transition from close to open eyes");
|
System.out.println("Transition from close to open eyes");
|
||||||
|
eye_state = 1;
|
||||||
|
if (event!=null) event.onEyeDetector(true);
|
||||||
|
eye_indicator.setVisible(true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
if (waiting_for_second_blink){
|
if (waiting_for_second_blink){
|
||||||
long diff = now - last_blink;
|
long diff = now - last_blink;
|
||||||
@@ -984,7 +1022,6 @@ public class Cameradetail {
|
|||||||
}
|
}
|
||||||
last_blink = now;
|
last_blink = now;
|
||||||
}
|
}
|
||||||
eye_state = 1;
|
|
||||||
} else {
|
} else {
|
||||||
// ada muka, tidak ada mata
|
// ada muka, tidak ada mata
|
||||||
// transisi dari buka mata ke tutup mata
|
// transisi dari buka mata ke tutup mata
|
||||||
@@ -993,15 +1030,26 @@ public class Cameradetail {
|
|||||||
close_eye_counter++;
|
close_eye_counter++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
System.out.println("Valid Closed Eyes");
|
//System.out.println("Valid Closed Eyes");
|
||||||
if (eye_state!=0){
|
if (eye_state!=0){
|
||||||
System.out.println("Transition from open to close eyes");
|
System.out.println("Transition from open to close eyes");
|
||||||
}
|
|
||||||
eye_state = 0;
|
eye_state = 0;
|
||||||
|
if (event!=null) event.onEyeDetector(false);
|
||||||
|
eye_indicator.setVisible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (have_left_45_face ){
|
} else if (have_left_45_face ){
|
||||||
no_face_counter = 0;
|
no_face_counter = 0;
|
||||||
if (event!=null) event.onProfileFaceDetector(true, _face_width, _face_height);
|
if (event!=null) event.onProfileFaceDetector(true, _face_width, _face_height);
|
||||||
|
face_indicator.setVisible(true);
|
||||||
|
|
||||||
|
double sharpness = CalculateSharpness(originalmat);
|
||||||
|
if (sharpness>=config.getSharpnessThreshold()){
|
||||||
|
sharpness_value = sharpness;
|
||||||
|
originalmat.copyTo(BestMat);
|
||||||
|
Platform.runLater(()->sharpness_indicator.setText(String.format("%.2f", sharpness_value)));
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// no face detected, but let's not cancel the previous state immediately
|
// no face detected, but let's not cancel the previous state immediately
|
||||||
|
|
||||||
@@ -1021,6 +1069,8 @@ public class Cameradetail {
|
|||||||
if (event!=null) {
|
if (event!=null) {
|
||||||
event.onFrontalFaceDetector(false, _face_width, _face_height);
|
event.onFrontalFaceDetector(false, _face_width, _face_height);
|
||||||
event.onProfileFaceDetector(false, _face_width, _face_height);
|
event.onProfileFaceDetector(false, _face_width, _face_height);
|
||||||
|
face_indicator.setVisible(false);
|
||||||
|
eye_indicator.setVisible(false);
|
||||||
}
|
}
|
||||||
} else no_face_counter++;
|
} else no_face_counter++;
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ import ErhaAPI.UploadResult;
|
|||||||
|
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
|
|
||||||
import javafx.beans.InvalidationListener;
|
|
||||||
import javafx.beans.Observable;
|
|
||||||
import javafx.concurrent.Task;
|
import javafx.concurrent.Task;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
@@ -31,7 +29,6 @@ import java.util.concurrent.ExecutorService;
|
|||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
import javafx.scene.control.Alert.AlertType;
|
import javafx.scene.control.Alert.AlertType;
|
||||||
import org.bytedeco.javacv.OpenCVFrameGrabber;
|
import org.bytedeco.javacv.OpenCVFrameGrabber;
|
||||||
@@ -77,6 +74,7 @@ public class CaptureView {
|
|||||||
private String audio_upload_berhasil = "upload_berhasil.wav";
|
private String audio_upload_berhasil = "upload_berhasil.wav";
|
||||||
private String audio_upload_gagal = "upload_gagal.wav";
|
private String audio_upload_gagal = "upload_gagal.wav";
|
||||||
private String audio_countdown = "countdown321.wav";
|
private String audio_countdown = "countdown321.wav";
|
||||||
|
private String audio_camera_shutter = "camera-shutter-click-01.wav";
|
||||||
private String audio_tahan_posisi = "tahan_posisi.wav";
|
private String audio_tahan_posisi = "tahan_posisi.wav";
|
||||||
private String audio_data_barcode_tidak_ditemukan = "data_barcode_tidak_ditemukan.wav";
|
private String audio_data_barcode_tidak_ditemukan = "data_barcode_tidak_ditemukan.wav";
|
||||||
private String audio_kesalahan_server = "kesalahan_server.wav";
|
private String audio_kesalahan_server = "kesalahan_server.wav";
|
||||||
@@ -94,7 +92,6 @@ public class CaptureView {
|
|||||||
|
|
||||||
private final ErhaAPI erhaAPI = new ErhaAPI(false);
|
private final ErhaAPI erhaAPI = new ErhaAPI(false);
|
||||||
|
|
||||||
private final double sharpness_threshold = 150;
|
|
||||||
@FXML
|
@FXML
|
||||||
private void ChangeDirectory(){
|
private void ChangeDirectory(){
|
||||||
DirectoryChooser dc = new DirectoryChooser();
|
DirectoryChooser dc = new DirectoryChooser();
|
||||||
@@ -131,34 +128,23 @@ public class CaptureView {
|
|||||||
|
|
||||||
@SuppressWarnings("resource")
|
@SuppressWarnings("resource")
|
||||||
@FXML
|
@FXML
|
||||||
private void TakePhotos(){
|
private void TakePhotos(String directory, String prefix){
|
||||||
boolean has_face = Arrays.stream(have_face).anyMatch(AtomicBoolean::get);
|
boolean has_face = Arrays.stream(have_face).anyMatch(AtomicBoolean::get);
|
||||||
|
|
||||||
if (has_face){
|
if (has_face){
|
||||||
AutoCloseAlert.show("Pengambilan Foto", "Tahan Posisi Anda", "Proses ini kurang lebih 3 detik", 5, null);
|
AutoCloseAlert.show("Pengambilan Foto", "Tahan Posisi Anda", "Proses ini kurang lebih 3 detik", 5, null);
|
||||||
if (audioPlayer!=null && audioPlayer.isInited()){
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
if (!audioPlayer.getCurrentFile().equals(audio_countdown)) {
|
if (!Objects.equals(audioPlayer.getCurrentFile(), audio_tahan_posisi)){
|
||||||
audioPlayer.StopCurrentPlayback();
|
audioPlayer.StopCurrentPlayback();
|
||||||
Wait(200);
|
audioPlayer.PlayFile(audio_tahan_posisi, new PlaybackStatus() {
|
||||||
audioPlayer.PlayFile(audio_tahan_posisi, ps);
|
@Override
|
||||||
} else System.out.println("audioPlayer already playing countdown");
|
public void onPlaybackStarted(String filename) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
// try{
|
public void onPlaybackFinished(String filename) {
|
||||||
// AutoFocus();
|
|
||||||
// Thread.sleep(1000);
|
|
||||||
// } catch (InterruptedException e){
|
|
||||||
// Logger.error("Error AutoFocus: "+e.getMessage());
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Size thumbsize = new Size(160,120);
|
Size thumbsize = new Size(160,120);
|
||||||
String directory = config.getPhotoDirectory();
|
|
||||||
String prefix = RemoveSpaces(medicalRecordID.getText()) ;
|
|
||||||
if (ValidDirectory(directory)){
|
|
||||||
if (ValidMedicalRecordId(prefix)){
|
|
||||||
|
|
||||||
PhotoReviewClass prc = new PhotoReviewClass();
|
PhotoReviewClass prc = new PhotoReviewClass();
|
||||||
prc.setPrefix(prefix);
|
prc.setPrefix(prefix);
|
||||||
@@ -167,19 +153,19 @@ public class CaptureView {
|
|||||||
|
|
||||||
ExecutorService executor = Executors.newFixedThreadPool(5);
|
ExecutorService executor = Executors.newFixedThreadPool(5);
|
||||||
|
|
||||||
|
audioPlayer.PlayFile(audio_camera_shutter, null);
|
||||||
|
|
||||||
Callable<PhotoResult> task1 = ()->{
|
Callable<PhotoResult> task1 = ()->{
|
||||||
if (image1!=null) {
|
if (image1!=null) {
|
||||||
image1.RemapROI(0.1,0.3, false);
|
image1.RemapROI(0.1,0.3, false);
|
||||||
|
|
||||||
double sharpness = CalculateSharpness(image1.getBestMat());
|
double sharpness = CalculateSharpness(image1.getLiveMat());
|
||||||
if (sharpness<sharpness_threshold){
|
System.out.println("Image1 sharpness: "+sharpness);
|
||||||
AutoCloseAlert.show("Take Photos Failed", "Blurred Image Detected", "Blurred Image Detected at Camera 1 with sharpness score "+sharpness, 5, null);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PhotoResult p1 = image1.TakePhoto(directory,prefix);
|
PhotoResult p1 = image1.TakePhoto(directory,prefix);
|
||||||
|
p1.setSharpscore(sharpness);
|
||||||
if (ValidFile(p1.getFullres())){
|
if (ValidFile(p1.getFullres())){
|
||||||
if (ValidFile(p1.getCompressedfile())){
|
if (ValidFile(p1.getCompressedfile())){
|
||||||
p1.setSharpscore(sharpness);
|
|
||||||
return p1;
|
return p1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -189,15 +175,13 @@ public class CaptureView {
|
|||||||
Callable<PhotoResult> task2 = ()->{
|
Callable<PhotoResult> task2 = ()->{
|
||||||
if (image2!=null) {
|
if (image2!=null) {
|
||||||
image2.RemapROI(0.1,0.3, false);
|
image2.RemapROI(0.1,0.3, false);
|
||||||
double sharpness = CalculateSharpness(image2.getBestMat());
|
double sharpness = CalculateSharpness(image2.getLiveMat());
|
||||||
if (sharpness<sharpness_threshold){
|
System.out.println("Image2 sharpness: "+sharpness);
|
||||||
AutoCloseAlert.show("Take Photos Failed", "Blurred Image Detected", "Blurred Image Detected at Camera 2 with sharpness score "+sharpness, 5, null);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PhotoResult p2 = image2.TakePhoto(directory,prefix);
|
PhotoResult p2 = image2.TakePhoto(directory,prefix);
|
||||||
|
p2.setSharpscore(sharpness);
|
||||||
if (ValidFile(p2.getFullres())){
|
if (ValidFile(p2.getFullres())){
|
||||||
if (ValidFile(p2.getCompressedfile())){
|
if (ValidFile(p2.getCompressedfile())){
|
||||||
p2.setSharpscore(sharpness);
|
|
||||||
return p2;
|
return p2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -208,16 +192,14 @@ public class CaptureView {
|
|||||||
Callable<PhotoResult> task3 = ()->{
|
Callable<PhotoResult> task3 = ()->{
|
||||||
if (image3!=null) {
|
if (image3!=null) {
|
||||||
image3.RemapROI(0.1,0.3, false);
|
image3.RemapROI(0.1,0.3, false);
|
||||||
double sharpness = CalculateSharpness(image3.getBestMat());
|
double sharpness = CalculateSharpness(image3.getLiveMat());
|
||||||
if (sharpness<sharpness_threshold){
|
System.out.println("Image3 sharpness: "+sharpness);
|
||||||
AutoCloseAlert.show("Take Photos Failed", "Blurred Image Detected", "Blurred Image Detected at Camera 3 with sharpness score "+sharpness, 5, null);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PhotoResult p3 = image3.TakePhoto(directory,prefix);
|
PhotoResult p3 = image3.TakePhoto(directory,prefix);
|
||||||
|
p3.setSharpscore(sharpness);
|
||||||
|
|
||||||
if (ValidFile(p3.getFullres())){
|
if (ValidFile(p3.getFullres())){
|
||||||
if (ValidFile(p3.getCompressedfile())){
|
if (ValidFile(p3.getCompressedfile())){
|
||||||
p3.setSharpscore(sharpness);
|
|
||||||
return p3;
|
return p3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -229,16 +211,14 @@ public class CaptureView {
|
|||||||
Callable<PhotoResult> task4 = ()->{
|
Callable<PhotoResult> task4 = ()->{
|
||||||
if (image4!=null) {
|
if (image4!=null) {
|
||||||
image4.RemapROI(0.1,0.3, false);
|
image4.RemapROI(0.1,0.3, false);
|
||||||
double sharpness = CalculateSharpness(image4.getBestMat());
|
double sharpness = CalculateSharpness(image4.getLiveMat());
|
||||||
if (sharpness<sharpness_threshold){
|
System.out.println("Image4 sharpness: "+sharpness);
|
||||||
AutoCloseAlert.show("Take Photos Failed", "Blurred Image Detected", "Blurred Image Detected at Camera 4 with sharpness score "+sharpness, 5, null);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PhotoResult p4 = image4.TakePhoto(directory,prefix);
|
PhotoResult p4 = image4.TakePhoto(directory,prefix);
|
||||||
|
p4.setSharpscore(sharpness);
|
||||||
|
|
||||||
if (ValidFile(p4.getFullres())){
|
if (ValidFile(p4.getFullres())){
|
||||||
if (ValidFile(p4.getCompressedfile())){
|
if (ValidFile(p4.getCompressedfile())){
|
||||||
p4.setSharpscore(sharpness);
|
|
||||||
return p4;
|
return p4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -250,16 +230,14 @@ public class CaptureView {
|
|||||||
Callable<PhotoResult> task5 = ()->{
|
Callable<PhotoResult> task5 = ()->{
|
||||||
if (image5!=null) {
|
if (image5!=null) {
|
||||||
image5.RemapROI(0.1,0.3, false);
|
image5.RemapROI(0.1,0.3, false);
|
||||||
double sharpness = CalculateSharpness(image5.getBestMat());
|
double sharpness = CalculateSharpness(image5.getLiveMat());
|
||||||
if (sharpness<sharpness_threshold){
|
System.out.println("Image5 sharpness: "+sharpness);
|
||||||
AutoCloseAlert.show("Take Photos Failed", "Blurred Image Detected", "Blurred Image Detected at Camera 5 with sharpness score "+sharpness, 5, null);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PhotoResult p5 = image5.TakePhoto(directory,prefix);
|
PhotoResult p5 = image5.TakePhoto(directory,prefix);
|
||||||
|
p5.setSharpscore(sharpness);
|
||||||
|
|
||||||
if (ValidFile(p5.getFullres())){
|
if (ValidFile(p5.getFullres())){
|
||||||
if (ValidFile(p5.getCompressedfile())){
|
if (ValidFile(p5.getCompressedfile())){
|
||||||
p5.setSharpscore(sharpness);
|
|
||||||
return p5;
|
return p5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -298,7 +276,7 @@ public class CaptureView {
|
|||||||
System.out.println("Creating timestamp: "+timestamp);
|
System.out.println("Creating timestamp: "+timestamp);
|
||||||
|
|
||||||
// check for blurred image
|
// check for blurred image
|
||||||
double score1=0, score2=0, score3=0, score4=0, score5=0;
|
double score1=-1, score2=-1, score3=-1, score4=-1, score5=-1;
|
||||||
if (p1!=null){
|
if (p1!=null){
|
||||||
score1 = p1.getSharpscore();
|
score1 = p1.getSharpscore();
|
||||||
}
|
}
|
||||||
@@ -316,14 +294,16 @@ public class CaptureView {
|
|||||||
}
|
}
|
||||||
System.out.println("Sharpness score: "+score1+", "+score2+", "+score3+", "+score4+", "+score5);
|
System.out.println("Sharpness score: "+score1+", "+score2+", "+score3+", "+score4+", "+score5);
|
||||||
double lowest = FindLowestValue(score1,score2,score3,score4,score5);
|
double lowest = FindLowestValue(score1,score2,score3,score4,score5);
|
||||||
if (lowest<sharpness_threshold){
|
if (lowest<config.getSharpnessThreshold()){
|
||||||
String culprit = "";
|
String culprit = "";
|
||||||
if (lowest==score1) culprit = "camera 1";
|
if (lowest==score1) culprit = "camera 1";
|
||||||
else if (lowest==score2) culprit = "camera 2";
|
else if (lowest==score2) culprit = "camera 2";
|
||||||
else if (lowest==score3) culprit = "camera 3";
|
else if (lowest==score3) culprit = "camera 3";
|
||||||
else if (lowest==score4) culprit = "camera 4";
|
else if (lowest==score4) culprit = "camera 4";
|
||||||
else if (lowest==score5) culprit = "camera 5";
|
else if (lowest==score5) culprit = "camera 5";
|
||||||
AutoCloseAlert.show("Take Photos Failed", "Blurred Image Detected", "Blurred Image Detected at "+culprit+" with sharpness score "+lowest, 5, null);
|
String lowest_string = String.format("%.2f", lowest);
|
||||||
|
AutoCloseAlert.show("Take Photos Failed", "Blurred Image Detected", "Blurred Image Detected at "+culprit+" with sharpness score "+lowest_string, 5, null);
|
||||||
|
isTakingPhoto.set(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -477,17 +457,73 @@ public class CaptureView {
|
|||||||
|
|
||||||
AutoCloseAlert.show("Photos Taken", "Photos Taken", "Photos Taken", 5, null);
|
AutoCloseAlert.show("Photos Taken", "Photos Taken", "Photos Taken", 5, null);
|
||||||
|
|
||||||
|
String[] files = prc.compressed();
|
||||||
|
if (files.length>0){
|
||||||
if (audioPlayer!=null && audioPlayer.isInited()){
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
if (!audioPlayer.getCurrentFile().equals(audio_pengambilan_berhasil)) {
|
if (!Objects.equals(audioPlayer.getCurrentFile(),audio_pengambilan_berhasil)){
|
||||||
audioPlayer.StopCurrentPlayback();
|
audioPlayer.StopCurrentPlayback();
|
||||||
Wait(200);
|
audioPlayer.PlayFile(audio_pengambilan_berhasil, new PlaybackStatus() {
|
||||||
audioPlayer.PlayFile(audio_pengambilan_berhasil, ps);
|
@Override
|
||||||
} else System.out.println("audioPlayer already playing pengambilan berhasil");
|
public void onPlaybackStarted(String filename) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// file untuk di upload
|
@Override
|
||||||
String[] files = prc.compressed();
|
public void onPlaybackFinished(String filename) {
|
||||||
|
Platform.runLater(AutoCloseAlert::close);
|
||||||
|
UploadFiles(prc, prefix);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaybackFailure(String filename) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
|
if (!Objects.equals(audioPlayer.getCurrentFile(),audio_pengambilan_gagal)){
|
||||||
|
audioPlayer.StopCurrentPlayback();
|
||||||
|
audioPlayer.PlayFile(audio_pengambilan_gagal, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaybackFailure(String filename) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// try{
|
||||||
|
// AutoFocus();
|
||||||
|
// Thread.sleep(1000);
|
||||||
|
// } catch (InterruptedException e){
|
||||||
|
// Logger.error("Error AutoFocus: "+e.getMessage());
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
AutoCloseAlert.show("Error", "No Face Detected", "No Face Detected", 5, null);
|
||||||
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
|
if (!Objects.equals(audioPlayer.getCurrentFile(),audio_posisikan_muka)) {
|
||||||
|
audioPlayer.StopCurrentPlayback();
|
||||||
|
audioPlayer.PlayFile(audio_posisikan_muka, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UploadFiles(PhotoReviewClass prc, String prefix){
|
||||||
|
String[] files = prc.compressed();
|
||||||
if (files.length>0){
|
if (files.length>0){
|
||||||
InsertSQL(prc);
|
InsertSQL(prc);
|
||||||
|
|
||||||
@@ -524,60 +560,43 @@ public class CaptureView {
|
|||||||
uploadtask.setOnSucceeded(e-> {
|
uploadtask.setOnSucceeded(e-> {
|
||||||
System.out.println("UploadTask succeeded");
|
System.out.println("UploadTask succeeded");
|
||||||
if (audioPlayer!=null && audioPlayer.isInited()){
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
if (!audioPlayer.getCurrentFile().equals(audio_upload_berhasil)) {
|
if (!Objects.equals(audioPlayer.getCurrentFile(), audio_upload_berhasil)){
|
||||||
audioPlayer.StopCurrentPlayback();
|
audioPlayer.StopCurrentPlayback();
|
||||||
Wait(200);
|
audioPlayer.PlayFile(audio_upload_berhasil, null);
|
||||||
audioPlayer.PlayFile(audio_upload_berhasil, ps);
|
|
||||||
} else System.out.println("audioPlayer already playing upload berhasil");
|
|
||||||
}
|
}
|
||||||
AutoCloseAlert.show("Upload Success", "Upload Success", "Upload Success", 5, null);
|
}
|
||||||
|
AutoCloseAlert.show("Upload Success", "Upload Success", "Upload Success", 5, s -> {
|
||||||
|
isTakingPhoto.set(false);
|
||||||
Platform.runLater(()->{
|
Platform.runLater(()->{
|
||||||
barcodeData.setText("");
|
barcodeData.setText("");
|
||||||
medicalRecordID.setText("");
|
medicalRecordID.setText("");
|
||||||
PatientName.setText("");
|
PatientName.setText("");
|
||||||
isTakingPhoto.set(false);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
uploadtask.setOnFailed(e-> {
|
uploadtask.setOnFailed(e-> {
|
||||||
System.out.println("UploadTask failed");
|
System.out.println("UploadTask failed");
|
||||||
if (audioPlayer!=null && audioPlayer.isInited()){
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
if (!audioPlayer.getCurrentFile().equals(audio_upload_gagal)) {
|
if (!Objects.equals(audioPlayer.getCurrentFile(), audio_upload_gagal)){
|
||||||
audioPlayer.StopCurrentPlayback();
|
audioPlayer.StopCurrentPlayback();
|
||||||
Wait(200);
|
audioPlayer.PlayFile(audio_upload_gagal, null);
|
||||||
audioPlayer.PlayFile(audio_upload_gagal, ps);
|
|
||||||
} else System.out.println("audioPlayer already playing upload gagal");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
AutoCloseAlert.show("Upload Failed", "Upload Failed", "Upload Failed", 5, null);
|
}
|
||||||
|
AutoCloseAlert.show("Upload Failed", "Upload Failed", "Upload Failed", 5, s -> {
|
||||||
|
isTakingPhoto.set(false);
|
||||||
Platform.runLater(()->{
|
Platform.runLater(()->{
|
||||||
barcodeData.setText("");
|
barcodeData.setText("");
|
||||||
medicalRecordID.setText("");
|
medicalRecordID.setText("");
|
||||||
PatientName.setText("");
|
PatientName.setText("");
|
||||||
isTakingPhoto.set(false);
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
new Thread(uploadtask).start();
|
new Thread(uploadtask).start();
|
||||||
|
|
||||||
} else ShowAlert(AlertType.ERROR, "Error", "No Photos Taken", "No Photos Taken, please check camera");
|
} else ShowAlert(AlertType.ERROR, "Error", "No Photos Taken", "No Photos Taken, please check camera");
|
||||||
} else ShowAlert(AlertType.ERROR, "Error", "Invalid Prefix", "Please input valid prefix or scan QR Code");
|
|
||||||
} else ShowAlert(AlertType.ERROR,"Error","Invalid Directory","Please select valid directory");
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
AutoCloseAlert.show("Error", "No Face Detected", "No Face Detected", 5, null);
|
|
||||||
if (audioPlayer!=null && audioPlayer.isInited()){
|
|
||||||
if (!audioPlayer.getCurrentFile().equals(audio_posisikan_muka)) {
|
|
||||||
audioPlayer.StopCurrentPlayback();
|
|
||||||
Wait(200);
|
|
||||||
audioPlayer.PlayFile(audio_posisikan_muka, ps);
|
|
||||||
} else System.out.println("audioPlayer already playing posisikan muka");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -589,17 +608,16 @@ public class CaptureView {
|
|||||||
audio_upload_berhasil = ExtractResource("/upload_berhasil.wav");
|
audio_upload_berhasil = ExtractResource("/upload_berhasil.wav");
|
||||||
audio_upload_gagal = ExtractResource("/upload_gagal.wav");
|
audio_upload_gagal = ExtractResource("/upload_gagal.wav");
|
||||||
audio_countdown = ExtractResource("/countdown321.wav");
|
audio_countdown = ExtractResource("/countdown321.wav");
|
||||||
|
audio_camera_shutter = ExtractResource("/camera-shutter-click-01.wav");
|
||||||
audio_tahan_posisi = ExtractResource("/tahan_posisi.wav");
|
audio_tahan_posisi = ExtractResource("/tahan_posisi.wav");
|
||||||
audio_kesalahan_server = ExtractResource("/kesalahan_server.wav");
|
audio_kesalahan_server = ExtractResource("/kesalahan_server.wav");
|
||||||
audio_data_barcode_tidak_ditemukan = ExtractResource("/data_barcode_tidak_ditemukan.wav");
|
audio_data_barcode_tidak_ditemukan = ExtractResource("/data_barcode_tidak_ditemukan.wav");
|
||||||
|
|
||||||
|
|
||||||
//tambahan 19/03/2025
|
//tambahan 19/03/2025
|
||||||
barcodeData.textProperty().addListener(new InvalidationListener() {
|
barcodeData.textProperty().addListener(observable -> {
|
||||||
@Override
|
|
||||||
public void invalidated(Observable observable) {
|
|
||||||
String barcode = barcodeData.getText();
|
String barcode = barcodeData.getText();
|
||||||
System.out.println("barcodeData invalidated, value: "+barcode);
|
//System.out.println("barcodeData invalidated, value: "+barcode);
|
||||||
if (ValidBarCode(barcode)){
|
if (ValidBarCode(barcode)){
|
||||||
if (AutoCloseAlert.shownTitle.equals("Scan Barcode")){
|
if (AutoCloseAlert.shownTitle.equals("Scan Barcode")){
|
||||||
AutoCloseAlert.close();
|
AutoCloseAlert.close();
|
||||||
@@ -607,7 +625,6 @@ public class CaptureView {
|
|||||||
} else {
|
} else {
|
||||||
AutoCloseAlert.show("Scan Barcode", "Silahkan Scan Barcode Anda", "Arahkan kertas barcode ke kamera", 0, null);
|
AutoCloseAlert.show("Scan Barcode", "Silahkan Scan Barcode Anda", "Arahkan kertas barcode ke kamera", 0, null);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
barcodeData.setText("");
|
barcodeData.setText("");
|
||||||
|
|
||||||
@@ -727,59 +744,59 @@ public class CaptureView {
|
|||||||
config.Save();
|
config.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
final PlaybackStatus ps = new PlaybackStatus(){
|
// final PlaybackStatus ps = new PlaybackStatus(){
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void onPlaybackStarted(String filename) {
|
// public void onPlaybackStarted(String filename) {
|
||||||
if (filename.contains(audio_posisikan_muka)){
|
// if (filename.contains(audio_posisikan_muka)){
|
||||||
Logger.info("Audio Positikan Muka Started");
|
// Logger.info("Audio Positikan Muka Started");
|
||||||
} else if (filename.contains(audio_pengambilan_berhasil)){
|
// } else if (filename.contains(audio_pengambilan_berhasil)){
|
||||||
Logger.info("Audio Pengambilan Berhasil Started");
|
// Logger.info("Audio Pengambilan Berhasil Started");
|
||||||
} else if (filename.contains(audio_pengambilan_gagal)){
|
// } else if (filename.contains(audio_pengambilan_gagal)){
|
||||||
Logger.info("Audio Pengambilan Gagal Started");
|
// Logger.info("Audio Pengambilan Gagal Started");
|
||||||
} else if (filename.contains(audio_scan_barcode)){
|
// } else if (filename.contains(audio_scan_barcode)){
|
||||||
Logger.info("Audio Scan Barcode Started");
|
// Logger.info("Audio Scan Barcode Started");
|
||||||
} else if (filename.contains(audio_upload_berhasil)){
|
// } else if (filename.contains(audio_upload_berhasil)){
|
||||||
Logger.info("Audio Upload Berhasil Started");
|
// Logger.info("Audio Upload Berhasil Started");
|
||||||
} else if (filename.contains(audio_upload_gagal)){
|
// } else if (filename.contains(audio_upload_gagal)){
|
||||||
Logger.info("Audio Upload Gagal Started");
|
// Logger.info("Audio Upload Gagal Started");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void onPlaybackFinished(String filename) {
|
// public void onPlaybackFinished(String filename) {
|
||||||
if (filename.contains(audio_posisikan_muka)){
|
// if (filename.contains(audio_posisikan_muka)){
|
||||||
Logger.info("Audio Positikan Muka Finished");
|
// Logger.info("Audio Positikan Muka Finished");
|
||||||
} else if (filename.contains(audio_scan_barcode)){
|
// } else if (filename.contains(audio_scan_barcode)){
|
||||||
Logger.info("Audio Scan Barcode Finished");
|
// Logger.info("Audio Scan Barcode Finished");
|
||||||
} else if (filename.contains(audio_upload_berhasil)){
|
// } else if (filename.contains(audio_upload_berhasil)){
|
||||||
Logger.info("Audio Upload Berhasil Finished");
|
// Logger.info("Audio Upload Berhasil Finished");
|
||||||
} else if (filename.contains(audio_upload_gagal)){
|
// } else if (filename.contains(audio_upload_gagal)){
|
||||||
Logger.info("Audio Upload Gagal Finished");
|
// Logger.info("Audio Upload Gagal Finished");
|
||||||
} else if (filename.contains(audio_pengambilan_berhasil)){
|
// } else if (filename.contains(audio_pengambilan_berhasil)){
|
||||||
Logger.info("Audio Pengambilan Berhasil Finished");
|
// Logger.info("Audio Pengambilan Berhasil Finished");
|
||||||
} else if (filename.contains(audio_pengambilan_gagal)){
|
// } else if (filename.contains(audio_pengambilan_gagal)){
|
||||||
Logger.info("Audio Pengambilan Gagal Finished");
|
// Logger.info("Audio Pengambilan Gagal Finished");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void onPlaybackFailure(String filename) {
|
// public void onPlaybackFailure(String filename) {
|
||||||
if (filename.contains(audio_posisikan_muka)){
|
// if (filename.contains(audio_posisikan_muka)){
|
||||||
Logger.info("Audio Positikan Muka Failure");
|
// Logger.info("Audio Positikan Muka Failure");
|
||||||
} else if (filename.contains(audio_upload_gagal)){
|
// } else if (filename.contains(audio_upload_gagal)){
|
||||||
Logger.info("Audio Upload Gagal Failure");
|
// Logger.info("Audio Upload Gagal Failure");
|
||||||
} else if (filename.contains(audio_upload_berhasil)){
|
// } else if (filename.contains(audio_upload_berhasil)){
|
||||||
Logger.info("Audio Upload Berhasil Failure");
|
// Logger.info("Audio Upload Berhasil Failure");
|
||||||
} else if (filename.contains(audio_pengambilan_berhasil)){
|
// } else if (filename.contains(audio_pengambilan_berhasil)){
|
||||||
Logger.info("Audio Pengambilan Berhasil Failure");
|
// Logger.info("Audio Pengambilan Berhasil Failure");
|
||||||
} else if (filename.contains(audio_pengambilan_gagal)){
|
// } else if (filename.contains(audio_pengambilan_gagal)){
|
||||||
Logger.info("Audio Pengambilan Gagal Failure");
|
// Logger.info("Audio Pengambilan Gagal Failure");
|
||||||
} else if (filename.contains(audio_scan_barcode)){
|
// } else if (filename.contains(audio_scan_barcode)){
|
||||||
Logger.info("Audio Scan Barcode Failure");
|
// Logger.info("Audio Scan Barcode Failure");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
};
|
// };
|
||||||
|
|
||||||
private void SetupCameraWithController(Cameradetail image, String cameraname, int devicenumber){
|
private void SetupCameraWithController(Cameradetail image, String cameraname, int devicenumber){
|
||||||
if (image!=null){
|
if (image!=null){
|
||||||
@@ -947,32 +964,35 @@ public class CaptureView {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (audioPlayer!=null && audioPlayer.isInited()){
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
if (!audioPlayer.getCurrentFile().equals(audio_posisikan_muka)) {
|
if (!Objects.equals(audioPlayer.getCurrentFile(),audio_posisikan_muka)) {
|
||||||
audioPlayer.StopCurrentPlayback();
|
audioPlayer.StopCurrentPlayback();
|
||||||
Wait(200);
|
audioPlayer.PlayFile(audio_posisikan_muka, null);
|
||||||
audioPlayer.PlayFile(audio_posisikan_muka, ps);
|
}
|
||||||
} else System.out.println("audioPlayer already playing posisikan muka");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
checkpatientID.setOnFailed(event -> {
|
checkpatientID.setOnFailed(event -> {
|
||||||
audioPlayer.PlayFile(audio_data_barcode_tidak_ditemukan,ps);
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
|
if (!Objects.equals(audioPlayer.getCurrentFile(), audio_data_barcode_tidak_ditemukan)) {
|
||||||
|
audioPlayer.StopCurrentPlayback();
|
||||||
|
audioPlayer.PlayFile(audio_data_barcode_tidak_ditemukan,null);
|
||||||
|
}
|
||||||
|
}
|
||||||
Task<?> failed = (Task<?>) event.getSource();
|
Task<?> failed = (Task<?>) event.getSource();
|
||||||
Throwable t = failed.getException();
|
Throwable t = failed.getException();
|
||||||
final String message = t.getMessage();
|
final String message = t.getMessage();
|
||||||
System.out.println("checkpatientID.setOnFailed message : "+message);
|
System.out.println("checkpatientID.setOnFailed message : "+message);
|
||||||
AutoCloseAlert.show("Data Tidak Ditemukan", message, "Pastikan data barcode anda benar", 5, new Consumer<String>() {
|
|
||||||
@Override
|
|
||||||
public void accept(String s) {
|
AutoCloseAlert.show("Data Tidak Ditemukan", message, "Pastikan data barcode anda benar", 5, s -> {
|
||||||
|
isTakingPhoto.set(false);
|
||||||
Platform.runLater(()->{
|
Platform.runLater(()->{
|
||||||
medicalRecordID.setText("");
|
medicalRecordID.setText("");
|
||||||
PatientName.setText("");
|
PatientName.setText("");
|
||||||
barcodeData.setText("");
|
barcodeData.setText("");
|
||||||
isTakingPhoto.set(false);
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -990,7 +1010,10 @@ public class CaptureView {
|
|||||||
public void onFrontalFaceDetector(boolean hasface, int width, int height) {
|
public void onFrontalFaceDetector(boolean hasface, int width, int height) {
|
||||||
if (hasface!= _have_face.get()){
|
if (hasface!= _have_face.get()){
|
||||||
_have_face.set(hasface);
|
_have_face.set(hasface);
|
||||||
update_status(image);
|
if (!hasface) {
|
||||||
|
_have_eye.set(false);
|
||||||
|
}
|
||||||
|
//update_status(image);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1000,15 +1023,18 @@ public class CaptureView {
|
|||||||
public void onProfileFaceDetector(boolean hasface, int width, int height) {
|
public void onProfileFaceDetector(boolean hasface, int width, int height) {
|
||||||
if (hasface!= _have_profile.get()){
|
if (hasface!= _have_profile.get()){
|
||||||
_have_profile.set(hasface);
|
_have_profile.set(hasface);
|
||||||
update_status(image);
|
if (!hasface) {
|
||||||
|
_have_eye.set(false);
|
||||||
|
}
|
||||||
|
//update_status(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEyeDetector(boolean hasEye, int width, int height) {
|
public void onEyeDetector(boolean hasEye) {
|
||||||
// _have_eye.set(hasEye);
|
if (_have_face.get() || _have_profile.get()) _have_eye.set(hasEye);
|
||||||
// update_status(image);
|
//update_status(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1043,28 +1069,36 @@ public class CaptureView {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBlink(int counter) {
|
public void onBlink(int counter) {
|
||||||
if (isTakingPhoto.get()) return; // other camera is taking picture
|
|
||||||
System.out.println("Blink detected at camera "+title+" delay= "+counter);
|
System.out.println("Blink detected at camera "+title+" delay= "+counter);
|
||||||
|
|
||||||
|
if (isTakingPhoto.get()) return; // other camera is taking picture
|
||||||
|
String directory = config.getPhotoDirectory();
|
||||||
|
String prefix = RemoveSpaces(medicalRecordID.getText()) ;
|
||||||
|
if (ValidDirectory(directory)){
|
||||||
|
if (ValidMedicalRecordId(prefix)){
|
||||||
isTakingPhoto.set(true);
|
isTakingPhoto.set(true);
|
||||||
String prefix = medicalRecordID.getText();
|
TakePhotos(directory,prefix);
|
||||||
if (!prefix.isEmpty()){
|
|
||||||
System.out.println("Prefix valid, taking photo");
|
|
||||||
TakePhotos();
|
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Prefix invalid, not taking photo");
|
System.out.println("Prefix invalid, not taking photo");
|
||||||
isTakingPhoto.set(false);
|
isTakingPhoto.set(false);
|
||||||
AutoCloseAlert.show("QR Code Not Available", "", "Please scan QR before continue", 5, null);
|
AutoCloseAlert.show("QR Code Not Available", "", "Please scan QR before continue", 5, s -> AutoCloseAlert.show("Scan Barcode", "Silahkan Scan Barcode Anda", "Arahkan kertas barcode ke kamera", 0, null));
|
||||||
if (audioPlayer!=null && audioPlayer.isInited()){
|
if (audioPlayer!=null && audioPlayer.isInited()){
|
||||||
if (!audioPlayer.getCurrentFile().equals(audio_scan_barcode)) {
|
if (!Objects.equals(audioPlayer.getCurrentFile(), audio_scan_barcode)) {
|
||||||
audioPlayer.StopCurrentPlayback();
|
audioPlayer.StopCurrentPlayback();
|
||||||
Wait(200);
|
audioPlayer.PlayFile(audio_scan_barcode, null);
|
||||||
audioPlayer.PlayFile(audio_scan_barcode, ps);
|
}
|
||||||
} else System.out.println("audioPlayer already playing scan barcode");
|
}
|
||||||
|
}
|
||||||
}
|
} else {
|
||||||
|
System.out.println("Photo Directory invalid, not taking photo");
|
||||||
|
isTakingPhoto.set(false);
|
||||||
|
AutoCloseAlert.show("Invalid Photo Directory","Photo Directory not set", "Please set photo directory at Setting", 5, s -> AutoCloseAlert.show("Setting", "Setting", "Please set photo directory", 0, null));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStartCapturing() {
|
||||||
|
update_status(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void update_status(Cameradetail image){
|
private void update_status(Cameradetail image){
|
||||||
@@ -1076,15 +1110,13 @@ public class CaptureView {
|
|||||||
sb.append(image.getBestHeight());
|
sb.append(image.getBestHeight());
|
||||||
sb.append("@");
|
sb.append("@");
|
||||||
sb.append(image.getLiveFPS());
|
sb.append(image.getLiveFPS());
|
||||||
if (_have_face.get()) sb.append(", Face");
|
//if (_have_face.get()) sb.append(", Face");
|
||||||
if (_have_profile.get()) sb.append(", Profile");
|
//if (_have_profile.get()) sb.append(", Face");
|
||||||
if (_have_eye.get()) sb.append(", Eye");
|
//if (_have_eye.get()) sb.append(", Eye");
|
||||||
if (_have_left_eye.get()) sb.append(", Left Eye");
|
// if (_have_left_eye.get()) sb.append(", Left Eye");
|
||||||
if (_have_right_eye.get()) sb.append(", Right Eye");
|
// if (_have_right_eye.get()) sb.append(", Right Eye");
|
||||||
if (_have_left_ear.get()) sb.append(", Left Ear");
|
// if (_have_left_ear.get()) sb.append(", Left Ear");
|
||||||
if (_have_right_ear.get()) sb.append(", Right Ear");
|
// if (_have_right_ear.get()) sb.append(", Right Ear");
|
||||||
|
|
||||||
|
|
||||||
image.setCameraStatus(sb.toString());
|
image.setCameraStatus(sb.toString());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,11 @@ package id.co.gtc.erhacam;
|
|||||||
|
|
||||||
import FTP.FTPCheck;
|
import FTP.FTPCheck;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
|
import javafx.beans.value.ChangeListener;
|
||||||
|
import javafx.beans.value.ObservableValue;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.Alert;
|
import javafx.scene.control.Alert;
|
||||||
|
import javafx.scene.control.CheckBox;
|
||||||
import javafx.scene.control.ComboBox;
|
import javafx.scene.control.ComboBox;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.stage.DirectoryChooser;
|
import javafx.stage.DirectoryChooser;
|
||||||
@@ -13,6 +16,7 @@ import org.bytedeco.javacv.VideoInputFrameGrabber;
|
|||||||
import org.tinylog.Logger;
|
import org.tinylog.Logger;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import static Config.SomeCodes.*;
|
import static Config.SomeCodes.*;
|
||||||
|
|
||||||
@@ -39,9 +43,18 @@ public class SettingView {
|
|||||||
@FXML
|
@FXML
|
||||||
private TextField FTPPath;
|
private TextField FTPPath;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private TextField Sharpness;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private TextField PhotoDirectoryPath;
|
private TextField PhotoDirectoryPath;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private CheckBox MirrorCamera;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private CheckBox FlipCamera;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
final FileChooser jfc = new FileChooser();
|
final FileChooser jfc = new FileChooser();
|
||||||
@@ -68,8 +81,20 @@ public class SettingView {
|
|||||||
PhotoDirectoryPath.setText(path);
|
PhotoDirectoryPath.setText(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private void SharpnessApply(){
|
||||||
|
String str = Sharpness.getText();
|
||||||
|
if (ValidDouble(str)){
|
||||||
|
config.setSharpnessThreshold(Double.parseDouble(str));
|
||||||
|
config.Save();
|
||||||
|
} else {
|
||||||
|
ShowAlert(Alert.AlertType.ERROR, "Sharpness Setting Error", "Sharpness Setting Error", "Sharpness Setting must be a number");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void CascadeSettingApply(){
|
private void CascadeSettingApply(){
|
||||||
|
|
||||||
String minsize = cascadeMinSize.getText();
|
String minsize = cascadeMinSize.getText();
|
||||||
String scalefactor = cascadeScaleFactor.getText();
|
String scalefactor = cascadeScaleFactor.getText();
|
||||||
String maxsize = cascadeMaxSize.getText();
|
String maxsize = cascadeMaxSize.getText();
|
||||||
@@ -104,6 +129,7 @@ public class SettingView {
|
|||||||
} else show_cascade_alert("Max Size must not empty");
|
} else show_cascade_alert("Max Size must not empty");
|
||||||
} else show_cascade_alert("Min Size must not empty");
|
} else show_cascade_alert("Min Size must not empty");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void show_cascade_alert(String content){
|
private void show_cascade_alert(String content){
|
||||||
@@ -123,7 +149,17 @@ public class SettingView {
|
|||||||
Logger.error("Unable to detect Cameras, Msg : "+e.getMessage());
|
Logger.error("Unable to detect Cameras, Msg : "+e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MirrorCamera.selectedProperty().addListener(((observable, oldValue, newValue) -> {
|
||||||
|
System.out.println("Mirror option changed to : "+newValue);
|
||||||
|
config.setMirrorCamera(newValue);
|
||||||
|
config.Save();
|
||||||
|
}));
|
||||||
|
|
||||||
|
FlipCamera.selectedProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
|
System.out.println("Flip option changed to : "+newValue);
|
||||||
|
config.setFlipCamera(newValue);
|
||||||
|
config.Save();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
Platform.runLater(()->{
|
Platform.runLater(()->{
|
||||||
@@ -166,6 +202,12 @@ public class SettingView {
|
|||||||
cascadeScaleFactor.setText(String.valueOf(config.getCascadeScaleFactor()));
|
cascadeScaleFactor.setText(String.valueOf(config.getCascadeScaleFactor()));
|
||||||
cascadeMinSize.setText(String.valueOf(config.getCascadeMinSize()));
|
cascadeMinSize.setText(String.valueOf(config.getCascadeMinSize()));
|
||||||
cascadeMaxSize.setText(String.valueOf(config.getCascadeMaxSize()));
|
cascadeMaxSize.setText(String.valueOf(config.getCascadeMaxSize()));
|
||||||
|
|
||||||
|
MirrorCamera.setSelected(config.isMirrorCamera());
|
||||||
|
FlipCamera.setSelected(config.isFlipCamera());
|
||||||
|
|
||||||
|
Sharpness.setText(String.valueOf(config.getSharpnessThreshold()));
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<?import javafx.scene.image.*?>
|
<?import javafx.scene.image.*?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
|
|
||||||
<AnchorPane prefHeight="720.0" prefWidth="360.0" xmlns="http://javafx.com/javafx/11.0.14-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="id.co.gtc.erhacam.Cameradetail">
|
<AnchorPane prefHeight="720.0" prefWidth="360.0" xmlns="http://javafx.com/javafx/17.0.12" xmlns:fx="http://javafx.com/fxml/1" fx:controller="id.co.gtc.erhacam.Cameradetail">
|
||||||
<children>
|
<children>
|
||||||
<GridPane layoutX="5.0" layoutY="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<GridPane layoutX="5.0" layoutY="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
@@ -22,6 +22,9 @@
|
|||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="20.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="20.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="10.0" prefWidth="100.0" />
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="10.0" prefWidth="100.0" />
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="10.0" prefWidth="100.0" />
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
|
||||||
@@ -37,6 +40,23 @@
|
|||||||
<Label fx:id="camerastatus" alignment="CENTER" style="-fx-border-color: black;" text="Camera Status" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
|
<Label fx:id="camerastatus" alignment="CENTER" style="-fx-border-color: black;" text="Camera Status" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" style="-fx-border-color: black;" GridPane.columnIndex="2">
|
||||||
|
<children>
|
||||||
|
<Label fx:id="face_indicator" alignment="CENTER" layoutY="8.0" prefHeight="30.0" prefWidth="35.0" text="Face" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
|
||||||
|
|
||||||
|
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" style="-fx-border-color: black;" GridPane.columnIndex="3">
|
||||||
|
<children>
|
||||||
|
<Label fx:id="eye_indicator" alignment="CENTER" layoutY="8.0" prefHeight="30.0" prefWidth="35.0" text="Eye" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="4">
|
||||||
|
<children>
|
||||||
|
<Label fx:id="sharpness_indicator" alignment="CENTER" layoutX="7.0" layoutY="8.0" prefHeight="30.0" prefWidth="35.0" style="-fx-border-color: black;" text="0.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</children>
|
</children>
|
||||||
@@ -68,9 +88,9 @@
|
|||||||
<Insets />
|
<Insets />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
<AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" scaleZ="0.0" GridPane.rowIndex="1">
|
||||||
<children>
|
<children>
|
||||||
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="240.0" prefWidth="140.0" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="240.0" prefWidth="140.0" scaleZ="0.0" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
<children>
|
<children>
|
||||||
<Label text="Brightness" />
|
<Label text="Brightness" />
|
||||||
<Slider fx:id="brightnessSlider" min="-100.0">
|
<Slider fx:id="brightnessSlider" min="-100.0">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<?import javafx.scene.control.*?>
|
<?import javafx.scene.control.*?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
|
|
||||||
<AnchorPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefWidth="1024.0" xmlns="http://javafx.com/javafx/11.0.14-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="id.co.gtc.erhacam.SettingView">
|
<AnchorPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefWidth="1024.0" xmlns="http://javafx.com/javafx/17.0.12" xmlns:fx="http://javafx.com/fxml/1" fx:controller="id.co.gtc.erhacam.SettingView">
|
||||||
<children>
|
<children>
|
||||||
<GridPane layoutX="70.0" layoutY="78.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<GridPane layoutX="70.0" layoutY="78.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints minHeight="200.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="300.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints minHeight="200.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="200.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
<children>
|
<children>
|
||||||
<GridPane>
|
<GridPane>
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="15.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="25.0" prefWidth="100.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="15.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="15.0" prefWidth="100.0" />
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
@@ -51,6 +51,9 @@
|
|||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<AnchorPane prefHeight="200.0" prefWidth="200.0">
|
<AnchorPane prefHeight="200.0" prefWidth="200.0">
|
||||||
@@ -128,6 +131,41 @@
|
|||||||
<Button layoutX="22.0" layoutY="8.0" mnemonicParsing="false" onAction="#ApplyCameraRight90" prefHeight="40.0" prefWidth="88.0" text="Apply" AnchorPane.bottomAnchor="2.0" AnchorPane.leftAnchor="2.0" AnchorPane.rightAnchor="2.0" AnchorPane.topAnchor="2.0" />
|
<Button layoutX="22.0" layoutY="8.0" mnemonicParsing="false" onAction="#ApplyCameraRight90" prefHeight="40.0" prefWidth="88.0" text="Apply" AnchorPane.bottomAnchor="2.0" AnchorPane.leftAnchor="2.0" AnchorPane.rightAnchor="2.0" AnchorPane.topAnchor="2.0" />
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="5">
|
||||||
|
<children>
|
||||||
|
<Label layoutX="60.0" prefHeight="40.0" prefWidth="175.0" text="Mirror Camera" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="0.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="5">
|
||||||
|
<children>
|
||||||
|
<CheckBox fx:id="MirrorCamera" layoutX="30.0" layoutY="6.0" mnemonicParsing="false" prefHeight="40.0" prefWidth="175.0" AnchorPane.bottomAnchor="2.0" AnchorPane.leftAnchor="2.0" AnchorPane.rightAnchor="2.0" AnchorPane.topAnchor="2.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="6">
|
||||||
|
<children>
|
||||||
|
<Label prefHeight="40.0" prefWidth="175.0" text="Flip Camera" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="0.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="6">
|
||||||
|
<children>
|
||||||
|
<CheckBox fx:id="FlipCamera" mnemonicParsing="false" prefHeight="40.0" prefWidth="175.0" AnchorPane.bottomAnchor="2.0" AnchorPane.leftAnchor="2.0" AnchorPane.rightAnchor="2.0" AnchorPane.topAnchor="2.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="7">
|
||||||
|
<children>
|
||||||
|
<Label layoutX="32.0" layoutY="19.0" prefHeight="37.0" prefWidth="92.0" text="Sharpness Threshold" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="0.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="7">
|
||||||
|
<children>
|
||||||
|
<TextField fx:id="Sharpness" layoutX="35.0" layoutY="2.0" prefHeight="37.0" prefWidth="368.0" promptText="if Sharpness below this number, photos considered as blurred" AnchorPane.bottomAnchor="2.0" AnchorPane.leftAnchor="2.0" AnchorPane.rightAnchor="2.0" AnchorPane.topAnchor="2.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane GridPane.columnIndex="2" GridPane.rowIndex="7">
|
||||||
|
<children>
|
||||||
|
<Button mnemonicParsing="false" onAction="#SharpnessApply" prefHeight="37.0" prefWidth="92.0" text="Apply" AnchorPane.bottomAnchor="2.0" AnchorPane.leftAnchor="2.0" AnchorPane.rightAnchor="2.0" AnchorPane.topAnchor="2.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<GridPane GridPane.columnIndex="1">
|
<GridPane GridPane.columnIndex="1">
|
||||||
@@ -152,7 +190,7 @@
|
|||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
<AnchorPane GridPane.rowIndex="1">
|
<AnchorPane GridPane.rowIndex="1">
|
||||||
<children>
|
<children>
|
||||||
<ScrollPane layoutY="0.7999992370605469" prefHeight="200.8" prefWidth="410.4" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="0.0">
|
<ScrollPane layoutX="5.0" prefHeight="200.8" prefWidth="410.4" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="0.0">
|
||||||
<content>
|
<content>
|
||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="200.0" minWidth="0.0" prefWidth="350.0">
|
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="200.0" minWidth="0.0" prefWidth="350.0">
|
||||||
<children>
|
<children>
|
||||||
|
|||||||
BIN
voices/camera-shutter-click-01.wav
Normal file
BIN
voices/camera-shutter-click-01.wav
Normal file
Binary file not shown.
Reference in New Issue
Block a user