Skip to content

Návrh na Dallas řešení #2

Description

@reverendcz

POLYGON – návrh budoucí evidence pomocí Dallas čipů

Účel dokumentu: provozní návrh budoucího řešení evidence cvičenců pomocí Dallas čipů a tří čteček.


1. Cíl řešení

Cílem je odstranit ruční hlídání časů a vytvořit jednoduchý systém, který bude automaticky evidovat:

  • kdo přišel k výcviku,
  • komu byl vydán konkrétní Dallas čip,
  • kdo čeká na vstup,
  • kdo právě cvičí v polygonu,
  • přesný čas vstupu každého cvičence,
  • přesný čas výstupu každého cvičence,
  • dobu pobytu v polygonu,
  • kdo už má výcvik dokončen,
  • kdo ještě neodevzdal čip,
  • které čipy jsou právě vydané,
  • které čipy jsou volné a připravené pro dalšího cvičence.

Dallas čip nebude trvale patřit konkrétnímu hasiči.

Bude fungovat jako dočasný identifikátor jednoho průchodu polygonem.


2. Základní princip

Hasič přijde k obsluze.

Obsluha v systému vybere nebo dohledá jeho jméno a následně přiloží jeden volný Dallas čip ke čtečce u obsluhy.

Tím vznikne dočasné spojení:

Jan Novák
    ↕
Dallas čip 01A4F52C

Od této chvíle systém ví:

tento čip nyní používá Jan Novák.

Hasič si čip vezme s sebou.

Když skutečně vstupuje do polygonu, přiloží jej ke čtečce u vstupu.

Systém zaznamená čas vstupu.

Po dokončení polygonu přiloží stejný čip ke čtečce u výstupu.

Systém zaznamená čas výstupu a automaticky vypočítá dobu pobytu.

Nakonec se hasič vrátí k obsluze, odevzdá čip a obsluha jej znovu přiloží ke své čtečce.

Tím systém zaznamená:

čip vrácen.

Dočasné propojení mezi hasičem a čipem se ukončí a čip je znovu volný pro dalšího cvičence.


3. Umístění tří čteček

Navrhují se tři samostatné čtečky.


Čtečka 1 – OBSLUHA / EVIDENCE

Umístění:

pracoviště obsluhy polygonu

Účel:

  • vydání čipu cvičenci,
  • spojení čipu s konkrétní osobou,
  • potvrzení vrácení čipu,
  • uvolnění čipu pro další použití.

Tato čtečka je hlavním místem evidence.

Při příchodu

Obsluha:

  1. vybere cvičence,
  2. vezme volný čip,
  3. přiloží čip ke čtečce.

Systém:

Čip 01A4F52C
přiřazen:
Jan Novák

Stav cvičence:

PŘIPRAVEN K VÝCVIKU

Stav čipu:

VYDÁN

Čtečka 2 – VSTUP DO POLYGONU

Umístění:

bezprostředně před fyzickým vstupem do polygonu

Musí být umístěna tak, aby cvičenec přiložil čip až v okamžiku, kdy skutečně vstupuje.

Účel:

automatický záznam času vstupu

Hasič přiloží čip.

Systém podle ID čipu dohledá:

01A4F52C → Jan Novák

a zaznamená například:

VSTUP
21.09.2026 09:02:15

Stav cvičence se změní:

PŘIPRAVEN
    ↓
UVNITŘ POLYGONU

Od tohoto okamžiku systém počítá jeho individuální dobu pobytu.


Čtečka 3 – VÝSTUP Z POLYGONU

Umístění:

bezprostředně za fyzickým výstupem z polygonu

Účel:

automatický záznam času ukončení průchodu

Hasič po opuštění polygonu přiloží čip.

Systém zaznamená například:

VÝSTUP
21.09.2026 09:17:48

A vypočítá:

09:17:48
-
09:02:15
=
00:15:33

Stav cvičence:

UVNITŘ POLYGONU
    ↓
DOKONČENO – ČIP NEVRÁCEN

To je důležité.

Cvičenec již necvičí, ale systém stále ví, že čip ještě nebyl vrácen.


4. Vrácení čipu

Po dokončení se cvičenec vrátí k obsluze.

Čip se přiloží znovu ke čtečce OBSLUHA.

Systém nyní pozná, že nejde o vydání nového čipu, protože tento čip je již přiřazen konkrétnímu cvičenci a jeho průchod je dokončen.

Akce tedy znamená:

VRÁCENÍ ČIPU

Systém:

Jan Novák
čip 01A4F52C
VRÁCEN

Stav cvičence:

DOKONČENO – ČIP NEVRÁCEN
    ↓
DOKONČENO

Stav čipu:

VYDÁN
    ↓
VOLNÝ

Dočasné propojení čipu s osobou lze ukončit.

Historie ale zůstane zachována.


5. Životní cyklus čipu

Každý čip bude mít jednoduchý stav.

VOLNÝ
  ↓
VYDÁN
  ↓
V POLYGONU
  ↓
ČEKÁ NA VRÁCENÍ
  ↓
VOLNÝ

Příklad:

čip 01
VOLNÝ

↓ obsluha jej vydá Janu Novákovi

čip 01
VYDÁN
Jan Novák

↓ Jan vstoupí

čip 01
V POLYGONU
Jan Novák

↓ Jan vyjde

čip 01
ČEKÁ NA VRÁCENÍ
Jan Novák

↓ obsluha převezme čip

čip 01
VOLNÝ

6. Životní cyklus cvičence

Podobně bude mít svůj stav i cvičenec.

EVIDOVÁN
   ↓
ČIP VYDÁN
   ↓
PŘIPRAVEN
   ↓
UVNITŘ POLYGONU
   ↓
DOKONČENO – ČIP NEVRÁCEN
   ↓
DOKONČENO

To umožní obsluze vidět celý provoz polygonu, ne pouze stopky.


7. Příklad více cvičenců současně

Obsluha připraví:

Jan Novák     → čip 01
Petr Svoboda  → čip 02
Karel Dvořák  → čip 03

Následně:

09:02:15  čip 01  VSTUP
09:05:40  čip 02  VSTUP
09:08:12  čip 03  VSTUP

V polygonu jsou nyní tři lidé.

Systém může zobrazit:

UVNITŘ POLYGONU: 3

Jan Novák      09:02:15
Petr Svoboda   09:05:40
Karel Dvořák   09:08:12

Potom:

09:17:48 čip 01 VÝSTUP

Výsledek:

Jan Novák
09:02:15 → 09:17:48
doba: 00:15:33
stav: DOKONČENO – ČIP NEVRÁCEN

Petr a Karel přitom dál zůstávají:

UVNITŘ POLYGONU

To je hlavní výhoda proti současným jedněm společným stopkám.


8. Co uvidí obsluha

Doporučený hlavní přehled:

------------------------------------------------------------
Cvičenec        Čip      Vstup      Výstup     Doba    Stav
------------------------------------------------------------
Jan Novák       01       09:02:15   09:17:48   15:33   ČEKÁ NA VRÁCENÍ
Petr Svoboda    02       09:05:40   --         --      UVNITŘ
Karel Dvořák    03       09:08:12   --         --      UVNITŘ
Lukáš Černý     04       --         --         --      PŘIPRAVEN
------------------------------------------------------------

Nad tabulkou mohou být jednoduché počty:

Čeká na vstup:       4
Uvnitř polygonu:     3
Dokončeno:           12
Nevrácené čipy:      1
Volné čipy:          8

Obsluha tak získá provozní obraz celého výcviku.


9. Evidence vydaných čipů

Systém musí umět zobrazit samostatně stav čipů.

Například:

Čip 01   Jan Novák      čeká na vrácení
Čip 02   Petr Svoboda   uvnitř polygonu
Čip 03   Karel Dvořák   uvnitř polygonu
Čip 04   Lukáš Černý    vydán / čeká na vstup

Čip 05   VOLNÝ
Čip 06   VOLNÝ
Čip 07   VOLNÝ

Díky tomu obsluha okamžitě pozná:

  • kolik čipů má fyzicky u sebe,
  • kolik jich bylo vydáno,
  • komu byly vydány,
  • které ještě nebyly vráceny.

To může zabránit ztrátám čipů.


10. Co se eviduje historicky

Po skončení se do historie uloží minimálně:

cvičenec
training / cvičení
Dallas UID
čas vydání čipu
čas vstupu
čas výstupu
doba pobytu
čas vrácení čipu
způsob měření

Například:

Jan Novák
čip: 01A4F52C

vydán:   09:00:32
vstup:   09:02:15
výstup:  09:17:48
vrácen:  09:19:02

doba polygonu:
00:15:33

Historie čipu může zůstat zachována i poté, co byl čip znovu vydán jinému člověku.


11. Důležité pravidlo – čip není osoba

Dallas UID není identita hasiče.

Je pouze dočasný prostředek pro jeden výcvik.

Proto:

Dallas 01A4F52C

může dopoledne používat:

Jan Novák

a později:

Petr Svoboda

Historie ale musí jednoznačně zachovat, kdo jej měl v konkrétním čase.


12. Ošetření chybného přiložení

Systém musí podle místa čtečky poznat, co je očekávaná událost.

Čtečka VSTUP

Pokud přiložený čip není nikomu vydán:

CHYBA:
Čip není přiřazen žádnému cvičenci.

Pokud už je cvičenec uvnitř:

CHYBA / UPOZORNĚNÍ:
Vstup již byl zaznamenán.

Čtečka VÝSTUP

Pokud nebyl zaznamenán vstup:

CHYBA:
Cvičenec nemá zaznamenán vstup.

Pokud byl výstup již zaznamenán:

UPOZORNĚNÍ:
Výstup již byl zaznamenán.

Čtečka OBSLUHA

Pokud je čip volný:

=> vydání / párování

Pokud je čip vydaný a výcvik dokončen:

=> vrácení čipu

Pokud je čip evidován jako „uvnitř“:

UPOZORNĚNÍ:
Cvičenec je stále veden jako uvnitř polygonu.

Obsluha by měla mít možnost výjimečně stav ručně opravit s potvrzením.


13. Stav po výpadku aplikace

Velkou výhodou řešení je, že stav není pouze v paměti aplikace.

Po restartu lze z databáze znovu načíst:

čip 02 → Petr Svoboda → UVNITŘ → vstup 09:05:40
čip 03 → Karel Dvořák → UVNITŘ → vstup 09:08:12

Obsluha tedy po pádu počítače neztratí informace o tom, kdo je uvnitř.

Časy se ukládají při samotné události.


14. Vazba na dočasné ruční řešení

Dočasná ruční varianta a budoucí Dallas varianta mají používat stejný princip průchodu.

Ruční varianta:

obsluha klikne:
ZAPSAT VSTUP

Dallas varianta:

čtečka VSTUP odešle:
Dallas UID

Výsledek je stejný:

exercise_session.entry_at

Stejně:

ZAPSAT VÝSTUP

později nahradí:

čtečka VÝSTUP

Tím není ruční řešení práce navíc, která se později zahodí.


15. Technické propojení čteček – obecný princip

V této fázi není nutné definitivně rozhodnout konkrétní hardware mezi čtečkou a aplikací.

Důležité je, aby systém z každé čtečky dostal:

identitu čtečky
UID Dallas čipu
čas události

Například logická událost:

reader = ENTRY
chip = 01A4F52C
timestamp = 2026-09-21 09:02:15

Nebo:

reader = EXIT
chip = 01A4F52C
timestamp = 2026-09-21 09:17:48

Možné fyzické varianty propojení lze později rozhodnout podle kabeláže polygonu:

  • USB přímo do počítače,
  • převodník / mikrokontrolér,
  • Raspberry Pi / ESP zařízení,
  • Ethernet,
  • sériová linka.

Pro aplikaci by ale všechny varianty měly skončit stejnou událostí:

READER + CHIP_UID + TIMESTAMP

16. Doporučené názvy čteček

Pro konfiguraci používat jednoznačné role:

OPERATOR
ENTRY
EXIT

Ne podle USB portu nebo fyzického zařízení.

Aplikace tak nebude závislá na tom, zda se zařízení například změní z:

/dev/ttyUSB0

na:

/dev/ttyUSB1

Role čtečky zůstává stejná.


17. Budoucí obrazovka obsluhy

Hlavní provozní přehled by měl být rozdělen do několika logických částí.

Čekají / připraveni

Lukáš Černý     čip 04
Martin Novotný  čip 05

Uvnitř polygonu

Petr Svoboda    čip 02    vstup 09:05:40    08:21
Karel Dvořák    čip 03    vstup 09:08:12    05:49

Čas může v UI živě narůstat, ale zdrojem pravdy zůstává uložený entry_at.

Dokončili – čeká se na čip

Jan Novák       čip 01    15:33

Hotovo

12 cvičenců

18. Přínos pro obsluhu

Po zavedení systému nebude muset obsluha:

  • spouštět jednotlivé stopky,
  • pamatovat si pořadí lidí,
  • zapisovat časy na papír,
  • hlídat, komu patří který čas,
  • ručně počítat dobu průchodu,
  • hledat, kdo ještě nevrátil čip.

Místo toho bude hlavně:

  1. vybírat osobu,
  2. vydávat čip,
  3. přijímat čip zpět,
  4. sledovat stav systému.

Samotný vstup a výstup si zaznamená cvičenec přiložením čipu.


19. Přínos pro evidenci výcviku

Systém vytvoří přesnější údaje:

skutečný čas vstupu
skutečný čas výstupu
individuální doba každého cvičence

Současně umožní zpětně odpovědět například:

  • Kdo byl v 09:10 uvnitř polygonu?
  • Kolik lidí bylo uvnitř současně?
  • Jak dlouho byl konkrétní cvičenec uvnitř?
  • Který čip měl?
  • Byl čip vrácen?
  • Kolik cvičenců už výcvik dokončilo?
  • Kolik jich ještě čeká?
  • Kolik čipů máme právě vydaných?

20. Doporučený konečný provozní tok

1. PŘÍCHOD CVIČENCE
        ↓
2. VÝBĚR JMÉNA U OBSLUHY
        ↓
3. PŘILOŽENÍ VOLNÉHO ČIPU U OBSLUHY
        ↓
   ČIP ↔ CVIČENEC
        ↓
4. ČEKÁ NA VSTUP
        ↓
5. PŘILOŽENÍ ČIPU U VSTUPU
        ↓
   ZÁZNAM entry_at
        ↓
6. CVIČENEC JE UVNITŘ
        ↓
7. PŘILOŽENÍ ČIPU U VÝSTUPU
        ↓
   ZÁZNAM exit_at
   VÝPOČET DOBY
        ↓
8. ČEKÁ SE NA VRÁCENÍ ČIPU
        ↓
9. PŘILOŽENÍ ČIPU U OBSLUHY
        ↓
   ČIP VRÁCEN
   PÁROVÁNÍ UKONČENO
        ↓
10. ČIP JE OPĚT VOLNÝ

21. Shrnutí

Tři čtečky mají jasně oddělené role:

OBSLUHA
= kdo má který čip a zda byl vrácen

VSTUP
= přesný začátek individuálního průchodu

VÝSTUP
= přesný konec individuálního průchodu

Dallas čip vytvoří dočasnou fyzickou identitu cvičence během jednoho průchodu.

Výsledkem nebude pouze měření času, ale kompletní provozní evidence:

kdo přišel
kdo čeká
kdo má čip
kdo je uvnitř
kdo už vyšel
kdo nevrátil čip
kdo má hotovo
jak dlouho každý cvičil
kolik čipů je volných

To odpovídá reálnému provozu polygonu podstatně lépe než současný model jedněch společných stopek.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions