example for SAKURA Internet IoT Alpha Communication Module
Dependencies: SakuraAlpha mbed
main.cpp@1:dfd0aa5bc3ee, 2016-06-03 (annotated)
- Committer:
- sakurafan
- Date:
- Fri Jun 03 09:26:13 2016 +0000
- Revision:
- 1:dfd0aa5bc3ee
- Parent:
- 0:bd9a005d4efc
update library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sakurafan | 0:bd9a005d4efc | 1 | /* SAKURA Internet IoT Alpha Communication Module |
sakurafan | 0:bd9a005d4efc | 2 | * |
sakurafan | 0:bd9a005d4efc | 3 | * Copyright (c) SAKURA Internet Inc. |
sakurafan | 0:bd9a005d4efc | 4 | * The MIT License (MIT) |
sakurafan | 0:bd9a005d4efc | 5 | * https://github.com/sakura-internet/SakuraAlphaArduino |
sakurafan | 0:bd9a005d4efc | 6 | * |
sakurafan | 0:bd9a005d4efc | 7 | * https://iot.sakura.ad.jp/ |
sakurafan | 0:bd9a005d4efc | 8 | * |
sakurafan | 0:bd9a005d4efc | 9 | * Porting to mbed by sakurafan. 2016 |
sakurafan | 0:bd9a005d4efc | 10 | */ |
sakurafan | 0:bd9a005d4efc | 11 | |
sakurafan | 0:bd9a005d4efc | 12 | #include "mbed.h" |
sakurafan | 0:bd9a005d4efc | 13 | #include "SakuraAlpha.h" |
sakurafan | 0:bd9a005d4efc | 14 | |
sakurafan | 0:bd9a005d4efc | 15 | #define BUF_LEN 16 |
sakurafan | 0:bd9a005d4efc | 16 | |
sakurafan | 0:bd9a005d4efc | 17 | SakuraAlphaI2C sakura(p28, p27); // sda, scl |
sakurafan | 0:bd9a005d4efc | 18 | /* |
sakurafan | 0:bd9a005d4efc | 19 | I2C i2c(p28, p27); // sda, scl |
sakurafan | 0:bd9a005d4efc | 20 | SakuraAlphaI2C sakura(i2c); // i2c |
sakurafan | 0:bd9a005d4efc | 21 | */ |
sakurafan | 0:bd9a005d4efc | 22 | Serial pc(USBTX, USBRX); |
sakurafan | 0:bd9a005d4efc | 23 | DigitalOut myled(LED1); |
sakurafan | 0:bd9a005d4efc | 24 | |
sakurafan | 0:bd9a005d4efc | 25 | int main () { |
sakurafan | 0:bd9a005d4efc | 26 | uint32_t cnt = 0; |
sakurafan | 0:bd9a005d4efc | 27 | uint8_t updated[BUF_LEN]; |
sakurafan | 0:bd9a005d4efc | 28 | |
sakurafan | 0:bd9a005d4efc | 29 | pc.baud(115200); |
sakurafan | 0:bd9a005d4efc | 30 | pc.printf("Waiting to come online...\r\n"); |
sakurafan | 0:bd9a005d4efc | 31 | |
sakurafan | 0:bd9a005d4efc | 32 | for(;;){ |
sakurafan | 0:bd9a005d4efc | 33 | if( sakura.getNetworkStatus() == 1 ) break; |
sakurafan | 0:bd9a005d4efc | 34 | myled = !myled; |
sakurafan | 0:bd9a005d4efc | 35 | wait_ms(1000); |
sakurafan | 0:bd9a005d4efc | 36 | } |
sakurafan | 0:bd9a005d4efc | 37 | myled = 1; |
sakurafan | 0:bd9a005d4efc | 38 | |
sakurafan | 0:bd9a005d4efc | 39 | for (;;) { |
sakurafan | 0:bd9a005d4efc | 40 | cnt++; |
sakurafan | 0:bd9a005d4efc | 41 | pc.printf("%d\r\n", cnt); |
sakurafan | 0:bd9a005d4efc | 42 | sakura.writeChannel(0,cnt); |
sakurafan | 0:bd9a005d4efc | 43 | sakura.writeChannel(1,cnt); |
sakurafan | 0:bd9a005d4efc | 44 | sakura.writeChannel(2,cnt); |
sakurafan | 0:bd9a005d4efc | 45 | wait_ms(250); |
sakurafan | 0:bd9a005d4efc | 46 | |
sakurafan | 0:bd9a005d4efc | 47 | int num_updated = sakura.getUpdatedChannels(updated, BUF_LEN); |
sakurafan | 0:bd9a005d4efc | 48 | pc.printf("%d updated channels: ", num_updated); |
sakurafan | 0:bd9a005d4efc | 49 | for (int i = 0; i < min(num_updated,BUF_LEN); i++) { |
sakurafan | 0:bd9a005d4efc | 50 | pc.printf(" %d", updated[i]); |
sakurafan | 0:bd9a005d4efc | 51 | } |
sakurafan | 0:bd9a005d4efc | 52 | pc.printf("\r\n"); |
sakurafan | 0:bd9a005d4efc | 53 | |
sakurafan | 0:bd9a005d4efc | 54 | char type=0; |
sakurafan | 0:bd9a005d4efc | 55 | uint8_t value[8]={0}; |
sakurafan | 0:bd9a005d4efc | 56 | |
sakurafan | 0:bd9a005d4efc | 57 | sakura.readChannel(0, &type, value); |
sakurafan | 0:bd9a005d4efc | 58 | |
sakurafan | 0:bd9a005d4efc | 59 | for (int i = 0; i < 8; i++) { |
sakurafan | 0:bd9a005d4efc | 60 | pc.printf(" %x", value[i]); |
sakurafan | 0:bd9a005d4efc | 61 | } |
sakurafan | 0:bd9a005d4efc | 62 | |
sakurafan | 0:bd9a005d4efc | 63 | pc.printf(" type: %d\r\n", type); |
sakurafan | 0:bd9a005d4efc | 64 | wait_ms(250); |
sakurafan | 0:bd9a005d4efc | 65 | |
sakurafan | 0:bd9a005d4efc | 66 | pc.printf("Tx[0] status: %d\r\n", sakura.getTxChannelStatus(0)); |
sakurafan | 0:bd9a005d4efc | 67 | |
sakurafan | 0:bd9a005d4efc | 68 | sakura.transmit(TRANSMIT_ONCE); |
sakurafan | 0:bd9a005d4efc | 69 | wait_ms(250); |
sakurafan | 0:bd9a005d4efc | 70 | |
sakurafan | 0:bd9a005d4efc | 71 | num_updated = sakura.getUntransmittedChannels(updated, BUF_LEN); |
sakurafan | 0:bd9a005d4efc | 72 | pc.printf("%d untransmitted channels: ", num_updated); |
sakurafan | 0:bd9a005d4efc | 73 | for (int i = 0; i < min(num_updated,BUF_LEN); i++) { |
sakurafan | 0:bd9a005d4efc | 74 | pc.printf(" %d", updated[i]); |
sakurafan | 0:bd9a005d4efc | 75 | } |
sakurafan | 0:bd9a005d4efc | 76 | pc.printf("\r\n"); |
sakurafan | 0:bd9a005d4efc | 77 | wait_ms(1000); |
sakurafan | 0:bd9a005d4efc | 78 | |
sakurafan | 0:bd9a005d4efc | 79 | pc.printf("\r\n"); |
sakurafan | 0:bd9a005d4efc | 80 | } |
sakurafan | 0:bd9a005d4efc | 81 | } |