elevator v1.0.0 API Reference

Modules

A module for keeping and periodically synchronizing a log of all orders not yet finished in the distributed system.

A module that defines a button struct.

A module that observes if a button is pressed or not, passing a message on rising flank.

A module for calculating the cost of taking a new order.

Main module, responsible for starting the supervision tree containing the different processes of a node.

A module that observes changes in the floor sensor, passing a message on rising flank.

Fsm

Module for representing the elevator as a Finite State Machine.

Broadcasting of IP and listening to other IPs.

A module for assigning and distributing orders from the local button panel to the most optimal order handler. It should be noted that the OrderDistributor has no state like a regular GenServer would have, but the GenServer behavior is still used for casting and calling functionality.

A module for keeping track of the orders being handled by a specific elevator.

A module for keeping track of the hall orders which are underway to being handled, and triggering a resend of orders which stay unhandled for too long.

A module that passes button presses and floor changes as messages, abstracting away the polling of memory-mapped IO to fit into the message-passing paradigm.