mbed Open Thread example with nRF52-DK (nRF52840 SoC).

Committer:
mbed_official
Date:
Sun Oct 02 13:45:09 2016 +0100
Revision:
17:ee2610e1cb78
Parent:
16:22f072355a2c
Child:
19:f55c7983f8ab
Merge pull request #22 from ARMmbed/mbed-os-5.2-rc

[ONME-2808] Runtime RF DRV Integration & App update

Commit copied from https://github.com/ARMmbed/mbed-os-example-mesh-minimal

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Seppo Takalo 0:bde1843b9885 1 #include "mbed.h"
Seppo Takalo 0:bde1843b9885 2 #include "rtos.h"
Seppo Takalo 0:bde1843b9885 3 #include "NanostackInterface.h"
Seppo Takalo 0:bde1843b9885 4
mbed_official 16:22f072355a2c 5 #define ATMEL 1
mbed_official 16:22f072355a2c 6 #define MCR20 2
mbed_official 16:22f072355a2c 7
mbed_official 16:22f072355a2c 8 #define MESH_LOWPAN 3
mbed_official 16:22f072355a2c 9 #define MESH_THREAD 4
mbed_official 16:22f072355a2c 10
mbed_official 16:22f072355a2c 11
mbed_official 4:567d72fb3d84 12 #if MBED_CONF_APP_TRACE
mbed_official 4:567d72fb3d84 13 #include "mbed-trace/mbed_trace.h"
mbed_official 4:567d72fb3d84 14
mbed_official 4:567d72fb3d84 15 void trace_printer(const char* str) {
mbed_official 4:567d72fb3d84 16 printf("%s\r\n", str);
mbed_official 4:567d72fb3d84 17 }
mbed_official 4:567d72fb3d84 18 #endif // MBED_CONF_APP_TRACE
mbed_official 4:567d72fb3d84 19
mbed_official 16:22f072355a2c 20
mbed_official 16:22f072355a2c 21 #if MBED_CONF_APP_RADIO_TYPE == ATMEL
mbed_official 16:22f072355a2c 22 #include "NanostackRfPhyAtmel.h"
mbed_official 16:22f072355a2c 23 NanostackRfPhyAtmel rf_phy(ATMEL_SPI_MOSI, ATMEL_SPI_MISO, ATMEL_SPI_SCLK, ATMEL_SPI_CS,
mbed_official 16:22f072355a2c 24 ATMEL_SPI_RST, ATMEL_SPI_SLP, ATMEL_SPI_IRQ, ATMEL_I2C_SDA, ATMEL_I2C_SCL);
mbed_official 16:22f072355a2c 25 #elif MBED_CONF_APP_RADIO_TYPE == MCR20
mbed_official 16:22f072355a2c 26 #include "NanostackRfPhyMcr20a.h"
mbed_official 16:22f072355a2c 27 NanostackRfPhyMcr20a rf_phy(MCR20A_SPI_MOSI, MCR20A_SPI_MISO, MCR20A_SPI_SCLK, MCR20A_SPI_CS, MCR20A_SPI_RST, MCR20A_SPI_IRQ);
mbed_official 16:22f072355a2c 28 #endif //MBED_CONF_APP_RADIO_TYPE
mbed_official 16:22f072355a2c 29
mbed_official 16:22f072355a2c 30
mbed_official 16:22f072355a2c 31 #if MBED_CONF_APP_MESH_TYPE == MESH_LOWPAN
Seppo Takalo 0:bde1843b9885 32 LoWPANNDInterface mesh;
mbed_official 16:22f072355a2c 33 #elif MBED_CONF_APP_MESH_TYPE == MESH_THREAD
mbed_official 16:22f072355a2c 34 ThreadInterface mesh;
mbed_official 16:22f072355a2c 35 #endif //MBED_CONF_APP_MESH_TYPE
mbed_official 16:22f072355a2c 36
Seppo Takalo 0:bde1843b9885 37 Serial output(USBTX, USBRX);
Seppo Takalo 0:bde1843b9885 38
Seppo Takalo 0:bde1843b9885 39 int main()
Seppo Takalo 0:bde1843b9885 40 {
mbed_official 4:567d72fb3d84 41
mbed_official 4:567d72fb3d84 42 #if MBED_CONF_APP_TRACE
mbed_official 4:567d72fb3d84 43 mbed_trace_init();
mbed_official 4:567d72fb3d84 44 mbed_trace_print_function_set(trace_printer);
mbed_official 4:567d72fb3d84 45 #endif
Seppo Takalo 0:bde1843b9885 46 output.baud(115200);
mbed_official 1:24cff46332de 47 printf("\r\n\r\nConnecting...\r\n");
mbed_official 16:22f072355a2c 48 mesh.initialize(&rf_phy);
Seppo Takalo 0:bde1843b9885 49
Seppo Takalo 0:bde1843b9885 50 if (mesh.connect()) {
mbed_official 1:24cff46332de 51 printf("Connection failed!\r\n");
Seppo Takalo 0:bde1843b9885 52 return -1;
Seppo Takalo 0:bde1843b9885 53 }
Seppo Takalo 0:bde1843b9885 54
mbed_official 17:ee2610e1cb78 55 while (NULL == mesh.get_ip_address())
mbed_official 17:ee2610e1cb78 56 Thread::wait(500);
mbed_official 17:ee2610e1cb78 57
mbed_official 1:24cff46332de 58 printf("connected. IP = %s\r\n", mesh.get_ip_address());
mbed_official 1:24cff46332de 59 }