Details for step 1: Define your data
The Toolsay Toolkit includes an Excel spreadsheet that you use to describe your product. You fill in the following data for your product:
- Properties – Each property refers to a piece of state in the device. Devices have writeable configuration properties used for device settings and read-only status properties that present the values of sensors or a device’s computed state.
- Enumerations – Many properties contain a value that is one of several choices. The enumerations list out the choices.
- Events – Specify the types of events that occur when your products operates, including their correlation to properties, and their severity.
A code generator reads the spreadsheet and generates C++ and C# code used by the embedded, server, and monitoring software.
Details for step 2: Integrate the embedded library into your product
The Toolsay Embedded Library is layered to let you use as many features as you care to:
- Device property and event definitions – this defines the core data for your product – provides programmatic access to the data to your code and the rest of the Toolsay Embedded Library
- Communication library – publishes updates to the server and accepts property changes and commands
- Property storage – optional module to save property values in flash and/or RAM as desired
- Event storage – optional module to save events to flash
- Embedded database – SQLite fully integrated if desired to provide RAM and flash efficient storage while ensuring data integrity
The library is distributed as ANSI C and C++ source code. Add the files for the desired modules to your project and update your product’s code to use the API. Your code will need to inform the library of property updates and events and react to when users set property values. You will probably want your UI code to take advantage of the rich property formatting and language features.
Details for step 3: Customize the presentation
The Toolsay web and mobile clients will automatically present much of your product’s data in an organized, intuitive way. Still, there typically are certain device properties that are central to your product’s function, which benefit from customized presentation. The Toolkit makes the customization with data bound controls that you can drag and drop onto a designer surface. These controls update themselves automatically when device data changes.
Customizing the presentation involves these steps:
- Start with the generated application for each client—web, iPhone®, and Android™—based on the device definition from step 1. This gets your full-featured (but not yet customized) apps up and running immediately.
- If necessary, create a view model to encapsulate data derived from device properties and events. You do this in a .NET language such as C# or Visual Basic. This view model is shared among each of the applications.
- Write the custom presentation code. This will be slightly different for each platform to ensure each app feels native to its users. Since there is a single device data model and view model to code against, and using the data bound controls, development effort is kept to a minimum.
- Finally, customize how the server delivers email and text messages with branded templates and, if desired, custom logic.
Details for step 4: Test and deploy
There’s no substitute for testing your products and the monitoring infrastructure as a holistic system. Fortunately, the Toolkit helps you automate some of the work. In addition to providing automated random-value robustness tests, you can create automated tests tuned to the nature of your product and its data. Because device data obtained from USB or the network is exposed through well-defined .NET APIs, it is readily available for use by automated test tools such as NUnit or National Instruments TestStand.
When testing is complete, you deploy applications to your web site and Apple and Android app stores like any other app. The web server can run in an ASP.NET shared hosting environment. The Toolkit provides an installation builder so that you can allow your enterprise customers to deploy the web server software to their own intranet servers as shrink-wrapped software.
As will all the other steps, Toolsay’s integration services team is available to assist as you have need. This includes web server hosting and app publishing.
The Toolsay Machine Monitoring Toolkit is self-contained and ready for your development team to pick up and run with. Yet we realize that specifics of time to market, budget, and expertise may make outsourcing a better fit for some or all of the integration effort. That is why Toolsay offers integration services for all aspects of integrating the Toolkit.
Toolsay can work side by side with you to concretely define your product’s data, helping you to identify the most logical and intuitive representation of your product’s state.
We can aid your embedded development from providing simple technical support through working directly with your codebase for turnkey integration. Likewise, for the server and the client applications, our services range up to complete development of the applications. We work well in a highly interactive development environment with many interim builds and a tight feedback loop, because we realize it’s unusual to know exactly the best look and feel for your applications at the start of development.
Using the Toolkit’s installation builder, you can build ready-to-deploy binaries for each component. You can deploy to your own web hosting environment, as can your enterprise customers. You also have the option of letting Toolsay host your monitoring web site and publish your client applications. Either way, everything is fully branded and customized to fully reflect your business.