UmberHubManager/api/examples/c_cpp/BrainStem2-CCA-Example/BrainStem2Example/main.c

67 lines
2.1 KiB
C
Executable File

//
// main.c
// BrainStem2Example
//
// Created by Acroname Inc. on 1/16/15.
// Copyright (c) 2015 Acroname Inc. All rights reserved.
//
#include "BrainStem2/BrainStem-C.h" //aTime_MSSleep
#include "BrainStem2_CCA/CCA_All.h"
#include <stdio.h> // standard input / output functions
#define SYSTEM_INDEX (0U)
int main(int argc, const char * argv[]) {
unsigned int id = 0; //Stem ID. Will be assigned by the module_createStem call.
struct Result result;
//- If autoNetworking is True then moduleAddress has no meaning. Set it to 0
//- If model is set and the serial number in discoverAndConnect is 0 then
// connection will only occur if the model matches the one provided.
// We use 0 here for simplicity.
module_createStem(&id, &result, 0, true, 0);
//- linkType of 1 is used for USB.
//- If serialNumber = 0 a connection will be made to the first device that is
// found which has a matching model (unless model is 0).
//- Special care should be taken when working with multiple stems to ensure
// you are connected to the one you expect.
module_discoverAndConnect(&id, &result, 1, 0);
if(result.error) {
printf("Error trying to connect - Error: %d\n", result.error);
return 1;
}
system_getSerialNumber(&id, &result, SYSTEM_INDEX);
if(aErrNone == result.error) {
printf("Serial Number: 0x%08X\n", result.value);
}
printf("Toggling the user LED\n");
static const uint8_t TOGGLES = 10;
for(uint8_t x = 0; x < TOGGLES; x++) {
system_getLED(&id, &result, 0);
if(aErrNone == result.error ) {
printf("Loop: %d/%d - Current LED State: %d - Changing to %d\n", x+1, TOGGLES, result.value, !result.value);
}
system_setLED(&id, &result, SYSTEM_INDEX, !result.value);
aTime_MSSleep(1000);
}
system_getInputVoltage(&id, &result, 0);
if(aErrNone == result.error) {
printf("System Voltage: %.2fVDC\n", result.value/1000000.0);
}
//Disconnect and cleanup memory.
module_disconnectAndDestroyStem(&id, &result);
return 0;
}