README.md
The Emmoco Mobile Framework iOS examples
Introduction
These examples demonstrate use of Emmoco’s Mobile Framework for iOS. Each example shows a different aspect of mobile to embedded system communication.
NOTE: BLE is no longer supported by the iOS simulator. These examples cannot be built for the i386 architecture.
There are five examples:
a) FirstApp - Connecting to a device and writing a value b) Compound - Dealing with more complicated resource types c) Indicator - Receiving notifications from the embedded system to your application d) File - Dealing with file resources e) Broadcast - Receiving information from embedded systems while not connected
These examples correspond to their counterparts in the embedded system examples.
Before you begin
This document and these examples assume a basic understanding of iOS, Emmoco’s embedded platform, and Bluetooth Low Energy. To successfully run these iOS examples, you will need their counterparts running on an embedded system.
FirstApp - The “Hello world” of mobile to embedded communication
This example demonstrates scanning, connecting, and writing a value to an embedded system.
Before connecting to a device, you must “discover” it through scanning. The pattern for this is demonstrated in the class EMDevicePickerViewController
. This class observes the devices
property on EMConnectionListManager
and displays discovered devices in a table. When the user selects a device, this class connects to the device by interacting with EMConnectionManager
.
Once connected, the class EMFirstAppViewController
demonstrates how to write values to the embedded system through an interface control. In this case, a UISlider writes a number down when its value changes.
Compound
This example is similar to the FirstApp example, but demonstrates the reading and writing of a more complex data type. All resources on the embedded system correspond to Foundation objects in iOS.
NSNumber
- floats, integers
NSString
- enums, strings
NSArray
- Arrays
NSDictionary
- Structs
NSData
- files
In FirstApp, we used NSNumber
to write to a number. In this example, we’re using an NSDictionary
to read and write structs.
Indicator
Indicators are notifications that come from the embedded system up to your mobile application. The Mobile Framework delivers these events to you through NSNotificationCenter
. The Indicator example shows you how to read and process these notifications.
See EMIndicatorExampleViewController
for how to do this.
File
Files are often very large, requiring multiple packets to transfer them to and from the embedded system. Fortunately, the Mobile Framework handles this for you. When reading a file, you are given an NSData
object only after the entire transfer is complete. To write a value, you hand an NSData
object to the framework.
Broadcast
This is the only example that does not ever connect to the embedded system. Instead, it pulls a resource’s value from the device’s advertise packet. See EMBroadcastViewController
to understand how this works.