iSDIO library for FlashAir

Dependents:   FlashAir_iSDIO_sample FlashAir_iSDIO_16seg_ADT7410_step1 FlashAir_iSDIO_16seg_ADT7410 FlashAir_iSDIO_sample_OS5_ ... more

Committer:
hogejun
Date:
Thu Aug 23 06:33:32 2018 +0000
Revision:
0:89c6aae3a486
Child:
1:dc888b9028cf
initial release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hogejun 0:89c6aae3a486 1 #include "mbed.h"
hogejun 0:89c6aae3a486 2 #include "FlashAir_iSDIO.h"
hogejun 0:89c6aae3a486 3
hogejun 0:89c6aae3a486 4
hogejun 0:89c6aae3a486 5 FlashAir_iSDIO::FlashAir_iSDIO(PinName mosi, PinName miso, PinName sclk, PinName cs, const char *name, Serial *console) :
hogejun 0:89c6aae3a486 6 iSDIO(mosi, miso, sclk, cs, name, console)
hogejun 0:89c6aae3a486 7 {
hogejun 0:89c6aae3a486 8 instance = this ;
hogejun 0:89c6aae3a486 9 sequenceId = 0 ;
hogejun 0:89c6aae3a486 10 _console = console ;
hogejun 0:89c6aae3a486 11 _console->printf("new FlashAIr_iSDIO\n");
hogejun 0:89c6aae3a486 12 }
hogejun 0:89c6aae3a486 13
hogejun 0:89c6aae3a486 14 FlashAir_iSDIO *FlashAir_iSDIO::instance = 0;
hogejun 0:89c6aae3a486 15
hogejun 0:89c6aae3a486 16 FlashAir_iSDIO *FlashAir_iSDIO::getInstance()
hogejun 0:89c6aae3a486 17 {
hogejun 0:89c6aae3a486 18 return FlashAir_iSDIO::instance ;
hogejun 0:89c6aae3a486 19 }
hogejun 0:89c6aae3a486 20
hogejun 0:89c6aae3a486 21 //uint32_t FlashAir_iSDIO::getSequenceId()
hogejun 0:89c6aae3a486 22 //{
hogejun 0:89c6aae3a486 23 // return iSDIO::sequenceId ;
hogejun 0:89c6aae3a486 24 //}
hogejun 0:89c6aae3a486 25
hogejun 0:89c6aae3a486 26 uint8_t FlashAir_iSDIO::wlan_disconnect(uint32_t sequenceId) {
hogejun 0:89c6aae3a486 27 _console->printf("\nDisconnect command: \n");
hogejun 0:89c6aae3a486 28 memset(cmdbuffer, 0, sizeof(cmdbuffer));
hogejun 0:89c6aae3a486 29 uint8_t* p = cmdbuffer;
hogejun 0:89c6aae3a486 30 p = put_command_header(p, 1, 0);
hogejun 0:89c6aae3a486 31 p = put_command_info_header(p, WLAN_DISCONNECT, sequenceId, 0);
hogejun 0:89c6aae3a486 32 put_command_header(cmdbuffer, 1, (p - cmdbuffer));
hogejun 0:89c6aae3a486 33 printHex(cmdbuffer, (p - cmdbuffer));
hogejun 0:89c6aae3a486 34 // return this.writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? true : false;
hogejun 0:89c6aae3a486 35 return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0;
hogejun 0:89c6aae3a486 36 }
hogejun 0:89c6aae3a486 37
hogejun 0:89c6aae3a486 38 uint8_t FlashAir_iSDIO::wlan_establish(uint32_t sequenceId, const uint8_t *ssid, const uint8_t *networkkey, const uint8_t encmode) {
hogejun 0:89c6aae3a486 39 _console->printf("\nEstablish command: \n");
hogejun 0:89c6aae3a486 40 memset(cmdbuffer, 0, sizeof(cmdbuffer));
hogejun 0:89c6aae3a486 41 uint8_t* p = cmdbuffer;
hogejun 0:89c6aae3a486 42 p = put_command_header(p, 1, 0);
hogejun 0:89c6aae3a486 43 p = put_command_info_header(p, WLAN_ESTABLISH, sequenceId, 3);
hogejun 0:89c6aae3a486 44 p = put_str_arg(p, ssid);
hogejun 0:89c6aae3a486 45 p = put_str_arg(p, networkkey);
hogejun 0:89c6aae3a486 46 p = put_u8_arg(p, encmode);
hogejun 0:89c6aae3a486 47 put_command_header(cmdbuffer, 1, (p - cmdbuffer));
hogejun 0:89c6aae3a486 48 printHex(cmdbuffer, (p - cmdbuffer));
hogejun 0:89c6aae3a486 49 return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0;
hogejun 0:89c6aae3a486 50 }
hogejun 0:89c6aae3a486 51
hogejun 0:89c6aae3a486 52 uint8_t FlashAir_iSDIO::wlan_connect(uint32_t sequenceId, const uint8_t* ssid, const uint8_t* networkKey) {
hogejun 0:89c6aae3a486 53 _console->printf("\nConnect command: \n");
hogejun 0:89c6aae3a486 54 memset(cmdbuffer, 0, sizeof(cmdbuffer));
hogejun 0:89c6aae3a486 55 uint8_t* p = cmdbuffer;
hogejun 0:89c6aae3a486 56 p = put_command_header(p, 1, 0);
hogejun 0:89c6aae3a486 57 p = put_command_info_header(p, WLAN_CONNECT, sequenceId, 2);
hogejun 0:89c6aae3a486 58 p = put_str_arg(p, ssid);
hogejun 0:89c6aae3a486 59 p = put_str_arg(p, networkKey);
hogejun 0:89c6aae3a486 60 put_command_header(cmdbuffer, 1, (p - cmdbuffer));
hogejun 0:89c6aae3a486 61 printHex(cmdbuffer, (p - cmdbuffer));
hogejun 0:89c6aae3a486 62 return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0;
hogejun 0:89c6aae3a486 63 }
hogejun 0:89c6aae3a486 64
hogejun 0:89c6aae3a486 65 uint8_t FlashAir_iSDIO::wlan_scan(uint32_t sequenceId)
hogejun 0:89c6aae3a486 66 {
hogejun 0:89c6aae3a486 67 _console->printf("\nScan: \n");
hogejun 0:89c6aae3a486 68 memset(cmdbuffer, 0, sizeof(cmdbuffer));
hogejun 0:89c6aae3a486 69 uint8_t *p = cmdbuffer;
hogejun 0:89c6aae3a486 70 p = put_command_header(p, 1, 0);
hogejun 0:89c6aae3a486 71 p = put_command_info_header(p, WLAN_SCAN, sequenceId, 0);
hogejun 0:89c6aae3a486 72 put_command_header(cmdbuffer, 1, (p-cmdbuffer));
hogejun 0:89c6aae3a486 73 printHex(cmdbuffer, (p - cmdbuffer));
hogejun 0:89c6aae3a486 74 return writeExtDataPort(MIO_IO, FUNC1, ISDIO_WRITE, cmdbuffer) ? true : false;
hogejun 0:89c6aae3a486 75 }
hogejun 0:89c6aae3a486 76
hogejun 0:89c6aae3a486 77 uint8_t FlashAir_iSDIO::read_shared_mem(uint32_t offset, uint8_t* dst, uint16_t length)
hogejun 0:89c6aae3a486 78 {
hogejun 0:89c6aae3a486 79 uint8_t ret ;
hogejun 0:89c6aae3a486 80
hogejun 0:89c6aae3a486 81 ret = readExtMemory(MIO_IO, FUNC1, ISDIO_VENDOR+offset, length, dst);
hogejun 0:89c6aae3a486 82 _console->printf("read_shared_memory:\n");
hogejun 0:89c6aae3a486 83 printHex((uint8_t*)dst, (uint32_t)length);
hogejun 0:89c6aae3a486 84 return ret ;
hogejun 0:89c6aae3a486 85 }
hogejun 0:89c6aae3a486 86
hogejun 0:89c6aae3a486 87 uint8_t FlashAir_iSDIO::write_shared_mem(uint32_t offset, uint8_t* src, uint16_t length)
hogejun 0:89c6aae3a486 88 {
hogejun 0:89c6aae3a486 89 _console->printf("write_shared_mem:\n");
hogejun 0:89c6aae3a486 90 printHex((uint8_t*)src, (uint32_t)length);
hogejun 0:89c6aae3a486 91
hogejun 0:89c6aae3a486 92 return writeExtMemory(MIO_IO, FUNC1, ISDIO_VENDOR+offset, length, src);
hogejun 0:89c6aae3a486 93 }