Digi International Inc. / Mbed 2 deprecated XBeeDM_dio_adc_pwm

Dependencies:   XBeeLib mbed

Fork of XBeeZB_dio_adc by Digi International Inc.

Files at this revision

API Documentation at this revision

Comitter:
hbujanda
Date:
Wed Apr 29 17:58:45 2015 +0200
Child:
1:adeb9c8818ab
Commit message:
Automatic upload

Changed in this revision

XBeeLib.lib Show annotated file Show diff for this revision Revisions of this file
config.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/XBeeLib.lib	Wed Apr 29 17:58:45 2015 +0200
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/Digi-International-Inc/code/XBeeLib/#7bfa82960634
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/config.h	Wed Apr 29 17:58:45 2015 +0200
@@ -0,0 +1,55 @@
+
+#if !defined(__CONFIG_H_)
+#define __CONFIG_H_
+
+//#define PATFORM_ARCHPRO
+
+/** Library configuration options */
+#define ENABLE_LOGGING
+#define ENABLE_ASSERTIONS
+#define FRAME_BUFFER_SIZE   4
+#define MAX_FRAME_PAYLOAD_LEN  128
+#define ENABLE_PM_SUPPORT
+
+#define SYNC_OPS_TIMEOUT_MS       2000
+#define REM_SYNC_OPS_TIMEOUT_MS   3000
+
+#if defined(PATFORM_ARCHPRO)
+#define RADIO_TX            P4_28
+#define RADIO_RX            P4_29
+#define RADIO_RESET         NC
+//#define RADIO_RESET         NC
+#define RADIO_SLEEP_REQ     NC
+#define RADIO_ON_SLEEP      NC
+#define DEBUG_TX            P0_2
+#define DEBUG_RX            P0_3
+#elif defined(TARGET_LPC1768)
+#define RADIO_TX            p9
+#define RADIO_RX            p10
+#define RADIO_RESET         p30
+#define RADIO_SLEEP_REQ     NC
+#define RADIO_ON_SLEEP      NC
+#define DEBUG_TX            P0_2
+#define DEBUG_RX            P0_3
+#elif defined(TARGET_FRDM_KL25)
+#define RADIO_TX            PTD3
+#define RADIO_RX            PTD2
+#define RADIO_RESET         NC
+#define RADIO_SLEEP_REQ     NC
+#define RADIO_ON_SLEEP      NC
+#define DEBUG_TX            USBTX
+#define DEBUG_RX            USBRX
+#elif (defined TARGET_LPC11U24)
+#define RADIO_TX            p9
+#define RADIO_RX            p10
+#define RADIO_RESET         p30
+#define RADIO_SLEEP_REQ     NC
+#define RADIO_ON_SLEEP      NC
+#define DEBUG_TX            USBTX
+#define DEBUG_RX            USBRX
+#else
+#error "Define a platform"
+#endif
+
+#endif /* __CONFIG_H_ */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Apr 29 17:58:45 2015 +0200
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2015 Digi International Inc.,
+ * All rights not expressly granted are reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
+ * =======================================================================
+ */
+
+#include "mbed.h"
+#include "XBeeLib.h"
+#if defined(ENABLE_LOGGING)
+#include "DigiLoggerMbedSerial.h"
+using namespace DigiLog;
+#endif
+
+// TODO Replace with the MSB of the remote module's 64-bit address (SH parameter)
+#define REMOTE_NODE_ADDR64_MSB  ((uint32_t)0x0013A200)
+// TODO Replace with the LSB of the remote module's 64-bit address (SL parameter)
+#define REMOTE_NODE_ADDR64_LSB  ((uint32_t)0x40D2B03E)
+
+using namespace XBeeLib;
+
+Serial *log_serial;
+
+int main()
+{
+    log_serial = new Serial(DEBUG_TX, DEBUG_RX);
+    log_serial->baud(9600);
+    log_serial->printf("Sample application to demo how to handle remote XBeeZB devices DIOs and ADCs\r\n\r\n");
+    log_serial->printf(XB_LIB_BANNER);
+
+#if defined(ENABLE_LOGGING)
+    new DigiLoggerMbedSerial(log_serial, LogLevelInfo);
+#endif
+
+    XBeeZB xbee = XBeeZB(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 9600);
+
+    RadioStatus radioStatus = xbee.init();
+    MBED_ASSERT(radioStatus == Success);
+
+    /* Wait until the device has joined the network */
+    log_serial->printf("Waiting for device to join the network: ");
+    while (!xbee.is_joined()) {
+        wait_ms(1000);
+        log_serial->printf(".");
+    }
+    log_serial->printf("OK\r\n");
+
+    const RemoteXBeeZB remoteDevice = RemoteXBeeZB(Addr64(REMOTE_NODE_ADDR64_MSB, REMOTE_NODE_ADDR64_LSB));
+
+    radioStatus = xbee.set_pin_config(remoteDevice, XBeeZB::DIO3_AD3, DigitalInput);
+    MBED_ASSERT(radioStatus == Success);
+
+    radioStatus = xbee.set_pin_config(remoteDevice, XBeeZB::DIO4, DigitalOutHigh);
+    MBED_ASSERT(radioStatus == Success);
+
+    radioStatus = xbee.set_pin_config(remoteDevice, XBeeZB::DIO2_AD2, Adc);
+    MBED_ASSERT(radioStatus == Success);
+
+//#define TEST_SUPPLY_VOLTAGE
+
+#ifdef TEST_SUPPLY_VOLTAGE
+    /* Set a high V+ value so radio sends Supply Voltage information */
+    uint16_t v_value = 0x0C00;
+    log_serial->printf("\r\nSetting remote device V+ parameter to 0x%04x:\r\n", v_value);
+    AtCmdFrame::AtCmdResp cmdresp = xbee.set_param(remoteDevice, "V+", v_value);
+
+    if (cmdresp == AtCmdFrame::AtCmdRespOk)
+        log_serial->printf("OK\r\n");
+    else
+        log_serial->printf("FAILED with %d\r\n", (int) cmdresp);
+#endif
+
+    while(true) {
+        /* Read DIO3_AD3 value */
+        DioVal dio3_val;
+        radioStatus = xbee.get_dio(remoteDevice, XBeeZB::DIO3_AD3, &dio3_val);
+        MBED_ASSERT(radioStatus == Success);
+        log_serial->printf("DIO3 value = %d\r\n", dio3_val);
+
+        /* Toggle XBIB board DS4 led */
+        static bool led_on = false;
+        if (!led_on)
+            radioStatus = xbee.set_dio(remoteDevice, XBeeZB::DIO4, Low);
+        else
+            radioStatus = xbee.set_dio(remoteDevice, XBeeZB::DIO4, High); 
+        MBED_ASSERT(radioStatus == Success);
+        led_on = !led_on;
+
+        /* Read DIO2_AD2 analog value */
+        uint16_t adc2_val;
+        radioStatus = xbee.get_adc(remoteDevice, XBeeZB::DIO2_AD2, &adc2_val);
+        MBED_ASSERT(radioStatus == Success);
+        log_serial->printf("ADC2 value = 0x%04x\r\n", adc2_val);
+
+#ifdef TEST_SUPPLY_VOLTAGE
+        uint16_t voltaje_val;
+        radioStatus = xbee.get_adc(remoteDevice, XBeeZB::SUPPLY_VOLTAGE, &voltaje_val);
+        if (radioStatus == Success)
+            log_serial->printf("Remote module Supply Voltage = 0x%04x\r\n", voltaje_val);
+#endif
+
+        log_serial->printf("\r\n");
+        
+        wait(5);
+    }
+
+    delete(log_serial);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Apr 29 17:58:45 2015 +0200
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/487b796308b0
\ No newline at end of file