-
Notifications
You must be signed in to change notification settings - Fork 45
/
CHANGES.txt
101 lines (86 loc) · 5.62 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
v1.5.0 - 27 Jun 2010
* Initial Packaging.
* Fully restructured into a unified API with tests.
v1.7.0 - 30 Jun 2010
* Now supports both Series 1 and Series 2 modules (the API turned out to be the same).
* API frame logic was split into its own class, APIFrame.
* XBee renamed to XBeeBase.
* XBee1 renamed to XBee.
* Tests updated to reflect changes; API frame tests moved to test_frame.py, now test APIFrame instead of XBee base class.
* Test files renamed appropriately.
* PyLint score improved.
* Various docstring updates.
* Updated example code to reflect changes.
v1.7.1 - 09 Jul 2010
* Bug fix: Now supports receiving I/O data with 64-bit addressing.
* Previously, an exception was raised when a packet with ID 0x82 arrived, which contains I/O samples with a 64-bit source address. This has been fixed.
v1.8.0 - 09 Jul 2010
* Implemented threading support.
* If a callback method is given to the XBeeBase constructor, a new thread will automatically be spawned. This thread will read from the serial port and call the given callback method whenever a valid data packet arrives.
* XBeeBase.halt() was added. This method ensures the proper shutdown of a separate thread if one has been spawned. This method must be called before closing the serial port used by an XBee instance in order to prevent improper use of the serial port.
v1.9.0 - 10 Jul 2010
* Implemented Dispatch helper as xbee.helpers.dispatch.
* Dispatch allows one to filter incoming packets between one or more handler functions. This simplifies application logic which must handle more than one packet type. Automated tests are now run as a part of the build process.
* nose must be installed for this feature to operate. If it is not installed, the tests will be skipped and a warning will be generated.
* A 'test' command has been added to setup.py.
v1.9.1 - 12 Aug 2010
* Added support for I/O sample data packet with 64-bit addressing.
* Fixed bug where threading.Thread library was not properly initalized in all use cases.
* Added initial documentation.
* Properly included distutils_extensions.py in source distribution archives.
v1.9.2 - 18 Aug 2010
* Fixed bug where _write() call on a serial object should have been write().
v2.0.0 - 29 Dec 2010
* Added preliminary support for XBee ZB devices; thanks Greg and Brian!
* Improved & unified sample data header parsing code.
* Improved documentation.
v2.1.0 - 14 Apr 2013
* Support for XBee ZB devices significantly improved.
* Now raises a KeyError with a useful message when a response that looks like a command is received. This helps debug devices that are not in API mode.
* Improper lengths for the ZigBee tx_explicit cluster and profile fields have been corrected.
* Removed auto-testing distutils extension for lack of easy cross-version compatibility.
* Now compatible with both Python 2.X and Python 3.X.
* Fixed bug in APIFrame.escape().
* Fixed crash where a failed call to Serial.read() could return nothing.
* Packet-parsing subsystem generalized to allow for much more general parsing behavior.
* ZigBee now parses IS command responses.
* Node Discover responses for ZigBee devices are now parsed.
* Added tests for escaped API communication.
* Fixes issue #31 on Google Code: parameter information for lowercase nd or is commands were not parsed.
* Closes issue 35, as reported by Mark Fickett.
* If an empty frame is received from a device, it is ignored.
* Removed deprecated build process files.
* Backported parsing of IS AT command response as I/O data from ZigBee devices.
* BACKWARDS-INCOMPATIBLE CHANGES (See the documentation for details):
* XBee IS "Force Sample" AT response (and Remote AT Response) 'parameter' value is no longer raw; it is parsed as I/O samples.
* ZigBee IS "Force Sample" AT response (and Remote AT Response) 'parameter' value is no longer raw; it is parsed as I/O samples.
* ZigBee ND "Node Discover" AT response (and Remote AT Response) 'parameter' value is no longer raw; it is parsed into a node discover dictionary.
v2.2.2 - 19 Nov 2015
* Add error_callback function to XBeeBase.
* If an error_callback method is given to the XBeeBase constructor (in addition to the callback method), a new thread will automatically be spawned. This thread will read from the serial port and call the error_callback when an unexpected Exception (not ThreadQuitException) is raised while waiting for serial data. This generally indicates that the XBee serial interface needs to be reconnected.
v2.2.3 - 25 Nov 2015
* Fix README for GitHub and PyPI.
v2.2.4 - 17 Mar 2017
* Added DigiMesh support.
* Added support for Route Record Indicator, Many-to-One Route Request and Route Information packets.
* Improved and simplified tests.
* Documentation updates and comment typo corrections.
* Do not break on error, rather log error.
* Add Travis CI for unit tests.
* Modernized setup.py.
v2.2.5 - 25 Apr 2017
* Formatting tidy in line with PEP8 recommendations.
* Added 'create_source_route' and 'register_joining_device' Zigbee frame definitions.
* Moved version information to __init__.py.
* Fixed DigiMesh for Python 3.
* Fixed DigiMesh 'tx' frame definition.
v2.3.0 - 05 Jul 2017
* Python 3 compatibility bugfix in _build_command().
* Added Extended Modem Status frame type (0x98) frame definition.
* Break out thread implementation, add Tornado Support (Credit David Walker).
v2.3.1 - 06 Jul 2017
* New features - Adds support for the Tornado I/O loop
* If your application already uses the Tornado I/O loop then integrating python-xbee should be a breeze. Check out https://python-xbee.readthedocs.io/en/latest/#tornado-ioloop for usage and more details.
v2.3.2 - 03 Apr 2018
* Added Receive Packet frame type (0x90) definition.
* Added an optional timeout to wait_read_frame.