Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 07 Feb 2025 18:42:43 +0100] rev 4109
merge
Edouard Tisserant <edouard@beremiz.fr> [Fri, 07 Feb 2025 15:05:50 +0100] rev 4108
Fix csv_by_string example
Edouard Tisserant <edouard@beremiz.fr> [Fri, 07 Feb 2025 14:29:11 +0100] rev 4107
PY_EXT: fix wrong column header produced by csv_write_by_string.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 07 Feb 2025 11:22:53 +0100] rev 4106
Add example for CSV_WRITE_BY_STRING
Edouard Tisserant <edouard@beremiz.fr> [Fri, 07 Feb 2025 11:21:15 +0100] rev 4105
Py_ext: add CSV write by String FB + refactoring
- CSV_WRITE_BY_STR can create file from scratch
- Moved python runtime code from a string to a separate file.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 07 Feb 2025 10:52:09 +0100] rev 4104
Python runtime: call "OnIdle" tasks when py_eval FBs execution queue is empty.
This is usefull to execute slow operations that can be deffered from functions called by py_eval FBs.
User python code add a callable to "OnIdle" list made available in global scope.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 26 Jan 2025 14:58:13 +0100] rev 4103
Merge remote-tracking branch 'hggit/python3' into python3
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 22 Jan 2025 22:05:08 +0100] rev 4102
SVGHMI: update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 26 Jan 2025 12:20:12 +0100] rev 4101
merged
Edouard Tisserant <edouard@beremiz.fr> [Wed, 22 Jan 2025 11:39:27 +0100] rev 4100
MQTT: fix typo in resub python callback.
Edouard Tisserant <edouard@beremiz.fr> [Tue, 21 Jan 2025 16:28:43 +0100] rev 4099
MQTT: fix non reconnecting python topics. WIP
Edouard Tisserant <edouard@beremiz.fr> [Tue, 21 Jan 2025 09:29:59 +0100] rev 4098
Let extensions know when configuration is new, to apply defaults.
Add "new_config" member to CTN, True when config was just created.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 16 Jan 2025 15:30:35 +0100] rev 4097
MQTT: fix build error when publishing json topic.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 16 Jan 2025 14:52:49 +0100] rev 4096
IDE: Better xmlclass behavior with simple XML element having no attibutes (simple TAGs).
xsd:choice can sometime lead to such situation when there is no additional data associated to a particular choice.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 24 Jan 2025 15:53:11 +0100] rev 4095
merged
Edouard Tisserant <edouard@beremiz.fr> [Fri, 24 Jan 2025 15:39:06 +0100] rev 4094
WAMP: fix secret upload
Edouard Tisserant <edouard@beremiz.fr> [Fri, 24 Jan 2025 11:33:18 +0100] rev 4093
Removed useless bitmaps
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 20 Jan 2025 18:45:21 +0100] rev 4092
SVGHMI: update generated xslt
previous commit actually didn't include all updates
+ white space fix in foreach widget to align with xslt
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 20 Jan 2025 17:59:39 +0100] rev 4091
SVGHMI: back button widget is optionally activable.
+ update generated xslt file
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 09 Jan 2025 18:21:36 +0100] rev 4090
Update GitHub Actions to use upload-artifact@v4
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 09 Jan 2025 18:05:45 +0100] rev 4089
Merge remote-tracking branch 'hggit/python3' into python3
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 05 Jan 2025 23:12:53 +0100] rev 4088
fixing outdated comments
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 05 Jan 2025 23:09:34 +0100] rev 4087
SVGHMI: Fix potential zombie thread after stop caused by misuse of ctype.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 05 Jan 2025 23:05:08 +0100] rev 4086
CLI: filter out useless progress refresh on stdout.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 09 Jan 2025 17:11:18 +0100] rev 4085
SVGHMI: update generated xslt files
Edouard Tisserant <edouard@beremiz.fr> [Thu, 09 Jan 2025 17:10:40 +0100] rev 4084
SVGHMI: strip useless placeholder bitmap of HMI:Image in resulting xhtml
Edouard Tisserant <edouard@beremiz.fr> [Thu, 09 Jan 2025 17:09:00 +0100] rev 4083
SVGHMI: fix build exception when static file directory is missing
Edouard Tisserant <edouard@beremiz.fr> [Fri, 20 Dec 2024 14:37:10 +0100] rev 4082
Various unrelated code quality enhancements and fixes with no effect on execution.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 20 Dec 2024 14:32:33 +0100] rev 4081
MQTT: allow publish and subscribe from user python code.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 09 Jan 2025 09:46:43 +0100] rev 4080
python runtime: fix exception when transfering files with identical content.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 09 Jan 2025 09:45:21 +0100] rev 4079
SVGHMI: add static file serving feature.
Added two buttons to add and remove files.
Files are stored in project inside a directory named "static",
itself located in svghmi CTN instance files. Exemple :
exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/static/
Files are transfered as "extra_files", but with a prefix
added to their name to avoid conflics.
Edouard Tisserant <edouard@beremiz.fr> [Mon, 06 Jan 2025 17:00:03 +0100] rev 4078
Make Input widget actionable. Includes example from kraskrom@github.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 17 Dec 2024 21:18:40 +0100] rev 4077
Merge remote-tracking branch 'origin/python3' into python3
etisserant <edouard@beremiz.fr> [Tue, 17 Dec 2024 14:04:11 +0100] rev 4076
Update README.md
Edouard Tisserant <edouard@beremiz.fr> [Mon, 16 Dec 2024 11:40:55 +0100] rev 4075
SVGHMI: fix inverted behavior of SuppressBrowserOutput.
etisserant <edouard@beremiz.fr> [Sat, 14 Dec 2024 15:39:42 +0100] rev 4074
Tests: matiec version bump
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 12 Dec 2024 11:56:17 +0100] rev 4073
Update requirements and add minimal non-frozen requirements for developer setup
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 12 Dec 2024 11:36:24 +0100] rev 4072
Merge remote-tracking branch 'origin/python3' into python3
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 12 Dec 2024 11:33:08 +0100] rev 4071
runtime: make standard output more silent.
Dino Kosic <44305363+kraskrom@users.noreply.github.com> [Wed, 11 Dec 2024 09:31:35 +0100] rev 4070
SVGHMI: Make Back widget activable. (#52)
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 11 Dec 2024 09:30:07 +0100] rev 4069
PLC build: prevent duplicated CFLAGS for PLC C files.
Edouard Tisserant <edouard@beremiz.fr> [Tue, 10 Dec 2024 12:44:38 +0100] rev 4068
IDE: more wxPython4 related fixes. AUI Update crash on exit + PLCOpenEditor Save exception.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 09 Dec 2024 15:51:41 +0100] rev 4067
merge
Edouard Tisserant <edouard@beremiz.fr> [Fri, 06 Dec 2024 15:48:54 +0100] rev 4066
py_ext: CSV Writer output FB interface: ERROR and RESULT are valid when ACK is TRUE.
+ updated svghmi_csv_json_img_table accordingly
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 08 Dec 2024 15:26:26 +0100] rev 4065
IDE: fix exception when changing or resizing comments in FBD
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 08 Dec 2024 13:59:36 +0100] rev 4064
PLCOpen editor: fix exception when using file open dialog
Consequence of wxPython 3 to 4 API changes.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 08 Dec 2024 11:41:31 +0100] rev 4063
IDE: Fix wrong red wire coloring in FBD, this time for good.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 06 Dec 2024 12:16:07 +0100] rev 4062
py_ext: fix CSV update happening only once.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 05 Dec 2024 16:45:37 +0100] rev 4061
py_ext: rework logic CSV reader FB output refresh logic.
Saving with CSV write FB now triggers CSV read FBs to refresh outputs immediately.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 05 Dec 2024 13:56:59 +0100] rev 4060
py_ext: fix CSV Writer
fix POU logic :
- SAVE is a BOOL
- invocation of py_eval on rising edge of SAVE
- remove save python argument
fix python:
- use no encoding for file open (python2)
- re-use detected dialect if any
- use no "rt+" and truncate since no need to re-sniff dialect for output file
- return "OK" instead of "#SUCCESS", preventing POU logic to ACK result
- support creating new line if writing just after last line
- support appending data on short rows
fix example:
- use a HMI:Button to trigger CSV write instead of HMI:Input +1
- reload CSVs on on each new CSV opened in file browser
- add display of CSV write output
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 04 Dec 2024 12:00:37 +0100] rev 4059
IDE: Fix wrong red wire coloring in FBD
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 03 Dec 2024 21:26:52 +0100] rev 4058
C runtime: move generated erpc interface in separate "service" directory
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 03 Dec 2024 21:22:45 +0100] rev 4057
IDE: Fix PLCOpenEditor (wxPython4 menus) and drop broken PDF doc support.
Dino Kosic <44305363+kraskrom@users.noreply.github.com> [Mon, 02 Dec 2024 11:33:19 +0100] rev 4056
Extend HMI:JsonTable, create Edit CSV POU, create example, add some doc (#41)
* Extend Jsontable widget, create Edit CSV POU, create example for both
* Add doc for HMI:Image and HMI:JsonTable
* Expand example to include HMI:Image
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 28 Nov 2024 14:46:50 +0100] rev 4055
Tests: matiec version bump for GH workflow
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 28 Nov 2024 14:39:26 +0100] rev 4054
Merge remote-tracking branch 'hggit/python3' into python3
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 27 Nov 2024 19:48:12 +0100] rev 4053
IDE: fix exception when moving FBD elements with keyboard.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 27 Nov 2024 16:31:24 +0100] rev 4052
Tests: matiec version bum for GH workflow
Edouard Tisserant <edouard@beremiz.fr> [Thu, 28 Nov 2024 14:27:58 +0100] rev 4051
merge
Edouard Tisserant <edouard@beremiz.fr> [Thu, 28 Nov 2024 14:13:03 +0100] rev 4050
Tests: extend FOR loop tests in IEC-61131 language test
Edouard Tisserant <edouard@beremiz.fr> [Wed, 13 Nov 2024 14:42:34 +0100] rev 4049
Modbus: allows modbus thread stack size customization with MODBUS_STACK_SIZE macro.
For example, add "-DMODBUS_STACK_SIZE=0x2000" to target CFLAGS to limit stack size to 128kB
Edouard Tisserant <edouard@beremiz.fr> [Wed, 16 Oct 2024 15:45:15 +0200] rev 4048
SVGHMI: swap position and range of ForEach widget so that both range and size can be optional.
Edouard Tisserant <edouard@beremiz.fr> [Wed, 27 Nov 2024 16:05:26 +0100] rev 4047
Tests: add ST FOR loop tests to IEC-61131 language tests
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Nov 2024 01:09:55 +0100] rev 4046
requirements: update eRPC dependency to include subdirectory for Python
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Nov 2024 00:49:57 +0100] rev 4045
C runtime: fix ExtendedCall stub
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Nov 2024 00:49:26 +0100] rev 4044
eRPC: switch to beremiz/erpc fork with no CRC on TCP
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 22 Nov 2024 16:31:51 +0100] rev 4043
Merge remote-tracking branch 'hggit/python3' into python3
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 19 Nov 2024 23:52:04 +0100] rev 4042
IDE: Allow environment variable override in ThirdPartyPath, and use it also for matiec.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 18 Nov 2024 22:42:11 +0100] rev 4041
IDE: re-use eRPC URI definitions in connector factory.
Preparing for serial and US eRPC connection.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 18 Nov 2024 13:55:51 +0100] rev 4040
Cosmetic changes
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 18 Nov 2024 13:52:40 +0100] rev 4039
IDE: refactor discovery panel / zeroconf
Bundle ZeroConf listener and interfaces changes monitor into separate module.
Prepare to extend with USB device browsing.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 18 Nov 2024 13:37:08 +0100] rev 4038
IDE: refactor ERPC URI editor, add serial and USB URI types
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 Nov 2024 23:10:36 +0100] rev 4037
python runtime: update ServicePublisher to current Zeroconf API
Edouard Tisserant <edouard@beremiz.fr> [Mon, 11 Nov 2024 15:22:44 +0100] rev 4036
eRPC: Backward compatibility with runtime versions missing GetVersions extended call.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 08 Nov 2024 11:34:46 +0100] rev 4035
eRPC: Version bump
Edouard Tisserant <edouard@beremiz.fr> [Fri, 08 Nov 2024 11:34:00 +0100] rev 4034
python_runtime: fix ExtendedCall register/unregistering.
Edouard Tisserant <edouard@beremiz.fr> [Mon, 28 Oct 2024 16:06:50 +0100] rev 4033
eRPC: Server closes connection on exception to prevent client to block until timeout when it happens.
Edouard Tisserant <edouard@beremiz.fr> [Mon, 28 Oct 2024 16:02:47 +0100] rev 4032
Add ExtendedCall to PLCObject as a replacement of RemoteExec and reflect it in eRPC interface.
ExtendedCall is a generic remote procedure call that runtime code can register to and that IDE extensions can call.
For example a fieldbus extension can use ExtendedCall to browse the fieldbus devices connected to the runtime.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 25 Oct 2024 14:51:38 +0200] rev 4031
Removed dependency in requirements.txt.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 16 Oct 2024 12:18:14 +0200] rev 4030
TESTS: Update Matiec revision in GH workflow
Edouard Tisserant <edouard@beremiz.fr> [Fri, 11 Oct 2024 10:49:07 +0200] rev 4029
MQTT: update test project to reflect latest changes
Edouard Tisserant <edouard@beremiz.fr> [Fri, 11 Oct 2024 10:46:46 +0200] rev 4028
SVGHMI update generated XSLT
Edouard Tisserant <edouard@beremiz.fr> [Fri, 11 Oct 2024 10:38:30 +0200] rev 4027
SVGHMI: remove widgets deprecated since long
Edouard Tisserant <edouard@beremiz.fr> [Fri, 11 Oct 2024 10:34:15 +0200] rev 4026
SVGHMI: add ForEach widget example
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 11 Oct 2024 10:18:57 +0200] rev 4025
SVGHMI: Extend ForEach widget to expose range, position and size in a way comparable with ScrollBar widget.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 11 Oct 2024 09:31:34 +0200] rev 4024
SVGHMI: code cleanup
Edouard Tisserant <edouard@beremiz.fr> [Mon, 30 Sep 2024 16:21:11 +0200] rev 4023
MQTT: Add status global variable MQTT_STATUS_n, one per MQTT client
Edouard Tisserant <edouard@beremiz.fr> [Thu, 26 Sep 2024 15:28:10 +0200] rev 4022
MQTT: strip unsupported types from type choice dropdown, better wrong type detection in build.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 26 Sep 2024 09:40:09 +0200] rev 4021
MQTT: remove debug prints
Edouard Tisserant <edouard@beremiz.fr> [Wed, 25 Sep 2024 11:10:33 +0200] rev 4020
MQTT: add JSON fixed size 1D array support. WIP. Parsing array still broken.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 20 Sep 2024 15:30:22 +0200] rev 4019
MQTT: do not convert to UPPERCASE json keys.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 20 Sep 2024 15:12:53 +0200] rev 4018
MQTT: added support for strings in JSON payload only.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 19 Sep 2024 15:12:45 +0200] rev 4017
MQTT: remove accidentally committed debug printfs + cosmetic
Edouard Tisserant <edouard@beremiz.fr> [Thu, 19 Sep 2024 12:06:53 +0200] rev 4016
MQTT: fix invocation of json_scanf (use pointers, not values...)
Edouard Tisserant <edouard@beremiz.fr> [Thu, 19 Sep 2024 12:05:35 +0200] rev 4015
MQTT: fix bisection failing when topics start with same substring.
Edouard Tisserant <edouard@beremiz.fr> [Tue, 17 Sep 2024 11:17:24 +0200] rev 4014
MQTT: Update available type choices when data types are changed in the IDE
Edouard Tisserant <edouard@beremiz.fr> [Fri, 13 Sep 2024 14:28:07 +0200] rev 4013
MQTT: remove standalone MQTT clien generator code.
Code was inherited from OPC-UA extension, but not properly maintained.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 13 Sep 2024 14:26:55 +0200] rev 4012
MQTT: add JSON payload corresponding to IEC Structured types
- uses https://github.com/cesanta/frozen
- frozen.c is added as a resulting c file in generat_C (fix toolchain_gcc.py as it was breaking dependency checking)
- structured types are converted to C #define, in turn generating json_scanf and json_printf statements
Edouard Tisserant <edouard@beremiz.fr> [Thu, 05 Sep 2024 15:55:46 +0200] rev 4011
MQTT: WIP supporting structured types : do not crash when generating C code if using location with no size
Edouard Tisserant <edouard@beremiz.fr> [Fri, 30 Aug 2024 15:17:03 +0200] rev 4010
MQTT: add dropdown to select type assigned to a topic
Edouard Tisserant <edouard@beremiz.fr> [Fri, 30 Aug 2024 11:54:36 +0200] rev 4009
MQTT+IDE: Allow user to associate IEC structure datatype to a topic.
Edouard Tisserant <edouard@beremiz.fr> [Fri, 30 Aug 2024 11:50:23 +0200] rev 4008
IDE: allow structures to be located.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 07 Sep 2024 12:50:57 +0200] rev 4007
merge MQTT grafted from python2 branch - untested
Edouard Tisserant <edouard@beremiz.fr> [Thu, 22 Aug 2024 12:16:45 +0200] rev 4006
MQTT: add test projects, to be later included in automated testing.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 22 Aug 2024 12:15:31 +0200] rev 4005
MQTT: add SSL support
Edouard Tisserant <edouard@beremiz.fr> [Thu, 08 Aug 2024 14:56:13 +0200] rev 4004
SVGHMI: cosmetic
Edouard Tisserant <edouard@beremiz.fr> [Tue, 06 Aug 2024 15:25:57 +0200] rev 4003
SVGHMI: Fix watchdog not cleanly restarting browser because not waiting for stop operation to finish before restarting.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 01 Aug 2024 12:11:11 +0200] rev 4002
MQTT: WIP, re-organized disconnection handling, now keep track of connection status and reconnect accordingly.
This fixes bug with non-reconnecting to broker when having no published variables.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 01 Aug 2024 12:09:28 +0200] rev 4001
MQTT: link to SSL only when needed.
Edouard Tisserant <edouard@beremiz.fr> [Wed, 24 Jul 2024 15:14:02 +0200] rev 4000
IDE: Fix "Save" toolbar button and file menu entry not appearing when extension makes changes
Edouard Tisserant <edouard@beremiz.fr> [Tue, 23 Jul 2024 17:05:59 +0200] rev 3999
MQTT: WIP fix modified status not being set when adding and modifying topics or attributes.
Fix loading of CSV that was not applying model types, and that not checking conformance either.
Edouard Tisserant <edouard@beremiz.fr> [Tue, 23 Jul 2024 15:30:04 +0200] rev 3998
MQTT: WIP, PLC starts even if MQTT client can't connect broker, and publish+subscribe again when reconnecting.
Edouard Tisserant <edouard@beremiz.fr> [Tue, 23 Jul 2024 11:05:46 +0200] rev 3997
MQTT: WIP, destroys paho client during failure handling at init and at cleanup. Use mutex to protect retrieve.
Edouard Tisserant <edouard@beremiz.fr> [Mon, 22 Jul 2024 16:13:27 +0200] rev 3996
MQTT: Implements reconnecting in publish thread in case thread is waken-up but client is disconnected.
Note: paho's lostConnection callback got already disabled in previous commit.
Edouard Tisserant <edouard@beremiz.fr> [Mon, 22 Jul 2024 16:09:12 +0200] rev 3995
MQTT: take C part away from python code for readability.
C lines change a bit because of unnecessary escaping for '\'.
Edouard Tisserant <edouard@beremiz.fr> [Mon, 22 Jul 2024 12:12:33 +0200] rev 3994
MQTT: WIP, prevent crash after disconnect. Disable auto-reconnect on connection lost callback.
Edouard Tisserant <edouard@beremiz.fr> [Thu, 18 Jul 2024 12:05:26 +0200] rev 3993
MQTT: Stop publish thread properly on PLC stop
Edouard Tisserant <edouard@beremiz.fr> [Thu, 18 Jul 2024 11:42:08 +0200] rev 3992
MQTT: Fix overkill use of wx sizer
Edouard Tisserant <edouard@beremiz.fr> [Thu, 18 Jul 2024 11:28:38 +0200] rev 3991
MQTT: Fix crash when browsing locations
Edouard Tisserant <edouard@beremiz.fr> [Wed, 17 Jul 2024 17:02:32 +0200] rev 3990
MQTT: WIP. Added handling of received messages (subscriptions)
Dropped perfect hash in favor of bisection
Also fixed indentation (tabs)