Release Notes
=============

.. note::
	All notable changes to the DK+ will be documented here.
	This project adheres to `Semantic Versioning <http://semver.org/>`_.

Version 0.2.4 (2016-08-21)
--------------------------
Added
+++++
- MD5 checksum verification capabilities
- testing variables

Fixed
+++++++
- Fixed some threading issues

Version 0.2.3 (2016-08-09)
--------------------------
Added
+++++
- More functional priorities collision avoidance protocol.

Changed
+++++++
- No need to call add_listeners, instantiating a Params object is now enough.

Removed
+++++++
- vehicle_listeners module. It is now embedded in the Params class.

Version 0.2.2 (2016-08-02)
--------------------------
Added
+++++
- Support for drone context switching.

Changed
+++++++
- Context structure in collision_avoidance is a tuple for better access.
- Improved collision avoidance API.

Version 0.2.1 (2016-07-25)
--------------------------
Added
+++++
- A naive collision avoidance protocol based on priorities.
- Function to print dangerous drones in class CollisionThread.

Changed
+++++++
- Simplified receive_task_thread.
- Prioritization and collision zones are now updated in class CollisionThread.

Version 0.2.0 (2016-07-8)
-------------------------
Added
+++++
- drone_network class which handles the received/sent messages.
- vehicle_listeners module which keeps certain vehicle paramaters updated.
- collision_avoidance threading.Thread subclass which handles the collision data/threading/algorithm.
- receive_thread, a threading.Thread subclass responsible for receiving incoming messages.
- receive_task_thread, a threading.Threas subclass for handling the incoming messages. 
- send_thread, a threading.Thread subclass responsible for sending messages.
- geo_tools class for functions related to geographical transformations.

Changed 
+++++++
- A simple instantiation of the drone_network in the main thread handles the whole project. 

Version 0.1.4 (2016-07-2)
-------------------------
Changed
+++++++
- update_params() embedded in listen_task().
- listen() now adds the messages to a queue and are further processed by listen_task().
- Non-pickled messages are ignored because they are definitely not sent from drones.
- Messages that come from drones farther than safety zone are ignored.

Version 0.1.3 (2016-06-20)
--------------------------
Added
+++++
- Collision lists. 

Version 0.1.2 (2016-06-5)
-------------------------
Changed
+++++++
- More defensive broad() function.

Fixed
+++++
- listen_task() is running as another thread.

Version 0.1.1 (2016-06-2)
-------------------------
Added
+++++
- Function handling listen() after-processing (listen_task()).

Changed
+++++++
- Listening socket changed to non-blocking.
- Listen() and Broad() functions are single-threaded.

Version 0.1.0 (2016-05-15)
--------------------------
Added
+++++
- Listen and Broadcast methods for communication with other drones (listen(), broad()).
- Extra listeners for drone parameters.
- Tolerance to parameters.
- Parameters updater (update_params()).