Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SakuraAlpha mbed
main.cpp@0:bd9a005d4efc, 2016-05-31 (annotated)
- Committer:
- sakurafan
- Date:
- Tue May 31 13:39:38 2016 +0000
- Revision:
- 0:bd9a005d4efc
1st build
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 | } |