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: SakuraIO_official mbed
Fork of SakuraIO_Standard by
main.cpp
00001 #include "mbed.h" 00002 #include "SakuraIO.h" 00003 00004 Serial pc(USBTX, USBRX); 00005 DigitalOut myled(LED1); 00006 00007 int main() 00008 { 00009 00010 00011 SPI spi(p5, p6, p7); // mosi, miso, sclk 00012 I2C i2c(p9, p10); // sda, scl 00013 00014 //SakuraIO_SPI sakuraio( spi, p8 ); 00015 SakuraIO_I2C sakuraio(i2c); 00016 00017 00018 pc.printf("Waiting to come online"); 00019 for(;;) { 00020 if( (sakuraio.getConnectionStatus() & 0x80) == 0x80 ) break; 00021 pc.printf("."); 00022 wait_ms(1000); 00023 } 00024 pc.printf("\r\n"); 00025 00026 uint8_t counter = 0; 00027 00028 while(1) { 00029 pc.printf("\r\n%02x\r\n",counter); 00030 00031 uint8_t request[33] = {}; 00032 uint8_t response[33] = {}; 00033 00034 // Echoback 00035 request[0] = counter; 00036 sakuraio.echoback(1, request, response); 00037 pc.printf("%02x\r\n",request[0]); 00038 pc.printf(" -> "); 00039 pc.printf("%02x\r\n",response[0]); 00040 00041 // Unixtime 00042 uint32_t unixtime = (uint32_t)(sakuraio.getUnixtime()/1000UL); 00043 pc.printf("Unixtime "); 00044 pc.printf("%d\r\n",unixtime); 00045 00046 // ADC 00047 uint16_t adc; 00048 adc = sakuraio.getADC(0); 00049 pc.printf("ADC0 "); 00050 pc.printf("%d\r\n",adc); 00051 adc = sakuraio.getADC(1); 00052 pc.printf("ADC1 "); 00053 pc.printf("%d\r\n",adc); 00054 00055 // ProductID 00056 uint16_t pid = sakuraio.getProductID(); 00057 pc.printf("PID "); 00058 pc.printf("%d\r\n",pid); 00059 00060 // UniqueID 00061 sakuraio.getUniqueID((char *)response); 00062 pc.printf("UID "); 00063 pc.printf("%s\r\n",response); 00064 00065 // Version 00066 sakuraio.getFirmwareVersion((char *)response); 00067 pc.printf("Ver "); 00068 pc.printf("%s\r\n",response); 00069 00070 // Connection Status 00071 uint8_t connectionStatus = sakuraio.getConnectionStatus(); 00072 pc.printf("Status "); 00073 pc.printf("%s\r\n",response); 00074 00075 //getSignalQuarity 00076 uint8_t signalQuarity = sakuraio.getSignalQuarity(); 00077 pc.printf("Quality "); 00078 pc.printf("%s\r\n",response); 00079 00080 00081 // Tx Queue 00082 uint8_t ret; 00083 ret = sakuraio.enqueueTx((uint8_t)0, (int32_t)counter); 00084 pc.printf("Enqueue "); 00085 pc.printf("%s\r\n",response); 00086 00087 uint8_t avail; 00088 uint8_t queued; 00089 sakuraio.getTxQueueLength(&avail, &queued); 00090 pc.printf("Tx Available="); 00091 pc.printf("%d",avail); 00092 pc.printf(" Queued="); 00093 pc.printf("%d\r\n",queued); 00094 00095 if(queued >= 30) { 00096 ret = sakuraio.clearTx(); 00097 pc.printf("Clear "); 00098 pc.printf("%02x\r\n",ret); 00099 } else if(queued >= 5) { 00100 ret = sakuraio.send(); 00101 pc.printf("Send "); 00102 pc.printf("%02x\r\n",ret); 00103 } 00104 00105 // Rx Queue 00106 sakuraio.getRxQueueLength(&avail, &queued); 00107 pc.printf("Rx Available="); 00108 pc.printf("%d",avail); 00109 pc.printf(" Queued="); 00110 pc.printf("%d\r\n",queued); 00111 00112 for(uint8_t i=0; i<queued; i++) { 00113 uint8_t channel; 00114 uint8_t type; 00115 uint8_t values[8]; 00116 int64_t offset; 00117 ret = sakuraio.dequeueRx(&channel, &type, values, &offset); 00118 pc.printf("Dequeue "); 00119 pc.printf("%02x",ret); 00120 if(ret == 0x01) { 00121 pc.printf(" ch="); 00122 pc.printf("%d",channel); 00123 pc.printf(" type="); 00124 pc.printf("%c",type); 00125 pc.printf(" values=["); 00126 for(uint8_t b=0; b<7; b++) { 00127 pc.printf("%02x ",values[b]); 00128 } 00129 pc.printf("%02x",values[7]); 00130 pc.printf("] offset="); 00131 pc.printf("%d\r\n",(int32_t)offset); 00132 } else { 00133 pc.printf(" ERROR\r\n"); 00134 } 00135 } 00136 00137 wait_ms(1000); 00138 } 00139 00140 }
Generated on Mon Jul 18 2022 00:36:54 by
1.7.2
