Objective-C ist kompatible zu C. Dies erlaubt es uns die C/C++ Bindings in einer iOS App zu verwenden. Allgemeine Informationen sind in der Beschreibung der C/C++ Bindings zu finden, diese Seite befasst sich nur mit iOS spezifischen Dingen.
Im Folgenden wird angenommen, dass die iOS Entwicklungsumgebung schon installiert ist.
Als Beispiel soll ein kleines Projekt zum Schalten eines Dual Relay Bricklets erstellt werden. Es sollte leicht sein dieses Beispiel für deine Zwecke weiterzuentwickeln.
Starte ein neues Xcode Projekt:
Füge den Quelltext der C/C++ Bindings dem Projekt hinzu:
source/
Ordner der C/C++ BindingsEs folgt ein kleines Beispielprogramm zum Schalten eines Relays per Knopfdruck.
Bearbeite AppDelegate.h
so wie unten gezeigt: füge zwei neue Variablen
für die IPConnection und das DualRelay Objekt und die toggleRelays
Interface
Builder Action hinzu.
#import <UIKit/UIKit.h>
#include "ip_connection.h"
#include "bricklet_dual_relay.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
IPConnection ipcon;
DualRelay dr;
}
@property (strong, nonatomic) UIWindow *window;
- (IBAction)toggleRelays;
@end
Bearbeite AppDelegate.m
so wie unten gezeigt: erzeuge das IPConnection und
DualRelay Objekt nachdem die App gestartet ist. Der Einfachheit halber haben wir
im Beispiel auf Fehlerbehandlung verzichtet. In der toggleRelays
Action wird
der Zustand beider Relais umgeschaltet.
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window = _window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Change to the IP address of your host
ipcon_create(&ipcon);
dual_relay_create(&dr, "XYZ", &ipcon); // Change XYZ to the UID of your Dual Relay Brick
ipcon_connect(&ipcon, "192.168.178.46", 4223);
dual_relay_set_state(&dr, true, true);
return YES;
}
- (IBAction) toggleRelays
{
// Get state of both relays and toogle it
bool state1, state2;
dual_relay_get_state(&dr, &state1, &state2);
dual_relay_set_state(&dr, !state1, !state2);
}
@end
Jetzt öffne das MainStoryboard.storyboard
im Interface Builder und füge ein
Label und ein an/aus Switch Objekt hinzu wie es im Screenshot zu sehen ist. Der
letzte Schritt is das Verbinden des Value Changed Events des Switches mit der
toggleRelays Action:
Die App kann mittels des Run Knopfes im Simulator getestet werden. Dabei ist darauf zu achten UID und IP Adresse entsprechend des verwendeten Dual Relay Bricklets und PCs abzuändern.