FireflySynch v2

Introduction

Goal: Realizzazione in Java del Fireflysynch limitatamente al requisito 2

Requirements

Costruire il simulatore di un sistema costituito da 3 lucciole. Inizialmente, le lucciole lampeggiamo ciascuna con una frequenza (costante) propria.

  1. dopo 10 secondi le lucciole devono lampeggiare in modo sincronizzato
  2. il sistema è dotato anche di un sonar . Quando il sonar rileva un ostacolo a una distanza minore di una distanza prefissata DMIN, le lucciole devono lampeggiare in modo sincronizzato. Quando la distanza dell’ostacolo (ri)supera DMIN, le lucciole tornano a lampeggiare in modo random

Requirement analysis

L'analisi estende i concetti di base includendo la reattività a stimoli ambientali variabili:

Problem analysis

La sfida principale risiede nella gestione della transizione bidirezionale tra comportamento autonomo e coordinato basata su eventi asincroni.

Architettura Logica

Il sistema viene modellato con tre tipi di attori nel contesto ctxfirefly:

Formalizzazione dei Messaggi

Event startSync : startSync(PERIOD)  // Forza la sincronizzazione su un periodo P
Event stopSync  : stopSync(0)         // Ripristina il comportamento random
Dispatch cellstate : cellstate(X,Y,COLOR) // Aggiornamento visuale per la Grid

Logica delle Transizioni (FSM Firefly)

La lucciola implementa una macchina a stati capace di reagire agli eventi del sonar durante l'attesa del prossimo flash:

Transition t0 
    whenTimeVar Timer   -> flash            // Ciclo di lampeggio corrente
    whenEvent startSync -> handleStartSync  // Passaggio a modo sincronizzato
    whenEvent stopSync  -> handleStopSync   // Ritorno a modo random

Test plans

Project

Testing

Deployment

Maintenance



By Gianluca Varisco email: gianluca.varisco@studio.unibo.it, foto_per_iss GIT repo: https://github.com/gianluca-varisco/issLab2026