|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# 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.
|