ŠTUDENTSKÝ VÝVOJOVÝ TÍM

ŠVT pondelok, 11. 5. 2015

Project Deadlock

alebo

Ako malé nápady otvárajú dvere veľkým možnostiam

Čo to je?

Systém na otváranie dverí. A viac.

Embedded

Hardware

+

// __attribute__((OS_main)) tells the compiler that this function never
// returns and saves us precious space
__attribute__((OS_main)) int main(void) {

    hal_init(&comm_byte_received_callback);

    // This is the main handling loop
    // It handles all packets that can arrive in the Normal mode
    while (1) {
        if (comm_wait_for_packet(&p[current_packet]) == 0) {
            switch (p[current_packet].id) {
                case packet_GET_STATUS:
                    sendACK();
                    break;
                case packet_RFID_SEND:
                    // We will send data from this packet, and replace them
                    // in-place with what we receive
                    hal_spi_begin_transaction();
                    for (uint8_t i = 0; i < p[current_packet].length; i++) {
                        p[current_packet].data[i] =
                            hal_spi_transfer(p[current_packet].data[i]);
                    }
                    hal_spi_end_transaction();
                    // And suddenly, we are a response packet :)
                    p[current_packet].id = packet_RFID_SEND_COMPLETE;
                    transmit_and_flip();
                    break;
                case packet_RX_ERROR:
                    // Retransmit the last packet
                    comm_transmit_packet(&p[current_packet ^ 1]);
                    break;
                default:
                    // Unacceptable packet was received in this mode
                    p[current_packet].id = packet_INVALID_PACKET;
                    p[current_packet].length = 0;
                    transmit_and_flip();
                    break;

Software

Ale veď také už máme

Zlý technický stav, nepostačujúce možnosti

Ako to bude fungovať?

Server

  • "One server to rule them all"
  • Obsahuje databázu kariet
  • Distribuuje informácie dverám
  • Poskytuje podporné funkcie pre embedded
    zariadenia

Server ↔ Controller

  • Používa existujúcu Ethernetovú sieť
  • Power over Ethernet (napájanie)
  • Komunikácia založená na UDP
  • Šifrovanie

Controller

  • Ovláda jedny dvere
      - Rozhoduje o otvorení
      - Logy servru ak sa otvoria bez dovolenia
  • Nami vyrobený embedded device
  • (optional) Napájaný cez PoE
  • ARM Cortex M0 MCU
  • Naprogramovaný v C (+ ChibiOS)

Controller ↔ Reader

  • Nami navrhnuté rozhranie
  • Jednoduché na inštaláciu a dostupné
  • Napájanie + dáta
  • Založené na RS-232

Reader

  • Číta ISIC-y
  • Bliká a pípa :)
  • Komunikuje buď cez naše rozhranie alebo
    cez USB
  • ARM Cortex M0 MCU
  • Naprogramovaný v C (+ ChibiOS)

V čom je od starého lepší?

Cena

Rádovo nižšia ako komerčný systém

Open source &

Open hardware

Žiaden vendor lock-in

Dostupné diely / jednoduché alternatívy

Praktickosť inštalácie a administrácie

Plug-and-play inštalácia

Extenzibilita deploymentu

Jednoduchá nahraditeľnosť HW

Future-proof

Modulárna architektúra

Pripravené podporovať zmeny v ISICoch

Záverom

Project Deadlock

Ako malé nápady otvárajú dvere veľkým možnostiam

ŠTUDENTSKÝ VÝVOJOVÝ TÍM

ŠVT pondelok, 11. 5. 2015

Pridaj sa!

a naber praktické skúsenosti + sprav niečo užitočné =)

svt.fmph.uniba.sk        fmfi-svt@googlegroups.com

ŠVT / Project Deadlock (SK)

By Adam Dej

ŠVT / Project Deadlock (SK)

Ako malé nápady otvárajú dvere veľkým možnostiam

  • 295