Flexa Apps
Application Development Introduction
The Barionet M44 provides a robust development environment for creating custom applications, leveraging the flexible architecture of the Flexa Firmware platform. This capability represents one of the core strengths of the Barionet system, enabling users to extend functionality beyond standard operations.
Core Features and Capabilities
The Barionet M44 base features includes tools and utilities:
System Infrastructure
Integrated firmware update capabilities
Networking management layer
Security for web configuration access
Reset to Factory Defaults utility
Full SNMP support for network management and monitoring (and integration into SingleWire’s InformaCast environments)
Intelligent IO addressing map that simplifies access to input/output resources and system components from Flexa applications
Development Resources
Comprehensive set of pre-loaded modules/libraries covering the majority of common application requirements
Streamlined development workflow optimized for rapid prototyping and deployment
Programming Language Options
Recommended Approach: Python and Lua For most development scenarios, Python and Lua offer the most efficient path to creating Barionet M44 applications. These interpreted languages provide excellent balance between development speed and system performance.
Advanced Option: C/C++ While C and C++ compilation is supported, this approach requires cross-compilation for IPAM-based devices. Given the additional complexity involved, compiled languages are typically unnecessary for standard application development needs.
Users don’t have SSH access to Barionet M44 devices, the applications developed should consider the implementation of an external syslog functionality, useful during early development stages and later for production runs.
How to develop Flexa Apps for Barionet
A Flexa App is simply a "package" that must be prepared following straightforward guidelines. The package structure requirements outlined in the “Package Structure” chapter of the Flexa User Manual apply to the Barionet as well.
Once your package (the Flexa App) is ready, you have two methods for loading it onto the Barionet:
Via Local Web UI → Detailed instructions are provided HERE (this link opens an example App to be loaded on Barionet which you can use as reference. More examples are provided at the end of this document).
Via Service Portal → More information about service portals is available HERE Contact support[at]barix.com for additional details about service portal development if you're interested in crafting one.
Barionet Resources
In order to simplify the development of Flexa Apps for Barionet the following resources can be used:
IO Addresses → These are the addresses that maps system resources (inputs, outputs, temp_sensors, system info and more) to logical indexes. The development of this “indexing” considered the IO addressing used on legacy Barionet models (Barionet 50 and 100) thus is possible to implement new gen Barionet devices in same scenarios where previous models were used.
IO Mapping Application-> Details on the Python / Lua APIs to access the IO Addresses with easy-to-use functions and examples
Reference Applications The following section present production-ready example applications developed and maintained by Barix. These examples serve as practical starting points for your own Barionet M44 development projects.
Software Disclaimer
IMPORTANT:
The software applications listed in the “Reference Applications” are provided "AS IS" without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the author, developer, or distributor be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the Software or the use or other dealings in the Software.
Use at Your Own Risk: The user assumes all responsibility and risk for the use of this Software. The author makes no representations or warranties regarding the accuracy, reliability, completeness, or timeliness of the Software or its suitability for any particular purpose.
No Support Obligation: The provision of this Software does not create any obligation to provide technical support, maintenance, updates, enhancements, or modifications. The Software is provided for educational and reference purposes only.
Third-Party Dependencies: This Software may utilize third-party libraries and components. The user is responsible for ensuring compliance with all applicable licenses and terms of use for such dependencies.
Network and Security: The user is solely responsible for implementing appropriate security measures and network configurations. The author is not responsible for any security vulnerabilities, data breaches, or network disruptions that may result from the use of this Software.
Compliance: Users are responsible for ensuring that their use of this Software complies with all applicable laws, regulations, and organizational policies in their jurisdiction.
Limitation of Liability: Under no circumstances shall the total liability of the author exceed zero dollars ($0.00) for any damages arising out of or related to the use of this Software.
By using this Software, you acknowledge that you have read, understood, and agree to be bound by the terms of this disclaimer.