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:
Sat Jan 19 04:31:16 2019 +0000
Revision:
2:b8b33621e7fe
Parent:
1:dc888b9028cf
modified debug output

Who changed what in which revision?

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