1.0.0 - Release version (5-June-2017)

1.0.1 - Release version (16-June-2017)
	> Modification:
		1. [critical] Fixed error in DataBase handler. Sometime server crashed when queued data for CLASS_C device is requested from DB
		2. [moderate] Fixed other problems of data base handler deal with CLASS_C device handler
		3. [moderate] Fixed some problems with CLASS_C device-packet handler:
			- was multiple events of receiving one answer frome device. Therefore online user receive multiple notifications for one packet;
			- all devices is processed as CLASS_A devices (when receive uplink packet);
			- correct downlink to first receive window (RX1);
			- when is exist downlink queue, received messages is not processed. Now, before transmition of downlink message, handler looks for received messages.
		4. [minor] Fixed some uncorrect moment with console output:
			- correct port indication for downlink packets;
			- represent software version at start server;
			
1.0.2 - Release version (10-July-2017)
	> Modification:
		1. [moderate] Add server ip address configuration into setting.conf file. Before server launch need to midify this settings to correct value!
	+ Versions
		1. Add DEB installation packets for linux x32 and x64 versions
		
1.0.3 - Release version (12-July-2017)
	> Modification:
		1. [moderate] Fixed error with count of data requsted from server by application;
		2. [critical] Fixed error with invalid time of transmition for dateway;
		3. [critical] Fixed problem with packets with length more then 200 bytes;
		4. [moderate] Fixed some error with OTAA/ABP registration;
		5. [minor] Add new information about some error into console output:
			- indication of unsupported protocol type of packet forwarder packets;
			- indication problems with OTAA registration (invalid AppEUI, invalid AppKey and others);
			- rename incomprehensible error "INVALID_FCNT_CALCULATION" to more useful "INVALID_DEVICE_NETWORK_SESSION_KEY".
			
1.0.4 - Release version (17-July-2017)
	> Modification:
		1. [critical] Fixed error with CLASS_C downlinks on linux platforms
		2. [moderate] ABP device addres possible values expands to range from 0x00000000 to 0xFFFFFFFF
		3. [moderate] Fixed error with custom RX window periods for CLASS_C devices
		4. [moderate] Fixed procedure for manage gateway parameters
		5. [moderate] When user create new device it is added to this corresponding user
		6. [minor] Fixed some moments with debug console output:
			- time of downlink is now correct (is used time when gateway confirm packet to sending)
			
1.1.0 - Release version (31-August-2017)
	> Modification:
		1. [critical] Used new version of API: eliminate invalid words in commands such as "bs", "macBs", "base station" towards "gateway" and "gatewayId"; add some new option for device settings and others. 
Therefore there is new version of AdminTool; previous version of AdminTool doesn't work correctly with new server version
		2. [critical] In common: improve reliability of working with CLASS_C devices
		3. [moderate] Improve functioning with CLASS_C devices:
			- for downlink messages ABP or OTAA keys choose automatically in dependency of last received message. So ABP and OTAA activation methods could be changed on fly;
			- remove constrant for maximum number of try for downlink if used downlink queue;
			- append new parameter: usage qownlink queue for CLASS_C devices or use only online downlink method
		4. [moderate] Now allowed to transmit MAC packets for device [port = 0]. All results is on user's conscience
		5. [moderate] Queue of downlink packets is cleared when received JOIN_REQUEST packet
		6. [moderate] Adaptive data rate (ADR) algorithm is realized:
			- separate flag "serverAdrEnable" that allow to functioning server ADR algorithm (in API for corresponding device);
			- algorithm looking for SNR value and if SNR is bigger then -10dBm at 5 times - DR is growing up, 
and if SNR is lower then -10dBm - DR is growing down;
			- as actual power is used "preferPower" parameter value. If this parameter is changed algorithm quickly change it on device
		7. [moderate] "Full duplex" gateway (with "companion" gateway) is tested
		8. [moderate] In API add parameter "lastOnline" that contain time of receiving last keepalive message. Exist in response if gateway is offline
		9. [moderate] Append some moments with debug console output:
			- add regulation for maximum message level shown in console (in config file);
			- add possibility for saving some message levels in LOG file (in config file)
		10.[moderate] Improvements deal with "users":	
			- when token-authorization is used - token is not modified. So there are possible to make some connections for one session;
			- new option: enable or disable receiving console information for all users
		11.[moderate] SSL is now supported. There are several setting:
			- enable or disable using of SSL;
			- filenames for certificate and key files (this files should be in server directory)
		12.[moderate] Some other internal modfications that improve reliability of working with API and devices
		
1.1.1 - Release version (26-September-2017)
	> Modification:
		1. [critical] Solved problem with "user" fuctional (if current user change one parameters - server close all connection)
		2. [moderate] Increase possible traffic for class C devices (decrease timings betwean packets);
		3. [minor] All downlink queue packets are cleared at server startup;
		4. [moderate] Processed user's passwords: now it saved into MD5 hash
		5. [critical] Solved problem with class C device immediate transmission (all immediate transmition was with DR0 data rate)
		6. [moderate] Some iprovments in ADR functionality
		7. [moderate] Iprove total reliability. Some of most significant:
			- add simple (for now) self-test functional for devices handler that try to catch bugs and fix it in auto mode;
			- improve reliability of device handler
		8. [minor] Some changes deal with console output and LOG:
			- save server version into LOG file at server startup;
			- add some new debug information about class C device processing
	-> API:
		9. Add new commands:
			- "get_coverage_map_req" and "get_coverage_map_resp";
			- "get_device_downlink_queue_req" and "get_device_downlink_queue_resp";
			- "manage_device_downlink_queue_req" and "manage_device_downlink_queue_resp"
		10. Take into account standart "null" value for JSON parameters (need for large-scale testing)
			
1.1.2 - Release version (26-October-2017)
	>Modification:
		1. [critical] Solved problem with data base (delete device is didn't work);
		2. [moderate] At now console isn't represent decripted data from device. Shown only size of data
			
1.1.3 - Release version (6-December-2017)
	>Modification:
		1. [critical] Solved problem with modification RX2DR and RX2Frequency;
		2. [moderate] Improve algorithm of selection gateway for upload data. Now it takes into account SNR and latency levels;
		3. [moderate] Improve some moments deals with timings for dounlink data. This should reduce number of undelivered packets;
			
1.1.4 - Release version (21-December-2017)
		1. [critical] Modification in class C device workflow:
			- solve problem when device handler is hanged (when downlink queue is disabled);
			- to avoid potental problems server not send downlink in RX2 window that between end of TX and start of RX1 window
			- packet counter is always increased even if packet hasn't be sent (i.e. collision errors from gateways).
		2. [moderate] Some improvements for class A workflow: if downlink into RX1 window is unsuccesfully server try to send downlink into RX2 window;
		3. [moderate] Correct value of ACK flag into "rx" API messages from server. If ACK is true - it means that current downlink or uplink packet contains ACK flag (confirmation for previous confirmed uplink or downlink packet);
		4. [moderate] Fixed some proplems and tested functional for "rxOnly" gateways;
		5. [moderate] Add functional for working with external database (new settings group into configuration file). Now supported SQLITE and MYSQL database types.
			
1.1.5 - Release version (15-January-2018)
		1. [critical] Modernization in class C device handler. Server don't sent data to receive window betwean end of transmittion and begine of RX1. And make some others improvements that should increase reliability of workflow with class C devices;
		2. [critical] Fix error with database that don't let modify application data (commands "manage_device_appdata");
		3. [moderate] Continue work with selftests. Now server collect info about possibles crashes and send it into anonymous email to VegaAbsolute's developers (of couse if this option is enabled into configuration file, see "selftest settings" area);
		4. [moderate] There are new build configuration for server - server for ARM architecture. Now server can work on gateway!
		5. [minor] Decrease volume of debug info console and LOG file.
			
1.2.0 - Release version (1-October-2018)
		1. [critical] Fix problem with downlink packet initialization;
		2. [moderate] Improvements with ADR algorithm: SNR threshold is raised from -10dB to -7dB and others;
		3. [moderate] Changes deal with gateway:
			- new algorithm of selection of gateway for downlink;
			- reduce service routine busy time;
			- active state of GW is determined mach faster;
		4. [moderate] Changes deal with database:
			- added unique primary index to each table;
			- added necessary indexes to each table - to reduce time of each request;
			- append functional to optimize database size via deletion of useless device data;
			- some other fixes and improvements
		5. [moderate] Changes deal with devices routine:
			- fix problem with downlink packets which length more then 200 bytes;
			- MAC commands code is now verifed on correct value. Proprietary code too;
			- for class C devices: tested and fix correct delay between downlink packets;
			- append dinamic switch between A and C classes;
			- improve algorithm of detection repeated packet from device (via different GWs);
		6. [moderate] Now LOG data divided into driven count files with limited size to 25MB;
		7. [moderate] Now server can recognize VEGA device and this device is not affected to total count of legal devices;
		8. [moderate] Linux version is absorbe existing config for creation of new config file;
		9. [moderate] NetID is fully formed from setting parameters = 17-bit_NetworkArbitraryID | 7-bit_NetworkID;
		10. [minor] Now server can send emails
		11. [minor] Changes in API:
			- add new groups: server_info, send_email, ping;
			- modification in some groups: alter_users, get_device_appdata, get_data, rx, get_devices, manage_devices;
		12. [minor] Optimized console output info
		
1.2.1 - Release version (18-January-2019)
		1. [critical] New algorithm for selecting gateway for downlink. 
			Now used more parameters to increase reliability of downlinks;
		2. [critical] Fix some problems deal with PostgreSQL working;
		3. [critical] Fix some problems deal with migration data from "internal" SQLite database to 
			external database;
		4. [critical] Fix problem with duplicated attributes of device;
		5. [moderate] Now server trace repeatition in uplink message with packet number beginning with 
			1-st packet inclusive. Before repeated packets traced beginning with 2-nd packet inclusive.
		
