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