EZ App Lynx
Software Library to Interface to Smartphones and Tablets
Use the EZApp library to quickly create a wireless sensor or controller on a PIC® MCU that may be viewed and displayed on a mobile device using Bluetooth® included in CCS IDE Compilers. Drivers, examples and development boards for the Microchip RN-4020 Bluetooth® module.
No App Development experience needed.
Free generic App is compatible with the library included with IDE compilers.
EZApp C library allows the GUI on an App to be created at run time from the PIC® microcontroller.
- Status Bar
- Gas Gauges
- Sliders
- Buttons
- Text Edit Fields
- Drop-down List
- Text Sizes
- Colors
- Spacing
- Margins and Alignment
The Android and iOS app both support Microchip's RN-4020 Bluetooth® Low Energy (BLE) module in MLDP mode. MLDP mode provides a serial data delivery similar to Bluetooth® Classic's SPP protocol. BLE and MLDP can be used on Apple's iOS without any extra provisioning, meaning the developer doesn't need to be a member of Apple's MFi program to use EZ App Lynx. The Android app also supports any Bluetooth® Classic module that uses SPP protocol, such as Microchip's RN-42.
The Android and iOS app are already available for download and use on their respective stores; the Android app can be found on Google Play while the iOS app can be found on the Apple App Store. A developer using the EZ App Lynx library and app can implement a smartphone or tablet interface without having to create an Android or Apple developer account. A developer using EZ App Lynx also doesn't have to worry about publishing an app to the Google Play or Apple App Store, since CCS has already done this.
If you would like to publish a version of the EZ App Lynx app that is rebranded with your name and company information, we are offering publishing services for Android, iOS, and both at a discounted price.
Available in IDE Compilers 5.032 or better.
Download new version or check Account History.
How it works
Example Styles:
Example Buttons:
Sample C Source Code
#include "main.h" #include <EZApp.c> void main(void) { ezapp_field_index_t strIndex, rpmIndex, damperIndex, fan1Index, fan2Index; rom char* title = "Air Handler Unit 3269"; HW_INIT(); EZAppInit(); EZAppSetTitleROM(title); EZAppSetValueStringROM(EZAppAddFieldString(), title); strIndex = EZAppAddFieldString(); rpmIndex = EZAppAddFieldAnalogValue( (rom char *)"RPM X 1000", //header EZAPP_ANALOG_TYPE_SLIDER, //display type 1024, //max value 9 //scaling ); damperIndex = EZAppAddFieldAnalogValue( (rom char *)"DAMPER", //header EZAPP_ANALOG_TYPE_SLIDER, //display type 1023 //max value ); fan1Index = EZAppAddFieldButtonTwoState( (rom char*)"Fan 1", //header (rom char*)"OfftOn" //strings that go in button ); fan2Index = EZAppAddFieldButtonTwoState( (rom char*)"Fan 2", //header (rom char*)"OfftOn" //strings that go in button ); for(;;) { EZAppTask(); if (IsFailure()) { EZAppSetValueStringROM(strIndex, (rom char*)"Operation: Failure"); } else { EZAppSetValueStringROM(strIndex, (rom char*)"Operation: Normal"); } EZAppSetValue(rpmIndex, read_adc()); if (EZAppGetKbhit(damperIndex)) SetDamper(EZAppGetValue(damperIndex)); if (EZAppGetKbhit(fan1Index)) SetFan1(EZAppGetValue(fan1Index)); if (EZAppGetKbhit(fan2Index)) SetFan2(EZAppGetValue(fan2Index)); } }