@@ -173,7 +173,7 @@ void FingerprintModule::loop()
173173
174174 if (resetLedsTimer > 0 && delayCheck (resetLedsTimer, LED_RESET_TIMEOUT ))
175175 {
176- setLedDefault ();
176+ resetRingLed ();
177177 resetLedsTimer = 0 ;
178178 }
179179
@@ -250,9 +250,10 @@ bool FingerprintModule::searchForFinger()
250250 return true ;
251251}
252252
253- void FingerprintModule::setLedDefault ()
253+ void FingerprintModule::resetRingLed ()
254254{
255255 finger.setLed (KoFIN_LedRingColor.value (Dpt (5 , 10 )), KoFIN_LedRingControl.value (Dpt (5 , 10 )), KoFIN_LedRingSpeed.value (Dpt (5 , 10 )), KoFIN_LedRingCount.value (Dpt (5 , 10 )));
256+ logInfoP (" LED ring: color=%u, control=%u, speed=%u, count=%u" , (uint8_t )KoFIN_LedRingColor.value (Dpt (5 , 10 )), (uint8_t )KoFIN_LedRingControl.value (Dpt (5 , 10 )), (uint8_t )KoFIN_LedRingSpeed.value (Dpt (5 , 10 )), (uint8_t )KoFIN_LedRingCount.value (Dpt (5 , 10 )));
256257}
257258
258259void FingerprintModule::processScanSuccess (uint16_t location, bool external)
@@ -393,106 +394,111 @@ bool FingerprintModule::deleteFinger(uint16_t location, bool sync)
393394 return success;
394395}
395396
396- void FingerprintModule::processInputKo (GroupObject& iKo )
397+ void FingerprintModule::processInputKo (GroupObject& ko )
397398{
398399 uint16_t location;
399400
400- uint16_t lAsap = iKo .asap ();
401- switch (lAsap )
401+ uint16_t asap = ko .asap ();
402+ switch (asap )
402403 {
403404 case FIN_KoLock:
404- isLocked = KoFIN_Lock.value (DPT_Switch);
405- KoFIN_LockStatus.value (isLocked, DPT_Switch);
406- logInfoP (" Locked: %d" , isLocked);
407-
408- if (isLocked)
409- finger.setLed (Fingerprint::State::Locked);
410- else
411- setLedDefault ();
412-
405+ processInputKoLock (ko);
413406 break ;
414407 case FIN_KoLedRingColor:
415408 case FIN_KoLedRingControl:
416409 case FIN_KoLedRingSpeed:
417410 case FIN_KoLedRingCount:
418- setLedDefault ();
419- logInfoP (" LED ring: color=%u, control=%u, speed=%u, count=%u" , (uint8_t )KoFIN_LedRingColor.value (Dpt (5 , 10 )), (uint8_t )KoFIN_LedRingControl.value (Dpt (5 , 10 )), (uint8_t )KoFIN_LedRingSpeed.value (Dpt (5 , 10 )), (uint8_t )KoFIN_LedRingCount.value (Dpt (5 , 10 )));
411+ resetRingLed ();
420412 break ;
421413 case FIN_KoTouchPcbLedRed:
422- if (iKo.value (DPT_Switch))
423- digitalWrite (LED_RED_PIN , HIGH );
424- else
425- digitalWrite (LED_RED_PIN , LOW );
426-
427- break ;
428414 case FIN_KoTouchPcbLedGreen:
429- if (iKo.value (DPT_Switch))
430- digitalWrite (LED_GREEN_PIN , HIGH );
431- else
432- digitalWrite (LED_GREEN_PIN , LOW );
433-
415+ processInputKoTouchPcbLed (ko);
434416 break ;
435417 case FIN_KoSync:
436- processSyncReceive (iKo .valueRef ());
418+ processSyncReceive (ko .valueRef ());
437419 break ;
438420 }
439421
440422 if (isLocked)
441423 return ;
442424
443- switch (lAsap )
425+ switch (asap )
444426 {
445427 case FIN_KoEnrollNext:
446428 case FIN_KoEnrollId:
447429 case FIN_KoEnrollData:
448- if (lAsap == FIN_KoEnrollNext)
449- {
450- location = finger.getNextFreeLocation ();
451- logInfoP (" Next availabe location: %d" , location);
452- }
453- else if (lAsap == FIN_KoEnrollId)
454- {
455- location = iKo.value (Dpt (7 , 1 ));
456- logInfoP (" Location provided: %d" , location);
457- }
458- else
459- {
460- location = iKo.value (Dpt (15 , 1 , 0 ));
461- logInfoP (" Location provided: %d" , location);
462- }
463-
464- enrollRequestedTimer = delayTimerInit ();
465- enrollRequestedLocation = location;
430+ processInputKoEnroll (ko);
466431 break ;
467432 case FIN_KoDeleteId:
468433 case FIN_KoDeleteData:
469- if (lAsap == FIN_KoDeleteId)
470- {
471- location = iKo.value (Dpt (7 , 1 ));
472- logInfoP (" Location provided: %d" , location);
473- }
434+ if (asap == FIN_KoDeleteId)
435+ location = ko.value (Dpt (7 , 1 ));
474436 else
475- {
476- location = iKo.value (Dpt (15 , 1 , 0 ));
477- logInfoP (" Location provided: %d" , location);
478- }
437+ location = ko.value (Dpt (15 , 1 , 0 ));
479438
439+ logInfoP (" Location provided: %d" , location);
480440 deleteFinger (location);
481441 break ;
482442 case FIN_KoExternFingerId:
483- location = iKo .value (Dpt (7 , 1 ));
443+ location = ko .value (Dpt (7 , 1 ));
484444 logInfoP (" FingerID received: %d" , location);
485445
486446 processScanSuccess (location, true );
487447 break ;
488448 default :
489449 {
490450 for (uint16_t i = 0 ; i < ParamFIN_VisibleActions; i++)
491- _channels[i]->processInputKo (iKo );
451+ _channels[i]->processInputKo (ko );
492452 }
493453 }
494454}
495455
456+ void FingerprintModule::processInputKoLock (GroupObject &ko)
457+ {
458+ isLocked = ko.value (DPT_Switch);
459+ KoFIN_LockStatus.value (isLocked, DPT_Switch);
460+ logInfoP (" Locked: %d" , isLocked);
461+
462+ if (isLocked)
463+ finger.setLed (Fingerprint::State::Locked);
464+ else
465+ resetRingLed ();
466+ }
467+
468+ void FingerprintModule::processInputKoTouchPcbLed (GroupObject &ko)
469+ {
470+ bool ledOn = ko.value (DPT_Switch);
471+ uint16_t asap = ko.asap ();
472+ if (asap == FIN_KoTouchPcbLedRed)
473+ digitalWrite (LED_RED_PIN , ledOn ? HIGH : LOW );
474+ else if (asap == FIN_KoTouchPcbLedGreen)
475+ digitalWrite (LED_GREEN_PIN , ledOn ? HIGH : LOW );
476+ }
477+
478+ void FingerprintModule::processInputKoEnroll (GroupObject &ko)
479+ {
480+ uint16_t location;
481+ uint16_t asap = ko.asap ();
482+ if (asap == FIN_KoEnrollNext)
483+ {
484+ location = finger.getNextFreeLocation ();
485+ logInfoP (" Next availabe location: %d" , location);
486+ }
487+ else if (asap == FIN_KoEnrollId)
488+ {
489+ location = ko.value (Dpt (7 , 1 ));
490+ logInfoP (" Location provided: %d" , location);
491+ }
492+ else
493+ {
494+ location = ko.value (Dpt (15 , 1 , 0 ));
495+ logInfoP (" Location provided: %d" , location);
496+ }
497+
498+ enrollRequestedTimer = delayTimerInit ();
499+ enrollRequestedLocation = location;
500+ }
501+
496502void FingerprintModule::startSyncDelete (uint16_t fingerId)
497503{
498504 if (!ParamFIN_EnableSync ||
@@ -549,7 +555,7 @@ void FingerprintModule::startSyncSend(uint16_t fingerId, bool loadModel)
549555 return ;
550556 }
551557
552- setLedDefault ();
558+ resetRingLed ();
553559
554560 uint32_t storageOffset = FIN_CaclStorageOffset (fingerId);
555561 uint8_t personData[29 ] = {};
0 commit comments