macchina.io

Release Notes

Release 2021.1

Summary of Changes

  • License change: changed license of open source version to GPLv3
  • upgraded POCO to release 1.11.0
  • upgraded OSP and RemotingNG frameworks (see respective release notes)
  • MQTT: support for MQTT version 5, upgrade bundled Paho library
  • JavaScript: new UUID object
  • JavaScript: fixed potential heap corruption with asynchronous HTTP requests
  • JavaScript: fixed potential double free in BridgeWrapper
  • JavaScript: HTTP request and response object have new headers property
  • JavaScript: fix a race condition when stopping a script
  • JavaScript: add toJSON() to Buffer, DateTime, LocalDateTime and UUID objects
  • Upgrade OpenLayers to newer version to fix Safari display issues

Release 2020.1

Summary of Changes

  • upgraded POCO to release 1.10.1
  • updated OSP and Remoting frameworks (see their respective release notes for details)
  • modernized codebase to use C++14
  • JavaScript: fixed an unhandled exception in RecordSet.toJSON() if record set is empty
  • JavaScript: fixed potential memory leaks due to wrong v8::Persistent use in some places
  • JavaScript: optimized handling of timer callbacks to avoid excessive delays when
  • stopping a script with 10000s of timers
  • Bluetooth support (BtLE) has been upgraded to work with current versions of bluepy-helper
  • BtLE: it's now possible create basic Peripheral devices and use them from JavaScript
  • Modbus: added ModbusMaster::reset() method
  • added device interface for cameras
  • various minor improvements and fixes

Release 0.10.0

Summary of Changes

  • upgraded POCO to release 1.9.0
  • OSP: added ServiceListener class (including JS bindings)
  • OSP: added Bundle-PreventUninstall manifest property
  • Added various samples
  • Remoting: added support for std::array and Poco::array
  • Added support for CAN bus (via Linux SocketCAN)
  • JS Data binding: added executeNonQuery() method which does not create a RecordSet result
  • added UnitsOfMeasure service
  • OSP: added StripBundle utility
  • OSP Web: improved support for framework-level CSRF/XSRF protection
  • Web user interface: fix potential XSRF issues
  • Naming of device services: use port or device ID from config properties instead of index
  • Various smaller fixes and improvements

Release 0.7.0 - Developer Preview 7

Summary of Changes

  • upgraded POCO to release 1.7.8p2
  • Remoting: Added a new framework for authentication and authorization
  • RemoteGen bugfix: fix: don't generate () for empty default initialization in Skeleton code
  • RemoteGen bugfix: generate correct code for EventDispatcher and EventSubscriber for classes that inherit events from base classes
  • OSP: improved error message when starting a bundle fails because a dependency failed to start
  • JavaScript engine modularization: HTTP and Database classes are now in their own bundles/modules
  • MQTT/Paho: fix socket leak if connect fails
  • added UDP/6LoWPAN support
  • improved Modbus support
  • improved Bluetooth LE support
  • added support for Bosch XDK device

Release 0.6.0 - Developer Preview 6

Summary of Changes

  • upgraded POCO to release 1.7.6
  • make JS/Core, JS/Net, JS/Data and JS/Bridge build on Windows (including VS project files)
  • allow specifying a script memory limit through the osp.js.memoryLimit bundle property (also for JavaScript Servlets and Server Pages)
  • fixed memory usage issues in JavaScript
  • improved script stopping behavior (fix a race condition introduced in 0.5.0)
  • OSP: added BundleContext::listBundles() and BundleLoader::listBundles() overloads accepting a BundleFilter; BundleRepository: add installBundle() overloads that take a bundle repository path.
  • various minor fixes

Release 0.5.0 - Developer Preview 5

Summary of Changes

  • fixed a memory usage issue with Session wrapper in JavaScript servlet engine
  • handle potentially empty V8 handles returned by *::New()
  • upgrade bundled Paho to 1.1.0
  • fixed a bug in RemoteGen: generated serializers and deserializers for classes/structs using more than one level of inheritance would only serialize members of direct base class.
  • various minor fixes

Release 0.4.0 - Developer Preview 4

Summary of Changes

  • Script Scheduler improvements (@once) and documentation.
  • Added POCO Redis library to platform
  • Moved serial port library to platform

Release 0.3.0 - Developer Preview 3

Summary of Changes

  • Updated bundled POCO libraries to 1.7.5
  • Added NetworkEnvironmentService
  • Remoting improvements

Release 0.2.0 - Developer Preview 2

Summary of Changes

  • upgraded POCO C++ Libraries to 1.7.4
  • upgraded V8 to release 3.28.4
  • added BarcodeReader interface
  • GNSSSensor implementation based on NMEA 0183 protocol via serial port
  • GNSSSensor interface - added positionLost event
  • added WebTunnel protocol support for connecting to my-devices.net
  • Serial Port: added support for baud rates 460800 to 4000000 if available
  • enable V8 snapshot feature to improve JavaScript startup time
  • added LED device interface and implementation for Linux /sys/class/leds
  • various improvements, bugfixes and optimizations in JS library
  • added support for XBee protocol and XBee Sensor (light, temperature, humidity)
  • added Sensor::ready() method
  • added SimulatedGNSSSensor which plays back GPX files
  • added web-based Console
  • improved JavaScript logger wrapper (support for formatted messages)
  • added JavaScript console object
  • JavaScript: HTMLForm JavaScript wrapper now has property accessor for fields: write form.a instead of form.getField('a') (GH #16)
  • various minor bugfixes and improvements
  • fixed a potential crash when converting a std::string to JavaScript string and the string contains invalid UTF-8.
  • added support for Modbus protocol
  • added support for Bluetooth LE devices
  • added DeviceStatus service
  • added JavaScript task scheduler
  • performance improvements

Release 0.1.0 - Developer Preview 1

This is the first release of macchina.io, released with the intent to get early feedback from the IoT developer community.

macchina.io is still in development. The core platform code is done and considered stable (it's based on code having seen heavy production use for a few years already). Work leading to 1.0 release focuses on adding additional sensor, device and cloud service interfaces, as well as improving the existing interfaces.

Securely control IoT edge devices from anywhere   Connect a Device